]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Merge branch 'master' into kernel-4.9
authorArne Fitzenreiter <arne_f@ipfire.org>
Sun, 9 Jul 2017 10:47:16 +0000 (12:47 +0200)
committerArne Fitzenreiter <arne_f@ipfire.org>
Sun, 9 Jul 2017 10:47:16 +0000 (12:47 +0200)
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
906 files changed:
config/avahi/avahi [deleted file]
config/avahi/smb.service [deleted file]
config/backup/includes/avahi [deleted file]
config/backup/includes/imspector [deleted file]
config/cfgroot/general-functions.pl
config/cfgroot/graphs.pl
config/cfgroot/network-functions.pl
config/etc/sysctl.conf
config/firewall/ipsec-block
config/httpd/server-tuning.conf
config/imspector/imspector.conf [deleted file]
config/menu/EX-imspector.menu [deleted file]
config/miniupnpd/miniupnpd.conf
config/qos/makeqosscripts.pl
config/rootfiles/common/armv5tel/binutils
config/rootfiles/common/armv5tel/gcc
config/rootfiles/common/armv5tel/glibc
config/rootfiles/common/armv5tel/gmp
config/rootfiles/common/armv5tel/initscripts
config/rootfiles/common/armv5tel/lm_sensors
config/rootfiles/common/armv5tel/python
config/rootfiles/common/attr
config/rootfiles/common/autoconf
config/rootfiles/common/bc
config/rootfiles/common/boost
config/rootfiles/common/cairo
config/rootfiles/common/cmake
config/rootfiles/common/configroot
config/rootfiles/common/cpio
config/rootfiles/common/diffutils
config/rootfiles/common/flex
config/rootfiles/common/fontconfig
config/rootfiles/common/freetype
config/rootfiles/common/fuse
config/rootfiles/common/fwhits [deleted file]
config/rootfiles/common/gawk
config/rootfiles/common/gnutls [new file with mode: 0644]
config/rootfiles/common/gzip
config/rootfiles/common/i586/binutils
config/rootfiles/common/i586/gcc
config/rootfiles/common/i586/glibc
config/rootfiles/common/i586/gmp
config/rootfiles/common/i586/initscripts
config/rootfiles/common/i586/lm_sensors
config/rootfiles/common/i586/python
config/rootfiles/common/i586/util-linux
config/rootfiles/common/lcms2 [new file with mode: 0644]
config/rootfiles/common/libarchive
config/rootfiles/common/libevent2
config/rootfiles/common/libevent2-compat [new file with mode: 0644]
config/rootfiles/common/libgcrypt
config/rootfiles/common/libgpg-error
config/rootfiles/common/libxml2
config/rootfiles/common/logrotate
config/rootfiles/common/logwatch
config/rootfiles/common/mpfr
config/rootfiles/common/ncurses
config/rootfiles/common/nettle
config/rootfiles/common/pcre
config/rootfiles/common/pixman
config/rootfiles/common/poppler [new file with mode: 0644]
config/rootfiles/common/qpdf [new file with mode: 0644]
config/rootfiles/common/reiserfsprogs
config/rootfiles/common/rrdtool
config/rootfiles/common/strongswan
config/rootfiles/common/sudo
config/rootfiles/common/tzdata
config/rootfiles/common/unbound
config/rootfiles/common/unzip
config/rootfiles/common/web-user-interface
config/rootfiles/common/x86_64/binutils
config/rootfiles/common/x86_64/gcc
config/rootfiles/common/x86_64/glibc
config/rootfiles/common/x86_64/gmp
config/rootfiles/common/x86_64/initscripts
config/rootfiles/common/x86_64/lm_sensors
config/rootfiles/common/x86_64/python
config/rootfiles/common/x86_64/util-linux
config/rootfiles/core/112/exclude [moved from config/rootfiles/core/109/exclude with 100% similarity]
config/rootfiles/core/112/filelists/armv5tel/binutils [new symlink]
config/rootfiles/core/112/filelists/armv5tel/gcc [new symlink]
config/rootfiles/core/112/filelists/armv5tel/glibc [new symlink]
config/rootfiles/core/112/filelists/armv5tel/util-linux [new symlink]
config/rootfiles/core/112/filelists/autoconf [new symlink]
config/rootfiles/core/112/filelists/bc [new symlink]
config/rootfiles/core/112/filelists/boost [new symlink]
config/rootfiles/core/112/filelists/cmake [new symlink]
config/rootfiles/core/112/filelists/files [new file with mode: 0644]
config/rootfiles/core/112/filelists/flex [new symlink]
config/rootfiles/core/112/filelists/fuse [new symlink]
config/rootfiles/core/112/filelists/gawk [new symlink]
config/rootfiles/core/112/filelists/gnutls [new symlink]
config/rootfiles/core/112/filelists/i586/binutils [new symlink]
config/rootfiles/core/112/filelists/i586/gcc [new symlink]
config/rootfiles/core/112/filelists/i586/glibc [new symlink]
config/rootfiles/core/112/filelists/i586/python [new symlink]
config/rootfiles/core/112/filelists/i586/util-linux [new symlink]
config/rootfiles/core/112/filelists/kbd [new symlink]
config/rootfiles/core/112/filelists/libarchive [new symlink]
config/rootfiles/core/112/filelists/libgcrypt [new symlink]
config/rootfiles/core/112/filelists/libgpg-error [new symlink]
config/rootfiles/core/112/filelists/libxml2 [new symlink]
config/rootfiles/core/112/filelists/ncurses [new symlink]
config/rootfiles/core/112/filelists/reiserfsprogs [new symlink]
config/rootfiles/core/112/filelists/sudo [new symlink]
config/rootfiles/core/112/filelists/tzdata [new symlink]
config/rootfiles/core/112/filelists/unbound [moved from config/rootfiles/core/109/filelists/unbound with 100% similarity]
config/rootfiles/core/112/filelists/web-user-interface [new symlink]
config/rootfiles/core/112/filelists/x86_64/binutils [new symlink]
config/rootfiles/core/112/filelists/x86_64/gcc [new symlink]
config/rootfiles/core/112/filelists/x86_64/glibc [new symlink]
config/rootfiles/core/112/filelists/x86_64/python [new symlink]
config/rootfiles/core/112/filelists/x86_64/util-linux [new symlink]
config/rootfiles/core/112/meta [moved from config/rootfiles/core/109/meta with 100% similarity]
config/rootfiles/core/112/update.sh [moved from src/paks/avahi/install.sh with 64% similarity]
config/rootfiles/oldcore/108/filelists/files
config/rootfiles/oldcore/109/exclude [new file with mode: 0644]
config/rootfiles/oldcore/109/filelists/GeoIP [moved from config/rootfiles/core/109/filelists/GeoIP with 100% similarity]
config/rootfiles/oldcore/109/filelists/bind [moved from config/rootfiles/core/109/filelists/bind with 100% similarity]
config/rootfiles/oldcore/109/filelists/files [moved from config/rootfiles/core/109/filelists/files with 100% similarity]
config/rootfiles/oldcore/109/filelists/libpcap [moved from config/rootfiles/core/109/filelists/libpcap with 100% similarity]
config/rootfiles/oldcore/109/filelists/libpng [moved from config/rootfiles/core/109/filelists/libpng with 100% similarity]
config/rootfiles/oldcore/109/filelists/openssl [moved from config/rootfiles/core/109/filelists/openssl with 100% similarity]
config/rootfiles/oldcore/109/filelists/snort [moved from config/rootfiles/core/109/filelists/snort with 100% similarity]
config/rootfiles/oldcore/109/filelists/squid [moved from config/rootfiles/core/109/filelists/squid with 100% similarity]
config/rootfiles/oldcore/109/filelists/sysklogd [moved from config/rootfiles/core/109/filelists/sysklogd with 100% similarity]
config/rootfiles/oldcore/109/filelists/unbound [new symlink]
config/rootfiles/oldcore/109/meta [new file with mode: 0644]
config/rootfiles/oldcore/109/update.sh [moved from config/rootfiles/core/109/update.sh with 100% similarity]
config/rootfiles/oldcore/110/exclude [new file with mode: 0644]
config/rootfiles/oldcore/110/filelists/armv5tel/lm_sensors [new symlink]
config/rootfiles/oldcore/110/filelists/bind [new symlink]
config/rootfiles/oldcore/110/filelists/cairo [new symlink]
config/rootfiles/oldcore/110/filelists/conntrack-tools [new symlink]
config/rootfiles/oldcore/110/filelists/files [new file with mode: 0644]
config/rootfiles/oldcore/110/filelists/fontconfig [new symlink]
config/rootfiles/oldcore/110/filelists/freetype [new symlink]
config/rootfiles/oldcore/110/filelists/gnutls [new symlink]
config/rootfiles/oldcore/110/filelists/i586/lm_sensors [new symlink]
config/rootfiles/oldcore/110/filelists/lcms2 [new symlink]
config/rootfiles/oldcore/110/filelists/nettle [new symlink]
config/rootfiles/oldcore/110/filelists/ntp [new symlink]
config/rootfiles/oldcore/110/filelists/openssh [new symlink]
config/rootfiles/oldcore/110/filelists/pixman [new symlink]
config/rootfiles/oldcore/110/filelists/poppler [new symlink]
config/rootfiles/oldcore/110/filelists/qpdf [new symlink]
config/rootfiles/oldcore/110/filelists/squid [new symlink]
config/rootfiles/oldcore/110/filelists/strongswan [new symlink]
config/rootfiles/oldcore/110/filelists/unbound [new symlink]
config/rootfiles/oldcore/110/filelists/wget [new symlink]
config/rootfiles/oldcore/110/filelists/x86_64/lm_sensors [new symlink]
config/rootfiles/oldcore/110/meta [new file with mode: 0644]
config/rootfiles/oldcore/110/update.sh [moved from src/paks/vdr_vnsiserver5/update.sh with 55% similarity]
config/rootfiles/oldcore/111/exclude [new file with mode: 0644]
config/rootfiles/oldcore/111/filelists/armv5tel/gcc [new symlink]
config/rootfiles/oldcore/111/filelists/armv5tel/gmp [new symlink]
config/rootfiles/oldcore/111/filelists/bind [new symlink]
config/rootfiles/oldcore/111/filelists/coreutils [new symlink]
config/rootfiles/oldcore/111/filelists/cpio [new symlink]
config/rootfiles/oldcore/111/filelists/dhcp [new symlink]
config/rootfiles/oldcore/111/filelists/file [new symlink]
config/rootfiles/oldcore/111/filelists/files [new file with mode: 0644]
config/rootfiles/oldcore/111/filelists/gzip [new symlink]
config/rootfiles/oldcore/111/filelists/i586/gcc [new symlink]
config/rootfiles/oldcore/111/filelists/i586/gmp [new symlink]
config/rootfiles/oldcore/111/filelists/i586/openssl-sse2 [new symlink]
config/rootfiles/oldcore/111/filelists/i586/strongswan-padlock [new symlink]
config/rootfiles/oldcore/111/filelists/libevent2 [new symlink]
config/rootfiles/oldcore/111/filelists/libevent2-compat [new symlink]
config/rootfiles/oldcore/111/filelists/logrotate [new symlink]
config/rootfiles/oldcore/111/filelists/logwatch [new symlink]
config/rootfiles/oldcore/111/filelists/mpfr [new symlink]
config/rootfiles/oldcore/111/filelists/openssl [new symlink]
config/rootfiles/oldcore/111/filelists/openvpn [new symlink]
config/rootfiles/oldcore/111/filelists/pcre [new symlink]
config/rootfiles/oldcore/111/filelists/php [new symlink]
config/rootfiles/oldcore/111/filelists/rrdtool [new symlink]
config/rootfiles/oldcore/111/filelists/strongswan [new symlink]
config/rootfiles/oldcore/111/filelists/unbound [new symlink]
config/rootfiles/oldcore/111/filelists/vnstat [new symlink]
config/rootfiles/oldcore/111/filelists/x86_64/gcc [new symlink]
config/rootfiles/oldcore/111/filelists/x86_64/gmp [new symlink]
config/rootfiles/oldcore/111/meta [new file with mode: 0644]
config/rootfiles/oldcore/111/update.sh [moved from src/paks/vdr_vnsiserver5/install.sh with 63% similarity]
config/rootfiles/packages/7zip
config/rootfiles/packages/armv5tel/directfb
config/rootfiles/packages/armv5tel/python3
config/rootfiles/packages/armv7hl/directfb [new file with mode: 0644]
config/rootfiles/packages/avahi [deleted file]
config/rootfiles/packages/cups
config/rootfiles/packages/cups-filters [new file with mode: 0644]
config/rootfiles/packages/cyrus-imapd
config/rootfiles/packages/dbus
config/rootfiles/packages/dfb++ [deleted file]
config/rootfiles/packages/elfutils [new file with mode: 0644]
config/rootfiles/packages/epson-inkjet-printer-escpr [new file with mode: 0644]
config/rootfiles/packages/ffmpeg
config/rootfiles/packages/ffmpeg-libs
config/rootfiles/packages/freeradius
config/rootfiles/packages/ghostscript
config/rootfiles/packages/git
config/rootfiles/packages/gnu-netcat
config/rootfiles/packages/i586/directfb
config/rootfiles/packages/i586/python3
config/rootfiles/packages/i586/python3-libvirt [new file with mode: 0644]
config/rootfiles/packages/iftop [deleted file]
config/rootfiles/packages/imspector [deleted file]
config/rootfiles/packages/keepalived
config/rootfiles/packages/libvirt
config/rootfiles/packages/ltrace [new file with mode: 0644]
config/rootfiles/packages/mc
config/rootfiles/packages/motion
config/rootfiles/packages/mpd
config/rootfiles/packages/mysql
config/rootfiles/packages/nano
config/rootfiles/packages/ncftp [deleted file]
config/rootfiles/packages/netsnmpd
config/rootfiles/packages/nmap
config/rootfiles/packages/qemu
config/rootfiles/packages/sane
config/rootfiles/packages/sdl
config/rootfiles/packages/tcpick [deleted file]
config/rootfiles/packages/vdr_vnsiserver5 [deleted file]
config/rootfiles/packages/x86_64/directfb
config/rootfiles/packages/x86_64/python3
config/rootfiles/packages/x86_64/python3-libvirt [new file with mode: 0644]
config/vdr/plugins.d/vnsiserver3.conf [deleted file]
config/vdr/plugins.d/vnsiserver5.conf [deleted file]
doc/language_issues.de
doc/language_issues.en
doc/language_issues.es
doc/language_issues.fr
doc/language_issues.it
doc/language_issues.nl
doc/language_issues.pl
doc/language_issues.ru
doc/language_issues.tr
doc/language_missings
html/cgi-bin/entropy.cgi
html/cgi-bin/fwhosts.cgi
html/cgi-bin/guardian.cgi
html/cgi-bin/hardwaregraphs.cgi
html/cgi-bin/ids.cgi
html/cgi-bin/imspector.cgi [deleted file]
html/cgi-bin/index.cgi
html/cgi-bin/ipinfo.cgi
html/cgi-bin/iptables.cgi
html/cgi-bin/logs.cgi/firewalllogcountry.dat
html/cgi-bin/logs.cgi/firewalllogip.dat
html/cgi-bin/logs.cgi/firewalllogport.dat
html/cgi-bin/logs.cgi/log.dat
html/cgi-bin/logs.cgi/showrequestfromcountry.dat
html/cgi-bin/logs.cgi/showrequestfromip.dat
html/cgi-bin/logs.cgi/showrequestfromport.dat
html/cgi-bin/netovpnsrv.cgi
html/cgi-bin/ovpnmain.cgi
html/cgi-bin/qos.cgi
html/cgi-bin/system.cgi
html/cgi-bin/vpnmain.cgi
html/cgi-bin/wirelessclient.cgi
html/html/images/back.png [new file with mode: 0644]
html/html/themes/darkdos/include/style.css
html/html/themes/ipfire-legacy/include/style.css
html/html/themes/ipfire/include/css/style.css
html/html/themes/maniac/include/style.css
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl
langs/it/cgi-bin/it.pl
lfs/7zip
lfs/Config
lfs/acpid
lfs/alsa
lfs/amavisd
lfs/apcupsd
lfs/asterisk
lfs/backports
lfs/bash
lfs/bc
lfs/bind
lfs/binutils
lfs/bird
lfs/bluetooth
lfs/boost
lfs/cairo
lfs/ccache
lfs/cdrom
lfs/clamav
lfs/cleanup-toolchain
lfs/client175
lfs/cmake
lfs/collectd
lfs/conntrack-tools
lfs/core-updates
lfs/coreutils
lfs/cpio
lfs/cpufrequtils
lfs/crda
lfs/cups
lfs/cups-filters [new file with mode: 0644]
lfs/cyrus-imapd
lfs/cyrus-sasl
lfs/dbus
lfs/dhcp
lfs/directfb
lfs/dnsdist
lfs/elfutils [moved from lfs/ncftp with 85% similarity]
lfs/epson-inkjet-printer-escpr [new file with mode: 0644]
lfs/fetchmail
lfs/ffmpeg
lfs/ffmpeg-libs
lfs/file
lfs/flash-images
lfs/flex
lfs/fontconfig
lfs/freeradius
lfs/freetype
lfs/fuse
lfs/gawk
lfs/gcc
lfs/ghostscript
lfs/git
lfs/glibc
lfs/gmp
lfs/gmp-compat
lfs/gnump3d
lfs/gnutls [new file with mode: 0644]
lfs/grep
lfs/grub
lfs/guardian
lfs/gzip
lfs/haproxy
lfs/hostapd
lfs/imspector [deleted file]
lfs/initscripts
lfs/installer
lfs/iperf
lfs/ipfire-netboot
lfs/ipset
lfs/keepalived
lfs/lcd4linux
lfs/lcdproc
lfs/lcms2 [moved from lfs/iftop with 92% similarity]
lfs/lcr
lfs/libarchive
lfs/libdvbpsi
lfs/libevent2
lfs/libevent2-compat [moved from lfs/avahi with 75% similarity]
lfs/libgcrypt
lfs/libgpg-error
lfs/libvirt
lfs/libxml2
lfs/linux
lfs/lm_sensors
lfs/logrotate
lfs/logwatch
lfs/ltrace [new file with mode: 0644]
lfs/m4
lfs/mc
lfs/mdadm
lfs/mediatomb
lfs/memtest
lfs/miau
lfs/minidlna
lfs/miniupnpd
lfs/monit
lfs/motion
lfs/mpd
lfs/mpfr
lfs/mysql
lfs/nano
lfs/ncurses
lfs/ncurses-compat
lfs/netsnmpd
lfs/nettle
lfs/nfs
lfs/nmap
lfs/ntp
lfs/nut
lfs/openssh
lfs/openssl
lfs/openvmtools
lfs/openvpn
lfs/pakfire
lfs/pam
lfs/pcre
lfs/perl
lfs/php
lfs/pixman
lfs/pkg-config
lfs/poppler [new file with mode: 0644]
lfs/postfix
lfs/pound
lfs/python
lfs/python3
lfs/python3-libvirt [moved from lfs/dfb++ with 90% similarity]
lfs/qemu
lfs/qpdf [moved from lfs/tcpick with 92% similarity]
lfs/reiserfsprogs
lfs/rpcbind
lfs/rrdtool
lfs/rtpproxy
lfs/samba
lfs/sane
lfs/sdl
lfs/sources-iso
lfs/spamassassin
lfs/squid
lfs/sslh
lfs/stage1 [moved from lfs/fwhits with 69% similarity]
lfs/stage2
lfs/strip
lfs/strongswan
lfs/stunnel
lfs/sysklogd
lfs/tftpd
lfs/tmux
lfs/tor
lfs/transmission
lfs/u-boot
lfs/udev
lfs/unbound
lfs/unzip
lfs/util-linux
lfs/vdr
lfs/vdr_dvbapi
lfs/vdr_eepg
lfs/vdr_epgsearch
lfs/vdr_streamdev
lfs/vdr_vnsiserver5 [deleted file]
lfs/vdradmin
lfs/vnstat
lfs/vsftpd
lfs/watchdog
lfs/wget
lfs/xen-image
lfs/xinetd
make.sh
src/fake-environ/Makefile
src/initscripts/init.d/applejuice [deleted file]
src/initscripts/init.d/imspector [deleted file]
src/initscripts/networking/any [moved from src/initscripts/init.d/networking/any with 100% similarity]
src/initscripts/networking/dhcpcd.exe [moved from src/initscripts/init.d/networking/dhcpcd.exe with 100% similarity]
src/initscripts/networking/functions.network [moved from src/initscripts/init.d/networking/functions.network with 100% similarity]
src/initscripts/networking/red [moved from src/initscripts/init.d/networking/red with 99% similarity]
src/initscripts/networking/red.down/05-update-dns-forwarders [moved from src/initscripts/init.d/networking/red.down/05-update-dns-forwarders with 100% similarity]
src/initscripts/networking/red.down/10-ipsec [moved from src/initscripts/init.d/networking/red.down/10-ipsec with 100% similarity]
src/initscripts/networking/red.down/10-miniupnpd [moved from src/initscripts/init.d/networking/red.down/10-miniupnpd with 100% similarity]
src/initscripts/networking/red.down/10-ovpn [moved from src/initscripts/init.d/networking/red.down/10-ovpn with 100% similarity]
src/initscripts/networking/red.down/10-static-routes [moved from src/initscripts/init.d/networking/red.down/10-static-routes with 100% similarity]
src/initscripts/networking/red.down/20-firewall [moved from src/initscripts/init.d/networking/red.down/20-firewall with 100% similarity]
src/initscripts/networking/red.up/01-conntrack-cleanup [moved from src/initscripts/init.d/networking/red.up/01-conntrack-cleanup with 100% similarity]
src/initscripts/networking/red.up/05-update-dns-forwarders [moved from src/initscripts/init.d/networking/red.up/05-update-dns-forwarders with 100% similarity]
src/initscripts/networking/red.up/10-miniupnpd [moved from src/initscripts/init.d/networking/red.up/10-miniupnpd with 100% similarity]
src/initscripts/networking/red.up/10-multicast [moved from src/initscripts/init.d/networking/red.up/10-multicast with 100% similarity]
src/initscripts/networking/red.up/10-static-routes [moved from src/initscripts/init.d/networking/red.up/10-static-routes with 100% similarity]
src/initscripts/networking/red.up/20-firewall [moved from src/initscripts/init.d/networking/red.up/20-firewall with 100% similarity]
src/initscripts/networking/red.up/30-ddns [moved from src/initscripts/init.d/networking/red.up/30-ddns with 100% similarity]
src/initscripts/networking/red.up/35-guardian [moved from src/initscripts/init.d/networking/red.up/35-guardian with 100% similarity]
src/initscripts/networking/red.up/50-ipsec [moved from src/initscripts/init.d/networking/red.up/50-ipsec with 100% similarity]
src/initscripts/networking/red.up/50-ovpn [moved from src/initscripts/init.d/networking/red.up/50-ovpn with 100% similarity]
src/initscripts/networking/red.up/98-leds [moved from src/initscripts/init.d/networking/red.up/98-leds with 100% similarity]
src/initscripts/networking/red.up/99-fireinfo [moved from src/initscripts/init.d/networking/red.up/99-fireinfo with 100% similarity]
src/initscripts/networking/red.up/99-geoip-database [moved from src/initscripts/init.d/networking/red.up/99-geoip-database with 100% similarity]
src/initscripts/networking/red.up/99-pakfire-update [moved from src/initscripts/init.d/networking/red.up/99-pakfire-update with 100% similarity]
src/initscripts/networking/wpa_supplicant.exe [moved from src/initscripts/init.d/networking/wpa_supplicant.exe with 100% similarity]
src/initscripts/packages/alsa [moved from src/initscripts/init.d/alsa with 100% similarity]
src/initscripts/packages/amavisd [moved from src/initscripts/init.d/amavisd with 100% similarity]
src/initscripts/packages/apcupsd [moved from src/initscripts/init.d/apcupsd with 100% similarity]
src/initscripts/packages/asterisk [moved from src/initscripts/init.d/asterisk with 100% similarity]
src/initscripts/packages/bluetooth [moved from src/initscripts/init.d/bluetooth with 100% similarity]
src/initscripts/packages/clamav [moved from src/initscripts/init.d/clamav with 100% similarity]
src/initscripts/packages/client175 [moved from src/initscripts/init.d/client175 with 100% similarity]
src/initscripts/packages/cpufreq [moved from src/initscripts/init.d/cpufreq with 100% similarity]
src/initscripts/packages/cups [moved from src/initscripts/init.d/cups with 100% similarity]
src/initscripts/packages/cyrus-imapd [moved from src/initscripts/init.d/cyrus-imapd with 100% similarity]
src/initscripts/packages/cyrus-sasl [moved from src/initscripts/init.d/cyrus-sasl with 100% similarity]
src/initscripts/packages/dnsdist [moved from src/initscripts/init.d/dnsdist with 100% similarity]
src/initscripts/packages/fetchmail [moved from src/initscripts/init.d/fetchmail with 100% similarity]
src/initscripts/packages/freeradius [moved from src/initscripts/init.d/freeradius with 100% similarity]
src/initscripts/packages/gnump3d [moved from src/initscripts/init.d/gnump3d with 100% similarity]
src/initscripts/packages/guardian [moved from src/initscripts/init.d/guardian with 100% similarity]
src/initscripts/packages/haproxy [moved from src/initscripts/init.d/haproxy with 100% similarity]
src/initscripts/packages/hostapd [moved from src/initscripts/init.d/hostapd with 100% similarity]
src/initscripts/packages/keepalived [moved from src/initscripts/init.d/keepalived with 100% similarity]
src/initscripts/packages/lcd4linux [moved from src/initscripts/init.d/lcd4linux with 100% similarity]
src/initscripts/packages/lcdproc [moved from src/initscripts/init.d/lcdproc with 100% similarity]
src/initscripts/packages/lcr [moved from src/initscripts/init.d/lcr with 100% similarity]
src/initscripts/packages/libvirtd [moved from src/initscripts/init.d/libvirtd with 100% similarity]
src/initscripts/packages/mediatomb [moved from src/initscripts/init.d/mediatomb with 100% similarity]
src/initscripts/packages/messagebus [moved from src/initscripts/init.d/messagebus with 100% similarity]
src/initscripts/packages/miau [moved from src/initscripts/init.d/miau with 100% similarity]
src/initscripts/packages/minidlna [moved from src/initscripts/init.d/minidlna with 100% similarity]
src/initscripts/packages/miniupnpd [moved from src/initscripts/init.d/miniupnpd with 100% similarity]
src/initscripts/packages/monit [moved from src/initscripts/init.d/monit with 100% similarity]
src/initscripts/packages/motion [moved from src/initscripts/init.d/motion with 100% similarity]
src/initscripts/packages/mpd [moved from src/initscripts/init.d/mpd with 100% similarity]
src/initscripts/packages/mysql [moved from src/initscripts/init.d/mysql with 100% similarity]
src/initscripts/packages/netsnmpd [moved from src/initscripts/init.d/netsnmpd with 100% similarity]
src/initscripts/packages/nfs-server [moved from src/initscripts/init.d/nfs-server with 100% similarity]
src/initscripts/packages/nut [moved from src/initscripts/init.d/nut with 100% similarity]
src/initscripts/packages/openvmtools [moved from src/initscripts/init.d/openvmtools with 100% similarity]
src/initscripts/packages/postfix [moved from src/initscripts/init.d/postfix with 100% similarity]
src/initscripts/packages/pound [moved from src/initscripts/init.d/pound with 100% similarity]
src/initscripts/packages/rpcbind [moved from src/initscripts/init.d/rpcbind with 100% similarity]
src/initscripts/packages/rtpproxy [moved from src/initscripts/init.d/rtpproxy with 100% similarity]
src/initscripts/packages/samba [moved from src/initscripts/init.d/samba with 100% similarity]
src/initscripts/packages/sane [moved from src/initscripts/init.d/sane with 100% similarity]
src/initscripts/packages/spamassassin [moved from src/initscripts/init.d/spamassassin with 100% similarity]
src/initscripts/packages/sslh [moved from src/initscripts/init.d/sslh with 100% similarity]
src/initscripts/packages/stunnel [moved from src/initscripts/init.d/stunnel with 100% similarity]
src/initscripts/packages/tftpd [moved from src/initscripts/init.d/tftpd with 100% similarity]
src/initscripts/packages/tor [moved from src/initscripts/init.d/tor with 100% similarity]
src/initscripts/packages/transmission [moved from src/initscripts/init.d/transmission with 100% similarity]
src/initscripts/packages/vdr [moved from src/initscripts/init.d/vdr with 100% similarity]
src/initscripts/packages/vdradmin [moved from src/initscripts/init.d/vdradmin with 100% similarity]
src/initscripts/packages/virtlogd [moved from src/initscripts/init.d/virtlogd with 100% similarity]
src/initscripts/packages/vsftpd [moved from src/initscripts/init.d/vsftpd with 100% similarity]
src/initscripts/packages/watchdog [moved from src/initscripts/init.d/watchdog with 100% similarity]
src/initscripts/packages/xinetd [moved from src/initscripts/init.d/xinetd with 100% similarity]
src/initscripts/system/acpid [moved from src/initscripts/init.d/acpid with 100% similarity]
src/initscripts/system/apache [moved from src/initscripts/init.d/apache with 100% similarity]
src/initscripts/system/beep [moved from src/initscripts/init.d/beep with 100% similarity]
src/initscripts/system/checkfs [moved from src/initscripts/init.d/checkfs with 100% similarity]
src/initscripts/system/cleanfs [moved from src/initscripts/init.d/cleanfs with 100% similarity]
src/initscripts/system/collectd [moved from src/initscripts/init.d/collectd with 100% similarity]
src/initscripts/system/connectd [moved from src/initscripts/init.d/connectd with 100% similarity]
src/initscripts/system/console [moved from src/initscripts/init.d/console with 100% similarity]
src/initscripts/system/dhcp [moved from src/initscripts/init.d/dhcp with 100% similarity]
src/initscripts/system/dhcrelay [moved from src/initscripts/init.d/dhcrelay with 100% similarity]
src/initscripts/system/fcron [moved from src/initscripts/init.d/fcron with 100% similarity]
src/initscripts/system/fireinfo [moved from src/initscripts/init.d/fireinfo with 100% similarity]
src/initscripts/system/firewall [moved from src/initscripts/init.d/firewall with 100% similarity]
src/initscripts/system/firstsetup [moved from src/initscripts/init.d/firstsetup with 100% similarity]
src/initscripts/system/fsresize [moved from src/initscripts/init.d/fsresize with 100% similarity]
src/initscripts/system/functions [moved from src/initscripts/init.d/functions with 100% similarity]
src/initscripts/system/halt [moved from src/initscripts/init.d/halt with 100% similarity]
src/initscripts/system/ipsec [moved from src/initscripts/init.d/ipsec with 100% similarity]
src/initscripts/system/leds [moved from src/initscripts/init.d/leds with 100% similarity]
src/initscripts/system/localnet [moved from src/initscripts/init.d/localnet with 100% similarity]
src/initscripts/system/mISDN [moved from src/initscripts/init.d/mISDN with 100% similarity]
src/initscripts/system/modules [moved from src/initscripts/init.d/modules with 100% similarity]
src/initscripts/system/mountfs [moved from src/initscripts/init.d/mountfs with 100% similarity]
src/initscripts/system/mountkernfs [moved from src/initscripts/init.d/mountkernfs with 100% similarity]
src/initscripts/system/mounttmpfs [moved from src/initscripts/init.d/mounttmpfs with 100% similarity]
src/initscripts/system/network [moved from src/initscripts/init.d/network with 100% similarity]
src/initscripts/system/network-trigger [moved from src/initscripts/init.d/network-trigger with 100% similarity]
src/initscripts/system/ntp [moved from src/initscripts/init.d/ntp with 100% similarity]
src/initscripts/system/partresize [moved from src/initscripts/init.d/partresize with 100% similarity]
src/initscripts/system/random [moved from src/initscripts/init.d/random with 100% similarity]
src/initscripts/system/rc [moved from src/initscripts/init.d/rc with 100% similarity]
src/initscripts/system/reboot [moved from src/initscripts/init.d/reboot with 100% similarity]
src/initscripts/system/rngd [moved from src/initscripts/init.d/rngd with 100% similarity]
src/initscripts/system/sendsignals [moved from src/initscripts/init.d/sendsignals with 100% similarity]
src/initscripts/system/setclock [moved from src/initscripts/init.d/setclock with 100% similarity]
src/initscripts/system/smartenabler [moved from src/initscripts/init.d/smartenabler with 100% similarity]
src/initscripts/system/snort [moved from src/initscripts/init.d/snort with 100% similarity]
src/initscripts/system/squid [moved from src/initscripts/init.d/squid with 100% similarity]
src/initscripts/system/sshd [moved from src/initscripts/init.d/sshd with 100% similarity]
src/initscripts/system/static-routes [moved from src/initscripts/init.d/static-routes with 100% similarity]
src/initscripts/system/swap [moved from src/initscripts/init.d/swap with 100% similarity]
src/initscripts/system/swconfig [moved from src/initscripts/init.d/swconfig with 100% similarity]
src/initscripts/system/sysctl [moved from src/initscripts/init.d/sysctl with 100% similarity]
src/initscripts/system/sysklogd [moved from src/initscripts/init.d/sysklogd with 100% similarity]
src/initscripts/system/template [moved from src/initscripts/init.d/template with 100% similarity]
src/initscripts/system/udev [moved from src/initscripts/init.d/udev with 100% similarity]
src/initscripts/system/udev_retry [moved from src/initscripts/init.d/udev_retry with 100% similarity]
src/initscripts/system/unbound [moved from src/initscripts/init.d/unbound with 82% similarity]
src/initscripts/system/upnpd [moved from src/initscripts/init.d/upnpd with 100% similarity]
src/initscripts/system/vnstat [moved from src/initscripts/init.d/vnstat with 100% similarity]
src/initscripts/system/waitdrives [moved from src/initscripts/init.d/waitdrives with 100% similarity]
src/initscripts/system/wlanclient [moved from src/initscripts/init.d/wlanclient with 83% similarity]
src/misc-progs/getipstat.c
src/misc-progs/ipsecctrl.c
src/pakfire/lib/functions.pl
src/paks/avahi/uninstall.sh [deleted file]
src/paks/avahi/update.sh [deleted file]
src/paks/dbus/install.sh
src/paks/dbus/uninstall.sh
src/paks/mysql/install.sh
src/paks/vdr_vnsiserver5/uninstall.sh [deleted file]
src/patches/DirectFB-1.5.3-add-missing-davinci-files.patch [new file with mode: 0644]
src/patches/SDL-1.2.11-asm-page.h.patch [deleted file]
src/patches/bash/bash32-052 [deleted file]
src/patches/bash/bash32-053 [deleted file]
src/patches/binutils-2.24-pt-pax-flags-20131231.patch [deleted file]
src/patches/clamav-0.99.2-gcc-6.patch [new file with mode: 0644]
src/patches/coreutils-8.27-i18n-1.patch [moved from src/patches/coreutils-8.25-i18n-2.patch with 72% similarity]
src/patches/coreutils-8.27-uname-1.patch [new file with mode: 0644]
src/patches/dbus-1.0.3-compile-fix-1.patch [deleted file]
src/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS.patch [new file with mode: 0644]
src/patches/fuse-2.9.2-namespace-conflict-fix.patch [new file with mode: 0644]
src/patches/gawk-3.1.5-segfault_fix-1.patch [deleted file]
src/patches/gcc-4.4.3-startfiles_fix-1.patch [deleted file]
src/patches/gcc-4.4.7-texinfo-5.patch [deleted file]
src/patches/gcc/gcc-fix-inlining-issues.patch [deleted file]
src/patches/gcc/gcc49-i386-libgomp.patch [deleted file]
src/patches/gcc/gcc49-libtool-no-rpath.patch [deleted file]
src/patches/gcc/gcc49-no-add-needed.patch [deleted file]
src/patches/gcc/gcc49-pr38757.patch [deleted file]
src/patches/gcc/gcc49-pr64336.patch [deleted file]
src/patches/glibc-2.12-accept-make-versions-4.0-and-greater.patch [deleted file]
src/patches/glibc-cfi-entry-not-closed.patch [deleted file]
src/patches/glibc-localedef-no-archive.patch [new file with mode: 0644]
src/patches/glibc-remove-ctors-dtors-output-sections.patch [deleted file]
src/patches/glibc-resolv-stack_chk_fail.patch [deleted file]
src/patches/glibc-test-installation.pl-libgcc_s.patch [deleted file]
src/patches/glibc-test-installation.pl-nss_test1.patch [deleted file]
src/patches/glibc/glibc-aliasing.patch [deleted file]
src/patches/glibc/glibc-fedora.patch [deleted file]
src/patches/glibc/glibc-getlogin-r.patch [deleted file]
src/patches/glibc/glibc-localedata.patch [deleted file]
src/patches/glibc/glibc-mq_open.patch [deleted file]
src/patches/glibc/glibc-recvmmsg.patch [deleted file]
src/patches/glibc/glibc-rh1008310.patch [deleted file]
src/patches/glibc/glibc-rh1019916.patch [deleted file]
src/patches/glibc/glibc-rh1022022.patch [deleted file]
src/patches/glibc/glibc-rh1023306.patch [deleted file]
src/patches/glibc/glibc-rh1025933.patch [deleted file]
src/patches/glibc/glibc-rh1027101.patch [deleted file]
src/patches/glibc/glibc-rh1027261.patch [deleted file]
src/patches/glibc/glibc-rh1028285.patch [deleted file]
src/patches/glibc/glibc-rh1032628.patch [deleted file]
src/patches/glibc/glibc-rh1039988.patch [deleted file]
src/patches/glibc/glibc-rh1043557.patch [deleted file]
src/patches/glibc/glibc-rh1044628.patch [deleted file]
src/patches/glibc/glibc-rh1053178.patch [deleted file]
src/patches/glibc/glibc-rh1054846.patch [deleted file]
src/patches/glibc/glibc-rh1066724.patch [deleted file]
src/patches/glibc/glibc-rh1074342.patch [deleted file]
src/patches/glibc/glibc-rh1074353.patch [deleted file]
src/patches/glibc/glibc-rh1082379.patch [deleted file]
src/patches/glibc/glibc-rh1085273.patch [deleted file]
src/patches/glibc/glibc-rh1085289.patch [deleted file]
src/patches/glibc/glibc-rh1085312.patch [deleted file]
src/patches/glibc/glibc-rh1087833.patch [deleted file]
src/patches/glibc/glibc-rh1088301.patch [deleted file]
src/patches/glibc/glibc-rh1091915.patch [deleted file]
src/patches/glibc/glibc-rh1099025-2.patch [deleted file]
src/patches/glibc/glibc-rh1099025.patch [deleted file]
src/patches/glibc/glibc-rh1111460.patch [deleted file]
src/patches/glibc/glibc-rh1116050-1.patch [deleted file]
src/patches/glibc/glibc-rh1116050.patch [deleted file]
src/patches/glibc/glibc-rh1124204.patch [deleted file]
src/patches/glibc/glibc-rh1125307.patch [deleted file]
src/patches/glibc/glibc-rh1133810-1.patch [deleted file]
src/patches/glibc/glibc-rh1133810-2.patch [deleted file]
src/patches/glibc/glibc-rh1138769.patch [deleted file]
src/patches/glibc/glibc-rh1144019.patch [deleted file]
src/patches/glibc/glibc-rh1144132.patch [deleted file]
src/patches/glibc/glibc-rh1154563.patch [deleted file]
src/patches/glibc/glibc-rh1159167.patch [deleted file]
src/patches/glibc/glibc-rh1171296.patch [deleted file]
src/patches/glibc/glibc-rh1172044.patch [deleted file]
src/patches/glibc/glibc-rh1176907.patch [deleted file]
src/patches/glibc/glibc-rh1183534.patch [deleted file]
src/patches/glibc/glibc-rh1195453-avx512.patch [deleted file]
src/patches/glibc/glibc-rh1207236.patch [deleted file]
src/patches/glibc/glibc-rh1209376.patch [deleted file]
src/patches/glibc/glibc-rh1217186.patch [deleted file]
src/patches/glibc/glibc-rh1256812-2.patch [deleted file]
src/patches/glibc/glibc-rh1256812-3.patch [deleted file]
src/patches/glibc/glibc-rh1256812-4.patch [deleted file]
src/patches/glibc/glibc-rh1256812.patch [deleted file]
src/patches/glibc/glibc-rh1256890.patch [deleted file]
src/patches/glibc/glibc-rh1256891.patch [deleted file]
src/patches/glibc/glibc-rh1291270.patch [deleted file]
src/patches/glibc/glibc-rh1296031-0.patch [deleted file]
src/patches/glibc/glibc-rh1296031.patch [deleted file]
src/patches/glibc/glibc-rh1299319-0.patch [deleted file]
src/patches/glibc/glibc-rh1299319-1.patch [deleted file]
src/patches/glibc/glibc-rh552960.patch [deleted file]
src/patches/glibc/glibc-rh580498.patch [deleted file]
src/patches/glibc/glibc-rh582738.patch [deleted file]
src/patches/glibc/glibc-rh587360.patch [deleted file]
src/patches/glibc/glibc-rh593396.patch [deleted file]
src/patches/glibc/glibc-rh593686.patch [deleted file]
src/patches/glibc/glibc-rh601686.patch [deleted file]
src/patches/glibc/glibc-rh607010.patch [deleted file]
src/patches/glibc/glibc-rh607461.patch [deleted file]
src/patches/glibc/glibc-rh615090.patch [deleted file]
src/patches/glibc/glibc-rh615701.patch [deleted file]
src/patches/glibc/glibc-rh621959.patch [deleted file]
src/patches/glibc/glibc-rh623187.patch [deleted file]
src/patches/glibc/glibc-rh625893.patch [deleted file]
src/patches/glibc/glibc-rh629823-2.patch [deleted file]
src/patches/glibc/glibc-rh629823.patch [deleted file]
src/patches/glibc/glibc-rh630801.patch [deleted file]
src/patches/glibc/glibc-rh631011.patch [deleted file]
src/patches/glibc/glibc-rh641128.patch [deleted file]
src/patches/glibc/glibc-rh642584.patch [deleted file]
src/patches/glibc/glibc-rh643822.patch [deleted file]
src/patches/glibc/glibc-rh645672.patch [deleted file]
src/patches/glibc/glibc-rh646954.patch [deleted file]
src/patches/glibc/glibc-rh647448.patch [deleted file]
src/patches/glibc/glibc-rh652661.patch [deleted file]
src/patches/glibc/glibc-rh656014.patch [deleted file]
src/patches/glibc/glibc-rh656530.patch [deleted file]
src/patches/glibc/glibc-rh657572.patch [deleted file]
src/patches/glibc/glibc-rh661982.patch [deleted file]
src/patches/glibc/glibc-rh663641-2.patch [deleted file]
src/patches/glibc/glibc-rh663641-3.patch [deleted file]
src/patches/glibc/glibc-rh663641.patch [deleted file]
src/patches/glibc/glibc-rh667974.patch [deleted file]
src/patches/glibc/glibc-rh676076.patch [deleted file]
src/patches/glibc/glibc-rh676591.patch [deleted file]
src/patches/glibc/glibc-rh681054.patch [deleted file]
src/patches/glibc/glibc-rh688720.patch [deleted file]
src/patches/glibc/glibc-rh688980.patch [deleted file]
src/patches/glibc/glibc-rh689471.patch [deleted file]
src/patches/glibc/glibc-rh692177.patch [deleted file]
src/patches/glibc/glibc-rh692838.patch [deleted file]
src/patches/glibc/glibc-rh694386.patch [deleted file]
src/patches/glibc/glibc-rh695595.patch [deleted file]
src/patches/glibc/glibc-rh695963.patch [deleted file]
src/patches/glibc/glibc-rh696472.patch [deleted file]
src/patches/glibc/glibc-rh697421.patch [deleted file]
src/patches/glibc/glibc-rh699724.patch [deleted file]
src/patches/glibc/glibc-rh700507.patch [deleted file]
src/patches/glibc/glibc-rh703480.patch [deleted file]
src/patches/glibc/glibc-rh703481.patch [deleted file]
src/patches/glibc/glibc-rh705465.patch [deleted file]
src/patches/glibc/glibc-rh711927.patch [deleted file]
src/patches/glibc/glibc-rh711987.patch [deleted file]
src/patches/glibc/glibc-rh712248.patch [deleted file]
src/patches/glibc/glibc-rh713134.patch [deleted file]
src/patches/glibc/glibc-rh714823.patch [deleted file]
src/patches/glibc/glibc-rh718057.patch [deleted file]
src/patches/glibc/glibc-rh726517.patch [deleted file]
src/patches/glibc/glibc-rh730379.patch [deleted file]
src/patches/glibc/glibc-rh731042.patch [deleted file]
src/patches/glibc/glibc-rh736346.patch [deleted file]
src/patches/glibc/glibc-rh737778.patch [deleted file]
src/patches/glibc/glibc-rh738665.patch [deleted file]
src/patches/glibc/glibc-rh738763.patch [deleted file]
src/patches/glibc/glibc-rh739184.patch [deleted file]
src/patches/glibc/glibc-rh739971.patch [deleted file]
src/patches/glibc/glibc-rh740506-2.patch [deleted file]
src/patches/glibc/glibc-rh740506.patch [deleted file]
src/patches/glibc/glibc-rh749188.patch [deleted file]
src/patches/glibc/glibc-rh750531.patch [deleted file]
src/patches/glibc/glibc-rh751750.patch [deleted file]
src/patches/glibc/glibc-rh752122.patch [deleted file]
src/patches/glibc/glibc-rh757888.patch [deleted file]
src/patches/glibc/glibc-rh766513.patch [deleted file]
src/patches/glibc/glibc-rh767146.patch [deleted file]
src/patches/glibc/glibc-rh767693-2.patch [deleted file]
src/patches/glibc/glibc-rh767693.patch [deleted file]
src/patches/glibc/glibc-rh767746.patch [deleted file]
src/patches/glibc/glibc-rh771342.patch [deleted file]
src/patches/glibc/glibc-rh782585.patch [deleted file]
src/patches/glibc/glibc-rh784402.patch [deleted file]
src/patches/glibc/glibc-rh785984.patch [deleted file]
src/patches/glibc/glibc-rh788959-2.patch [deleted file]
src/patches/glibc/glibc-rh788959.patch [deleted file]
src/patches/glibc/glibc-rh789189.patch [deleted file]
src/patches/glibc/glibc-rh789209.patch [deleted file]
src/patches/glibc/glibc-rh789238-2.patch [deleted file]
src/patches/glibc/glibc-rh789238.patch [deleted file]
src/patches/glibc/glibc-rh794817-2.patch [deleted file]
src/patches/glibc/glibc-rh794817.patch [deleted file]
src/patches/glibc/glibc-rh795498.patch [deleted file]
src/patches/glibc/glibc-rh797094-1.patch [deleted file]
src/patches/glibc/glibc-rh797094-2.patch [deleted file]
src/patches/glibc/glibc-rh804686.patch [deleted file]
src/patches/glibc/glibc-rh804689.patch [deleted file]
src/patches/glibc/glibc-rh806404.patch [deleted file]
src/patches/glibc/glibc-rh808337.patch [deleted file]
src/patches/glibc/glibc-rh808545.patch [deleted file]
src/patches/glibc/glibc-rh809602.patch [deleted file]
src/patches/glibc/glibc-rh809726.patch [deleted file]
src/patches/glibc/glibc-rh823909.patch [deleted file]
src/patches/glibc/glibc-rh826149.patch [deleted file]
src/patches/glibc/glibc-rh827362.patch [deleted file]
src/patches/glibc/glibc-rh830127.patch [deleted file]
src/patches/glibc/glibc-rh832516.patch [deleted file]
src/patches/glibc/glibc-rh832694.patch [deleted file]
src/patches/glibc/glibc-rh833717.patch [deleted file]
src/patches/glibc/glibc-rh834386-2.patch [deleted file]
src/patches/glibc/glibc-rh834386.patch [deleted file]
src/patches/glibc/glibc-rh837695.patch [deleted file]
src/patches/glibc/glibc-rh837918.patch [deleted file]
src/patches/glibc/glibc-rh841787.patch [deleted file]
src/patches/glibc/glibc-rh843673.patch [deleted file]
src/patches/glibc/glibc-rh845218.patch [deleted file]
src/patches/glibc/glibc-rh846342.patch [deleted file]
src/patches/glibc/glibc-rh847932.patch [deleted file]
src/patches/glibc/glibc-rh848082.patch [deleted file]
src/patches/glibc/glibc-rh848748.patch [deleted file]
src/patches/glibc/glibc-rh849203.patch [deleted file]
src/patches/glibc/glibc-rh849651.patch [deleted file]
src/patches/glibc/glibc-rh851470.patch [deleted file]
src/patches/glibc/glibc-rh852445.patch [deleted file]
src/patches/glibc/glibc-rh859965.patch [deleted file]
src/patches/glibc/glibc-rh861167.patch [deleted file]
src/patches/glibc/glibc-rh862094.patch [deleted file]
src/patches/glibc/glibc-rh863384.patch [deleted file]
src/patches/glibc/glibc-rh863453.patch [deleted file]
src/patches/glibc/glibc-rh864322.patch [deleted file]
src/patches/glibc/glibc-rh867679.patch [deleted file]
src/patches/glibc/glibc-rh868808.patch [deleted file]
src/patches/glibc/glibc-rh886968.patch [deleted file]
src/patches/glibc/glibc-rh905575.patch [deleted file]
src/patches/glibc/glibc-rh905874.patch [deleted file]
src/patches/glibc/glibc-rh905941.patch [deleted file]
src/patches/glibc/glibc-rh916986.patch [deleted file]
src/patches/glibc/glibc-rh919562.patch [deleted file]
src/patches/glibc/glibc-rh928318.patch [deleted file]
src/patches/glibc/glibc-rh929302.patch [deleted file]
src/patches/glibc/glibc-rh929388.patch [deleted file]
src/patches/glibc/glibc-rh947882.patch [deleted file]
src/patches/glibc/glibc-rh952422.patch [deleted file]
src/patches/glibc/glibc-rh966775.patch [deleted file]
src/patches/glibc/glibc-rh966778.patch [deleted file]
src/patches/glibc/glibc-rh970090.patch [deleted file]
src/patches/glibc/glibc-rh970776.patch [deleted file]
src/patches/glibc/glibc-rh978098.patch [deleted file]
src/patches/glibc/glibc-rh981942.patch [deleted file]
src/patches/glibc/glibc-rh988931.patch [deleted file]
src/patches/glibc/glibc-rh995972.patch [deleted file]
src/patches/grub-2.00_ignore_missing_symtab.patch [new file with mode: 0644]
src/patches/grub2-remove-gets.patch [new file with mode: 0644]
src/patches/gzip-1.3.5-security_fixes-1.patch [deleted file]
src/patches/imspector-20101008-ssl.patch [deleted file]
src/patches/linux/linux-3.14.79-amba-fix.patch [new file with mode: 0644]
src/patches/linux/linux-3.14.79-rpi-suspend-not-inline.patch [new file with mode: 0644]
src/patches/mpfr-3.1.3-upstream_fixes-1.patch [deleted file]
src/patches/openssl-1.0.2a-rpmbuild.patch
src/patches/p7zip_change_install_folder.patch [new file with mode: 0644]
src/patches/pam-0.99.10.0-rlimit-build-fix.patch [new file with mode: 0644]
src/patches/perl-Fix-Errno.pm-generation-for-gcc-5.0.patch [new file with mode: 0644]
src/patches/python-2.7.13-getentropy.patch [new file with mode: 0644]
src/patches/samba/CVE-2015-5252-v3-6-bso11395.patch [new file with mode: 0644]
src/patches/samba/CVE-2015-5296-v3-6-bso11536.patch [new file with mode: 0644]
src/patches/samba/CVE-2015-5299-v3-6-bso11529.patch [new file with mode: 0644]
src/patches/samba/CVE-2015-5330-v3-6-bso11599.patch [new file with mode: 0644]
src/patches/samba/CVE-2016-2125-v3.6.patch [new file with mode: 0644]
src/patches/samba/CVE-2016-2126-v3.6.patch [new file with mode: 0644]
src/patches/samba/CVE-2017-7494-v3-6.patch [new file with mode: 0644]
src/patches/samba/doc-update.patch [new file with mode: 0644]
src/patches/samba/samba-3.2.0pre1-grouppwd.patch [new file with mode: 0644]
src/patches/samba/samba-3.2.0pre1-pipedir.patch [new file with mode: 0644]
src/patches/samba/samba-3.2.5-inotify.patch [new file with mode: 0644]
src/patches/samba/samba-3.5.11-docs.patch [new file with mode: 0644]
src/patches/samba/samba-3.5.11-idmapdebug.patch [new file with mode: 0644]
src/patches/samba/samba-3.5.11-nss_info_doc.patch [new file with mode: 0644]
src/patches/samba/samba-3.5.11-wbinfo_manpage.patch [new file with mode: 0644]
src/patches/samba/samba-3.5.12-dns.patch [new file with mode: 0644]
src/patches/samba/samba-3.5.12-pam_radio_type.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.18-fix_net_ads_join_segfault.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.19-valid_users_doc.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.23-fix_libads_krb5_ipv6.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.23-gecos.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.23-glusterfs.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.23-libsmbclient.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.26-smb2_case_sensitive.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-2110-ntlmssp-session-setup-nas.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-add_spoolss_os_version.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-add_timeout_option_to_smbclient.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-asserted_identity_sid-S-1-18-1.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-bug-1117059.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-bug-1192211.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-doc_netbios_name_length_limit.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_dirsort_ea-support.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_dropbox_share.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_force_group.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_force_user_winbind_default_domain.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_force_user_with_security_ads.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_gecos_interactive.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_group_expansion_in_service_path.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_group_expansion_with_nss_templates.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_keytab_null_termination.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_lookups_with_one_way_trusts.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_mangling_hash_segfault.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_map_to_guest_bad_uid.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_member_auth_after_changed_secret.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_memleak_in_printer_list.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_memleak_winbind_cached_creds.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_nbt_query_with_many_components.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_pam_winbind_parsing_segfault.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_printcap_cpu_utilization.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_rpc_query_user_list.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_rpcclient_timeout_command.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_security_server_share_access.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_setup_domain_child_logic.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_smb_conf_doc.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_smbclient_ntlmv2_auth.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_stale_printer_entries_on_rename.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_symlink_verification.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_usergroup_cache_lookup.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-fix_winbind_cache_memory_leak.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-idmap_ad_memleak.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-libsmb_fix_dfs_connections.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-net_ads_join_no_dns_updates.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-nt_printer_publish_guid.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.99-nt_printer_unpublish_fix.patch [new file with mode: 0644]
src/patches/samba/samba-3.6.x-winbind_tevent_poll.patch [new file with mode: 0644]
src/patches/squid-3.5.26-fix-max-file-descriptors.patch [moved from src/patches/squid-3.5.24-fix-max-file-descriptors.patch with 100% similarity]
src/patches/strongswan-disable-ipv6.patch [new file with mode: 0644]
src/patches/u-boot-c99-inline-fix.patch [new file with mode: 0644]
src/patches/u-boot-support-gcc-6.patch [new file with mode: 0644]
src/patches/unbound-allow-setting-validator-permissive-mode-at-runtime.patch [new file with mode: 0644]
src/scripts/archive.files
src/setup/netstuff.c
src/stripper
tools/checknewlog.pl
tools/make-functions

diff --git a/config/avahi/avahi b/config/avahi/avahi
deleted file mode 100755 (executable)
index 7413f56..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-# Begin $rc_base/init.d/avahi
-
-# Based on sysklogd script from LFS-3.1 and earlier.
-# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org
-
-#$LastChangedBy: bdubbs $
-#$Date: 2005-08-01 14:29:19 -0500 (Mon, 01 Aug 2005) $
-
-. /etc/sysconfig/rc
-. $rc_functions
-
-case "$1" in
-       start)
-               boot_mesg "Starting avahi..."
-               loadproc /usr/sbin/avahi-daemon -f /etc/avahi/avahi-daemon.conf -D
-               ;;
-
-       stop)
-               boot_mesg "Stopping avahi..."
-               /usr/sbin/avahi-daemon -k
-               ;;
-
-       reload)
-               boot_mesg "Reloading avahi..."
-               reloadproc /usr/sbin/avahi-daemon -f /etc/avahi/avahi-daemon.conf -D
-               ;;
-
-       restart)
-               $0 stop
-               sleep 1
-               $0 start
-               ;;
-
-       status)
-               statusproc /usr/sbin/avahi-daemon -c
-               ;;
-
-       *)
-               echo "Usage: $0 {start|stop|reload|restart|status}"
-               exit 1
-               ;;
-esac
-
-# End $rc_base/init.d/avahi
diff --git a/config/avahi/smb.service b/config/avahi/smb.service
deleted file mode 100644 (file)
index d895354..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" standalone='no'?>
-<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
-<service-group>
-   <name replace-wildcards="yes">Samba Shares on %h</name>
-   <service>
-       <type>_smb._tcp</type>
-       <port>139</port>
-   </service>
-</service-group>
diff --git a/config/backup/includes/avahi b/config/backup/includes/avahi
deleted file mode 100644 (file)
index 7f32af6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/etc/avahi/avahi-daemon.conf
diff --git a/config/backup/includes/imspector b/config/backup/includes/imspector
deleted file mode 100644 (file)
index cc7ef16..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/etc/imspector/acl.txt
-/etc/imspector/badwords.txt
-/etc/imspector/imspector.conf
\ No newline at end of file
index 081e4e3df8b921daeeac7476439b36bfbff44029..f448c34befc7cf8af483f674f02665c0203d6a54 100644 (file)
@@ -465,6 +465,7 @@ sub checksubnets
        my $ccdname=$_[0];
        my $ccdnet=$_[1];
        my $ownnet=$_[2];
+       my $checktype=$_[3];
        my $errormessage;
        my ($ip,$cidr)=split(/\//,$ccdnet);
        $cidr=&iporsubtocidr($cidr);
@@ -542,10 +543,15 @@ sub checksubnets
        }
        
        #call check_net_internal
-       &General::check_net_internal($ccdnet);
+       if ($checktype eq "exact")
+       {
+               &General::check_net_internal_exact($ccdnet);
+       }else{
+               &General::check_net_internal_range($ccdnet);
+       }
 }
 
-sub check_net_internal{
+sub check_net_internal_range{
        my $network=shift;
        my ($ip,$cidr)=split(/\//,$network);
        my %ownnet=();
@@ -553,10 +559,24 @@ sub check_net_internal{
        $cidr=&iporsubtocidr($cidr);
        #check if we use one of ipfire's networks (green,orange,blue)
        &readhash("${General::swroot}/ethernet/settings", \%ownnet);
-       if (($ownnet{'GREEN_NETADDRESS'}        ne '' && $ownnet{'GREEN_NETADDRESS'}    ne '0.0.0.0') && &Network::network_equal("$ownnet{'GREEN_NETADDRESS'}/$ownnet{'GREEN_NETMASK'}",$network)){ $errormessage=$Lang::tr{'ccd err green'};return $errormessage;}
-       if (($ownnet{'ORANGE_NETADDRESS'}       ne '' && $ownnet{'ORANGE_NETADDRESS'}   ne '0.0.0.0') && &Network::network_equal("$ownnet{'ORANGE_NETADDRESS'}/$ownnet{'ORANGE_NETMASK'}",$network)){ $errormessage=$Lang::tr{'ccd err orange'};return $errormessage;}
-       if (($ownnet{'BLUE_NETADDRESS'}         ne '' && $ownnet{'BLUE_NETADDRESS'}     ne '0.0.0.0') && &Network::network_equal("$ownnet{'BLUE_NETADDRESS'}/$ownnet{'BLUE_NETMASK'}",$network)){ $errormessage=$Lang::tr{'ccd err blue'};return $errormessage;}
-       if (($ownnet{'RED_NETADDRESS'}          ne '' && $ownnet{'RED_NETADDRESS'}      ne '0.0.0.0') && &Network::network_equal("$ownnet{'RED_NETADDRESS'}/$ownnet{'RED_NETMASK'}",$network)){ $errormessage=$Lang::tr{'ccd err red'};return $errormessage;}
+       if (($ownnet{'GREEN_NETADDRESS'}        ne '' && $ownnet{'GREEN_NETADDRESS'}    ne '0.0.0.0') && &IpInSubnet($ip,$ownnet{'GREEN_NETADDRESS'},&iporsubtodec($ownnet{'GREEN_NETMASK'}))){ $errormessage=$Lang::tr{'ccd err green'};return $errormessage;}
+       if (($ownnet{'ORANGE_NETADDRESS'}       ne '' && $ownnet{'ORANGE_NETADDRESS'}   ne '0.0.0.0') && &IpInSubnet($ip,$ownnet{'ORANGE_NETADDRESS'},&iporsubtodec($ownnet{'ORANGE_NETMASK'}))){ $errormessage=$Lang::tr{'ccd err orange'};return $errormessage;}
+       if (($ownnet{'BLUE_NETADDRESS'}         ne '' && $ownnet{'BLUE_NETADDRESS'}     ne '0.0.0.0') && &IpInSubnet($ip,$ownnet{'BLUE_NETADDRESS'},&iporsubtodec($ownnet{'BLUE_NETMASK'}))){ $errormessage=$Lang::tr{'ccd err blue'};return $errormessage;}
+       if (($ownnet{'RED_NETADDRESS'}          ne '' && $ownnet{'RED_NETADDRESS'}              ne '0.0.0.0') && &IpInSubnet($ip,$ownnet{'RED_NETADDRESS'},&iporsubtodec($ownnet{'RED_NETMASK'}))){ $errormessage=$Lang::tr{'ccd err red'};return $errormessage;}
+}
+
+sub check_net_internal_exact{
+       my $network=shift;
+       my ($ip,$cidr)=split(/\//,$network);
+       my %ownnet=();
+       my $errormessage;
+       $cidr=&iporsubtocidr($cidr);
+       #check if we use one of ipfire's networks (green,orange,blue)
+       &readhash("${General::swroot}/ethernet/settings", \%ownnet);
+       if (($ownnet{'GREEN_NETADDRESS'}        ne '' && $ownnet{'GREEN_NETADDRESS'}    ne '0.0.0.0') && &Network::network_equal("$ownnet{'GREEN_NETADDRESS'}/$ownnet{'GREEN_NETMASK'}", $network)){ $errormessage=$Lang::tr{'ccd err green'};return $errormessage;}
+       if (($ownnet{'ORANGE_NETADDRESS'}       ne '' && $ownnet{'ORANGE_NETADDRESS'}   ne '0.0.0.0') && &Network::network_equal("$ownnet{'ORANGE_NETADDRESS'}/$ownnet{'ORANGE_NETMASK'}", $network)){ $errormessage=$Lang::tr{'ccd err orange'};return $errormessage;}
+       if (($ownnet{'BLUE_NETADDRESS'}         ne '' && $ownnet{'BLUE_NETADDRESS'}     ne '0.0.0.0') && &Network::network_equal("$ownnet{'BLUE_NETADDRESS'}/$ownnet{'BLUE_NETMASK'}", $network)){ $errormessage=$Lang::tr{'ccd err blue'};return $errormessage;}
+       if (($ownnet{'RED_NETADDRESS'}          ne '' && $ownnet{'RED_NETADDRESS'}              ne '0.0.0.0') && &Network::network_equal("$ownnet{'RED_NETADDRESS'}/$ownnet{'RED_NETMASK'}", $network)){ $errormessage=$Lang::tr{'ccd err red'};return $errormessage;}
 }
 
 sub validport
@@ -1128,4 +1148,16 @@ sub get_red_interface() {
        return $interface;
 }
 
+sub dnssec_status() {
+       my $path = "${General::swroot}/red/dnssec-status";
+
+       open(STATUS, $path) or return 0;
+       my $status = <STATUS>;
+       close(STATUS);
+
+       chomp($status);
+
+       return $status;
+}
+
 1;
index c3fb43eeb83246e3a31efffb5ecf5503d85210ce..1bed49fa376a595b8c5e8ce114f77f2c1dd4817b 100644 (file)
@@ -31,6 +31,30 @@ require "${General::swroot}/header.pl";
 
 my $ERROR;
 
+my @GRAPH_ARGS = (
+       # Output format
+       "--imgformat", "PNG",
+
+       # No border
+       "--border", "0",
+
+       # For a more 'organic' look
+       "--slope-mode",
+
+       # HxW define the size of the output image
+       "--full-size-mode",
+
+       # Watermark
+       "-W www.ipfire.org",
+
+       # Default size
+       "-w 910",
+       "-h 300",
+
+       # Use alternative grid
+       "--alt-y-grid",
+);
+
 # Read the global settings files to get the current theme and after this load
 # colors for this theme
 
@@ -77,11 +101,6 @@ foreach (@sensorsdir){
 # 3 if given is the height of the iframe default if nothing is given
 
 sub makegraphbox {
-       my $height = 285;
-       my $width = 700;
-
-       if ( $_[3] ne "" ){ $height = $_[3]; }
-
        print "<center>";
        print "<a href='".$_[0]."?".$_[1]."?hour' target='".$_[1]."box'><b>".$Lang::tr{'hour'}."</b></a>";
        print " - ";
@@ -93,7 +112,7 @@ sub makegraphbox {
        print " - ";
        print "<a href='".$_[0]."?".$_[1]."?year' target='".$_[1]."box'><b>".$Lang::tr{'year'}."</b></a>";
        print "<br></center>";
-       print "<iframe src='".$_[0]."?".$_[1]."?".$_[2]."' width='".$width."' height='".$height."' scrolling='no' frameborder='no' marginheight='0' name='".$_[1]."box'></iframe>";
+       print "<iframe class='graph' src='".$_[0]."?".$_[1]."?".$_[2]."' scrolling='no' frameborder='no' marginheight='0' name='".$_[1]."box'></iframe>";
 }
 
 # Generate the CPU Graph for the current period of time for values given by
@@ -103,16 +122,10 @@ sub updatecpugraph {
        my $cpucount = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/cpu-*/ 2>/dev/null | wc -l`;
        my $period    = $_[0];
        my @command = (
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-l 0",
                "-u 100",
                "-r",
@@ -237,16 +250,10 @@ sub updatecpugraph {
 sub updateloadgraph {
        my $period    = $_[0];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-l 0",
                "-r",
                "-t Load Average ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
@@ -275,16 +282,10 @@ sub updateloadgraph {
 sub updatememorygraph {
        my $period    = $_[0];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-l 0",
                "-u 100",
                "-r",
@@ -337,16 +338,10 @@ sub updatememorygraph {
 sub updateswapgraph {
        my $period    = $_[0];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-l 0",
                "-u 100",
                "-r",
@@ -395,16 +390,10 @@ sub updateprocessescpugraph {
        my $count="0";
 
        my @command = (
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-l 0",
                "-r",
                "-t ".$Lang::tr{'processes'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
@@ -448,16 +437,10 @@ sub updateprocessesmemorygraph {
        my $count="0";
 
        my @command = (
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-l 0",
                "-r",
                "-t ".$Lang::tr{'processes'}." ".$Lang::tr{'memory'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
@@ -498,16 +481,10 @@ sub updatediskgraph {
        my $disk    = $_[0];
        my $period    = $_[1];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$disk." ".$Lang::tr{'disk access per'}." ".$Lang::tr{$period."-graph"},
                "-v ".$Lang::tr{'bytes per second'},
@@ -548,16 +525,10 @@ sub updateifgraph {
        my $interface = $_[0];
        my $period    = $_[1];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
                "-v ".$Lang::tr{'bytes per second'},
@@ -591,16 +562,10 @@ sub updatevpngraph {
        my $interface = $_[0];
        my $period    = $_[1];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
                "-v ".$Lang::tr{'bytes per second'},
@@ -634,16 +599,10 @@ sub updatevpnn2ngraph {
        my $interface = $_[0];
        my $period    = $_[1];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$Lang::tr{'traffic on'}." ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
                "-v ".$Lang::tr{'bytes per second'},
@@ -704,16 +663,10 @@ sub updatevpnn2ngraph {
 sub updatefwhitsgraph {
        my $period    = $_[0];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$Lang::tr{'firewall hits per'}." ".$Lang::tr{$period."-graph"},
                "-v ".$Lang::tr{'bytes per second'},
@@ -766,16 +719,10 @@ sub updatepinggraph {
        my $period    = $_[1];
        my $host    = $_[0];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-l 0",
                "-r",
                "-t ".$Lang::tr{'linkq'}." ".$host." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
@@ -812,16 +759,10 @@ sub updatewirelessgraph {
        my $period    = $_[1];
        my $interface    = $_[0];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-t Wireless ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
                "-v dBm",
                "--color=SHADEA".$color{"color19"},
@@ -855,16 +796,10 @@ sub updatehddgraph {
        my $disk = $_[0];
        my $period = $_[1];
        RRDs::graph(
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$disk." ".$Lang::tr{'harddisk temperature'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
                "-v Celsius",
@@ -895,16 +830,10 @@ sub updatehwtempgraph {
        my $period = $_[0];
 
        my @command = (
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$Lang::tr{'mbmon temp'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
                "--color=SHADEA".$color{"color19"},
@@ -948,16 +877,10 @@ sub updatehwfangraph {
        my $period = $_[0];
 
        my @command = (
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$Lang::tr{'mbmon fan'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
                "--color=SHADEA".$color{"color19"},
@@ -1001,16 +924,10 @@ sub updatehwvoltgraph {
        my $period = $_[0];
 
        my @command = (
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$Lang::tr{'mbmon volt'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
                "--color=SHADEA".$color{"color19"},
@@ -1074,16 +991,10 @@ sub updateqosgraph {
        my $color="#000000";
 
        my @command = (
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$Lang::tr{'Utilization on'}." (".$qossettings{'DEV'}.") ".$Lang::tr{'graph per'}." ".$Lang::tr{$period."-graph"},
                "-v ".$Lang::tr{'bytes per second'},
@@ -1133,16 +1044,10 @@ sub updatecpufreqgraph {
        my $cpucount = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/cpu-*/ 2>/dev/null | wc -l`;
        my $period    = $_[0];
        my @command = (
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t ".$Lang::tr{'cpu frequency per'}." ".$Lang::tr{$period."-graph"},
                "-v MHz",
@@ -1178,16 +1083,10 @@ sub updatethermaltempgraph {
        my $thermalcount = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/thermal-thermal_zone* 2>/dev/null | wc -l`;
        my $period    = $_[0];
        my @command = (
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 125",
                "-r",
                "-t "."ACPI Thermal-Zone Temperature"." - ".$Lang::tr{$period."-graph"},
                "-v Grad Celsius",
@@ -1237,16 +1136,10 @@ sub getprocesses {
 sub updateentropygraph {
        my $period    = $_[0];
        my @command = (
+               @GRAPH_ARGS,
                "-",
                "--start",
                "-1".$period,
-               "-aPNG",
-               "-i",
-               "-z",
-               "-W www.ipfire.org",
-               "--alt-y-grid",
-               "-w 600",
-               "-h 225",
                "-r",
                "--lower-limit","0",
                "-t $Lang::tr{'entropy'}",
@@ -1259,6 +1152,7 @@ sub updateentropygraph {
                "GPRINT:entrmax:" . sprintf("%12s\\: %%5.0lf", $Lang::tr{'maximum'}),
                "GPRINT:entrmin:" . sprintf("%12s\\: %%5.0lf", $Lang::tr{'minimum'}),
                "GPRINT:entravg:" . sprintf("%12s\\: %%5.0lf", $Lang::tr{'average'}) . "\\n",
+               "--color=BACK".$color{"color21"},
        );
 
        RRDs::graph (@command);
index 5f53704cd18e552ca4f12670f6bce91449b62b54..66f1ed554ab12041c31cc0b3163f9e1c8a75710f 100644 (file)
@@ -315,6 +315,65 @@ sub setup_upstream_proxy() {
        }
 }
 
+my %wireless_status = ();
+
+sub _get_wireless_status($) {
+       my $intf = shift;
+
+       if (!$wireless_status{$intf}) {
+               $wireless_status{$intf} = `iwconfig $intf`;
+       }
+
+       return $wireless_status{$intf};
+}
+
+sub wifi_get_essid($) {
+       my $status = &_get_wireless_status(shift);
+
+       my ($essid) = $status =~ /ESSID:\"(.*)\"/;
+
+       return $essid;
+}
+
+sub wifi_get_frequency($) {
+       my $status = &_get_wireless_status(shift);
+
+       my ($frequency) = $status =~ /Frequency:(\d+\.\d+ GHz)/;
+
+       return $frequency;
+}
+
+sub wifi_get_access_point($) {
+       my $status = &_get_wireless_status(shift);
+
+       my ($access_point) = $status =~ /Access Point: ([0-9A-F:]+)/;
+
+       return $access_point;
+}
+
+sub wifi_get_bit_rate($) {
+       my $status = &_get_wireless_status(shift);
+
+       my ($bit_rate) = $status =~ /Bit Rate=(\d+ [GM]b\/s)/;
+
+       return $bit_rate;
+}
+
+sub wifi_get_link_quality($) {
+       my $status = &_get_wireless_status(shift);
+
+       my ($cur, $max) = $status =~ /Link Quality=(\d+)\/(\d+)/;
+
+       return $cur * 100 / $max;
+}
+
+sub wifi_get_signal_level($) {
+       my $status = &_get_wireless_status(shift);
+
+       my ($signal_level) = $status =~ /Signal level=(\-\d+ dBm)/;
+
+       return $signal_level;
+}
 1;
 
 # Remove the next line to enable the testsuite
index e2e3d81b032ab1877e6c76e0136b8be165b23775..ad562404fb5f92857f8b4186cff40da57d28811c 100644 (file)
@@ -34,3 +34,8 @@ net.ipv6.conf.default.disable_ipv6 = 1
 
 # Enable netfilter accounting
 net.netfilter.nf_conntrack_acct=1
+
+# Disable netfilter on bridges.
+net.bridge.bridge-nf-call-ip6tables = 0
+net.bridge.bridge-nf-call-iptables = 0
+net.bridge.bridge-nf-call-arptables = 0
index 9fa8e1a466002dcd43d7734bf7d560c30339b939..96682b8943e3c24ed4fd2ef9afee81eca0fd3e26 100644 (file)
@@ -23,23 +23,43 @@ VPN_CONFIG="/var/ipfire/vpn/config"
 
 block_subnet() {
        local subnet="${1}"
+       local action="${2}"
 
        # Don't block a wildcard subnet
        if [ "${subnet}" = "0.0.0.0/0" ] || [ "${subnet}" = "0.0.0.0/0.0.0.0" ]; then
                return 0
        fi
 
-       iptables -A IPSECBLOCK -d "${subnet}" -j REJECT --reject-with icmp-net-unreachable
+       case "${action}" in
+               reject)
+                       iptables -A IPSECBLOCK -d "${subnet}" -j REJECT --reject-with icmp-net-unreachable
+                       ;;
+               drop)
+                       iptables -A IPSECBLOCK -d "${subnet}" -j DROP
+                       ;;
+               *)
+                       return 1
+                       ;;
+       esac
+
+       return 0
 }
 
 block_ipsec() {
        # Flush all exists rules
        iptables -F IPSECBLOCK
 
-       local id status name lefthost type ctype unknown1 unknown2 unknown3
-       local leftsubnets unknown4 righthost rightsubnets rest
-       while IFS="," read -r id status name lefthost type ctype unkown1 unknown2 unknown3 \
-                       leftsubnets unknown4 righthost rightsubnets rest; do
+       local action
+
+       local vars="id status name lefthost type ctype x1 x2 x3 leftsubnets"
+       vars="${vars} x4 righthost rightsubnets x5 x6 x7 x8 x9 x10 x11 x12"
+       vars="${vars} x13 x14 x15 x16 x17 x18 x19 x20 x21 proto x22 x23 x24"
+       vars="${vars} route rest"
+
+       # Register local variables
+       local ${vars}
+
+       while IFS="," read -r ${vars}; do
                # Check if the connection is enabled
                [ "${status}" = "on" ] || continue
 
@@ -49,9 +69,18 @@ block_ipsec() {
                # Split multiple subnets
                rightsubnets="${rightsubnets//\|/ }"
 
+               case "${route}" in
+                       route)
+                               action="drop"
+                               ;;
+                       *)
+                               action="reject"
+                               ;;
+               esac
+
                local rightsubnet
                for rightsubnet in ${rightsubnets}; do
-                       block_subnet "${rightsubnet}"
+                       block_subnet "${rightsubnet}" "${action}"
                done
        done < "${VPN_CONFIG}"
 }
index 183ce80fa046eea79331630323544e61a56e9d9c..90410186d9f2495f5888ba1c19b29cb7930fdaa0 100644 (file)
@@ -19,9 +19,8 @@ KeepAliveTimeout 15
 
 MinSpareServers 1
 MaxSpareServers 10
-StartServers 1
-MaxClients 10
-MaxRequestsPerChild 100
+StartServers 2
+MaxClients 256
 
 #
 # The following directives modify normal HTTP response behavior to
diff --git a/config/imspector/imspector.conf b/config/imspector/imspector.conf
deleted file mode 100644 (file)
index a37241d..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# The listening port for redirected connections
-port=16667
-
-# For dropping privs - you probably want to do this.
-user=nobody
-group=nobody
-
-# Prefix and postfix to all responses using all responder plugins
-response_prefix=Message from IMSpector: -=
-response_postfix==-
-
-# Will load enabled plugins in plugin_dir
-icq_protocol=on
-irc_protocol=on
-msn_protocol=on
-yahoo_protocol=on
-gg_protocol=on
-jabber_protocol=on
-
-# Location where the file logging plugin will start from.
-file_logging_dir=/var/log/imspector/
-log_typing_events=on
-
-plugin_dir=/usr/lib/imspector
diff --git a/config/menu/EX-imspector.menu b/config/menu/EX-imspector.menu
deleted file mode 100644 (file)
index c88866f..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-    $subipfire->{'30.imspector'} = {'caption' => 'Imspector',
-                                 'uri' => '/cgi-bin/imspector.cgi',
-                                 'title' => 'Imspector',
-                                 'enabled' => 1,
-                                 };
index 4a9cbc086acec3d9b082281b9a1a0ce2d3e05cda..582758192f48c3554e765cea7ce3eb08f418829e 100644 (file)
@@ -2,6 +2,9 @@
 # LAN network interfaces IPs / networks
 # there can be multiple listening ips for SSDP traffic.
 # should be under the form nnn.nnn.nnn.nnn/nn
+listening_ip=green0
+#listening_ip=green1
+
 # HTTP is available on all interfaces
 # port for HTTP (descriptions and SOAP) traffic. set 0 for autoselect.
 port=0
index b86e375d87c38c3e1786f72d0262d169d13df467..aadd959ec068fd0cd548323b0691d8e141013eeb 100644 (file)
@@ -411,7 +411,7 @@ print <<END
                insmod ipt_IMQ
                sleep 2
        fi
-       modprobe imq numdevs=1
+       modprobe imq numdevs=1 numqueues=\$(grep -c "^processor" /proc/cpuinfo || echo 1)
        ip link set $qossettings{'IMQ_DEV'} up
 
        ### ADD HTB QDISC FOR $qossettings{'IMQ_DEV'}
index 6fcd5ba8c538da729c4b2c05b1be17323ed56f17..8ac4c75047523879367665acacf896e000337cd9 100644 (file)
@@ -19,6 +19,7 @@
 #usr/include/bfdlink.h
 #usr/include/dis-asm.h
 #usr/include/libiberty.h
+#usr/include/plugin-api.h
 #usr/include/symcat.h
 #usr/lib/ldscripts
 #usr/lib/ldscripts/armelf_linux_eabi.x
 #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.24.so
+usr/lib/libbfd-2.28.so
 #usr/lib/libbfd.a
 #usr/lib/libbfd.la
 #usr/lib/libbfd.so
-#usr/lib/libiberty.a
-usr/lib/libopcodes-2.24.so
+usr/lib/libopcodes-2.28.so
 #usr/lib/libopcodes.a
 #usr/lib/libopcodes.la
 #usr/lib/libopcodes.so
 #usr/share/info/as.info
 #usr/share/info/bfd.info
 #usr/share/info/binutils.info
-#usr/share/info/configure.info
-#usr/share/info/dir
 #usr/share/info/gprof.info
 #usr/share/info/ld.info
-#usr/share/info/standards.info
+#usr/share/locale/bg/LC_MESSAGES/binutils.mo
+#usr/share/locale/bg/LC_MESSAGES/gprof.mo
+#usr/share/locale/bg/LC_MESSAGES/ld.mo
+#usr/share/locale/ca/LC_MESSAGES/binutils.mo
+#usr/share/locale/da/LC_MESSAGES/bfd.mo
+#usr/share/locale/da/LC_MESSAGES/binutils.mo
+#usr/share/locale/da/LC_MESSAGES/gprof.mo
+#usr/share/locale/da/LC_MESSAGES/ld.mo
+#usr/share/locale/da/LC_MESSAGES/opcodes.mo
+#usr/share/locale/de/LC_MESSAGES/gprof.mo
+#usr/share/locale/de/LC_MESSAGES/opcodes.mo
+#usr/share/locale/eo/LC_MESSAGES/gprof.mo
+#usr/share/locale/es/LC_MESSAGES/bfd.mo
+#usr/share/locale/es/LC_MESSAGES/binutils.mo
+#usr/share/locale/es/LC_MESSAGES/gas.mo
+#usr/share/locale/es/LC_MESSAGES/gprof.mo
+#usr/share/locale/es/LC_MESSAGES/ld.mo
+#usr/share/locale/es/LC_MESSAGES/opcodes.mo
+#usr/share/locale/fi/LC_MESSAGES/bfd.mo
+#usr/share/locale/fi/LC_MESSAGES/binutils.mo
+#usr/share/locale/fi/LC_MESSAGES/gas.mo
+#usr/share/locale/fi/LC_MESSAGES/gprof.mo
+#usr/share/locale/fi/LC_MESSAGES/ld.mo
+#usr/share/locale/fi/LC_MESSAGES/opcodes.mo
+#usr/share/locale/fr/LC_MESSAGES/bfd.mo
+#usr/share/locale/fr/LC_MESSAGES/binutils.mo
+#usr/share/locale/fr/LC_MESSAGES/gas.mo
+#usr/share/locale/fr/LC_MESSAGES/gprof.mo
+#usr/share/locale/fr/LC_MESSAGES/ld.mo
+#usr/share/locale/fr/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ga
+#usr/share/locale/ga/LC_MESSAGES
+#usr/share/locale/ga/LC_MESSAGES/gprof.mo
+#usr/share/locale/ga/LC_MESSAGES/ld.mo
+#usr/share/locale/ga/LC_MESSAGES/opcodes.mo
+#usr/share/locale/hr/LC_MESSAGES/binutils.mo
+#usr/share/locale/hu/LC_MESSAGES/gprof.mo
+#usr/share/locale/id/LC_MESSAGES/bfd.mo
+#usr/share/locale/id/LC_MESSAGES/binutils.mo
+#usr/share/locale/id/LC_MESSAGES/gas.mo
+#usr/share/locale/id/LC_MESSAGES/gprof.mo
+#usr/share/locale/id/LC_MESSAGES/ld.mo
+#usr/share/locale/id/LC_MESSAGES/opcodes.mo
+#usr/share/locale/it/LC_MESSAGES/binutils.mo
+#usr/share/locale/it/LC_MESSAGES/gprof.mo
+#usr/share/locale/it/LC_MESSAGES/ld.mo
+#usr/share/locale/it/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ja/LC_MESSAGES/bfd.mo
+#usr/share/locale/ja/LC_MESSAGES/binutils.mo
+#usr/share/locale/ja/LC_MESSAGES/gas.mo
+#usr/share/locale/ja/LC_MESSAGES/gprof.mo
+#usr/share/locale/ja/LC_MESSAGES/ld.mo
+#usr/share/locale/ms
+#usr/share/locale/ms/LC_MESSAGES
+#usr/share/locale/ms/LC_MESSAGES/gprof.mo
+#usr/share/locale/nl/LC_MESSAGES/gprof.mo
+#usr/share/locale/nl/LC_MESSAGES/opcodes.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/gprof.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ro
+#usr/share/locale/ro/LC_MESSAGES
+#usr/share/locale/ro/LC_MESSAGES/bfd.mo
+#usr/share/locale/ro/LC_MESSAGES/binutils.mo
+#usr/share/locale/ro/LC_MESSAGES/gprof.mo
+#usr/share/locale/ro/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ru/LC_MESSAGES/bfd.mo
+#usr/share/locale/ru/LC_MESSAGES/binutils.mo
+#usr/share/locale/ru/LC_MESSAGES/gas.mo
+#usr/share/locale/ru/LC_MESSAGES/gprof.mo
+#usr/share/locale/rw/LC_MESSAGES/bfd.mo
+#usr/share/locale/rw/LC_MESSAGES/binutils.mo
+#usr/share/locale/rw/LC_MESSAGES/gas.mo
+#usr/share/locale/rw/LC_MESSAGES/gprof.mo
+#usr/share/locale/sk/LC_MESSAGES/binutils.mo
+#usr/share/locale/sr
+#usr/share/locale/sr/LC_MESSAGES
+#usr/share/locale/sr/LC_MESSAGES/bfd.mo
+#usr/share/locale/sr/LC_MESSAGES/binutils.mo
+#usr/share/locale/sr/LC_MESSAGES/gprof.mo
+#usr/share/locale/sv/LC_MESSAGES/bfd.mo
+#usr/share/locale/sv/LC_MESSAGES/binutils.mo
+#usr/share/locale/sv/LC_MESSAGES/gprof.mo
+#usr/share/locale/sv/LC_MESSAGES/ld.mo
+#usr/share/locale/sv/LC_MESSAGES/opcodes.mo
+#usr/share/locale/tr/LC_MESSAGES/bfd.mo
+#usr/share/locale/tr/LC_MESSAGES/binutils.mo
+#usr/share/locale/tr/LC_MESSAGES/gas.mo
+#usr/share/locale/tr/LC_MESSAGES/gprof.mo
+#usr/share/locale/tr/LC_MESSAGES/ld.mo
+#usr/share/locale/tr/LC_MESSAGES/opcodes.mo
+#usr/share/locale/uk/LC_MESSAGES/bfd.mo
+#usr/share/locale/uk/LC_MESSAGES/binutils.mo
+#usr/share/locale/uk/LC_MESSAGES/gas.mo
+#usr/share/locale/uk/LC_MESSAGES/gprof.mo
+#usr/share/locale/uk/LC_MESSAGES/ld.mo
+#usr/share/locale/uk/LC_MESSAGES/opcodes.mo
+#usr/share/locale/vi/LC_MESSAGES/bfd.mo
+#usr/share/locale/vi/LC_MESSAGES/binutils.mo
+#usr/share/locale/vi/LC_MESSAGES/gprof.mo
+#usr/share/locale/vi/LC_MESSAGES/ld.mo
+#usr/share/locale/vi/LC_MESSAGES/opcodes.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/bfd.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/binutils.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/gas.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/ld.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/opcodes.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/binutils.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/ld.mo
 #usr/share/man/man1/addr2line.1
 #usr/share/man/man1/ar.1
 #usr/share/man/man1/as.1
index 121ac1759097158ad26c3d3558d764bd863e1ed7..cc5c3f74b64ab003837d696a29301faabafe895b 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.9.3
+#usr/bin/armv5tel-unknown-linux-gnueabi-gcc-6.3.0
 #usr/bin/armv5tel-unknown-linux-gnueabi-gcc-ar
 #usr/bin/armv5tel-unknown-linux-gnueabi-gcc-nm
 #usr/bin/armv5tel-unknown-linux-gnueabi-gcc-ranlib
 #usr/bin/gcc-nm
 #usr/bin/gcc-ranlib
 #usr/bin/gcov
+#usr/bin/gcov-tool
 #usr/include/c++
-#usr/include/c++/4.9.3
-#usr/include/c++/4.9.3/algorithm
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/atomic_word.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/basic_file.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/c++allocator.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/c++config.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/c++io.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/c++locale.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/cpu_defines.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/ctype_base.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/ctype_inline.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/cxxabi_tweaks.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/error_constants.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/extc++.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/gthr-default.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/gthr-posix.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/gthr-single.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/gthr.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/messages_members.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/opt_random.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/os_defines.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/stdc++.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/stdtr1c++.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/bits/time_members.h
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/ext
-#usr/include/c++/4.9.3/armv5tel-unknown-linux-gnueabi/ext/opt_random.h
-#usr/include/c++/4.9.3/array
-#usr/include/c++/4.9.3/atomic
-#usr/include/c++/4.9.3/backward
-#usr/include/c++/4.9.3/backward/auto_ptr.h
-#usr/include/c++/4.9.3/backward/backward_warning.h
-#usr/include/c++/4.9.3/backward/binders.h
-#usr/include/c++/4.9.3/backward/hash_fun.h
-#usr/include/c++/4.9.3/backward/hash_map
-#usr/include/c++/4.9.3/backward/hash_set
-#usr/include/c++/4.9.3/backward/hashtable.h
-#usr/include/c++/4.9.3/backward/strstream
-#usr/include/c++/4.9.3/bits
-#usr/include/c++/4.9.3/bits/algorithmfwd.h
-#usr/include/c++/4.9.3/bits/alloc_traits.h
-#usr/include/c++/4.9.3/bits/allocator.h
-#usr/include/c++/4.9.3/bits/atomic_base.h
-#usr/include/c++/4.9.3/bits/atomic_lockfree_defines.h
-#usr/include/c++/4.9.3/bits/basic_ios.h
-#usr/include/c++/4.9.3/bits/basic_ios.tcc
-#usr/include/c++/4.9.3/bits/basic_string.h
-#usr/include/c++/4.9.3/bits/basic_string.tcc
-#usr/include/c++/4.9.3/bits/boost_concept_check.h
-#usr/include/c++/4.9.3/bits/c++0x_warning.h
-#usr/include/c++/4.9.3/bits/c++14_warning.h
-#usr/include/c++/4.9.3/bits/char_traits.h
-#usr/include/c++/4.9.3/bits/codecvt.h
-#usr/include/c++/4.9.3/bits/concept_check.h
-#usr/include/c++/4.9.3/bits/cpp_type_traits.h
-#usr/include/c++/4.9.3/bits/cxxabi_forced.h
-#usr/include/c++/4.9.3/bits/deque.tcc
-#usr/include/c++/4.9.3/bits/enable_special_members.h
-#usr/include/c++/4.9.3/bits/exception_defines.h
-#usr/include/c++/4.9.3/bits/exception_ptr.h
-#usr/include/c++/4.9.3/bits/forward_list.h
-#usr/include/c++/4.9.3/bits/forward_list.tcc
-#usr/include/c++/4.9.3/bits/fstream.tcc
-#usr/include/c++/4.9.3/bits/functexcept.h
-#usr/include/c++/4.9.3/bits/functional_hash.h
-#usr/include/c++/4.9.3/bits/gslice.h
-#usr/include/c++/4.9.3/bits/gslice_array.h
-#usr/include/c++/4.9.3/bits/hash_bytes.h
-#usr/include/c++/4.9.3/bits/hashtable.h
-#usr/include/c++/4.9.3/bits/hashtable_policy.h
-#usr/include/c++/4.9.3/bits/indirect_array.h
-#usr/include/c++/4.9.3/bits/ios_base.h
-#usr/include/c++/4.9.3/bits/istream.tcc
-#usr/include/c++/4.9.3/bits/list.tcc
-#usr/include/c++/4.9.3/bits/locale_classes.h
-#usr/include/c++/4.9.3/bits/locale_classes.tcc
-#usr/include/c++/4.9.3/bits/locale_facets.h
-#usr/include/c++/4.9.3/bits/locale_facets.tcc
-#usr/include/c++/4.9.3/bits/locale_facets_nonio.h
-#usr/include/c++/4.9.3/bits/locale_facets_nonio.tcc
-#usr/include/c++/4.9.3/bits/localefwd.h
-#usr/include/c++/4.9.3/bits/mask_array.h
-#usr/include/c++/4.9.3/bits/memoryfwd.h
-#usr/include/c++/4.9.3/bits/move.h
-#usr/include/c++/4.9.3/bits/nested_exception.h
-#usr/include/c++/4.9.3/bits/ostream.tcc
-#usr/include/c++/4.9.3/bits/ostream_insert.h
-#usr/include/c++/4.9.3/bits/parse_numbers.h
-#usr/include/c++/4.9.3/bits/postypes.h
-#usr/include/c++/4.9.3/bits/predefined_ops.h
-#usr/include/c++/4.9.3/bits/ptr_traits.h
-#usr/include/c++/4.9.3/bits/random.h
-#usr/include/c++/4.9.3/bits/random.tcc
-#usr/include/c++/4.9.3/bits/range_access.h
-#usr/include/c++/4.9.3/bits/regex.h
-#usr/include/c++/4.9.3/bits/regex.tcc
-#usr/include/c++/4.9.3/bits/regex_automaton.h
-#usr/include/c++/4.9.3/bits/regex_automaton.tcc
-#usr/include/c++/4.9.3/bits/regex_compiler.h
-#usr/include/c++/4.9.3/bits/regex_compiler.tcc
-#usr/include/c++/4.9.3/bits/regex_constants.h
-#usr/include/c++/4.9.3/bits/regex_error.h
-#usr/include/c++/4.9.3/bits/regex_executor.h
-#usr/include/c++/4.9.3/bits/regex_executor.tcc
-#usr/include/c++/4.9.3/bits/regex_scanner.h
-#usr/include/c++/4.9.3/bits/regex_scanner.tcc
-#usr/include/c++/4.9.3/bits/shared_ptr.h
-#usr/include/c++/4.9.3/bits/shared_ptr_base.h
-#usr/include/c++/4.9.3/bits/slice_array.h
-#usr/include/c++/4.9.3/bits/sstream.tcc
-#usr/include/c++/4.9.3/bits/stl_algo.h
-#usr/include/c++/4.9.3/bits/stl_algobase.h
-#usr/include/c++/4.9.3/bits/stl_bvector.h
-#usr/include/c++/4.9.3/bits/stl_construct.h
-#usr/include/c++/4.9.3/bits/stl_deque.h
-#usr/include/c++/4.9.3/bits/stl_function.h
-#usr/include/c++/4.9.3/bits/stl_heap.h
-#usr/include/c++/4.9.3/bits/stl_iterator.h
-#usr/include/c++/4.9.3/bits/stl_iterator_base_funcs.h
-#usr/include/c++/4.9.3/bits/stl_iterator_base_types.h
-#usr/include/c++/4.9.3/bits/stl_list.h
-#usr/include/c++/4.9.3/bits/stl_map.h
-#usr/include/c++/4.9.3/bits/stl_multimap.h
-#usr/include/c++/4.9.3/bits/stl_multiset.h
-#usr/include/c++/4.9.3/bits/stl_numeric.h
-#usr/include/c++/4.9.3/bits/stl_pair.h
-#usr/include/c++/4.9.3/bits/stl_queue.h
-#usr/include/c++/4.9.3/bits/stl_raw_storage_iter.h
-#usr/include/c++/4.9.3/bits/stl_relops.h
-#usr/include/c++/4.9.3/bits/stl_set.h
-#usr/include/c++/4.9.3/bits/stl_stack.h
-#usr/include/c++/4.9.3/bits/stl_tempbuf.h
-#usr/include/c++/4.9.3/bits/stl_tree.h
-#usr/include/c++/4.9.3/bits/stl_uninitialized.h
-#usr/include/c++/4.9.3/bits/stl_vector.h
-#usr/include/c++/4.9.3/bits/stream_iterator.h
-#usr/include/c++/4.9.3/bits/streambuf.tcc
-#usr/include/c++/4.9.3/bits/streambuf_iterator.h
-#usr/include/c++/4.9.3/bits/stringfwd.h
-#usr/include/c++/4.9.3/bits/unique_ptr.h
-#usr/include/c++/4.9.3/bits/unordered_map.h
-#usr/include/c++/4.9.3/bits/unordered_set.h
-#usr/include/c++/4.9.3/bits/uses_allocator.h
-#usr/include/c++/4.9.3/bits/valarray_after.h
-#usr/include/c++/4.9.3/bits/valarray_array.h
-#usr/include/c++/4.9.3/bits/valarray_array.tcc
-#usr/include/c++/4.9.3/bits/valarray_before.h
-#usr/include/c++/4.9.3/bits/vector.tcc
-#usr/include/c++/4.9.3/bitset
-#usr/include/c++/4.9.3/cassert
-#usr/include/c++/4.9.3/ccomplex
-#usr/include/c++/4.9.3/cctype
-#usr/include/c++/4.9.3/cerrno
-#usr/include/c++/4.9.3/cfenv
-#usr/include/c++/4.9.3/cfloat
-#usr/include/c++/4.9.3/chrono
-#usr/include/c++/4.9.3/cinttypes
-#usr/include/c++/4.9.3/ciso646
-#usr/include/c++/4.9.3/climits
-#usr/include/c++/4.9.3/clocale
-#usr/include/c++/4.9.3/cmath
-#usr/include/c++/4.9.3/complex
-#usr/include/c++/4.9.3/complex.h
-#usr/include/c++/4.9.3/condition_variable
-#usr/include/c++/4.9.3/csetjmp
-#usr/include/c++/4.9.3/csignal
-#usr/include/c++/4.9.3/cstdalign
-#usr/include/c++/4.9.3/cstdarg
-#usr/include/c++/4.9.3/cstdbool
-#usr/include/c++/4.9.3/cstddef
-#usr/include/c++/4.9.3/cstdint
-#usr/include/c++/4.9.3/cstdio
-#usr/include/c++/4.9.3/cstdlib
-#usr/include/c++/4.9.3/cstring
-#usr/include/c++/4.9.3/ctgmath
-#usr/include/c++/4.9.3/ctime
-#usr/include/c++/4.9.3/cwchar
-#usr/include/c++/4.9.3/cwctype
-#usr/include/c++/4.9.3/cxxabi.h
-#usr/include/c++/4.9.3/debug
-#usr/include/c++/4.9.3/debug/array
-#usr/include/c++/4.9.3/debug/bitset
-#usr/include/c++/4.9.3/debug/debug.h
-#usr/include/c++/4.9.3/debug/deque
-#usr/include/c++/4.9.3/debug/formatter.h
-#usr/include/c++/4.9.3/debug/forward_list
-#usr/include/c++/4.9.3/debug/functions.h
-#usr/include/c++/4.9.3/debug/list
-#usr/include/c++/4.9.3/debug/macros.h
-#usr/include/c++/4.9.3/debug/map
-#usr/include/c++/4.9.3/debug/map.h
-#usr/include/c++/4.9.3/debug/multimap.h
-#usr/include/c++/4.9.3/debug/multiset.h
-#usr/include/c++/4.9.3/debug/safe_base.h
-#usr/include/c++/4.9.3/debug/safe_iterator.h
-#usr/include/c++/4.9.3/debug/safe_iterator.tcc
-#usr/include/c++/4.9.3/debug/safe_local_iterator.h
-#usr/include/c++/4.9.3/debug/safe_local_iterator.tcc
-#usr/include/c++/4.9.3/debug/safe_sequence.h
-#usr/include/c++/4.9.3/debug/safe_sequence.tcc
-#usr/include/c++/4.9.3/debug/safe_unordered_base.h
-#usr/include/c++/4.9.3/debug/safe_unordered_container.h
-#usr/include/c++/4.9.3/debug/safe_unordered_container.tcc
-#usr/include/c++/4.9.3/debug/set
-#usr/include/c++/4.9.3/debug/set.h
-#usr/include/c++/4.9.3/debug/string
-#usr/include/c++/4.9.3/debug/unordered_map
-#usr/include/c++/4.9.3/debug/unordered_set
-#usr/include/c++/4.9.3/debug/vector
-#usr/include/c++/4.9.3/decimal
-#usr/include/c++/4.9.3/decimal/decimal
-#usr/include/c++/4.9.3/decimal/decimal.h
-#usr/include/c++/4.9.3/deque
-#usr/include/c++/4.9.3/exception
-#usr/include/c++/4.9.3/experimental
-#usr/include/c++/4.9.3/experimental/optional
-#usr/include/c++/4.9.3/experimental/string_view
-#usr/include/c++/4.9.3/experimental/string_view.tcc
-#usr/include/c++/4.9.3/ext
-#usr/include/c++/4.9.3/ext/algorithm
-#usr/include/c++/4.9.3/ext/aligned_buffer.h
-#usr/include/c++/4.9.3/ext/alloc_traits.h
-#usr/include/c++/4.9.3/ext/array_allocator.h
-#usr/include/c++/4.9.3/ext/atomicity.h
-#usr/include/c++/4.9.3/ext/bitmap_allocator.h
-#usr/include/c++/4.9.3/ext/cast.h
-#usr/include/c++/4.9.3/ext/cmath
-#usr/include/c++/4.9.3/ext/codecvt_specializations.h
-#usr/include/c++/4.9.3/ext/concurrence.h
-#usr/include/c++/4.9.3/ext/debug_allocator.h
-#usr/include/c++/4.9.3/ext/enc_filebuf.h
-#usr/include/c++/4.9.3/ext/extptr_allocator.h
-#usr/include/c++/4.9.3/ext/functional
-#usr/include/c++/4.9.3/ext/hash_map
-#usr/include/c++/4.9.3/ext/hash_set
-#usr/include/c++/4.9.3/ext/iterator
-#usr/include/c++/4.9.3/ext/malloc_allocator.h
-#usr/include/c++/4.9.3/ext/memory
-#usr/include/c++/4.9.3/ext/mt_allocator.h
-#usr/include/c++/4.9.3/ext/new_allocator.h
-#usr/include/c++/4.9.3/ext/numeric
-#usr/include/c++/4.9.3/ext/numeric_traits.h
-#usr/include/c++/4.9.3/ext/pb_ds
-#usr/include/c++/4.9.3/ext/pb_ds/assoc_container.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy/branch_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cond_dealtor.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/container_base_dispatch.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/debug_map_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/eq_fn
-#usr/include/c++/4.9.3/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/node.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/node.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/standard_policies.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_trace_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/type_utils.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/types_traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/exception.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/hash_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/list_update_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/priority_queue.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/tag_and_trait.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/tree_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/trie_policy.hpp
-#usr/include/c++/4.9.3/ext/pod_char_traits.h
-#usr/include/c++/4.9.3/ext/pointer.h
-#usr/include/c++/4.9.3/ext/pool_allocator.h
-#usr/include/c++/4.9.3/ext/random
-#usr/include/c++/4.9.3/ext/random.tcc
-#usr/include/c++/4.9.3/ext/rb_tree
-#usr/include/c++/4.9.3/ext/rc_string_base.h
-#usr/include/c++/4.9.3/ext/rope
-#usr/include/c++/4.9.3/ext/ropeimpl.h
-#usr/include/c++/4.9.3/ext/slist
-#usr/include/c++/4.9.3/ext/sso_string_base.h
-#usr/include/c++/4.9.3/ext/stdio_filebuf.h
-#usr/include/c++/4.9.3/ext/stdio_sync_filebuf.h
-#usr/include/c++/4.9.3/ext/string_conversions.h
-#usr/include/c++/4.9.3/ext/throw_allocator.h
-#usr/include/c++/4.9.3/ext/type_traits.h
-#usr/include/c++/4.9.3/ext/typelist.h
-#usr/include/c++/4.9.3/ext/vstring.h
-#usr/include/c++/4.9.3/ext/vstring.tcc
-#usr/include/c++/4.9.3/ext/vstring_fwd.h
-#usr/include/c++/4.9.3/ext/vstring_util.h
-#usr/include/c++/4.9.3/fenv.h
-#usr/include/c++/4.9.3/forward_list
-#usr/include/c++/4.9.3/fstream
-#usr/include/c++/4.9.3/functional
-#usr/include/c++/4.9.3/future
-#usr/include/c++/4.9.3/initializer_list
-#usr/include/c++/4.9.3/iomanip
-#usr/include/c++/4.9.3/ios
-#usr/include/c++/4.9.3/iosfwd
-#usr/include/c++/4.9.3/iostream
-#usr/include/c++/4.9.3/istream
-#usr/include/c++/4.9.3/iterator
-#usr/include/c++/4.9.3/limits
-#usr/include/c++/4.9.3/list
-#usr/include/c++/4.9.3/locale
-#usr/include/c++/4.9.3/map
-#usr/include/c++/4.9.3/memory
-#usr/include/c++/4.9.3/mutex
-#usr/include/c++/4.9.3/new
-#usr/include/c++/4.9.3/numeric
-#usr/include/c++/4.9.3/ostream
-#usr/include/c++/4.9.3/parallel
-#usr/include/c++/4.9.3/parallel/algo.h
-#usr/include/c++/4.9.3/parallel/algobase.h
-#usr/include/c++/4.9.3/parallel/algorithm
-#usr/include/c++/4.9.3/parallel/algorithmfwd.h
-#usr/include/c++/4.9.3/parallel/balanced_quicksort.h
-#usr/include/c++/4.9.3/parallel/base.h
-#usr/include/c++/4.9.3/parallel/basic_iterator.h
-#usr/include/c++/4.9.3/parallel/checkers.h
-#usr/include/c++/4.9.3/parallel/compatibility.h
-#usr/include/c++/4.9.3/parallel/compiletime_settings.h
-#usr/include/c++/4.9.3/parallel/equally_split.h
-#usr/include/c++/4.9.3/parallel/features.h
-#usr/include/c++/4.9.3/parallel/find.h
-#usr/include/c++/4.9.3/parallel/find_selectors.h
-#usr/include/c++/4.9.3/parallel/for_each.h
-#usr/include/c++/4.9.3/parallel/for_each_selectors.h
-#usr/include/c++/4.9.3/parallel/iterator.h
-#usr/include/c++/4.9.3/parallel/list_partition.h
-#usr/include/c++/4.9.3/parallel/losertree.h
-#usr/include/c++/4.9.3/parallel/merge.h
-#usr/include/c++/4.9.3/parallel/multiseq_selection.h
-#usr/include/c++/4.9.3/parallel/multiway_merge.h
-#usr/include/c++/4.9.3/parallel/multiway_mergesort.h
-#usr/include/c++/4.9.3/parallel/numeric
-#usr/include/c++/4.9.3/parallel/numericfwd.h
-#usr/include/c++/4.9.3/parallel/omp_loop.h
-#usr/include/c++/4.9.3/parallel/omp_loop_static.h
-#usr/include/c++/4.9.3/parallel/par_loop.h
-#usr/include/c++/4.9.3/parallel/parallel.h
-#usr/include/c++/4.9.3/parallel/partial_sum.h
-#usr/include/c++/4.9.3/parallel/partition.h
-#usr/include/c++/4.9.3/parallel/queue.h
-#usr/include/c++/4.9.3/parallel/quicksort.h
-#usr/include/c++/4.9.3/parallel/random_number.h
-#usr/include/c++/4.9.3/parallel/random_shuffle.h
-#usr/include/c++/4.9.3/parallel/search.h
-#usr/include/c++/4.9.3/parallel/set_operations.h
-#usr/include/c++/4.9.3/parallel/settings.h
-#usr/include/c++/4.9.3/parallel/sort.h
-#usr/include/c++/4.9.3/parallel/tags.h
-#usr/include/c++/4.9.3/parallel/types.h
-#usr/include/c++/4.9.3/parallel/unique_copy.h
-#usr/include/c++/4.9.3/parallel/workstealing.h
-#usr/include/c++/4.9.3/profile
-#usr/include/c++/4.9.3/profile/array
-#usr/include/c++/4.9.3/profile/base.h
-#usr/include/c++/4.9.3/profile/bitset
-#usr/include/c++/4.9.3/profile/deque
-#usr/include/c++/4.9.3/profile/forward_list
-#usr/include/c++/4.9.3/profile/impl
-#usr/include/c++/4.9.3/profile/impl/profiler.h
-#usr/include/c++/4.9.3/profile/impl/profiler_algos.h
-#usr/include/c++/4.9.3/profile/impl/profiler_container_size.h
-#usr/include/c++/4.9.3/profile/impl/profiler_hash_func.h
-#usr/include/c++/4.9.3/profile/impl/profiler_hashtable_size.h
-#usr/include/c++/4.9.3/profile/impl/profiler_list_to_slist.h
-#usr/include/c++/4.9.3/profile/impl/profiler_list_to_vector.h
-#usr/include/c++/4.9.3/profile/impl/profiler_map_to_unordered_map.h
-#usr/include/c++/4.9.3/profile/impl/profiler_node.h
-#usr/include/c++/4.9.3/profile/impl/profiler_state.h
-#usr/include/c++/4.9.3/profile/impl/profiler_trace.h
-#usr/include/c++/4.9.3/profile/impl/profiler_vector_size.h
-#usr/include/c++/4.9.3/profile/impl/profiler_vector_to_list.h
-#usr/include/c++/4.9.3/profile/iterator_tracker.h
-#usr/include/c++/4.9.3/profile/list
-#usr/include/c++/4.9.3/profile/map
-#usr/include/c++/4.9.3/profile/map.h
-#usr/include/c++/4.9.3/profile/multimap.h
-#usr/include/c++/4.9.3/profile/multiset.h
-#usr/include/c++/4.9.3/profile/set
-#usr/include/c++/4.9.3/profile/set.h
-#usr/include/c++/4.9.3/profile/unordered_base.h
-#usr/include/c++/4.9.3/profile/unordered_map
-#usr/include/c++/4.9.3/profile/unordered_set
-#usr/include/c++/4.9.3/profile/vector
-#usr/include/c++/4.9.3/queue
-#usr/include/c++/4.9.3/random
-#usr/include/c++/4.9.3/ratio
-#usr/include/c++/4.9.3/regex
-#usr/include/c++/4.9.3/scoped_allocator
-#usr/include/c++/4.9.3/set
-#usr/include/c++/4.9.3/shared_mutex
-#usr/include/c++/4.9.3/sstream
-#usr/include/c++/4.9.3/stack
-#usr/include/c++/4.9.3/stdexcept
-#usr/include/c++/4.9.3/streambuf
-#usr/include/c++/4.9.3/string
-#usr/include/c++/4.9.3/system_error
-#usr/include/c++/4.9.3/tgmath.h
-#usr/include/c++/4.9.3/thread
-#usr/include/c++/4.9.3/tr1
-#usr/include/c++/4.9.3/tr1/array
-#usr/include/c++/4.9.3/tr1/bessel_function.tcc
-#usr/include/c++/4.9.3/tr1/beta_function.tcc
-#usr/include/c++/4.9.3/tr1/ccomplex
-#usr/include/c++/4.9.3/tr1/cctype
-#usr/include/c++/4.9.3/tr1/cfenv
-#usr/include/c++/4.9.3/tr1/cfloat
-#usr/include/c++/4.9.3/tr1/cinttypes
-#usr/include/c++/4.9.3/tr1/climits
-#usr/include/c++/4.9.3/tr1/cmath
-#usr/include/c++/4.9.3/tr1/complex
-#usr/include/c++/4.9.3/tr1/complex.h
-#usr/include/c++/4.9.3/tr1/cstdarg
-#usr/include/c++/4.9.3/tr1/cstdbool
-#usr/include/c++/4.9.3/tr1/cstdint
-#usr/include/c++/4.9.3/tr1/cstdio
-#usr/include/c++/4.9.3/tr1/cstdlib
-#usr/include/c++/4.9.3/tr1/ctgmath
-#usr/include/c++/4.9.3/tr1/ctime
-#usr/include/c++/4.9.3/tr1/ctype.h
-#usr/include/c++/4.9.3/tr1/cwchar
-#usr/include/c++/4.9.3/tr1/cwctype
-#usr/include/c++/4.9.3/tr1/ell_integral.tcc
-#usr/include/c++/4.9.3/tr1/exp_integral.tcc
-#usr/include/c++/4.9.3/tr1/fenv.h
-#usr/include/c++/4.9.3/tr1/float.h
-#usr/include/c++/4.9.3/tr1/functional
-#usr/include/c++/4.9.3/tr1/functional_hash.h
-#usr/include/c++/4.9.3/tr1/gamma.tcc
-#usr/include/c++/4.9.3/tr1/hashtable.h
-#usr/include/c++/4.9.3/tr1/hashtable_policy.h
-#usr/include/c++/4.9.3/tr1/hypergeometric.tcc
-#usr/include/c++/4.9.3/tr1/inttypes.h
-#usr/include/c++/4.9.3/tr1/legendre_function.tcc
-#usr/include/c++/4.9.3/tr1/limits.h
-#usr/include/c++/4.9.3/tr1/math.h
-#usr/include/c++/4.9.3/tr1/memory
-#usr/include/c++/4.9.3/tr1/modified_bessel_func.tcc
-#usr/include/c++/4.9.3/tr1/poly_hermite.tcc
-#usr/include/c++/4.9.3/tr1/poly_laguerre.tcc
-#usr/include/c++/4.9.3/tr1/random
-#usr/include/c++/4.9.3/tr1/random.h
-#usr/include/c++/4.9.3/tr1/random.tcc
-#usr/include/c++/4.9.3/tr1/regex
-#usr/include/c++/4.9.3/tr1/riemann_zeta.tcc
-#usr/include/c++/4.9.3/tr1/shared_ptr.h
-#usr/include/c++/4.9.3/tr1/special_function_util.h
-#usr/include/c++/4.9.3/tr1/stdarg.h
-#usr/include/c++/4.9.3/tr1/stdbool.h
-#usr/include/c++/4.9.3/tr1/stdint.h
-#usr/include/c++/4.9.3/tr1/stdio.h
-#usr/include/c++/4.9.3/tr1/stdlib.h
-#usr/include/c++/4.9.3/tr1/tgmath.h
-#usr/include/c++/4.9.3/tr1/tuple
-#usr/include/c++/4.9.3/tr1/type_traits
-#usr/include/c++/4.9.3/tr1/unordered_map
-#usr/include/c++/4.9.3/tr1/unordered_map.h
-#usr/include/c++/4.9.3/tr1/unordered_set
-#usr/include/c++/4.9.3/tr1/unordered_set.h
-#usr/include/c++/4.9.3/tr1/utility
-#usr/include/c++/4.9.3/tr1/wchar.h
-#usr/include/c++/4.9.3/tr1/wctype.h
-#usr/include/c++/4.9.3/tr2
-#usr/include/c++/4.9.3/tr2/bool_set
-#usr/include/c++/4.9.3/tr2/bool_set.tcc
-#usr/include/c++/4.9.3/tr2/dynamic_bitset
-#usr/include/c++/4.9.3/tr2/dynamic_bitset.tcc
-#usr/include/c++/4.9.3/tr2/ratio
-#usr/include/c++/4.9.3/tr2/type_traits
-#usr/include/c++/4.9.3/tuple
-#usr/include/c++/4.9.3/type_traits
-#usr/include/c++/4.9.3/typeindex
-#usr/include/c++/4.9.3/typeinfo
-#usr/include/c++/4.9.3/unordered_map
-#usr/include/c++/4.9.3/unordered_set
-#usr/include/c++/4.9.3/utility
-#usr/include/c++/4.9.3/valarray
-#usr/include/c++/4.9.3/vector
+#usr/include/c++/6.3.0
+#usr/include/c++/6.3.0/algorithm
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/atomic_word.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/basic_file.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/c++allocator.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/c++config.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/c++io.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/c++locale.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/cpu_defines.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/ctype_base.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/ctype_inline.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/cxxabi_tweaks.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/error_constants.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/extc++.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/gthr-default.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/gthr-posix.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/gthr-single.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/gthr.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/messages_members.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/opt_random.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/os_defines.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/stdc++.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/stdtr1c++.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/bits/time_members.h
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/ext
+#usr/include/c++/6.3.0/armv5tel-unknown-linux-gnueabi/ext/opt_random.h
+#usr/include/c++/6.3.0/array
+#usr/include/c++/6.3.0/atomic
+#usr/include/c++/6.3.0/backward
+#usr/include/c++/6.3.0/backward/auto_ptr.h
+#usr/include/c++/6.3.0/backward/backward_warning.h
+#usr/include/c++/6.3.0/backward/binders.h
+#usr/include/c++/6.3.0/backward/hash_fun.h
+#usr/include/c++/6.3.0/backward/hash_map
+#usr/include/c++/6.3.0/backward/hash_set
+#usr/include/c++/6.3.0/backward/hashtable.h
+#usr/include/c++/6.3.0/backward/strstream
+#usr/include/c++/6.3.0/bits
+#usr/include/c++/6.3.0/bits/algorithmfwd.h
+#usr/include/c++/6.3.0/bits/alloc_traits.h
+#usr/include/c++/6.3.0/bits/allocated_ptr.h
+#usr/include/c++/6.3.0/bits/allocator.h
+#usr/include/c++/6.3.0/bits/atomic_base.h
+#usr/include/c++/6.3.0/bits/atomic_futex.h
+#usr/include/c++/6.3.0/bits/atomic_lockfree_defines.h
+#usr/include/c++/6.3.0/bits/basic_ios.h
+#usr/include/c++/6.3.0/bits/basic_ios.tcc
+#usr/include/c++/6.3.0/bits/basic_string.h
+#usr/include/c++/6.3.0/bits/basic_string.tcc
+#usr/include/c++/6.3.0/bits/boost_concept_check.h
+#usr/include/c++/6.3.0/bits/c++0x_warning.h
+#usr/include/c++/6.3.0/bits/c++14_warning.h
+#usr/include/c++/6.3.0/bits/char_traits.h
+#usr/include/c++/6.3.0/bits/codecvt.h
+#usr/include/c++/6.3.0/bits/concept_check.h
+#usr/include/c++/6.3.0/bits/cpp_type_traits.h
+#usr/include/c++/6.3.0/bits/cxxabi_forced.h
+#usr/include/c++/6.3.0/bits/deque.tcc
+#usr/include/c++/6.3.0/bits/enable_special_members.h
+#usr/include/c++/6.3.0/bits/exception_defines.h
+#usr/include/c++/6.3.0/bits/exception_ptr.h
+#usr/include/c++/6.3.0/bits/forward_list.h
+#usr/include/c++/6.3.0/bits/forward_list.tcc
+#usr/include/c++/6.3.0/bits/fstream.tcc
+#usr/include/c++/6.3.0/bits/functexcept.h
+#usr/include/c++/6.3.0/bits/functional_hash.h
+#usr/include/c++/6.3.0/bits/gslice.h
+#usr/include/c++/6.3.0/bits/gslice_array.h
+#usr/include/c++/6.3.0/bits/hash_bytes.h
+#usr/include/c++/6.3.0/bits/hashtable.h
+#usr/include/c++/6.3.0/bits/hashtable_policy.h
+#usr/include/c++/6.3.0/bits/indirect_array.h
+#usr/include/c++/6.3.0/bits/ios_base.h
+#usr/include/c++/6.3.0/bits/istream.tcc
+#usr/include/c++/6.3.0/bits/list.tcc
+#usr/include/c++/6.3.0/bits/locale_classes.h
+#usr/include/c++/6.3.0/bits/locale_classes.tcc
+#usr/include/c++/6.3.0/bits/locale_conv.h
+#usr/include/c++/6.3.0/bits/locale_facets.h
+#usr/include/c++/6.3.0/bits/locale_facets.tcc
+#usr/include/c++/6.3.0/bits/locale_facets_nonio.h
+#usr/include/c++/6.3.0/bits/locale_facets_nonio.tcc
+#usr/include/c++/6.3.0/bits/localefwd.h
+#usr/include/c++/6.3.0/bits/mask_array.h
+#usr/include/c++/6.3.0/bits/memoryfwd.h
+#usr/include/c++/6.3.0/bits/move.h
+#usr/include/c++/6.3.0/bits/nested_exception.h
+#usr/include/c++/6.3.0/bits/ostream.tcc
+#usr/include/c++/6.3.0/bits/ostream_insert.h
+#usr/include/c++/6.3.0/bits/parse_numbers.h
+#usr/include/c++/6.3.0/bits/postypes.h
+#usr/include/c++/6.3.0/bits/predefined_ops.h
+#usr/include/c++/6.3.0/bits/ptr_traits.h
+#usr/include/c++/6.3.0/bits/quoted_string.h
+#usr/include/c++/6.3.0/bits/random.h
+#usr/include/c++/6.3.0/bits/random.tcc
+#usr/include/c++/6.3.0/bits/range_access.h
+#usr/include/c++/6.3.0/bits/regex.h
+#usr/include/c++/6.3.0/bits/regex.tcc
+#usr/include/c++/6.3.0/bits/regex_automaton.h
+#usr/include/c++/6.3.0/bits/regex_automaton.tcc
+#usr/include/c++/6.3.0/bits/regex_compiler.h
+#usr/include/c++/6.3.0/bits/regex_compiler.tcc
+#usr/include/c++/6.3.0/bits/regex_constants.h
+#usr/include/c++/6.3.0/bits/regex_error.h
+#usr/include/c++/6.3.0/bits/regex_executor.h
+#usr/include/c++/6.3.0/bits/regex_executor.tcc
+#usr/include/c++/6.3.0/bits/regex_scanner.h
+#usr/include/c++/6.3.0/bits/regex_scanner.tcc
+#usr/include/c++/6.3.0/bits/shared_ptr.h
+#usr/include/c++/6.3.0/bits/shared_ptr_atomic.h
+#usr/include/c++/6.3.0/bits/shared_ptr_base.h
+#usr/include/c++/6.3.0/bits/slice_array.h
+#usr/include/c++/6.3.0/bits/specfun.h
+#usr/include/c++/6.3.0/bits/sstream.tcc
+#usr/include/c++/6.3.0/bits/std_mutex.h
+#usr/include/c++/6.3.0/bits/stl_algo.h
+#usr/include/c++/6.3.0/bits/stl_algobase.h
+#usr/include/c++/6.3.0/bits/stl_bvector.h
+#usr/include/c++/6.3.0/bits/stl_construct.h
+#usr/include/c++/6.3.0/bits/stl_deque.h
+#usr/include/c++/6.3.0/bits/stl_function.h
+#usr/include/c++/6.3.0/bits/stl_heap.h
+#usr/include/c++/6.3.0/bits/stl_iterator.h
+#usr/include/c++/6.3.0/bits/stl_iterator_base_funcs.h
+#usr/include/c++/6.3.0/bits/stl_iterator_base_types.h
+#usr/include/c++/6.3.0/bits/stl_list.h
+#usr/include/c++/6.3.0/bits/stl_map.h
+#usr/include/c++/6.3.0/bits/stl_multimap.h
+#usr/include/c++/6.3.0/bits/stl_multiset.h
+#usr/include/c++/6.3.0/bits/stl_numeric.h
+#usr/include/c++/6.3.0/bits/stl_pair.h
+#usr/include/c++/6.3.0/bits/stl_queue.h
+#usr/include/c++/6.3.0/bits/stl_raw_storage_iter.h
+#usr/include/c++/6.3.0/bits/stl_relops.h
+#usr/include/c++/6.3.0/bits/stl_set.h
+#usr/include/c++/6.3.0/bits/stl_stack.h
+#usr/include/c++/6.3.0/bits/stl_tempbuf.h
+#usr/include/c++/6.3.0/bits/stl_tree.h
+#usr/include/c++/6.3.0/bits/stl_uninitialized.h
+#usr/include/c++/6.3.0/bits/stl_vector.h
+#usr/include/c++/6.3.0/bits/stream_iterator.h
+#usr/include/c++/6.3.0/bits/streambuf.tcc
+#usr/include/c++/6.3.0/bits/streambuf_iterator.h
+#usr/include/c++/6.3.0/bits/stringfwd.h
+#usr/include/c++/6.3.0/bits/uniform_int_dist.h
+#usr/include/c++/6.3.0/bits/unique_ptr.h
+#usr/include/c++/6.3.0/bits/unordered_map.h
+#usr/include/c++/6.3.0/bits/unordered_set.h
+#usr/include/c++/6.3.0/bits/uses_allocator.h
+#usr/include/c++/6.3.0/bits/valarray_after.h
+#usr/include/c++/6.3.0/bits/valarray_array.h
+#usr/include/c++/6.3.0/bits/valarray_array.tcc
+#usr/include/c++/6.3.0/bits/valarray_before.h
+#usr/include/c++/6.3.0/bits/vector.tcc
+#usr/include/c++/6.3.0/bitset
+#usr/include/c++/6.3.0/cassert
+#usr/include/c++/6.3.0/ccomplex
+#usr/include/c++/6.3.0/cctype
+#usr/include/c++/6.3.0/cerrno
+#usr/include/c++/6.3.0/cfenv
+#usr/include/c++/6.3.0/cfloat
+#usr/include/c++/6.3.0/chrono
+#usr/include/c++/6.3.0/cinttypes
+#usr/include/c++/6.3.0/ciso646
+#usr/include/c++/6.3.0/climits
+#usr/include/c++/6.3.0/clocale
+#usr/include/c++/6.3.0/cmath
+#usr/include/c++/6.3.0/codecvt
+#usr/include/c++/6.3.0/complex
+#usr/include/c++/6.3.0/complex.h
+#usr/include/c++/6.3.0/condition_variable
+#usr/include/c++/6.3.0/csetjmp
+#usr/include/c++/6.3.0/csignal
+#usr/include/c++/6.3.0/cstdalign
+#usr/include/c++/6.3.0/cstdarg
+#usr/include/c++/6.3.0/cstdbool
+#usr/include/c++/6.3.0/cstddef
+#usr/include/c++/6.3.0/cstdint
+#usr/include/c++/6.3.0/cstdio
+#usr/include/c++/6.3.0/cstdlib
+#usr/include/c++/6.3.0/cstring
+#usr/include/c++/6.3.0/ctgmath
+#usr/include/c++/6.3.0/ctime
+#usr/include/c++/6.3.0/cuchar
+#usr/include/c++/6.3.0/cwchar
+#usr/include/c++/6.3.0/cwctype
+#usr/include/c++/6.3.0/cxxabi.h
+#usr/include/c++/6.3.0/debug
+#usr/include/c++/6.3.0/debug/array
+#usr/include/c++/6.3.0/debug/assertions.h
+#usr/include/c++/6.3.0/debug/bitset
+#usr/include/c++/6.3.0/debug/debug.h
+#usr/include/c++/6.3.0/debug/deque
+#usr/include/c++/6.3.0/debug/formatter.h
+#usr/include/c++/6.3.0/debug/forward_list
+#usr/include/c++/6.3.0/debug/functions.h
+#usr/include/c++/6.3.0/debug/helper_functions.h
+#usr/include/c++/6.3.0/debug/list
+#usr/include/c++/6.3.0/debug/macros.h
+#usr/include/c++/6.3.0/debug/map
+#usr/include/c++/6.3.0/debug/map.h
+#usr/include/c++/6.3.0/debug/multimap.h
+#usr/include/c++/6.3.0/debug/multiset.h
+#usr/include/c++/6.3.0/debug/safe_base.h
+#usr/include/c++/6.3.0/debug/safe_container.h
+#usr/include/c++/6.3.0/debug/safe_iterator.h
+#usr/include/c++/6.3.0/debug/safe_iterator.tcc
+#usr/include/c++/6.3.0/debug/safe_local_iterator.h
+#usr/include/c++/6.3.0/debug/safe_local_iterator.tcc
+#usr/include/c++/6.3.0/debug/safe_sequence.h
+#usr/include/c++/6.3.0/debug/safe_sequence.tcc
+#usr/include/c++/6.3.0/debug/safe_unordered_base.h
+#usr/include/c++/6.3.0/debug/safe_unordered_container.h
+#usr/include/c++/6.3.0/debug/safe_unordered_container.tcc
+#usr/include/c++/6.3.0/debug/set
+#usr/include/c++/6.3.0/debug/set.h
+#usr/include/c++/6.3.0/debug/stl_iterator.h
+#usr/include/c++/6.3.0/debug/string
+#usr/include/c++/6.3.0/debug/unordered_map
+#usr/include/c++/6.3.0/debug/unordered_set
+#usr/include/c++/6.3.0/debug/vector
+#usr/include/c++/6.3.0/decimal
+#usr/include/c++/6.3.0/decimal/decimal
+#usr/include/c++/6.3.0/decimal/decimal.h
+#usr/include/c++/6.3.0/deque
+#usr/include/c++/6.3.0/exception
+#usr/include/c++/6.3.0/experimental
+#usr/include/c++/6.3.0/experimental/algorithm
+#usr/include/c++/6.3.0/experimental/any
+#usr/include/c++/6.3.0/experimental/array
+#usr/include/c++/6.3.0/experimental/bits
+#usr/include/c++/6.3.0/experimental/bits/erase_if.h
+#usr/include/c++/6.3.0/experimental/bits/fs_dir.h
+#usr/include/c++/6.3.0/experimental/bits/fs_fwd.h
+#usr/include/c++/6.3.0/experimental/bits/fs_ops.h
+#usr/include/c++/6.3.0/experimental/bits/fs_path.h
+#usr/include/c++/6.3.0/experimental/bits/lfts_config.h
+#usr/include/c++/6.3.0/experimental/bits/shared_ptr.h
+#usr/include/c++/6.3.0/experimental/bits/string_view.tcc
+#usr/include/c++/6.3.0/experimental/chrono
+#usr/include/c++/6.3.0/experimental/deque
+#usr/include/c++/6.3.0/experimental/filesystem
+#usr/include/c++/6.3.0/experimental/forward_list
+#usr/include/c++/6.3.0/experimental/functional
+#usr/include/c++/6.3.0/experimental/iterator
+#usr/include/c++/6.3.0/experimental/list
+#usr/include/c++/6.3.0/experimental/map
+#usr/include/c++/6.3.0/experimental/memory
+#usr/include/c++/6.3.0/experimental/memory_resource
+#usr/include/c++/6.3.0/experimental/numeric
+#usr/include/c++/6.3.0/experimental/optional
+#usr/include/c++/6.3.0/experimental/propagate_const
+#usr/include/c++/6.3.0/experimental/random
+#usr/include/c++/6.3.0/experimental/ratio
+#usr/include/c++/6.3.0/experimental/regex
+#usr/include/c++/6.3.0/experimental/set
+#usr/include/c++/6.3.0/experimental/string
+#usr/include/c++/6.3.0/experimental/string_view
+#usr/include/c++/6.3.0/experimental/system_error
+#usr/include/c++/6.3.0/experimental/tuple
+#usr/include/c++/6.3.0/experimental/type_traits
+#usr/include/c++/6.3.0/experimental/unordered_map
+#usr/include/c++/6.3.0/experimental/unordered_set
+#usr/include/c++/6.3.0/experimental/utility
+#usr/include/c++/6.3.0/experimental/vector
+#usr/include/c++/6.3.0/ext
+#usr/include/c++/6.3.0/ext/algorithm
+#usr/include/c++/6.3.0/ext/aligned_buffer.h
+#usr/include/c++/6.3.0/ext/alloc_traits.h
+#usr/include/c++/6.3.0/ext/array_allocator.h
+#usr/include/c++/6.3.0/ext/atomicity.h
+#usr/include/c++/6.3.0/ext/bitmap_allocator.h
+#usr/include/c++/6.3.0/ext/cast.h
+#usr/include/c++/6.3.0/ext/cmath
+#usr/include/c++/6.3.0/ext/codecvt_specializations.h
+#usr/include/c++/6.3.0/ext/concurrence.h
+#usr/include/c++/6.3.0/ext/debug_allocator.h
+#usr/include/c++/6.3.0/ext/enc_filebuf.h
+#usr/include/c++/6.3.0/ext/extptr_allocator.h
+#usr/include/c++/6.3.0/ext/functional
+#usr/include/c++/6.3.0/ext/hash_map
+#usr/include/c++/6.3.0/ext/hash_set
+#usr/include/c++/6.3.0/ext/iterator
+#usr/include/c++/6.3.0/ext/malloc_allocator.h
+#usr/include/c++/6.3.0/ext/memory
+#usr/include/c++/6.3.0/ext/mt_allocator.h
+#usr/include/c++/6.3.0/ext/new_allocator.h
+#usr/include/c++/6.3.0/ext/numeric
+#usr/include/c++/6.3.0/ext/numeric_traits.h
+#usr/include/c++/6.3.0/ext/pb_ds
+#usr/include/c++/6.3.0/ext/pb_ds/assoc_container.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy/branch_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cond_dealtor.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/container_base_dispatch.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/debug_map_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/eq_fn
+#usr/include/c++/6.3.0/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/node.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/node.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/standard_policies.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_trace_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/type_utils.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/types_traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/exception.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/hash_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/list_update_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/priority_queue.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/tag_and_trait.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/tree_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/trie_policy.hpp
+#usr/include/c++/6.3.0/ext/pod_char_traits.h
+#usr/include/c++/6.3.0/ext/pointer.h
+#usr/include/c++/6.3.0/ext/pool_allocator.h
+#usr/include/c++/6.3.0/ext/random
+#usr/include/c++/6.3.0/ext/random.tcc
+#usr/include/c++/6.3.0/ext/rb_tree
+#usr/include/c++/6.3.0/ext/rc_string_base.h
+#usr/include/c++/6.3.0/ext/rope
+#usr/include/c++/6.3.0/ext/ropeimpl.h
+#usr/include/c++/6.3.0/ext/slist
+#usr/include/c++/6.3.0/ext/sso_string_base.h
+#usr/include/c++/6.3.0/ext/stdio_filebuf.h
+#usr/include/c++/6.3.0/ext/stdio_sync_filebuf.h
+#usr/include/c++/6.3.0/ext/string_conversions.h
+#usr/include/c++/6.3.0/ext/throw_allocator.h
+#usr/include/c++/6.3.0/ext/type_traits.h
+#usr/include/c++/6.3.0/ext/typelist.h
+#usr/include/c++/6.3.0/ext/vstring.h
+#usr/include/c++/6.3.0/ext/vstring.tcc
+#usr/include/c++/6.3.0/ext/vstring_fwd.h
+#usr/include/c++/6.3.0/ext/vstring_util.h
+#usr/include/c++/6.3.0/fenv.h
+#usr/include/c++/6.3.0/forward_list
+#usr/include/c++/6.3.0/fstream
+#usr/include/c++/6.3.0/functional
+#usr/include/c++/6.3.0/future
+#usr/include/c++/6.3.0/initializer_list
+#usr/include/c++/6.3.0/iomanip
+#usr/include/c++/6.3.0/ios
+#usr/include/c++/6.3.0/iosfwd
+#usr/include/c++/6.3.0/iostream
+#usr/include/c++/6.3.0/istream
+#usr/include/c++/6.3.0/iterator
+#usr/include/c++/6.3.0/limits
+#usr/include/c++/6.3.0/list
+#usr/include/c++/6.3.0/locale
+#usr/include/c++/6.3.0/map
+#usr/include/c++/6.3.0/math.h
+#usr/include/c++/6.3.0/memory
+#usr/include/c++/6.3.0/mutex
+#usr/include/c++/6.3.0/new
+#usr/include/c++/6.3.0/numeric
+#usr/include/c++/6.3.0/ostream
+#usr/include/c++/6.3.0/parallel
+#usr/include/c++/6.3.0/parallel/algo.h
+#usr/include/c++/6.3.0/parallel/algobase.h
+#usr/include/c++/6.3.0/parallel/algorithm
+#usr/include/c++/6.3.0/parallel/algorithmfwd.h
+#usr/include/c++/6.3.0/parallel/balanced_quicksort.h
+#usr/include/c++/6.3.0/parallel/base.h
+#usr/include/c++/6.3.0/parallel/basic_iterator.h
+#usr/include/c++/6.3.0/parallel/checkers.h
+#usr/include/c++/6.3.0/parallel/compatibility.h
+#usr/include/c++/6.3.0/parallel/compiletime_settings.h
+#usr/include/c++/6.3.0/parallel/equally_split.h
+#usr/include/c++/6.3.0/parallel/features.h
+#usr/include/c++/6.3.0/parallel/find.h
+#usr/include/c++/6.3.0/parallel/find_selectors.h
+#usr/include/c++/6.3.0/parallel/for_each.h
+#usr/include/c++/6.3.0/parallel/for_each_selectors.h
+#usr/include/c++/6.3.0/parallel/iterator.h
+#usr/include/c++/6.3.0/parallel/list_partition.h
+#usr/include/c++/6.3.0/parallel/losertree.h
+#usr/include/c++/6.3.0/parallel/merge.h
+#usr/include/c++/6.3.0/parallel/multiseq_selection.h
+#usr/include/c++/6.3.0/parallel/multiway_merge.h
+#usr/include/c++/6.3.0/parallel/multiway_mergesort.h
+#usr/include/c++/6.3.0/parallel/numeric
+#usr/include/c++/6.3.0/parallel/numericfwd.h
+#usr/include/c++/6.3.0/parallel/omp_loop.h
+#usr/include/c++/6.3.0/parallel/omp_loop_static.h
+#usr/include/c++/6.3.0/parallel/par_loop.h
+#usr/include/c++/6.3.0/parallel/parallel.h
+#usr/include/c++/6.3.0/parallel/partial_sum.h
+#usr/include/c++/6.3.0/parallel/partition.h
+#usr/include/c++/6.3.0/parallel/queue.h
+#usr/include/c++/6.3.0/parallel/quicksort.h
+#usr/include/c++/6.3.0/parallel/random_number.h
+#usr/include/c++/6.3.0/parallel/random_shuffle.h
+#usr/include/c++/6.3.0/parallel/search.h
+#usr/include/c++/6.3.0/parallel/set_operations.h
+#usr/include/c++/6.3.0/parallel/settings.h
+#usr/include/c++/6.3.0/parallel/sort.h
+#usr/include/c++/6.3.0/parallel/tags.h
+#usr/include/c++/6.3.0/parallel/types.h
+#usr/include/c++/6.3.0/parallel/unique_copy.h
+#usr/include/c++/6.3.0/parallel/workstealing.h
+#usr/include/c++/6.3.0/profile
+#usr/include/c++/6.3.0/profile/array
+#usr/include/c++/6.3.0/profile/base.h
+#usr/include/c++/6.3.0/profile/bitset
+#usr/include/c++/6.3.0/profile/deque
+#usr/include/c++/6.3.0/profile/forward_list
+#usr/include/c++/6.3.0/profile/impl
+#usr/include/c++/6.3.0/profile/impl/profiler.h
+#usr/include/c++/6.3.0/profile/impl/profiler_algos.h
+#usr/include/c++/6.3.0/profile/impl/profiler_container_size.h
+#usr/include/c++/6.3.0/profile/impl/profiler_hash_func.h
+#usr/include/c++/6.3.0/profile/impl/profiler_hashtable_size.h
+#usr/include/c++/6.3.0/profile/impl/profiler_list_to_slist.h
+#usr/include/c++/6.3.0/profile/impl/profiler_list_to_vector.h
+#usr/include/c++/6.3.0/profile/impl/profiler_map_to_unordered_map.h
+#usr/include/c++/6.3.0/profile/impl/profiler_node.h
+#usr/include/c++/6.3.0/profile/impl/profiler_state.h
+#usr/include/c++/6.3.0/profile/impl/profiler_trace.h
+#usr/include/c++/6.3.0/profile/impl/profiler_vector_size.h
+#usr/include/c++/6.3.0/profile/impl/profiler_vector_to_list.h
+#usr/include/c++/6.3.0/profile/iterator_tracker.h
+#usr/include/c++/6.3.0/profile/list
+#usr/include/c++/6.3.0/profile/map
+#usr/include/c++/6.3.0/profile/map.h
+#usr/include/c++/6.3.0/profile/multimap.h
+#usr/include/c++/6.3.0/profile/multiset.h
+#usr/include/c++/6.3.0/profile/ordered_base.h
+#usr/include/c++/6.3.0/profile/set
+#usr/include/c++/6.3.0/profile/set.h
+#usr/include/c++/6.3.0/profile/unordered_base.h
+#usr/include/c++/6.3.0/profile/unordered_map
+#usr/include/c++/6.3.0/profile/unordered_set
+#usr/include/c++/6.3.0/profile/vector
+#usr/include/c++/6.3.0/queue
+#usr/include/c++/6.3.0/random
+#usr/include/c++/6.3.0/ratio
+#usr/include/c++/6.3.0/regex
+#usr/include/c++/6.3.0/scoped_allocator
+#usr/include/c++/6.3.0/set
+#usr/include/c++/6.3.0/shared_mutex
+#usr/include/c++/6.3.0/sstream
+#usr/include/c++/6.3.0/stack
+#usr/include/c++/6.3.0/stdexcept
+#usr/include/c++/6.3.0/stdlib.h
+#usr/include/c++/6.3.0/streambuf
+#usr/include/c++/6.3.0/string
+#usr/include/c++/6.3.0/system_error
+#usr/include/c++/6.3.0/tgmath.h
+#usr/include/c++/6.3.0/thread
+#usr/include/c++/6.3.0/tr1
+#usr/include/c++/6.3.0/tr1/array
+#usr/include/c++/6.3.0/tr1/bessel_function.tcc
+#usr/include/c++/6.3.0/tr1/beta_function.tcc
+#usr/include/c++/6.3.0/tr1/ccomplex
+#usr/include/c++/6.3.0/tr1/cctype
+#usr/include/c++/6.3.0/tr1/cfenv
+#usr/include/c++/6.3.0/tr1/cfloat
+#usr/include/c++/6.3.0/tr1/cinttypes
+#usr/include/c++/6.3.0/tr1/climits
+#usr/include/c++/6.3.0/tr1/cmath
+#usr/include/c++/6.3.0/tr1/complex
+#usr/include/c++/6.3.0/tr1/complex.h
+#usr/include/c++/6.3.0/tr1/cstdarg
+#usr/include/c++/6.3.0/tr1/cstdbool
+#usr/include/c++/6.3.0/tr1/cstdint
+#usr/include/c++/6.3.0/tr1/cstdio
+#usr/include/c++/6.3.0/tr1/cstdlib
+#usr/include/c++/6.3.0/tr1/ctgmath
+#usr/include/c++/6.3.0/tr1/ctime
+#usr/include/c++/6.3.0/tr1/ctype.h
+#usr/include/c++/6.3.0/tr1/cwchar
+#usr/include/c++/6.3.0/tr1/cwctype
+#usr/include/c++/6.3.0/tr1/ell_integral.tcc
+#usr/include/c++/6.3.0/tr1/exp_integral.tcc
+#usr/include/c++/6.3.0/tr1/fenv.h
+#usr/include/c++/6.3.0/tr1/float.h
+#usr/include/c++/6.3.0/tr1/functional
+#usr/include/c++/6.3.0/tr1/functional_hash.h
+#usr/include/c++/6.3.0/tr1/gamma.tcc
+#usr/include/c++/6.3.0/tr1/hashtable.h
+#usr/include/c++/6.3.0/tr1/hashtable_policy.h
+#usr/include/c++/6.3.0/tr1/hypergeometric.tcc
+#usr/include/c++/6.3.0/tr1/inttypes.h
+#usr/include/c++/6.3.0/tr1/legendre_function.tcc
+#usr/include/c++/6.3.0/tr1/limits.h
+#usr/include/c++/6.3.0/tr1/math.h
+#usr/include/c++/6.3.0/tr1/memory
+#usr/include/c++/6.3.0/tr1/modified_bessel_func.tcc
+#usr/include/c++/6.3.0/tr1/poly_hermite.tcc
+#usr/include/c++/6.3.0/tr1/poly_laguerre.tcc
+#usr/include/c++/6.3.0/tr1/random
+#usr/include/c++/6.3.0/tr1/random.h
+#usr/include/c++/6.3.0/tr1/random.tcc
+#usr/include/c++/6.3.0/tr1/regex
+#usr/include/c++/6.3.0/tr1/riemann_zeta.tcc
+#usr/include/c++/6.3.0/tr1/shared_ptr.h
+#usr/include/c++/6.3.0/tr1/special_function_util.h
+#usr/include/c++/6.3.0/tr1/stdarg.h
+#usr/include/c++/6.3.0/tr1/stdbool.h
+#usr/include/c++/6.3.0/tr1/stdint.h
+#usr/include/c++/6.3.0/tr1/stdio.h
+#usr/include/c++/6.3.0/tr1/stdlib.h
+#usr/include/c++/6.3.0/tr1/tgmath.h
+#usr/include/c++/6.3.0/tr1/tuple
+#usr/include/c++/6.3.0/tr1/type_traits
+#usr/include/c++/6.3.0/tr1/unordered_map
+#usr/include/c++/6.3.0/tr1/unordered_map.h
+#usr/include/c++/6.3.0/tr1/unordered_set
+#usr/include/c++/6.3.0/tr1/unordered_set.h
+#usr/include/c++/6.3.0/tr1/utility
+#usr/include/c++/6.3.0/tr1/wchar.h
+#usr/include/c++/6.3.0/tr1/wctype.h
+#usr/include/c++/6.3.0/tr2
+#usr/include/c++/6.3.0/tr2/bool_set
+#usr/include/c++/6.3.0/tr2/bool_set.tcc
+#usr/include/c++/6.3.0/tr2/dynamic_bitset
+#usr/include/c++/6.3.0/tr2/dynamic_bitset.tcc
+#usr/include/c++/6.3.0/tr2/ratio
+#usr/include/c++/6.3.0/tr2/type_traits
+#usr/include/c++/6.3.0/tuple
+#usr/include/c++/6.3.0/type_traits
+#usr/include/c++/6.3.0/typeindex
+#usr/include/c++/6.3.0/typeinfo
+#usr/include/c++/6.3.0/unordered_map
+#usr/include/c++/6.3.0/unordered_set
+#usr/include/c++/6.3.0/utility
+#usr/include/c++/6.3.0/valarray
+#usr/include/c++/6.3.0/vector
 #usr/lib/gcc
 #usr/lib/gcc/armv5tel-unknown-linux-gnueabi
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/cc1
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/cc1plus
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/collect2
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/crtbegin.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/crtbeginS.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/crtbeginT.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/crtend.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/crtendS.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/finclude
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include-fixed
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include-fixed/README
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include-fixed/limits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include-fixed/syslimits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/arm_acle.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/arm_neon.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/float.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/iso646.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/mmintrin.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/omp.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/sanitizer
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/sanitizer/asan_interface.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/sanitizer/common_interface_defs.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/sanitizer/lsan_interface.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/ssp
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/ssp/ssp.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/ssp/stdio.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/ssp/string.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/ssp/unistd.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/stdalign.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/stdarg.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/stdatomic.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/stdbool.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/stddef.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/stdfix.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/stdint-gcc.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/stdint.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/stdnoreturn.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/unwind-arm-common.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/unwind.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/include/varargs.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/fixinc.sh
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/fixinc_list
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/fixincl
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/gsyslimits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/include
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/include/README
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/include/limits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/macro_list
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/mkheaders
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/mkheaders.conf
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/install-tools/mkinstalldirs
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/libgcc.a
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/libgcc_eh.a
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/libgcov.a
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/liblto_plugin.la
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/liblto_plugin.so
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/liblto_plugin.so.0
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/liblto_plugin.so.0.0.0
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/lto-wrapper
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/lto1
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/gengtype
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/gtype.state
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ada
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ada/gcc-interface
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ada/gcc-interface/ada-tree.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/alias.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/all-tree.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/alloc-pool.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ansidecl.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/attribs.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/auto-host.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/b-header-vars
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/basic-block.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/bitmap.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/builtins.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/bversion.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/c-family
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/c-family/c-common.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/c-family/c-common.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/c-family/c-objc.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/c-family/c-pragma.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/c-family/c-pretty-print.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/c-tree.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/calls.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cfg-flags.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cfgexpand.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cfghooks.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cfgloop.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cgraph.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cif-code.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cilk-builtins.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cilkplus.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/aarch-common-protos.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/aout.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/arm-cores.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/arm-opts.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/arm-protos.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/arm.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/bpabi.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/elf.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/linux-eabi.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/linux-elf.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/arm/linux-gas.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/dbxelf.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/elfos.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/glibc-stdint.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/gnu-user.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/initfini-array.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/linux-android.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/linux-protos.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/linux.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/config/vxworks-dummy.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/configargs.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/context.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/coretypes.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cp
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cp/cp-tree.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cp/cp-tree.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cp/cxx-pretty-print.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cp/name-lookup.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cp/type-utils.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cppdefault.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/cpplib.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/debug.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/defaults.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/df.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/diagnostic-color.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/diagnostic-core.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/diagnostic.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/diagnostic.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/double-int.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/dumpfile.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/emit-rtl.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/except.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/filenames.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/fixed-value.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/flag-types.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/flags.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/fold-const.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/function.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gcc-plugin.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gcc-symtab.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/genrtl.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ggc.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimple-builder.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimple-expr.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimple-fold.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimple-iterator.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimple-low.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimple-pretty-print.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimple-ssa.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimple-walk.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimple.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimple.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimplify-me.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gimplify.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gsstruct.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gtm-builtins.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/gtype-desc.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/hard-reg-set.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/hash-table.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/hashtab.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/highlev-plugin-common.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/hwint.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/incpath.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/input.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/insn-codes.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/insn-constants.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/insn-flags.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/insn-modes.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/insn-notes.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/internal-fn.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/internal-fn.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/intl.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ipa-prop.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ipa-ref-inline.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ipa-ref.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ipa-reference.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ipa-utils.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/is-a.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/java
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/java/java-tree.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/langhooks.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/libiberty.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/line-map.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/machmode.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/md5.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/mode-classes.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/objc
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/objc/objc-tree.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/obstack.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/omp-builtins.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/options.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/opts.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/output.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/params.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/params.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/pass-instances.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/pass_manager.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/plugin-api.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/plugin-version.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/plugin.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/plugin.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/pointer-set.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/predict.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/predict.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/prefix.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/pretty-print.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/print-rtl.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/print-tree.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/real.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/realmpfr.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/reg-notes.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/regset.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/resource.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/rtl.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/rtl.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/safe-ctype.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/sanitizer.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/sbitmap.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/splay-tree.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/ssa-iterators.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/statistics.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/stmt.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/stor-layout.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/stringpool.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/symtab.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/sync-builtins.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/system.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/target-hooks-macros.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/target.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/target.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/timevar.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/timevar.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tm-preds.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tm.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tm_p.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/toplev.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-cfg.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-cfgcleanup.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-check.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-core.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-dfa.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-dump.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-eh.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-hasher.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-inline.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-into-ssa.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-iterator.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-nested.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-object-size.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-outof-ssa.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-parloops.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-pass.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-phinodes.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-pretty-print.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-address.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-alias.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-coalesce.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-dom.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-loop-ivopts.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-loop-manip.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-loop-niter.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-loop.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-operands.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-sccvn.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-ter.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-threadedge.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa-threadupdate.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssa.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree-ssanames.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/tree.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/treestruct.def
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/varasm.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/vec.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.9.3/plugin/include/version.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/cc1
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/cc1plus
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/collect2
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/crtbegin.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/crtbeginS.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/crtbeginT.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/crtend.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/crtendS.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/crtfastmath.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include-fixed
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include-fixed/README
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include-fixed/limits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include-fixed/syslimits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/arm_acle.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/arm_neon.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/float.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/iso646.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/mmintrin.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/omp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/openacc.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/sanitizer
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/sanitizer/asan_interface.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/sanitizer/common_interface_defs.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/sanitizer/lsan_interface.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/ssp
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/ssp/ssp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/ssp/stdio.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/ssp/string.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/ssp/unistd.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/stdalign.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/stdarg.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/stdatomic.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/stdbool.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/stddef.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/stdfix.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/stdint-gcc.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/stdint.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/stdnoreturn.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/unwind-arm-common.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/unwind.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/include/varargs.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/fixinc.sh
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/fixinc_list
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/fixincl
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/gsyslimits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/include
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/include/README
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/include/limits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/macro_list
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/mkheaders
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/mkheaders.conf
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/install-tools/mkinstalldirs
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/libgcc.a
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/libgcc_eh.a
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/libgcov.a
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/liblto_plugin.la
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/liblto_plugin.so
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/liblto_plugin.so.0
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/liblto_plugin.so.0.0.0
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/lto-wrapper
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/lto1
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/gengtype
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/gtype.state
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ada
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ada/gcc-interface
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ada/gcc-interface/ada-tree.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/addresses.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/alias.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/all-tree.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/alloc-pool.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ansidecl.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/asan.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/attribs.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/auto-host.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/auto-profile.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/b-header-vars
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/backend.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/basic-block.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/bb-reorder.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/bitmap.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/builtin-attrs.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/builtin-types.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/builtins.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/builtins.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/bversion.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/c-family
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/c-family/c-common.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/c-family/c-common.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/c-family/c-objc.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/c-family/c-pragma.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/c-family/c-pretty-print.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/c-tree.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/calls.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ccmp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cfg-flags.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cfg.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cfganal.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cfgbuild.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cfgcleanup.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cfgexpand.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cfghooks.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cfgloop.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cfgloopmanip.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cfgrtl.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cgraph.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/chkp-builtins.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cif-code.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cilk-builtins.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cilk.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cilkplus.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/collect-utils.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/collect2-aix.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/collect2.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/conditions.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/aarch-common-protos.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/aout.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/arm-cores.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/arm-opts.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/arm-protos.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/arm.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/bpabi.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/elf.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/linux-eabi.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/linux-elf.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/arm/linux-gas.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/dbxelf.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/elfos.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/glibc-stdint.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/gnu-user.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/initfini-array.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/linux-android.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/linux-protos.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/linux.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/config/vxworks-dummy.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/configargs.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/context.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/convert.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/coretypes.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/coverage.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cp
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cp/cp-tree.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cp/cp-tree.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cp/cxx-pretty-print.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cp/name-lookup.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cp/type-utils.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cppbuiltin.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cppdefault.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cpplib.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/cselib.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/data-streamer.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/dbgcnt.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/dbgcnt.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/dbxout.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/dce.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ddg.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/debug.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/defaults.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/df.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/dfp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/diagnostic-color.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/diagnostic-core.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/diagnostic.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/diagnostic.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/dojump.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/dominance.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/domwalk.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/double-int.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/dumpfile.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/dwarf2asm.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/dwarf2out.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/emit-rtl.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/errors.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/et-forest.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/except.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/explow.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/expmed.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/expr.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/fibonacci_heap.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/file-find.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/filenames.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/fixed-value.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/flag-types.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/flags.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/fold-const-call.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/fold-const.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/function.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gcc-plugin.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gcc-rich-location.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gcc-symtab.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gcc.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gcov-counter.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gcov-io.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gcse-common.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gcse.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/generic-match.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gengtype.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/genrtl.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gensupport.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ggc-internal.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ggc.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-builder.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-expr.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-fold.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-iterator.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-low.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-match.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-predict.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-pretty-print.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-ssa.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-streamer.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple-walk.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimple.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimplify-me.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gimplify.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/glimits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/graph.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/graphds.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/graphite.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gsstruct.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gstab.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gsyms.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gsyslimits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gtm-builtins.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/gtype-desc.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hard-reg-set.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hash-map-traits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hash-map.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hash-set.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hash-table.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hash-traits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hashtab.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/highlev-plugin-common.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hooks.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hosthooks-def.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hosthooks.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hsa-brig-format.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hsa.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hw-doloop.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/hwint.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ifcvt.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/inchash.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/incpath.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/input.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/insn-addr.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/insn-codes.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/insn-constants.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/insn-flags.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/insn-modes.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/insn-notes.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/internal-fn.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/internal-fn.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/intl.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ipa-chkp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ipa-icf-gimple.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ipa-icf.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ipa-inline.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ipa-prop.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ipa-ref.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ipa-reference.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ipa-utils.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ira-int.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ira.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/is-a.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/java
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/java/java-tree.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/langhooks-def.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/langhooks.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/lcm.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/libfuncs.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/libiberty.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/limitx.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/limity.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/line-map.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/loop-unroll.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/lower-subreg.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/lra-int.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/lra.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/lto-compress.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/lto-section-names.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/lto-streamer.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/machmode.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/machmode.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/md5.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/mem-stats-traits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/mem-stats.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/memory-block.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/mode-classes.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/objc
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/objc/objc-tree.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/obstack.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/omp-builtins.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/omp-low.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/optabs-libfuncs.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/optabs-query.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/optabs-tree.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/optabs.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/optabs.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/options.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/opts-diagnostic.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/opts.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/output.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/params-enum.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/params-list.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/params.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/params.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/params.list
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/pass-instances.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/pass_manager.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/passes.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/plugin-api.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/plugin-version.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/plugin.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/plugin.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/predict.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/predict.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/prefix.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/pretty-print.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/print-rtl.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/print-tree.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/profile.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/read-md.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/real.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/realmpfr.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/recog.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/reg-notes.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/regcprop.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/regrename.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/regs.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/regset.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/reload.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/resource.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/rtl-chkp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/rtl-error.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/rtl-iter.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/rtl.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/rtl.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/rtlhash.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/rtlhooks-def.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/safe-ctype.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sanitizer.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sbitmap.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sched-int.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sdbout.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sel-sched-dump.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sel-sched-ir.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sel-sched.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sese.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/shrink-wrap.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/signop.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sparseset.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/spellcheck.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/splay-tree.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sreal.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ssa-iterators.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ssa.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/stab.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/statistics.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/stmt.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/stor-layout.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/streamer-hooks.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/stringpool.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/symbol-summary.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/symtab.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/sync-builtins.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/system.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/target-def.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/target-globals.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/target-hooks-macros.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/target-insns.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/target.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/target.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/targhooks.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/timevar.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/timevar.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tm-preds.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tm.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tm_p.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/toplev.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tracer.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/trans-mem.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-affine.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-cfg.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-cfgcleanup.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-check.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-chkp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-chrec.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-core.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-data-ref.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-dfa.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-diagnostic.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-dump.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-eh.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-hash-traits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-hasher.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-inline.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-into-ssa.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-iterator.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-nested.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-object-size.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-outof-ssa.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-parloops.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-pass.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-phinodes.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-pretty-print.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-scalar-evolution.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-address.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-alias.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-coalesce.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-dom.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-live.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-loop-ivopts.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-loop-manip.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-loop-niter.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-loop.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-operands.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-propagate.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-sccvn.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-scopedtables.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-ter.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-threadbackward.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-threadedge.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa-threadupdate.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssa.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-ssanames.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-stdarg.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-streamer.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree-vectorizer.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tree.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/treestruct.def
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tsan.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/tsystem.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/typeclass.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/typed-splay-tree.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/ubsan.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/valtrack.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/value-prof.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/varasm.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/vec.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/version.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/vmsdbg.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/vtable-verify.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/wide-int-print.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/wide-int.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/xcoff.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/include/xcoffout.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/libcc1plugin.la
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/libcc1plugin.so
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/libcc1plugin.so.0
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/6.3.0/plugin/libcc1plugin.so.0.0.0
 #usr/lib/libasan.a
 #usr/lib/libasan.la
 #usr/lib/libasan.so
-usr/lib/libasan.so.1
-usr/lib/libasan.so.1.0.0
+usr/lib/libasan.so.3
+usr/lib/libasan.so.3.0.0
 #usr/lib/libasan_preinit.o
 #usr/lib/libatomic.a
 #usr/lib/libatomic.la
 #usr/lib/libatomic.so
 usr/lib/libatomic.so.1
-usr/lib/libatomic.so.1.1.0
+usr/lib/libatomic.so.1.2.0
+#usr/lib/libcc1.la
+#usr/lib/libcc1.so
+usr/lib/libcc1.so.0
+usr/lib/libcc1.so.0.0.0
 #usr/lib/libgomp.a
 #usr/lib/libgomp.la
 #usr/lib/libgomp.so
@@ -1058,8 +1289,9 @@ usr/lib/libssp.so.0.0.0
 #usr/lib/libssp_nonshared.a
 #usr/lib/libssp_nonshared.la
 #usr/lib/libstdc++.a
-usr/lib/libstdc++.so.6.0.20
-#usr/lib/libstdc++.so.6.0.20-gdb.py
+usr/lib/libstdc++.so.6.0.22
+#usr/lib/libstdc++fs.a
+#usr/lib/libstdc++fs.la
 #usr/lib/libsupc++.a
 #usr/lib/libsupc++.la
 #usr/lib/libubsan.a
@@ -1067,13 +1299,14 @@ usr/lib/libstdc++.so.6.0.20
 #usr/lib/libubsan.so
 usr/lib/libubsan.so.0
 usr/lib/libubsan.so.0.0.0
-#usr/share/gcc-4.9.3
-#usr/share/gcc-4.9.3/python
-#usr/share/gcc-4.9.3/python/libstdcxx
-#usr/share/gcc-4.9.3/python/libstdcxx/__init__.py
-#usr/share/gcc-4.9.3/python/libstdcxx/v6
-#usr/share/gcc-4.9.3/python/libstdcxx/v6/__init__.py
-#usr/share/gcc-4.9.3/python/libstdcxx/v6/printers.py
+#usr/share/gcc-6.3.0
+#usr/share/gcc-6.3.0/python
+#usr/share/gcc-6.3.0/python/libstdcxx
+#usr/share/gcc-6.3.0/python/libstdcxx/__init__.py
+#usr/share/gcc-6.3.0/python/libstdcxx/v6
+#usr/share/gcc-6.3.0/python/libstdcxx/v6/__init__.py
+#usr/share/gcc-6.3.0/python/libstdcxx/v6/printers.py
+#usr/share/gcc-6.3.0/python/libstdcxx/v6/xmethods.py
 #usr/share/info/cpp.info
 #usr/share/info/cppinternals.info
 #usr/share/info/gcc.info
index d4626a3beef87b899e5c4980319dadfc55515a07..88e2868ff7ff7cf896fe42575e98fecc932e58fa 100644 (file)
@@ -1,48 +1,49 @@
 #etc/ld.so.cache
-etc/localtime
 etc/rpc
-lib/ld-2.12.so
+lib/ld-2.25.so
 lib/ld-linux.so.3
-lib/libBrokenLocale-2.12.so
+lib/libBrokenLocale-2.25.so
 lib/libBrokenLocale.so.1
 #lib/libSegFault.so
-lib/libanl-2.12.so
+lib/libanl-2.25.so
 lib/libanl.so.1
-lib/libc-2.12.so
+lib/libc-2.25.so
 lib/libc.so.6
-lib/libcidn-2.12.so
+lib/libcidn-2.25.so
 lib/libcidn.so.1
-lib/libcrypt-2.12.so
+lib/libcrypt-2.25.so
 lib/libcrypt.so.1
-lib/libdl-2.12.so
+lib/libdl-2.25.so
 lib/libdl.so.2
-lib/libm-2.12.so
+lib/libm-2.25.so
 lib/libm.so.6
 #lib/libmemusage.so
-lib/libnsl-2.12.so
+lib/libnsl-2.25.so
 lib/libnsl.so.1
-lib/libnss_compat-2.12.so
+lib/libnss_compat-2.25.so
 lib/libnss_compat.so.2
-lib/libnss_dns-2.12.so
+lib/libnss_db-2.25.so
+lib/libnss_db.so.2
+lib/libnss_dns-2.25.so
 lib/libnss_dns.so.2
-lib/libnss_files-2.12.so
+lib/libnss_files-2.25.so
 lib/libnss_files.so.2
-lib/libnss_hesiod-2.12.so
+lib/libnss_hesiod-2.25.so
 lib/libnss_hesiod.so.2
-lib/libnss_nis-2.12.so
+lib/libnss_nis-2.25.so
 lib/libnss_nis.so.2
-lib/libnss_nisplus-2.12.so
+lib/libnss_nisplus-2.25.so
 lib/libnss_nisplus.so.2
 #lib/libpcprofile.so
-lib/libpthread-2.12.so
+lib/libpthread-2.25.so
 lib/libpthread.so.0
-lib/libresolv-2.12.so
+lib/libresolv-2.25.so
 lib/libresolv.so.2
-lib/librt-2.12.so
+lib/librt-2.25.so
 lib/librt.so.1
 lib/libthread_db-1.0.so
 lib/libthread_db.so.1
-lib/libutil-2.12.so
+lib/libutil-2.25.so
 lib/libutil.so.1
 sbin/ldconfig
 #sbin/sln
@@ -54,9 +55,12 @@ usr/bin/getent
 usr/bin/ldd
 usr/bin/locale
 #usr/bin/localedef
+#usr/bin/makedb
 #usr/bin/mtrace
 #usr/bin/pcprofiledump
+#usr/bin/pldd
 #usr/bin/rpcgen
+#usr/bin/sotruss
 #usr/bin/sprof
 #usr/bin/tzselect
 #usr/bin/xtrace
@@ -78,6 +82,7 @@ usr/bin/locale
 #usr/include/assert.h
 #usr/include/bits
 #usr/include/bits/a.out.h
+#usr/include/bits/byteswap-16.h
 #usr/include/bits/byteswap.h
 #usr/include/bits/cmathcalls.h
 #usr/include/bits/confname.h
@@ -86,30 +91,44 @@ usr/bin/locale
 #usr/include/bits/elfclass.h
 #usr/include/bits/endian.h
 #usr/include/bits/environments.h
+#usr/include/bits/epoll.h
 #usr/include/bits/errno.h
 #usr/include/bits/error.h
+#usr/include/bits/eventfd.h
+#usr/include/bits/fcntl-linux.h
 #usr/include/bits/fcntl.h
 #usr/include/bits/fcntl2.h
 #usr/include/bits/fenv.h
 #usr/include/bits/fenvinline.h
+#usr/include/bits/flt-eval-method.h
+#usr/include/bits/fp-fast.h
+#usr/include/bits/fp-logb.h
 #usr/include/bits/huge_val.h
 #usr/include/bits/huge_valf.h
 #usr/include/bits/huge_vall.h
+#usr/include/bits/hwcap.h
 #usr/include/bits/in.h
 #usr/include/bits/inf.h
 #usr/include/bits/initspin.h
+#usr/include/bits/inotify.h
 #usr/include/bits/ioctl-types.h
 #usr/include/bits/ioctls.h
 #usr/include/bits/ipc.h
 #usr/include/bits/ipctypes.h
-#usr/include/bits/libc-lock.h
+#usr/include/bits/iscanonical.h
+#usr/include/bits/libc-header-start.h
 #usr/include/bits/libio-ldbl.h
+#usr/include/bits/libm-simd-decl-stubs.h
 #usr/include/bits/link.h
 #usr/include/bits/local_lim.h
 #usr/include/bits/locale.h
+#usr/include/bits/long-double.h
+#usr/include/bits/math-finite.h
+#usr/include/bits/math-vector.h
 #usr/include/bits/mathcalls.h
 #usr/include/bits/mathdef.h
 #usr/include/bits/mathinline.h
+#usr/include/bits/mman-linux.h
 #usr/include/bits/mman.h
 #usr/include/bits/monetary-ldbl.h
 #usr/include/bits/mqueue.h
@@ -117,7 +136,9 @@ usr/bin/locale
 #usr/include/bits/msq.h
 #usr/include/bits/nan.h
 #usr/include/bits/netdb.h
+#usr/include/bits/param.h
 #usr/include/bits/poll.h
+#usr/include/bits/poll2.h
 #usr/include/bits/posix1_lim.h
 #usr/include/bits/posix2_lim.h
 #usr/include/bits/posix_opt.h
@@ -126,6 +147,7 @@ usr/bin/locale
 #usr/include/bits/resource.h
 #usr/include/bits/sched.h
 #usr/include/bits/select.h
+#usr/include/bits/select2.h
 #usr/include/bits/sem.h
 #usr/include/bits/semaphore.h
 #usr/include/bits/setjmp.h
@@ -134,6 +156,7 @@ usr/bin/locale
 #usr/include/bits/sigaction.h
 #usr/include/bits/sigcontext.h
 #usr/include/bits/siginfo.h
+#usr/include/bits/signalfd.h
 #usr/include/bits/signum.h
 #usr/include/bits/sigset.h
 #usr/include/bits/sigstack.h
@@ -141,29 +164,48 @@ usr/bin/locale
 #usr/include/bits/sockaddr.h
 #usr/include/bits/socket.h
 #usr/include/bits/socket2.h
+#usr/include/bits/socket_type.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-bsearch.h
+#usr/include/bits/stdlib-float.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/strings_fortified.h
+#usr/include/bits/stropts.h
 #usr/include/bits/sys_errlist.h
 #usr/include/bits/syscall.h
+#usr/include/bits/sysctl.h
 #usr/include/bits/syslog-ldbl.h
 #usr/include/bits/syslog-path.h
 #usr/include/bits/syslog.h
+#usr/include/bits/sysmacros.h
 #usr/include/bits/termios.h
 #usr/include/bits/time.h
+#usr/include/bits/timerfd.h
+#usr/include/bits/timex.h
+#usr/include/bits/types
 #usr/include/bits/types.h
+#usr/include/bits/types/clock_t.h
+#usr/include/bits/types/clockid_t.h
+#usr/include/bits/types/struct_itimerspec.h
+#usr/include/bits/types/struct_osockaddr.h
+#usr/include/bits/types/struct_timespec.h
+#usr/include/bits/types/struct_timeval.h
+#usr/include/bits/types/struct_tm.h
+#usr/include/bits/types/time_t.h
+#usr/include/bits/types/timer_t.h
 #usr/include/bits/typesizes.h
+#usr/include/bits/uintn-identity.h
 #usr/include/bits/uio.h
 #usr/include/bits/unistd.h
 #usr/include/bits/ustat.h
@@ -177,6 +219,7 @@ usr/bin/locale
 #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
@@ -205,8 +248,10 @@ usr/bin/locale
 #usr/include/glob.h
 #usr/include/gnu
 #usr/include/gnu-versions.h
+#usr/include/gnu/lib-names-soft.h
 #usr/include/gnu/lib-names.h
 #usr/include/gnu/libc-version.h
+#usr/include/gnu/stubs-soft.h
 #usr/include/gnu/stubs.h
 #usr/include/grp.h
 #usr/include/gshadow.h
@@ -281,6 +326,7 @@ usr/bin/locale
 #usr/include/paths.h
 #usr/include/poll.h
 #usr/include/printf.h
+#usr/include/proc_service.h
 #usr/include/protocols
 #usr/include/protocols/routed.h
 #usr/include/protocols/rwhod.h
@@ -363,14 +409,17 @@ usr/bin/locale
 #usr/include/signal.h
 #usr/include/spawn.h
 #usr/include/stab.h
+#usr/include/stdc-predef.h
 #usr/include/stdint.h
 #usr/include/stdio.h
 #usr/include/stdio_ext.h
 #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/auxv.h
 #usr/include/sys/bitypes.h
 #usr/include/sys/cdefs.h
 #usr/include/sys/dir.h
@@ -378,6 +427,7 @@ usr/bin/locale
 #usr/include/sys/epoll.h
 #usr/include/sys/errno.h
 #usr/include/sys/eventfd.h
+#usr/include/sys/fanotify.h
 #usr/include/sys/fcntl.h
 #usr/include/sys/file.h
 #usr/include/sys/fsuid.h
@@ -388,7 +438,6 @@ usr/bin/locale
 #usr/include/sys/ioctl.h
 #usr/include/sys/ipc.h
 #usr/include/sys/kd.h
-#usr/include/sys/kdaemon.h
 #usr/include/sys/klog.h
 #usr/include/sys/mman.h
 #usr/include/sys/mount.h
@@ -404,6 +453,7 @@ usr/bin/locale
 #usr/include/sys/ptrace.h
 #usr/include/sys/queue.h
 #usr/include/sys/quota.h
+#usr/include/sys/random.h
 #usr/include/sys/raw.h
 #usr/include/sys/reboot.h
 #usr/include/sys/resource.h
@@ -419,6 +469,7 @@ usr/bin/locale
 #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
@@ -458,6 +509,7 @@ usr/bin/locale
 #usr/include/thread_db.h
 #usr/include/time.h
 #usr/include/ttyent.h
+#usr/include/uchar.h
 #usr/include/ucontext.h
 #usr/include/ulimit.h
 #usr/include/unistd.h
@@ -473,6 +525,8 @@ usr/bin/locale
 #usr/include/xlocale.h
 #usr/lib/Mcrt1.o
 #usr/lib/Scrt1.o
+#usr/lib/audit
+#usr/lib/audit/sotruss-lib.so
 #usr/lib/crt1.o
 #usr/lib/crti.o
 #usr/lib/crtn.o
@@ -495,6 +549,11 @@ usr/lib/gconv
 #usr/lib/gconv/CP1257.so
 #usr/lib/gconv/CP1258.so
 #usr/lib/gconv/CP737.so
+#usr/lib/gconv/CP770.so
+#usr/lib/gconv/CP771.so
+#usr/lib/gconv/CP772.so
+#usr/lib/gconv/CP773.so
+#usr/lib/gconv/CP774.so
 #usr/lib/gconv/CP775.so
 #usr/lib/gconv/CP932.so
 #usr/lib/gconv/CSN_369103.so
@@ -732,12 +791,12 @@ usr/lib/gconv
 #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/glibc/getconf/XBS5_ILP32_OFF32
+#usr/lib/glibc/getconf/XBS5_ILP32_OFFBIG
 #usr/lib/libBrokenLocale.a
 #usr/lib/libBrokenLocale.so
 #usr/lib/libanl.a
 #usr/lib/libanl.so
-#usr/lib/libbsd-compat.a
 #usr/lib/libc.a
 #usr/lib/libc.so
 #usr/lib/libc_nonshared.a
@@ -754,6 +813,7 @@ usr/lib/gconv
 #usr/lib/libnsl.a
 #usr/lib/libnsl.so
 #usr/lib/libnss_compat.so
+#usr/lib/libnss_db.so
 #usr/lib/libnss_dns.so
 #usr/lib/libnss_files.so
 #usr/lib/libnss_hesiod.so
@@ -869,6 +929,20 @@ usr/lib/locale
 #usr/lib/locale/af_ZA/LC_PAPER
 #usr/lib/locale/af_ZA/LC_TELEPHONE
 #usr/lib/locale/af_ZA/LC_TIME
+#usr/lib/locale/ak_GH
+#usr/lib/locale/ak_GH/LC_ADDRESS
+#usr/lib/locale/ak_GH/LC_COLLATE
+#usr/lib/locale/ak_GH/LC_CTYPE
+#usr/lib/locale/ak_GH/LC_IDENTIFICATION
+#usr/lib/locale/ak_GH/LC_MEASUREMENT
+#usr/lib/locale/ak_GH/LC_MESSAGES
+#usr/lib/locale/ak_GH/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ak_GH/LC_MONETARY
+#usr/lib/locale/ak_GH/LC_NAME
+#usr/lib/locale/ak_GH/LC_NUMERIC
+#usr/lib/locale/ak_GH/LC_PAPER
+#usr/lib/locale/ak_GH/LC_TELEPHONE
+#usr/lib/locale/ak_GH/LC_TIME
 #usr/lib/locale/am_ET
 #usr/lib/locale/am_ET/LC_ADDRESS
 #usr/lib/locale/am_ET/LC_COLLATE
@@ -911,6 +985,20 @@ usr/lib/locale
 #usr/lib/locale/an_ES/LC_PAPER
 #usr/lib/locale/an_ES/LC_TELEPHONE
 #usr/lib/locale/an_ES/LC_TIME
+#usr/lib/locale/anp_IN
+#usr/lib/locale/anp_IN/LC_ADDRESS
+#usr/lib/locale/anp_IN/LC_COLLATE
+#usr/lib/locale/anp_IN/LC_CTYPE
+#usr/lib/locale/anp_IN/LC_IDENTIFICATION
+#usr/lib/locale/anp_IN/LC_MEASUREMENT
+#usr/lib/locale/anp_IN/LC_MESSAGES
+#usr/lib/locale/anp_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/anp_IN/LC_MONETARY
+#usr/lib/locale/anp_IN/LC_NAME
+#usr/lib/locale/anp_IN/LC_NUMERIC
+#usr/lib/locale/anp_IN/LC_PAPER
+#usr/lib/locale/anp_IN/LC_TELEPHONE
+#usr/lib/locale/anp_IN/LC_TIME
 #usr/lib/locale/ar_AE
 #usr/lib/locale/ar_AE.utf8
 #usr/lib/locale/ar_AE.utf8/LC_ADDRESS
@@ -1317,6 +1405,20 @@ usr/lib/locale
 #usr/lib/locale/ar_SD/LC_PAPER
 #usr/lib/locale/ar_SD/LC_TELEPHONE
 #usr/lib/locale/ar_SD/LC_TIME
+#usr/lib/locale/ar_SS
+#usr/lib/locale/ar_SS/LC_ADDRESS
+#usr/lib/locale/ar_SS/LC_COLLATE
+#usr/lib/locale/ar_SS/LC_CTYPE
+#usr/lib/locale/ar_SS/LC_IDENTIFICATION
+#usr/lib/locale/ar_SS/LC_MEASUREMENT
+#usr/lib/locale/ar_SS/LC_MESSAGES
+#usr/lib/locale/ar_SS/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ar_SS/LC_MONETARY
+#usr/lib/locale/ar_SS/LC_NAME
+#usr/lib/locale/ar_SS/LC_NUMERIC
+#usr/lib/locale/ar_SS/LC_PAPER
+#usr/lib/locale/ar_SS/LC_TELEPHONE
+#usr/lib/locale/ar_SS/LC_TIME
 #usr/lib/locale/ar_SY
 #usr/lib/locale/ar_SY.utf8
 #usr/lib/locale/ar_SY.utf8/LC_ADDRESS
@@ -1443,6 +1545,20 @@ usr/lib/locale
 #usr/lib/locale/ast_ES/LC_PAPER
 #usr/lib/locale/ast_ES/LC_TELEPHONE
 #usr/lib/locale/ast_ES/LC_TIME
+#usr/lib/locale/ayc_PE
+#usr/lib/locale/ayc_PE/LC_ADDRESS
+#usr/lib/locale/ayc_PE/LC_COLLATE
+#usr/lib/locale/ayc_PE/LC_CTYPE
+#usr/lib/locale/ayc_PE/LC_IDENTIFICATION
+#usr/lib/locale/ayc_PE/LC_MEASUREMENT
+#usr/lib/locale/ayc_PE/LC_MESSAGES
+#usr/lib/locale/ayc_PE/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ayc_PE/LC_MONETARY
+#usr/lib/locale/ayc_PE/LC_NAME
+#usr/lib/locale/ayc_PE/LC_NUMERIC
+#usr/lib/locale/ayc_PE/LC_PAPER
+#usr/lib/locale/ayc_PE/LC_TELEPHONE
+#usr/lib/locale/ayc_PE/LC_TIME
 #usr/lib/locale/az_AZ
 #usr/lib/locale/az_AZ/LC_ADDRESS
 #usr/lib/locale/az_AZ/LC_COLLATE
@@ -1499,6 +1615,20 @@ usr/lib/locale
 #usr/lib/locale/be_BY@latin/LC_PAPER
 #usr/lib/locale/be_BY@latin/LC_TELEPHONE
 #usr/lib/locale/be_BY@latin/LC_TIME
+#usr/lib/locale/bem_ZM
+#usr/lib/locale/bem_ZM/LC_ADDRESS
+#usr/lib/locale/bem_ZM/LC_COLLATE
+#usr/lib/locale/bem_ZM/LC_CTYPE
+#usr/lib/locale/bem_ZM/LC_IDENTIFICATION
+#usr/lib/locale/bem_ZM/LC_MEASUREMENT
+#usr/lib/locale/bem_ZM/LC_MESSAGES
+#usr/lib/locale/bem_ZM/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/bem_ZM/LC_MONETARY
+#usr/lib/locale/bem_ZM/LC_NAME
+#usr/lib/locale/bem_ZM/LC_NUMERIC
+#usr/lib/locale/bem_ZM/LC_PAPER
+#usr/lib/locale/bem_ZM/LC_TELEPHONE
+#usr/lib/locale/bem_ZM/LC_TIME
 #usr/lib/locale/ber_DZ
 #usr/lib/locale/ber_DZ/LC_ADDRESS
 #usr/lib/locale/ber_DZ/LC_COLLATE
@@ -1555,6 +1685,34 @@ usr/lib/locale
 #usr/lib/locale/bg_BG/LC_PAPER
 #usr/lib/locale/bg_BG/LC_TELEPHONE
 #usr/lib/locale/bg_BG/LC_TIME
+#usr/lib/locale/bhb_IN.utf8
+#usr/lib/locale/bhb_IN.utf8/LC_ADDRESS
+#usr/lib/locale/bhb_IN.utf8/LC_COLLATE
+#usr/lib/locale/bhb_IN.utf8/LC_CTYPE
+#usr/lib/locale/bhb_IN.utf8/LC_IDENTIFICATION
+#usr/lib/locale/bhb_IN.utf8/LC_MEASUREMENT
+#usr/lib/locale/bhb_IN.utf8/LC_MESSAGES
+#usr/lib/locale/bhb_IN.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/bhb_IN.utf8/LC_MONETARY
+#usr/lib/locale/bhb_IN.utf8/LC_NAME
+#usr/lib/locale/bhb_IN.utf8/LC_NUMERIC
+#usr/lib/locale/bhb_IN.utf8/LC_PAPER
+#usr/lib/locale/bhb_IN.utf8/LC_TELEPHONE
+#usr/lib/locale/bhb_IN.utf8/LC_TIME
+#usr/lib/locale/bho_IN
+#usr/lib/locale/bho_IN/LC_ADDRESS
+#usr/lib/locale/bho_IN/LC_COLLATE
+#usr/lib/locale/bho_IN/LC_CTYPE
+#usr/lib/locale/bho_IN/LC_IDENTIFICATION
+#usr/lib/locale/bho_IN/LC_MEASUREMENT
+#usr/lib/locale/bho_IN/LC_MESSAGES
+#usr/lib/locale/bho_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/bho_IN/LC_MONETARY
+#usr/lib/locale/bho_IN/LC_NAME
+#usr/lib/locale/bho_IN/LC_NUMERIC
+#usr/lib/locale/bho_IN/LC_PAPER
+#usr/lib/locale/bho_IN/LC_TELEPHONE
+#usr/lib/locale/bho_IN/LC_TIME
 #usr/lib/locale/bn_BD
 #usr/lib/locale/bn_BD/LC_ADDRESS
 #usr/lib/locale/bn_BD/LC_COLLATE
@@ -1653,6 +1811,20 @@ usr/lib/locale
 #usr/lib/locale/br_FR@euro/LC_PAPER
 #usr/lib/locale/br_FR@euro/LC_TELEPHONE
 #usr/lib/locale/br_FR@euro/LC_TIME
+#usr/lib/locale/brx_IN
+#usr/lib/locale/brx_IN/LC_ADDRESS
+#usr/lib/locale/brx_IN/LC_COLLATE
+#usr/lib/locale/brx_IN/LC_CTYPE
+#usr/lib/locale/brx_IN/LC_IDENTIFICATION
+#usr/lib/locale/brx_IN/LC_MEASUREMENT
+#usr/lib/locale/brx_IN/LC_MESSAGES
+#usr/lib/locale/brx_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/brx_IN/LC_MONETARY
+#usr/lib/locale/brx_IN/LC_NAME
+#usr/lib/locale/brx_IN/LC_NUMERIC
+#usr/lib/locale/brx_IN/LC_PAPER
+#usr/lib/locale/brx_IN/LC_TELEPHONE
+#usr/lib/locale/brx_IN/LC_TIME
 #usr/lib/locale/bs_BA
 #usr/lib/locale/bs_BA.utf8
 #usr/lib/locale/bs_BA.utf8/LC_ADDRESS
@@ -1821,6 +1993,48 @@ usr/lib/locale
 #usr/lib/locale/ca_IT/LC_PAPER
 #usr/lib/locale/ca_IT/LC_TELEPHONE
 #usr/lib/locale/ca_IT/LC_TIME
+#usr/lib/locale/ce_RU
+#usr/lib/locale/ce_RU/LC_ADDRESS
+#usr/lib/locale/ce_RU/LC_COLLATE
+#usr/lib/locale/ce_RU/LC_CTYPE
+#usr/lib/locale/ce_RU/LC_IDENTIFICATION
+#usr/lib/locale/ce_RU/LC_MEASUREMENT
+#usr/lib/locale/ce_RU/LC_MESSAGES
+#usr/lib/locale/ce_RU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ce_RU/LC_MONETARY
+#usr/lib/locale/ce_RU/LC_NAME
+#usr/lib/locale/ce_RU/LC_NUMERIC
+#usr/lib/locale/ce_RU/LC_PAPER
+#usr/lib/locale/ce_RU/LC_TELEPHONE
+#usr/lib/locale/ce_RU/LC_TIME
+#usr/lib/locale/chr_US
+#usr/lib/locale/chr_US/LC_ADDRESS
+#usr/lib/locale/chr_US/LC_COLLATE
+#usr/lib/locale/chr_US/LC_CTYPE
+#usr/lib/locale/chr_US/LC_IDENTIFICATION
+#usr/lib/locale/chr_US/LC_MEASUREMENT
+#usr/lib/locale/chr_US/LC_MESSAGES
+#usr/lib/locale/chr_US/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/chr_US/LC_MONETARY
+#usr/lib/locale/chr_US/LC_NAME
+#usr/lib/locale/chr_US/LC_NUMERIC
+#usr/lib/locale/chr_US/LC_PAPER
+#usr/lib/locale/chr_US/LC_TELEPHONE
+#usr/lib/locale/chr_US/LC_TIME
+#usr/lib/locale/cmn_TW
+#usr/lib/locale/cmn_TW/LC_ADDRESS
+#usr/lib/locale/cmn_TW/LC_COLLATE
+#usr/lib/locale/cmn_TW/LC_CTYPE
+#usr/lib/locale/cmn_TW/LC_IDENTIFICATION
+#usr/lib/locale/cmn_TW/LC_MEASUREMENT
+#usr/lib/locale/cmn_TW/LC_MESSAGES
+#usr/lib/locale/cmn_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/cmn_TW/LC_MONETARY
+#usr/lib/locale/cmn_TW/LC_NAME
+#usr/lib/locale/cmn_TW/LC_NUMERIC
+#usr/lib/locale/cmn_TW/LC_PAPER
+#usr/lib/locale/cmn_TW/LC_TELEPHONE
+#usr/lib/locale/cmn_TW/LC_TIME
 #usr/lib/locale/crh_UA
 #usr/lib/locale/crh_UA/LC_ADDRESS
 #usr/lib/locale/crh_UA/LC_COLLATE
@@ -1920,20 +2134,6 @@ usr/lib/locale
 #usr/lib/locale/cy_GB/LC_TELEPHONE
 #usr/lib/locale/cy_GB/LC_TIME
 #usr/lib/locale/da_DK
-#usr/lib/locale/da_DK.iso885915
-#usr/lib/locale/da_DK.iso885915/LC_ADDRESS
-#usr/lib/locale/da_DK.iso885915/LC_COLLATE
-#usr/lib/locale/da_DK.iso885915/LC_CTYPE
-#usr/lib/locale/da_DK.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/da_DK.iso885915/LC_MEASUREMENT
-#usr/lib/locale/da_DK.iso885915/LC_MESSAGES
-#usr/lib/locale/da_DK.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/da_DK.iso885915/LC_MONETARY
-#usr/lib/locale/da_DK.iso885915/LC_NAME
-#usr/lib/locale/da_DK.iso885915/LC_NUMERIC
-#usr/lib/locale/da_DK.iso885915/LC_PAPER
-#usr/lib/locale/da_DK.iso885915/LC_TELEPHONE
-#usr/lib/locale/da_DK.iso885915/LC_TIME
 #usr/lib/locale/da_DK.utf8
 #usr/lib/locale/da_DK.utf8/LC_ADDRESS
 #usr/lib/locale/da_DK.utf8/LC_COLLATE
@@ -2115,6 +2315,48 @@ usr/lib/locale
 #usr/lib/locale/de_DE@euro/LC_PAPER
 #usr/lib/locale/de_DE@euro/LC_TELEPHONE
 #usr/lib/locale/de_DE@euro/LC_TIME
+#usr/lib/locale/de_IT
+#usr/lib/locale/de_IT.utf8
+#usr/lib/locale/de_IT.utf8/LC_ADDRESS
+#usr/lib/locale/de_IT.utf8/LC_COLLATE
+#usr/lib/locale/de_IT.utf8/LC_CTYPE
+#usr/lib/locale/de_IT.utf8/LC_IDENTIFICATION
+#usr/lib/locale/de_IT.utf8/LC_MEASUREMENT
+#usr/lib/locale/de_IT.utf8/LC_MESSAGES
+#usr/lib/locale/de_IT.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/de_IT.utf8/LC_MONETARY
+#usr/lib/locale/de_IT.utf8/LC_NAME
+#usr/lib/locale/de_IT.utf8/LC_NUMERIC
+#usr/lib/locale/de_IT.utf8/LC_PAPER
+#usr/lib/locale/de_IT.utf8/LC_TELEPHONE
+#usr/lib/locale/de_IT.utf8/LC_TIME
+#usr/lib/locale/de_IT/LC_ADDRESS
+#usr/lib/locale/de_IT/LC_COLLATE
+#usr/lib/locale/de_IT/LC_CTYPE
+#usr/lib/locale/de_IT/LC_IDENTIFICATION
+#usr/lib/locale/de_IT/LC_MEASUREMENT
+#usr/lib/locale/de_IT/LC_MESSAGES
+#usr/lib/locale/de_IT/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/de_IT/LC_MONETARY
+#usr/lib/locale/de_IT/LC_NAME
+#usr/lib/locale/de_IT/LC_NUMERIC
+#usr/lib/locale/de_IT/LC_PAPER
+#usr/lib/locale/de_IT/LC_TELEPHONE
+#usr/lib/locale/de_IT/LC_TIME
+#usr/lib/locale/de_LI.utf8
+#usr/lib/locale/de_LI.utf8/LC_ADDRESS
+#usr/lib/locale/de_LI.utf8/LC_COLLATE
+#usr/lib/locale/de_LI.utf8/LC_CTYPE
+#usr/lib/locale/de_LI.utf8/LC_IDENTIFICATION
+#usr/lib/locale/de_LI.utf8/LC_MEASUREMENT
+#usr/lib/locale/de_LI.utf8/LC_MESSAGES
+#usr/lib/locale/de_LI.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/de_LI.utf8/LC_MONETARY
+#usr/lib/locale/de_LI.utf8/LC_NAME
+#usr/lib/locale/de_LI.utf8/LC_NUMERIC
+#usr/lib/locale/de_LI.utf8/LC_PAPER
+#usr/lib/locale/de_LI.utf8/LC_TELEPHONE
+#usr/lib/locale/de_LI.utf8/LC_TIME
 #usr/lib/locale/de_LU
 #usr/lib/locale/de_LU.utf8
 #usr/lib/locale/de_LU.utf8/LC_ADDRESS
@@ -2157,6 +2399,20 @@ usr/lib/locale
 #usr/lib/locale/de_LU@euro/LC_PAPER
 #usr/lib/locale/de_LU@euro/LC_TELEPHONE
 #usr/lib/locale/de_LU@euro/LC_TIME
+#usr/lib/locale/doi_IN
+#usr/lib/locale/doi_IN/LC_ADDRESS
+#usr/lib/locale/doi_IN/LC_COLLATE
+#usr/lib/locale/doi_IN/LC_CTYPE
+#usr/lib/locale/doi_IN/LC_IDENTIFICATION
+#usr/lib/locale/doi_IN/LC_MEASUREMENT
+#usr/lib/locale/doi_IN/LC_MESSAGES
+#usr/lib/locale/doi_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/doi_IN/LC_MONETARY
+#usr/lib/locale/doi_IN/LC_NAME
+#usr/lib/locale/doi_IN/LC_NUMERIC
+#usr/lib/locale/doi_IN/LC_PAPER
+#usr/lib/locale/doi_IN/LC_TELEPHONE
+#usr/lib/locale/doi_IN/LC_TIME
 #usr/lib/locale/dv_MV
 #usr/lib/locale/dv_MV/LC_ADDRESS
 #usr/lib/locale/dv_MV/LC_COLLATE
@@ -2368,20 +2624,6 @@ usr/lib/locale
 #usr/lib/locale/en_DK/LC_TELEPHONE
 #usr/lib/locale/en_DK/LC_TIME
 #usr/lib/locale/en_GB
-#usr/lib/locale/en_GB.iso885915
-#usr/lib/locale/en_GB.iso885915/LC_ADDRESS
-#usr/lib/locale/en_GB.iso885915/LC_COLLATE
-#usr/lib/locale/en_GB.iso885915/LC_CTYPE
-#usr/lib/locale/en_GB.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/en_GB.iso885915/LC_MEASUREMENT
-#usr/lib/locale/en_GB.iso885915/LC_MESSAGES
-#usr/lib/locale/en_GB.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/en_GB.iso885915/LC_MONETARY
-#usr/lib/locale/en_GB.iso885915/LC_NAME
-#usr/lib/locale/en_GB.iso885915/LC_NUMERIC
-#usr/lib/locale/en_GB.iso885915/LC_PAPER
-#usr/lib/locale/en_GB.iso885915/LC_TELEPHONE
-#usr/lib/locale/en_GB.iso885915/LC_TIME
 #usr/lib/locale/en_GB.utf8
 #usr/lib/locale/en_GB.utf8/LC_ADDRESS
 #usr/lib/locale/en_GB.utf8/LC_COLLATE
@@ -2479,6 +2721,20 @@ usr/lib/locale
 #usr/lib/locale/en_IE@euro/LC_PAPER
 #usr/lib/locale/en_IE@euro/LC_TELEPHONE
 #usr/lib/locale/en_IE@euro/LC_TIME
+#usr/lib/locale/en_IL
+#usr/lib/locale/en_IL/LC_ADDRESS
+#usr/lib/locale/en_IL/LC_COLLATE
+#usr/lib/locale/en_IL/LC_CTYPE
+#usr/lib/locale/en_IL/LC_IDENTIFICATION
+#usr/lib/locale/en_IL/LC_MEASUREMENT
+#usr/lib/locale/en_IL/LC_MESSAGES
+#usr/lib/locale/en_IL/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/en_IL/LC_MONETARY
+#usr/lib/locale/en_IL/LC_NAME
+#usr/lib/locale/en_IL/LC_NUMERIC
+#usr/lib/locale/en_IL/LC_PAPER
+#usr/lib/locale/en_IL/LC_TELEPHONE
+#usr/lib/locale/en_IL/LC_TIME
 #usr/lib/locale/en_IN
 #usr/lib/locale/en_IN/LC_ADDRESS
 #usr/lib/locale/en_IN/LC_COLLATE
@@ -2592,20 +2848,6 @@ usr/lib/locale
 #usr/lib/locale/en_SG/LC_TELEPHONE
 #usr/lib/locale/en_SG/LC_TIME
 #usr/lib/locale/en_US
-#usr/lib/locale/en_US.iso885915
-#usr/lib/locale/en_US.iso885915/LC_ADDRESS
-#usr/lib/locale/en_US.iso885915/LC_COLLATE
-#usr/lib/locale/en_US.iso885915/LC_CTYPE
-#usr/lib/locale/en_US.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/en_US.iso885915/LC_MEASUREMENT
-#usr/lib/locale/en_US.iso885915/LC_MESSAGES
-#usr/lib/locale/en_US.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/en_US.iso885915/LC_MONETARY
-#usr/lib/locale/en_US.iso885915/LC_NAME
-#usr/lib/locale/en_US.iso885915/LC_NUMERIC
-#usr/lib/locale/en_US.iso885915/LC_PAPER
-#usr/lib/locale/en_US.iso885915/LC_TELEPHONE
-#usr/lib/locale/en_US.iso885915/LC_TIME
 #usr/lib/locale/en_US.utf8
 #usr/lib/locale/en_US.utf8/LC_ADDRESS
 #usr/lib/locale/en_US.utf8/LC_COLLATE
@@ -2661,6 +2903,20 @@ usr/lib/locale
 #usr/lib/locale/en_ZA/LC_PAPER
 #usr/lib/locale/en_ZA/LC_TELEPHONE
 #usr/lib/locale/en_ZA/LC_TIME
+#usr/lib/locale/en_ZM
+#usr/lib/locale/en_ZM/LC_ADDRESS
+#usr/lib/locale/en_ZM/LC_COLLATE
+#usr/lib/locale/en_ZM/LC_CTYPE
+#usr/lib/locale/en_ZM/LC_IDENTIFICATION
+#usr/lib/locale/en_ZM/LC_MEASUREMENT
+#usr/lib/locale/en_ZM/LC_MESSAGES
+#usr/lib/locale/en_ZM/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/en_ZM/LC_MONETARY
+#usr/lib/locale/en_ZM/LC_NAME
+#usr/lib/locale/en_ZM/LC_NUMERIC
+#usr/lib/locale/en_ZM/LC_PAPER
+#usr/lib/locale/en_ZM/LC_TELEPHONE
+#usr/lib/locale/en_ZM/LC_TIME
 #usr/lib/locale/en_ZW
 #usr/lib/locale/en_ZW.utf8
 #usr/lib/locale/en_ZW.utf8/LC_ADDRESS
@@ -2689,6 +2945,20 @@ usr/lib/locale
 #usr/lib/locale/en_ZW/LC_PAPER
 #usr/lib/locale/en_ZW/LC_TELEPHONE
 #usr/lib/locale/en_ZW/LC_TIME
+#usr/lib/locale/eo
+#usr/lib/locale/eo/LC_ADDRESS
+#usr/lib/locale/eo/LC_COLLATE
+#usr/lib/locale/eo/LC_CTYPE
+#usr/lib/locale/eo/LC_IDENTIFICATION
+#usr/lib/locale/eo/LC_MEASUREMENT
+#usr/lib/locale/eo/LC_MESSAGES
+#usr/lib/locale/eo/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/eo/LC_MONETARY
+#usr/lib/locale/eo/LC_NAME
+#usr/lib/locale/eo/LC_NUMERIC
+#usr/lib/locale/eo/LC_PAPER
+#usr/lib/locale/eo/LC_TELEPHONE
+#usr/lib/locale/eo/LC_TIME
 #usr/lib/locale/es_AR
 #usr/lib/locale/es_AR.utf8
 #usr/lib/locale/es_AR.utf8/LC_ADDRESS
@@ -2829,6 +3099,20 @@ usr/lib/locale
 #usr/lib/locale/es_CR/LC_PAPER
 #usr/lib/locale/es_CR/LC_TELEPHONE
 #usr/lib/locale/es_CR/LC_TIME
+#usr/lib/locale/es_CU
+#usr/lib/locale/es_CU/LC_ADDRESS
+#usr/lib/locale/es_CU/LC_COLLATE
+#usr/lib/locale/es_CU/LC_CTYPE
+#usr/lib/locale/es_CU/LC_IDENTIFICATION
+#usr/lib/locale/es_CU/LC_MEASUREMENT
+#usr/lib/locale/es_CU/LC_MESSAGES
+#usr/lib/locale/es_CU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/es_CU/LC_MONETARY
+#usr/lib/locale/es_CU/LC_NAME
+#usr/lib/locale/es_CU/LC_NUMERIC
+#usr/lib/locale/es_CU/LC_PAPER
+#usr/lib/locale/es_CU/LC_TELEPHONE
+#usr/lib/locale/es_CU/LC_TIME
 #usr/lib/locale/es_DO
 #usr/lib/locale/es_DO.utf8
 #usr/lib/locale/es_DO.utf8/LC_ADDRESS
@@ -3361,6 +3645,20 @@ usr/lib/locale
 #usr/lib/locale/fa_IR/LC_PAPER
 #usr/lib/locale/fa_IR/LC_TELEPHONE
 #usr/lib/locale/fa_IR/LC_TIME
+#usr/lib/locale/ff_SN
+#usr/lib/locale/ff_SN/LC_ADDRESS
+#usr/lib/locale/ff_SN/LC_COLLATE
+#usr/lib/locale/ff_SN/LC_CTYPE
+#usr/lib/locale/ff_SN/LC_IDENTIFICATION
+#usr/lib/locale/ff_SN/LC_MEASUREMENT
+#usr/lib/locale/ff_SN/LC_MESSAGES
+#usr/lib/locale/ff_SN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ff_SN/LC_MONETARY
+#usr/lib/locale/ff_SN/LC_NAME
+#usr/lib/locale/ff_SN/LC_NUMERIC
+#usr/lib/locale/ff_SN/LC_PAPER
+#usr/lib/locale/ff_SN/LC_TELEPHONE
+#usr/lib/locale/ff_SN/LC_TIME
 #usr/lib/locale/fi_FI
 #usr/lib/locale/fi_FI.utf8
 #usr/lib/locale/fi_FI.utf8/LC_ADDRESS
@@ -3893,6 +4191,20 @@ usr/lib/locale
 #usr/lib/locale/ha_NG/LC_PAPER
 #usr/lib/locale/ha_NG/LC_TELEPHONE
 #usr/lib/locale/ha_NG/LC_TIME
+#usr/lib/locale/hak_TW
+#usr/lib/locale/hak_TW/LC_ADDRESS
+#usr/lib/locale/hak_TW/LC_COLLATE
+#usr/lib/locale/hak_TW/LC_CTYPE
+#usr/lib/locale/hak_TW/LC_IDENTIFICATION
+#usr/lib/locale/hak_TW/LC_MEASUREMENT
+#usr/lib/locale/hak_TW/LC_MESSAGES
+#usr/lib/locale/hak_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/hak_TW/LC_MONETARY
+#usr/lib/locale/hak_TW/LC_NAME
+#usr/lib/locale/hak_TW/LC_NUMERIC
+#usr/lib/locale/hak_TW/LC_PAPER
+#usr/lib/locale/hak_TW/LC_TELEPHONE
+#usr/lib/locale/hak_TW/LC_TIME
 #usr/lib/locale/he_IL
 #usr/lib/locale/he_IL.utf8
 #usr/lib/locale/he_IL.utf8/LC_ADDRESS
@@ -4075,6 +4387,20 @@ usr/lib/locale
 #usr/lib/locale/hy_AM/LC_PAPER
 #usr/lib/locale/hy_AM/LC_TELEPHONE
 #usr/lib/locale/hy_AM/LC_TIME
+#usr/lib/locale/ia_FR
+#usr/lib/locale/ia_FR/LC_ADDRESS
+#usr/lib/locale/ia_FR/LC_COLLATE
+#usr/lib/locale/ia_FR/LC_CTYPE
+#usr/lib/locale/ia_FR/LC_IDENTIFICATION
+#usr/lib/locale/ia_FR/LC_MEASUREMENT
+#usr/lib/locale/ia_FR/LC_MESSAGES
+#usr/lib/locale/ia_FR/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ia_FR/LC_MONETARY
+#usr/lib/locale/ia_FR/LC_NAME
+#usr/lib/locale/ia_FR/LC_NUMERIC
+#usr/lib/locale/ia_FR/LC_PAPER
+#usr/lib/locale/ia_FR/LC_TELEPHONE
+#usr/lib/locale/ia_FR/LC_TIME
 #usr/lib/locale/id_ID
 #usr/lib/locale/id_ID.utf8
 #usr/lib/locale/id_ID.utf8/LC_ADDRESS
@@ -4243,34 +4569,6 @@ usr/lib/locale
 #usr/lib/locale/iu_CA/LC_PAPER
 #usr/lib/locale/iu_CA/LC_TELEPHONE
 #usr/lib/locale/iu_CA/LC_TIME
-#usr/lib/locale/iw_IL
-#usr/lib/locale/iw_IL.utf8
-#usr/lib/locale/iw_IL.utf8/LC_ADDRESS
-#usr/lib/locale/iw_IL.utf8/LC_COLLATE
-#usr/lib/locale/iw_IL.utf8/LC_CTYPE
-#usr/lib/locale/iw_IL.utf8/LC_IDENTIFICATION
-#usr/lib/locale/iw_IL.utf8/LC_MEASUREMENT
-#usr/lib/locale/iw_IL.utf8/LC_MESSAGES
-#usr/lib/locale/iw_IL.utf8/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/iw_IL.utf8/LC_MONETARY
-#usr/lib/locale/iw_IL.utf8/LC_NAME
-#usr/lib/locale/iw_IL.utf8/LC_NUMERIC
-#usr/lib/locale/iw_IL.utf8/LC_PAPER
-#usr/lib/locale/iw_IL.utf8/LC_TELEPHONE
-#usr/lib/locale/iw_IL.utf8/LC_TIME
-#usr/lib/locale/iw_IL/LC_ADDRESS
-#usr/lib/locale/iw_IL/LC_COLLATE
-#usr/lib/locale/iw_IL/LC_CTYPE
-#usr/lib/locale/iw_IL/LC_IDENTIFICATION
-#usr/lib/locale/iw_IL/LC_MEASUREMENT
-#usr/lib/locale/iw_IL/LC_MESSAGES
-#usr/lib/locale/iw_IL/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/iw_IL/LC_MONETARY
-#usr/lib/locale/iw_IL/LC_NAME
-#usr/lib/locale/iw_IL/LC_NUMERIC
-#usr/lib/locale/iw_IL/LC_PAPER
-#usr/lib/locale/iw_IL/LC_TELEPHONE
-#usr/lib/locale/iw_IL/LC_TIME
 #usr/lib/locale/ja_JP.eucjp
 #usr/lib/locale/ja_JP.eucjp/LC_ADDRESS
 #usr/lib/locale/ja_JP.eucjp/LC_COLLATE
@@ -4551,6 +4849,20 @@ usr/lib/locale
 #usr/lib/locale/ky_KG/LC_PAPER
 #usr/lib/locale/ky_KG/LC_TELEPHONE
 #usr/lib/locale/ky_KG/LC_TIME
+#usr/lib/locale/lb_LU
+#usr/lib/locale/lb_LU/LC_ADDRESS
+#usr/lib/locale/lb_LU/LC_COLLATE
+#usr/lib/locale/lb_LU/LC_CTYPE
+#usr/lib/locale/lb_LU/LC_IDENTIFICATION
+#usr/lib/locale/lb_LU/LC_MEASUREMENT
+#usr/lib/locale/lb_LU/LC_MESSAGES
+#usr/lib/locale/lb_LU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/lb_LU/LC_MONETARY
+#usr/lib/locale/lb_LU/LC_NAME
+#usr/lib/locale/lb_LU/LC_NUMERIC
+#usr/lib/locale/lb_LU/LC_PAPER
+#usr/lib/locale/lb_LU/LC_TELEPHONE
+#usr/lib/locale/lb_LU/LC_TIME
 #usr/lib/locale/lg_UG
 #usr/lib/locale/lg_UG.utf8
 #usr/lib/locale/lg_UG.utf8/LC_ADDRESS
@@ -4607,6 +4919,34 @@ usr/lib/locale
 #usr/lib/locale/li_NL/LC_PAPER
 #usr/lib/locale/li_NL/LC_TELEPHONE
 #usr/lib/locale/li_NL/LC_TIME
+#usr/lib/locale/lij_IT
+#usr/lib/locale/lij_IT/LC_ADDRESS
+#usr/lib/locale/lij_IT/LC_COLLATE
+#usr/lib/locale/lij_IT/LC_CTYPE
+#usr/lib/locale/lij_IT/LC_IDENTIFICATION
+#usr/lib/locale/lij_IT/LC_MEASUREMENT
+#usr/lib/locale/lij_IT/LC_MESSAGES
+#usr/lib/locale/lij_IT/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/lij_IT/LC_MONETARY
+#usr/lib/locale/lij_IT/LC_NAME
+#usr/lib/locale/lij_IT/LC_NUMERIC
+#usr/lib/locale/lij_IT/LC_PAPER
+#usr/lib/locale/lij_IT/LC_TELEPHONE
+#usr/lib/locale/lij_IT/LC_TIME
+#usr/lib/locale/ln_CD
+#usr/lib/locale/ln_CD/LC_ADDRESS
+#usr/lib/locale/ln_CD/LC_COLLATE
+#usr/lib/locale/ln_CD/LC_CTYPE
+#usr/lib/locale/ln_CD/LC_IDENTIFICATION
+#usr/lib/locale/ln_CD/LC_MEASUREMENT
+#usr/lib/locale/ln_CD/LC_MESSAGES
+#usr/lib/locale/ln_CD/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ln_CD/LC_MONETARY
+#usr/lib/locale/ln_CD/LC_NAME
+#usr/lib/locale/ln_CD/LC_NUMERIC
+#usr/lib/locale/ln_CD/LC_PAPER
+#usr/lib/locale/ln_CD/LC_TELEPHONE
+#usr/lib/locale/ln_CD/LC_TIME
 #usr/lib/locale/lo_LA
 #usr/lib/locale/lo_LA/LC_ADDRESS
 #usr/lib/locale/lo_LA/LC_COLLATE
@@ -4677,6 +5017,34 @@ usr/lib/locale
 #usr/lib/locale/lv_LV/LC_PAPER
 #usr/lib/locale/lv_LV/LC_TELEPHONE
 #usr/lib/locale/lv_LV/LC_TIME
+#usr/lib/locale/lzh_TW
+#usr/lib/locale/lzh_TW/LC_ADDRESS
+#usr/lib/locale/lzh_TW/LC_COLLATE
+#usr/lib/locale/lzh_TW/LC_CTYPE
+#usr/lib/locale/lzh_TW/LC_IDENTIFICATION
+#usr/lib/locale/lzh_TW/LC_MEASUREMENT
+#usr/lib/locale/lzh_TW/LC_MESSAGES
+#usr/lib/locale/lzh_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/lzh_TW/LC_MONETARY
+#usr/lib/locale/lzh_TW/LC_NAME
+#usr/lib/locale/lzh_TW/LC_NUMERIC
+#usr/lib/locale/lzh_TW/LC_PAPER
+#usr/lib/locale/lzh_TW/LC_TELEPHONE
+#usr/lib/locale/lzh_TW/LC_TIME
+#usr/lib/locale/mag_IN
+#usr/lib/locale/mag_IN/LC_ADDRESS
+#usr/lib/locale/mag_IN/LC_COLLATE
+#usr/lib/locale/mag_IN/LC_CTYPE
+#usr/lib/locale/mag_IN/LC_IDENTIFICATION
+#usr/lib/locale/mag_IN/LC_MEASUREMENT
+#usr/lib/locale/mag_IN/LC_MESSAGES
+#usr/lib/locale/mag_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/mag_IN/LC_MONETARY
+#usr/lib/locale/mag_IN/LC_NAME
+#usr/lib/locale/mag_IN/LC_NUMERIC
+#usr/lib/locale/mag_IN/LC_PAPER
+#usr/lib/locale/mag_IN/LC_TELEPHONE
+#usr/lib/locale/mag_IN/LC_TIME
 #usr/lib/locale/mai_IN
 #usr/lib/locale/mai_IN/LC_ADDRESS
 #usr/lib/locale/mai_IN/LC_COLLATE
@@ -4719,6 +5087,20 @@ usr/lib/locale
 #usr/lib/locale/mg_MG/LC_PAPER
 #usr/lib/locale/mg_MG/LC_TELEPHONE
 #usr/lib/locale/mg_MG/LC_TIME
+#usr/lib/locale/mhr_RU
+#usr/lib/locale/mhr_RU/LC_ADDRESS
+#usr/lib/locale/mhr_RU/LC_COLLATE
+#usr/lib/locale/mhr_RU/LC_CTYPE
+#usr/lib/locale/mhr_RU/LC_IDENTIFICATION
+#usr/lib/locale/mhr_RU/LC_MEASUREMENT
+#usr/lib/locale/mhr_RU/LC_MESSAGES
+#usr/lib/locale/mhr_RU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/mhr_RU/LC_MONETARY
+#usr/lib/locale/mhr_RU/LC_NAME
+#usr/lib/locale/mhr_RU/LC_NUMERIC
+#usr/lib/locale/mhr_RU/LC_PAPER
+#usr/lib/locale/mhr_RU/LC_TELEPHONE
+#usr/lib/locale/mhr_RU/LC_TIME
 #usr/lib/locale/mi_NZ
 #usr/lib/locale/mi_NZ.utf8
 #usr/lib/locale/mi_NZ.utf8/LC_ADDRESS
@@ -4803,6 +5185,20 @@ usr/lib/locale
 #usr/lib/locale/mn_MN/LC_PAPER
 #usr/lib/locale/mn_MN/LC_TELEPHONE
 #usr/lib/locale/mn_MN/LC_TIME
+#usr/lib/locale/mni_IN
+#usr/lib/locale/mni_IN/LC_ADDRESS
+#usr/lib/locale/mni_IN/LC_COLLATE
+#usr/lib/locale/mni_IN/LC_CTYPE
+#usr/lib/locale/mni_IN/LC_IDENTIFICATION
+#usr/lib/locale/mni_IN/LC_MEASUREMENT
+#usr/lib/locale/mni_IN/LC_MESSAGES
+#usr/lib/locale/mni_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/mni_IN/LC_MONETARY
+#usr/lib/locale/mni_IN/LC_NAME
+#usr/lib/locale/mni_IN/LC_NUMERIC
+#usr/lib/locale/mni_IN/LC_PAPER
+#usr/lib/locale/mni_IN/LC_TELEPHONE
+#usr/lib/locale/mni_IN/LC_TIME
 #usr/lib/locale/mr_IN
 #usr/lib/locale/mr_IN/LC_ADDRESS
 #usr/lib/locale/mr_IN/LC_COLLATE
@@ -4887,6 +5283,20 @@ usr/lib/locale
 #usr/lib/locale/my_MM/LC_PAPER
 #usr/lib/locale/my_MM/LC_TELEPHONE
 #usr/lib/locale/my_MM/LC_TIME
+#usr/lib/locale/nan_TW
+#usr/lib/locale/nan_TW/LC_ADDRESS
+#usr/lib/locale/nan_TW/LC_COLLATE
+#usr/lib/locale/nan_TW/LC_CTYPE
+#usr/lib/locale/nan_TW/LC_IDENTIFICATION
+#usr/lib/locale/nan_TW/LC_MEASUREMENT
+#usr/lib/locale/nan_TW/LC_MESSAGES
+#usr/lib/locale/nan_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/nan_TW/LC_MONETARY
+#usr/lib/locale/nan_TW/LC_NAME
+#usr/lib/locale/nan_TW/LC_NUMERIC
+#usr/lib/locale/nan_TW/LC_PAPER
+#usr/lib/locale/nan_TW/LC_TELEPHONE
+#usr/lib/locale/nan_TW/LC_TIME
 #usr/lib/locale/nan_TW@latin
 #usr/lib/locale/nan_TW@latin/LC_ADDRESS
 #usr/lib/locale/nan_TW@latin/LC_COLLATE
@@ -4971,6 +5381,48 @@ usr/lib/locale
 #usr/lib/locale/ne_NP/LC_PAPER
 #usr/lib/locale/ne_NP/LC_TELEPHONE
 #usr/lib/locale/ne_NP/LC_TIME
+#usr/lib/locale/nhn_MX
+#usr/lib/locale/nhn_MX/LC_ADDRESS
+#usr/lib/locale/nhn_MX/LC_COLLATE
+#usr/lib/locale/nhn_MX/LC_CTYPE
+#usr/lib/locale/nhn_MX/LC_IDENTIFICATION
+#usr/lib/locale/nhn_MX/LC_MEASUREMENT
+#usr/lib/locale/nhn_MX/LC_MESSAGES
+#usr/lib/locale/nhn_MX/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/nhn_MX/LC_MONETARY
+#usr/lib/locale/nhn_MX/LC_NAME
+#usr/lib/locale/nhn_MX/LC_NUMERIC
+#usr/lib/locale/nhn_MX/LC_PAPER
+#usr/lib/locale/nhn_MX/LC_TELEPHONE
+#usr/lib/locale/nhn_MX/LC_TIME
+#usr/lib/locale/niu_NU
+#usr/lib/locale/niu_NU/LC_ADDRESS
+#usr/lib/locale/niu_NU/LC_COLLATE
+#usr/lib/locale/niu_NU/LC_CTYPE
+#usr/lib/locale/niu_NU/LC_IDENTIFICATION
+#usr/lib/locale/niu_NU/LC_MEASUREMENT
+#usr/lib/locale/niu_NU/LC_MESSAGES
+#usr/lib/locale/niu_NU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/niu_NU/LC_MONETARY
+#usr/lib/locale/niu_NU/LC_NAME
+#usr/lib/locale/niu_NU/LC_NUMERIC
+#usr/lib/locale/niu_NU/LC_PAPER
+#usr/lib/locale/niu_NU/LC_TELEPHONE
+#usr/lib/locale/niu_NU/LC_TIME
+#usr/lib/locale/niu_NZ
+#usr/lib/locale/niu_NZ/LC_ADDRESS
+#usr/lib/locale/niu_NZ/LC_COLLATE
+#usr/lib/locale/niu_NZ/LC_CTYPE
+#usr/lib/locale/niu_NZ/LC_IDENTIFICATION
+#usr/lib/locale/niu_NZ/LC_MEASUREMENT
+#usr/lib/locale/niu_NZ/LC_MESSAGES
+#usr/lib/locale/niu_NZ/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/niu_NZ/LC_MONETARY
+#usr/lib/locale/niu_NZ/LC_NAME
+#usr/lib/locale/niu_NZ/LC_NUMERIC
+#usr/lib/locale/niu_NZ/LC_PAPER
+#usr/lib/locale/niu_NZ/LC_TELEPHONE
+#usr/lib/locale/niu_NZ/LC_TIME
 #usr/lib/locale/nl_AW
 #usr/lib/locale/nl_AW/LC_ADDRESS
 #usr/lib/locale/nl_AW/LC_COLLATE
@@ -5097,34 +5549,6 @@ usr/lib/locale
 #usr/lib/locale/nn_NO/LC_PAPER
 #usr/lib/locale/nn_NO/LC_TELEPHONE
 #usr/lib/locale/nn_NO/LC_TIME
-#usr/lib/locale/no_NO
-#usr/lib/locale/no_NO.utf8
-#usr/lib/locale/no_NO.utf8/LC_ADDRESS
-#usr/lib/locale/no_NO.utf8/LC_COLLATE
-#usr/lib/locale/no_NO.utf8/LC_CTYPE
-#usr/lib/locale/no_NO.utf8/LC_IDENTIFICATION
-#usr/lib/locale/no_NO.utf8/LC_MEASUREMENT
-#usr/lib/locale/no_NO.utf8/LC_MESSAGES
-#usr/lib/locale/no_NO.utf8/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/no_NO.utf8/LC_MONETARY
-#usr/lib/locale/no_NO.utf8/LC_NAME
-#usr/lib/locale/no_NO.utf8/LC_NUMERIC
-#usr/lib/locale/no_NO.utf8/LC_PAPER
-#usr/lib/locale/no_NO.utf8/LC_TELEPHONE
-#usr/lib/locale/no_NO.utf8/LC_TIME
-#usr/lib/locale/no_NO/LC_ADDRESS
-#usr/lib/locale/no_NO/LC_COLLATE
-#usr/lib/locale/no_NO/LC_CTYPE
-#usr/lib/locale/no_NO/LC_IDENTIFICATION
-#usr/lib/locale/no_NO/LC_MEASUREMENT
-#usr/lib/locale/no_NO/LC_MESSAGES
-#usr/lib/locale/no_NO/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/no_NO/LC_MONETARY
-#usr/lib/locale/no_NO/LC_NAME
-#usr/lib/locale/no_NO/LC_NUMERIC
-#usr/lib/locale/no_NO/LC_PAPER
-#usr/lib/locale/no_NO/LC_TELEPHONE
-#usr/lib/locale/no_NO/LC_TIME
 #usr/lib/locale/nr_ZA
 #usr/lib/locale/nr_ZA/LC_ADDRESS
 #usr/lib/locale/nr_ZA/LC_COLLATE
@@ -5237,6 +5661,20 @@ usr/lib/locale
 #usr/lib/locale/or_IN/LC_PAPER
 #usr/lib/locale/or_IN/LC_TELEPHONE
 #usr/lib/locale/or_IN/LC_TIME
+#usr/lib/locale/os_RU
+#usr/lib/locale/os_RU/LC_ADDRESS
+#usr/lib/locale/os_RU/LC_COLLATE
+#usr/lib/locale/os_RU/LC_CTYPE
+#usr/lib/locale/os_RU/LC_IDENTIFICATION
+#usr/lib/locale/os_RU/LC_MEASUREMENT
+#usr/lib/locale/os_RU/LC_MESSAGES
+#usr/lib/locale/os_RU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/os_RU/LC_MONETARY
+#usr/lib/locale/os_RU/LC_NAME
+#usr/lib/locale/os_RU/LC_NUMERIC
+#usr/lib/locale/os_RU/LC_PAPER
+#usr/lib/locale/os_RU/LC_TELEPHONE
+#usr/lib/locale/os_RU/LC_TIME
 #usr/lib/locale/pa_IN
 #usr/lib/locale/pa_IN/LC_ADDRESS
 #usr/lib/locale/pa_IN/LC_COLLATE
@@ -5265,20 +5703,34 @@ usr/lib/locale
 #usr/lib/locale/pa_PK/LC_PAPER
 #usr/lib/locale/pa_PK/LC_TELEPHONE
 #usr/lib/locale/pa_PK/LC_TIME
-#usr/lib/locale/pap_AN
-#usr/lib/locale/pap_AN/LC_ADDRESS
-#usr/lib/locale/pap_AN/LC_COLLATE
-#usr/lib/locale/pap_AN/LC_CTYPE
-#usr/lib/locale/pap_AN/LC_IDENTIFICATION
-#usr/lib/locale/pap_AN/LC_MEASUREMENT
-#usr/lib/locale/pap_AN/LC_MESSAGES
-#usr/lib/locale/pap_AN/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/pap_AN/LC_MONETARY
-#usr/lib/locale/pap_AN/LC_NAME
-#usr/lib/locale/pap_AN/LC_NUMERIC
-#usr/lib/locale/pap_AN/LC_PAPER
-#usr/lib/locale/pap_AN/LC_TELEPHONE
-#usr/lib/locale/pap_AN/LC_TIME
+#usr/lib/locale/pap_AW
+#usr/lib/locale/pap_AW/LC_ADDRESS
+#usr/lib/locale/pap_AW/LC_COLLATE
+#usr/lib/locale/pap_AW/LC_CTYPE
+#usr/lib/locale/pap_AW/LC_IDENTIFICATION
+#usr/lib/locale/pap_AW/LC_MEASUREMENT
+#usr/lib/locale/pap_AW/LC_MESSAGES
+#usr/lib/locale/pap_AW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/pap_AW/LC_MONETARY
+#usr/lib/locale/pap_AW/LC_NAME
+#usr/lib/locale/pap_AW/LC_NUMERIC
+#usr/lib/locale/pap_AW/LC_PAPER
+#usr/lib/locale/pap_AW/LC_TELEPHONE
+#usr/lib/locale/pap_AW/LC_TIME
+#usr/lib/locale/pap_CW
+#usr/lib/locale/pap_CW/LC_ADDRESS
+#usr/lib/locale/pap_CW/LC_COLLATE
+#usr/lib/locale/pap_CW/LC_CTYPE
+#usr/lib/locale/pap_CW/LC_IDENTIFICATION
+#usr/lib/locale/pap_CW/LC_MEASUREMENT
+#usr/lib/locale/pap_CW/LC_MESSAGES
+#usr/lib/locale/pap_CW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/pap_CW/LC_MONETARY
+#usr/lib/locale/pap_CW/LC_NAME
+#usr/lib/locale/pap_CW/LC_NUMERIC
+#usr/lib/locale/pap_CW/LC_PAPER
+#usr/lib/locale/pap_CW/LC_TELEPHONE
+#usr/lib/locale/pap_CW/LC_TIME
 #usr/lib/locale/pl_PL
 #usr/lib/locale/pl_PL.utf8
 #usr/lib/locale/pl_PL.utf8/LC_ADDRESS
@@ -5391,6 +5843,34 @@ usr/lib/locale
 #usr/lib/locale/pt_PT@euro/LC_PAPER
 #usr/lib/locale/pt_PT@euro/LC_TELEPHONE
 #usr/lib/locale/pt_PT@euro/LC_TIME
+#usr/lib/locale/quz_PE
+#usr/lib/locale/quz_PE/LC_ADDRESS
+#usr/lib/locale/quz_PE/LC_COLLATE
+#usr/lib/locale/quz_PE/LC_CTYPE
+#usr/lib/locale/quz_PE/LC_IDENTIFICATION
+#usr/lib/locale/quz_PE/LC_MEASUREMENT
+#usr/lib/locale/quz_PE/LC_MESSAGES
+#usr/lib/locale/quz_PE/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/quz_PE/LC_MONETARY
+#usr/lib/locale/quz_PE/LC_NAME
+#usr/lib/locale/quz_PE/LC_NUMERIC
+#usr/lib/locale/quz_PE/LC_PAPER
+#usr/lib/locale/quz_PE/LC_TELEPHONE
+#usr/lib/locale/quz_PE/LC_TIME
+#usr/lib/locale/raj_IN
+#usr/lib/locale/raj_IN/LC_ADDRESS
+#usr/lib/locale/raj_IN/LC_COLLATE
+#usr/lib/locale/raj_IN/LC_CTYPE
+#usr/lib/locale/raj_IN/LC_IDENTIFICATION
+#usr/lib/locale/raj_IN/LC_MEASUREMENT
+#usr/lib/locale/raj_IN/LC_MESSAGES
+#usr/lib/locale/raj_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/raj_IN/LC_MONETARY
+#usr/lib/locale/raj_IN/LC_NAME
+#usr/lib/locale/raj_IN/LC_NUMERIC
+#usr/lib/locale/raj_IN/LC_PAPER
+#usr/lib/locale/raj_IN/LC_TELEPHONE
+#usr/lib/locale/raj_IN/LC_TIME
 #usr/lib/locale/ro_RO
 #usr/lib/locale/ro_RO.utf8
 #usr/lib/locale/ro_RO.utf8/LC_ADDRESS
@@ -5517,6 +5997,20 @@ usr/lib/locale
 #usr/lib/locale/sa_IN/LC_PAPER
 #usr/lib/locale/sa_IN/LC_TELEPHONE
 #usr/lib/locale/sa_IN/LC_TIME
+#usr/lib/locale/sat_IN
+#usr/lib/locale/sat_IN/LC_ADDRESS
+#usr/lib/locale/sat_IN/LC_COLLATE
+#usr/lib/locale/sat_IN/LC_CTYPE
+#usr/lib/locale/sat_IN/LC_IDENTIFICATION
+#usr/lib/locale/sat_IN/LC_MEASUREMENT
+#usr/lib/locale/sat_IN/LC_MESSAGES
+#usr/lib/locale/sat_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sat_IN/LC_MONETARY
+#usr/lib/locale/sat_IN/LC_NAME
+#usr/lib/locale/sat_IN/LC_NUMERIC
+#usr/lib/locale/sat_IN/LC_PAPER
+#usr/lib/locale/sat_IN/LC_TELEPHONE
+#usr/lib/locale/sat_IN/LC_TIME
 #usr/lib/locale/sc_IT
 #usr/lib/locale/sc_IT/LC_ADDRESS
 #usr/lib/locale/sc_IT/LC_COLLATE
@@ -5573,6 +6067,20 @@ usr/lib/locale
 #usr/lib/locale/se_NO/LC_PAPER
 #usr/lib/locale/se_NO/LC_TELEPHONE
 #usr/lib/locale/se_NO/LC_TIME
+#usr/lib/locale/sgs_LT
+#usr/lib/locale/sgs_LT/LC_ADDRESS
+#usr/lib/locale/sgs_LT/LC_COLLATE
+#usr/lib/locale/sgs_LT/LC_CTYPE
+#usr/lib/locale/sgs_LT/LC_IDENTIFICATION
+#usr/lib/locale/sgs_LT/LC_MEASUREMENT
+#usr/lib/locale/sgs_LT/LC_MESSAGES
+#usr/lib/locale/sgs_LT/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sgs_LT/LC_MONETARY
+#usr/lib/locale/sgs_LT/LC_NAME
+#usr/lib/locale/sgs_LT/LC_NUMERIC
+#usr/lib/locale/sgs_LT/LC_PAPER
+#usr/lib/locale/sgs_LT/LC_TELEPHONE
+#usr/lib/locale/sgs_LT/LC_TIME
 #usr/lib/locale/shs_CA
 #usr/lib/locale/shs_CA/LC_ADDRESS
 #usr/lib/locale/shs_CA/LC_COLLATE
@@ -5938,20 +6446,6 @@ usr/lib/locale
 #usr/lib/locale/sv_FI@euro/LC_TELEPHONE
 #usr/lib/locale/sv_FI@euro/LC_TIME
 #usr/lib/locale/sv_SE
-#usr/lib/locale/sv_SE.iso885915
-#usr/lib/locale/sv_SE.iso885915/LC_ADDRESS
-#usr/lib/locale/sv_SE.iso885915/LC_COLLATE
-#usr/lib/locale/sv_SE.iso885915/LC_CTYPE
-#usr/lib/locale/sv_SE.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/sv_SE.iso885915/LC_MEASUREMENT
-#usr/lib/locale/sv_SE.iso885915/LC_MESSAGES
-#usr/lib/locale/sv_SE.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/sv_SE.iso885915/LC_MONETARY
-#usr/lib/locale/sv_SE.iso885915/LC_NAME
-#usr/lib/locale/sv_SE.iso885915/LC_NUMERIC
-#usr/lib/locale/sv_SE.iso885915/LC_PAPER
-#usr/lib/locale/sv_SE.iso885915/LC_TELEPHONE
-#usr/lib/locale/sv_SE.iso885915/LC_TIME
 #usr/lib/locale/sv_SE.utf8
 #usr/lib/locale/sv_SE.utf8/LC_ADDRESS
 #usr/lib/locale/sv_SE.utf8/LC_COLLATE
@@ -5979,6 +6473,48 @@ usr/lib/locale
 #usr/lib/locale/sv_SE/LC_PAPER
 #usr/lib/locale/sv_SE/LC_TELEPHONE
 #usr/lib/locale/sv_SE/LC_TIME
+#usr/lib/locale/sw_KE
+#usr/lib/locale/sw_KE/LC_ADDRESS
+#usr/lib/locale/sw_KE/LC_COLLATE
+#usr/lib/locale/sw_KE/LC_CTYPE
+#usr/lib/locale/sw_KE/LC_IDENTIFICATION
+#usr/lib/locale/sw_KE/LC_MEASUREMENT
+#usr/lib/locale/sw_KE/LC_MESSAGES
+#usr/lib/locale/sw_KE/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sw_KE/LC_MONETARY
+#usr/lib/locale/sw_KE/LC_NAME
+#usr/lib/locale/sw_KE/LC_NUMERIC
+#usr/lib/locale/sw_KE/LC_PAPER
+#usr/lib/locale/sw_KE/LC_TELEPHONE
+#usr/lib/locale/sw_KE/LC_TIME
+#usr/lib/locale/sw_TZ
+#usr/lib/locale/sw_TZ/LC_ADDRESS
+#usr/lib/locale/sw_TZ/LC_COLLATE
+#usr/lib/locale/sw_TZ/LC_CTYPE
+#usr/lib/locale/sw_TZ/LC_IDENTIFICATION
+#usr/lib/locale/sw_TZ/LC_MEASUREMENT
+#usr/lib/locale/sw_TZ/LC_MESSAGES
+#usr/lib/locale/sw_TZ/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sw_TZ/LC_MONETARY
+#usr/lib/locale/sw_TZ/LC_NAME
+#usr/lib/locale/sw_TZ/LC_NUMERIC
+#usr/lib/locale/sw_TZ/LC_PAPER
+#usr/lib/locale/sw_TZ/LC_TELEPHONE
+#usr/lib/locale/sw_TZ/LC_TIME
+#usr/lib/locale/szl_PL
+#usr/lib/locale/szl_PL/LC_ADDRESS
+#usr/lib/locale/szl_PL/LC_COLLATE
+#usr/lib/locale/szl_PL/LC_CTYPE
+#usr/lib/locale/szl_PL/LC_IDENTIFICATION
+#usr/lib/locale/szl_PL/LC_MEASUREMENT
+#usr/lib/locale/szl_PL/LC_MESSAGES
+#usr/lib/locale/szl_PL/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/szl_PL/LC_MONETARY
+#usr/lib/locale/szl_PL/LC_NAME
+#usr/lib/locale/szl_PL/LC_NUMERIC
+#usr/lib/locale/szl_PL/LC_PAPER
+#usr/lib/locale/szl_PL/LC_TELEPHONE
+#usr/lib/locale/szl_PL/LC_TIME
 #usr/lib/locale/ta_IN
 #usr/lib/locale/ta_IN/LC_ADDRESS
 #usr/lib/locale/ta_IN/LC_COLLATE
@@ -5993,6 +6529,34 @@ usr/lib/locale
 #usr/lib/locale/ta_IN/LC_PAPER
 #usr/lib/locale/ta_IN/LC_TELEPHONE
 #usr/lib/locale/ta_IN/LC_TIME
+#usr/lib/locale/ta_LK
+#usr/lib/locale/ta_LK/LC_ADDRESS
+#usr/lib/locale/ta_LK/LC_COLLATE
+#usr/lib/locale/ta_LK/LC_CTYPE
+#usr/lib/locale/ta_LK/LC_IDENTIFICATION
+#usr/lib/locale/ta_LK/LC_MEASUREMENT
+#usr/lib/locale/ta_LK/LC_MESSAGES
+#usr/lib/locale/ta_LK/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ta_LK/LC_MONETARY
+#usr/lib/locale/ta_LK/LC_NAME
+#usr/lib/locale/ta_LK/LC_NUMERIC
+#usr/lib/locale/ta_LK/LC_PAPER
+#usr/lib/locale/ta_LK/LC_TELEPHONE
+#usr/lib/locale/ta_LK/LC_TIME
+#usr/lib/locale/tcy_IN.utf8
+#usr/lib/locale/tcy_IN.utf8/LC_ADDRESS
+#usr/lib/locale/tcy_IN.utf8/LC_COLLATE
+#usr/lib/locale/tcy_IN.utf8/LC_CTYPE
+#usr/lib/locale/tcy_IN.utf8/LC_IDENTIFICATION
+#usr/lib/locale/tcy_IN.utf8/LC_MEASUREMENT
+#usr/lib/locale/tcy_IN.utf8/LC_MESSAGES
+#usr/lib/locale/tcy_IN.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/tcy_IN.utf8/LC_MONETARY
+#usr/lib/locale/tcy_IN.utf8/LC_NAME
+#usr/lib/locale/tcy_IN.utf8/LC_NUMERIC
+#usr/lib/locale/tcy_IN.utf8/LC_PAPER
+#usr/lib/locale/tcy_IN.utf8/LC_TELEPHONE
+#usr/lib/locale/tcy_IN.utf8/LC_TIME
 #usr/lib/locale/te_IN
 #usr/lib/locale/te_IN/LC_ADDRESS
 #usr/lib/locale/te_IN/LC_COLLATE
@@ -6063,6 +6627,20 @@ usr/lib/locale
 #usr/lib/locale/th_TH/LC_PAPER
 #usr/lib/locale/th_TH/LC_TELEPHONE
 #usr/lib/locale/th_TH/LC_TIME
+#usr/lib/locale/the_NP
+#usr/lib/locale/the_NP/LC_ADDRESS
+#usr/lib/locale/the_NP/LC_COLLATE
+#usr/lib/locale/the_NP/LC_CTYPE
+#usr/lib/locale/the_NP/LC_IDENTIFICATION
+#usr/lib/locale/the_NP/LC_MEASUREMENT
+#usr/lib/locale/the_NP/LC_MESSAGES
+#usr/lib/locale/the_NP/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/the_NP/LC_MONETARY
+#usr/lib/locale/the_NP/LC_NAME
+#usr/lib/locale/the_NP/LC_NUMERIC
+#usr/lib/locale/the_NP/LC_PAPER
+#usr/lib/locale/the_NP/LC_TELEPHONE
+#usr/lib/locale/the_NP/LC_TIME
 #usr/lib/locale/ti_ER
 #usr/lib/locale/ti_ER/LC_ADDRESS
 #usr/lib/locale/ti_ER/LC_COLLATE
@@ -6301,6 +6879,34 @@ usr/lib/locale
 #usr/lib/locale/uk_UA/LC_PAPER
 #usr/lib/locale/uk_UA/LC_TELEPHONE
 #usr/lib/locale/uk_UA/LC_TIME
+#usr/lib/locale/unm_US
+#usr/lib/locale/unm_US/LC_ADDRESS
+#usr/lib/locale/unm_US/LC_COLLATE
+#usr/lib/locale/unm_US/LC_CTYPE
+#usr/lib/locale/unm_US/LC_IDENTIFICATION
+#usr/lib/locale/unm_US/LC_MEASUREMENT
+#usr/lib/locale/unm_US/LC_MESSAGES
+#usr/lib/locale/unm_US/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/unm_US/LC_MONETARY
+#usr/lib/locale/unm_US/LC_NAME
+#usr/lib/locale/unm_US/LC_NUMERIC
+#usr/lib/locale/unm_US/LC_PAPER
+#usr/lib/locale/unm_US/LC_TELEPHONE
+#usr/lib/locale/unm_US/LC_TIME
+#usr/lib/locale/ur_IN
+#usr/lib/locale/ur_IN/LC_ADDRESS
+#usr/lib/locale/ur_IN/LC_COLLATE
+#usr/lib/locale/ur_IN/LC_CTYPE
+#usr/lib/locale/ur_IN/LC_IDENTIFICATION
+#usr/lib/locale/ur_IN/LC_MEASUREMENT
+#usr/lib/locale/ur_IN/LC_MESSAGES
+#usr/lib/locale/ur_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ur_IN/LC_MONETARY
+#usr/lib/locale/ur_IN/LC_NAME
+#usr/lib/locale/ur_IN/LC_NUMERIC
+#usr/lib/locale/ur_IN/LC_PAPER
+#usr/lib/locale/ur_IN/LC_TELEPHONE
+#usr/lib/locale/ur_IN/LC_TIME
 #usr/lib/locale/ur_PK
 #usr/lib/locale/ur_PK/LC_ADDRESS
 #usr/lib/locale/ur_PK/LC_COLLATE
@@ -6316,6 +6922,20 @@ usr/lib/locale
 #usr/lib/locale/ur_PK/LC_TELEPHONE
 #usr/lib/locale/ur_PK/LC_TIME
 #usr/lib/locale/uz_UZ
+#usr/lib/locale/uz_UZ.utf8
+#usr/lib/locale/uz_UZ.utf8/LC_ADDRESS
+#usr/lib/locale/uz_UZ.utf8/LC_COLLATE
+#usr/lib/locale/uz_UZ.utf8/LC_CTYPE
+#usr/lib/locale/uz_UZ.utf8/LC_IDENTIFICATION
+#usr/lib/locale/uz_UZ.utf8/LC_MEASUREMENT
+#usr/lib/locale/uz_UZ.utf8/LC_MESSAGES
+#usr/lib/locale/uz_UZ.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/uz_UZ.utf8/LC_MONETARY
+#usr/lib/locale/uz_UZ.utf8/LC_NAME
+#usr/lib/locale/uz_UZ.utf8/LC_NUMERIC
+#usr/lib/locale/uz_UZ.utf8/LC_PAPER
+#usr/lib/locale/uz_UZ.utf8/LC_TELEPHONE
+#usr/lib/locale/uz_UZ.utf8/LC_TIME
 #usr/lib/locale/uz_UZ/LC_ADDRESS
 #usr/lib/locale/uz_UZ/LC_COLLATE
 #usr/lib/locale/uz_UZ/LC_CTYPE
@@ -6358,20 +6978,6 @@ usr/lib/locale
 #usr/lib/locale/ve_ZA/LC_TELEPHONE
 #usr/lib/locale/ve_ZA/LC_TIME
 #usr/lib/locale/vi_VN
-#usr/lib/locale/vi_VN.tcvn
-#usr/lib/locale/vi_VN.tcvn/LC_ADDRESS
-#usr/lib/locale/vi_VN.tcvn/LC_COLLATE
-#usr/lib/locale/vi_VN.tcvn/LC_CTYPE
-#usr/lib/locale/vi_VN.tcvn/LC_IDENTIFICATION
-#usr/lib/locale/vi_VN.tcvn/LC_MEASUREMENT
-#usr/lib/locale/vi_VN.tcvn/LC_MESSAGES
-#usr/lib/locale/vi_VN.tcvn/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/vi_VN.tcvn/LC_MONETARY
-#usr/lib/locale/vi_VN.tcvn/LC_NAME
-#usr/lib/locale/vi_VN.tcvn/LC_NUMERIC
-#usr/lib/locale/vi_VN.tcvn/LC_PAPER
-#usr/lib/locale/vi_VN.tcvn/LC_TELEPHONE
-#usr/lib/locale/vi_VN.tcvn/LC_TIME
 #usr/lib/locale/vi_VN/LC_ADDRESS
 #usr/lib/locale/vi_VN/LC_COLLATE
 #usr/lib/locale/vi_VN/LC_CTYPE
@@ -6427,6 +7033,34 @@ usr/lib/locale
 #usr/lib/locale/wa_BE@euro/LC_PAPER
 #usr/lib/locale/wa_BE@euro/LC_TELEPHONE
 #usr/lib/locale/wa_BE@euro/LC_TIME
+#usr/lib/locale/wae_CH
+#usr/lib/locale/wae_CH/LC_ADDRESS
+#usr/lib/locale/wae_CH/LC_COLLATE
+#usr/lib/locale/wae_CH/LC_CTYPE
+#usr/lib/locale/wae_CH/LC_IDENTIFICATION
+#usr/lib/locale/wae_CH/LC_MEASUREMENT
+#usr/lib/locale/wae_CH/LC_MESSAGES
+#usr/lib/locale/wae_CH/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/wae_CH/LC_MONETARY
+#usr/lib/locale/wae_CH/LC_NAME
+#usr/lib/locale/wae_CH/LC_NUMERIC
+#usr/lib/locale/wae_CH/LC_PAPER
+#usr/lib/locale/wae_CH/LC_TELEPHONE
+#usr/lib/locale/wae_CH/LC_TIME
+#usr/lib/locale/wal_ET
+#usr/lib/locale/wal_ET/LC_ADDRESS
+#usr/lib/locale/wal_ET/LC_COLLATE
+#usr/lib/locale/wal_ET/LC_CTYPE
+#usr/lib/locale/wal_ET/LC_IDENTIFICATION
+#usr/lib/locale/wal_ET/LC_MEASUREMENT
+#usr/lib/locale/wal_ET/LC_MESSAGES
+#usr/lib/locale/wal_ET/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/wal_ET/LC_MONETARY
+#usr/lib/locale/wal_ET/LC_NAME
+#usr/lib/locale/wal_ET/LC_NUMERIC
+#usr/lib/locale/wal_ET/LC_PAPER
+#usr/lib/locale/wal_ET/LC_TELEPHONE
+#usr/lib/locale/wal_ET/LC_TIME
 #usr/lib/locale/wo_SN
 #usr/lib/locale/wo_SN/LC_ADDRESS
 #usr/lib/locale/wo_SN/LC_COLLATE
@@ -6511,6 +7145,20 @@ usr/lib/locale
 #usr/lib/locale/yo_NG/LC_PAPER
 #usr/lib/locale/yo_NG/LC_TELEPHONE
 #usr/lib/locale/yo_NG/LC_TIME
+#usr/lib/locale/yue_HK
+#usr/lib/locale/yue_HK/LC_ADDRESS
+#usr/lib/locale/yue_HK/LC_COLLATE
+#usr/lib/locale/yue_HK/LC_CTYPE
+#usr/lib/locale/yue_HK/LC_IDENTIFICATION
+#usr/lib/locale/yue_HK/LC_MEASUREMENT
+#usr/lib/locale/yue_HK/LC_MESSAGES
+#usr/lib/locale/yue_HK/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/yue_HK/LC_MONETARY
+#usr/lib/locale/yue_HK/LC_NAME
+#usr/lib/locale/yue_HK/LC_NUMERIC
+#usr/lib/locale/yue_HK/LC_PAPER
+#usr/lib/locale/yue_HK/LC_TELEPHONE
+#usr/lib/locale/yue_HK/LC_TIME
 #usr/lib/locale/zh_CN
 #usr/lib/locale/zh_CN.gb18030
 #usr/lib/locale/zh_CN.gb18030/LC_ADDRESS
@@ -6709,7 +7357,6 @@ usr/lib/locale
 #usr/lib/locale/zu_ZA/LC_TIME
 #usr/sbin/iconvconfig
 #usr/sbin/nscd
-#usr/sbin/rpcinfo
 #usr/sbin/zdump
 #usr/sbin/zic
 #usr/share/i18n
@@ -6735,6 +7382,11 @@ usr/lib/locale
 #usr/share/i18n/charmaps/CP1257.gz
 #usr/share/i18n/charmaps/CP1258.gz
 #usr/share/i18n/charmaps/CP737.gz
+#usr/share/i18n/charmaps/CP770.gz
+#usr/share/i18n/charmaps/CP771.gz
+#usr/share/i18n/charmaps/CP772.gz
+#usr/share/i18n/charmaps/CP773.gz
+#usr/share/i18n/charmaps/CP774.gz
 #usr/share/i18n/charmaps/CP775.gz
 #usr/share/i18n/charmaps/CP949.gz
 #usr/share/i18n/charmaps/CSA_Z243.4-1985-1.gz
@@ -6948,8 +7600,10 @@ usr/lib/locale
 #usr/share/i18n/locales/aa_ER@saaho
 #usr/share/i18n/locales/aa_ET
 #usr/share/i18n/locales/af_ZA
+#usr/share/i18n/locales/ak_GH
 #usr/share/i18n/locales/am_ET
 #usr/share/i18n/locales/an_ES
+#usr/share/i18n/locales/anp_IN
 #usr/share/i18n/locales/ar_AE
 #usr/share/i18n/locales/ar_BH
 #usr/share/i18n/locales/ar_DZ
@@ -6965,23 +7619,29 @@ usr/lib/locale
 #usr/share/i18n/locales/ar_QA
 #usr/share/i18n/locales/ar_SA
 #usr/share/i18n/locales/ar_SD
+#usr/share/i18n/locales/ar_SS
 #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/ayc_PE
 #usr/share/i18n/locales/az_AZ
 #usr/share/i18n/locales/be_BY
 #usr/share/i18n/locales/be_BY@latin
+#usr/share/i18n/locales/bem_ZM
 #usr/share/i18n/locales/ber_DZ
 #usr/share/i18n/locales/ber_MA
 #usr/share/i18n/locales/bg_BG
+#usr/share/i18n/locales/bhb_IN
+#usr/share/i18n/locales/bho_IN
 #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/brx_IN
 #usr/share/i18n/locales/bs_BA
 #usr/share/i18n/locales/byn_ER
 #usr/share/i18n/locales/ca_AD
@@ -6989,6 +7649,9 @@ usr/lib/locale
 #usr/share/i18n/locales/ca_ES@euro
 #usr/share/i18n/locales/ca_FR
 #usr/share/i18n/locales/ca_IT
+#usr/share/i18n/locales/ce_RU
+#usr/share/i18n/locales/chr_US
+#usr/share/i18n/locales/cmn_TW
 #usr/share/i18n/locales/crh_UA
 #usr/share/i18n/locales/cs_CZ
 #usr/share/i18n/locales/csb_PL
@@ -7002,8 +7665,11 @@ usr/lib/locale
 #usr/share/i18n/locales/de_CH
 #usr/share/i18n/locales/de_DE
 #usr/share/i18n/locales/de_DE@euro
+#usr/share/i18n/locales/de_IT
+#usr/share/i18n/locales/de_LI
 #usr/share/i18n/locales/de_LU
 #usr/share/i18n/locales/de_LU@euro
+#usr/share/i18n/locales/doi_IN
 #usr/share/i18n/locales/dv_MV
 #usr/share/i18n/locales/dz_BT
 #usr/share/i18n/locales/el_CY
@@ -7018,6 +7684,7 @@ usr/lib/locale
 #usr/share/i18n/locales/en_HK
 #usr/share/i18n/locales/en_IE
 #usr/share/i18n/locales/en_IE@euro
+#usr/share/i18n/locales/en_IL
 #usr/share/i18n/locales/en_IN
 #usr/share/i18n/locales/en_NG
 #usr/share/i18n/locales/en_NZ
@@ -7025,12 +7692,15 @@ usr/lib/locale
 #usr/share/i18n/locales/en_SG
 #usr/share/i18n/locales/en_US
 #usr/share/i18n/locales/en_ZA
+#usr/share/i18n/locales/en_ZM
 #usr/share/i18n/locales/en_ZW
+#usr/share/i18n/locales/eo
 #usr/share/i18n/locales/es_AR
 #usr/share/i18n/locales/es_BO
 #usr/share/i18n/locales/es_CL
 #usr/share/i18n/locales/es_CO
 #usr/share/i18n/locales/es_CR
+#usr/share/i18n/locales/es_CU
 #usr/share/i18n/locales/es_DO
 #usr/share/i18n/locales/es_EC
 #usr/share/i18n/locales/es_ES
@@ -7051,8 +7721,8 @@ usr/lib/locale
 #usr/share/i18n/locales/eu_ES
 #usr/share/i18n/locales/eu_ES@euro
 #usr/share/i18n/locales/fa_IR
+#usr/share/i18n/locales/ff_SN
 #usr/share/i18n/locales/fi_FI
-#usr/share/i18n/locales/fi_FI.orig
 #usr/share/i18n/locales/fi_FI@euro
 #usr/share/i18n/locales/fil_PH
 #usr/share/i18n/locales/fo_FO
@@ -7079,6 +7749,7 @@ usr/lib/locale
 #usr/share/i18n/locales/gu_IN
 #usr/share/i18n/locales/gv_GB
 #usr/share/i18n/locales/ha_NG
+#usr/share/i18n/locales/hak_TW
 #usr/share/i18n/locales/he_IL
 #usr/share/i18n/locales/hi_IN
 #usr/share/i18n/locales/hne_IN
@@ -7088,6 +7759,7 @@ usr/lib/locale
 #usr/share/i18n/locales/hu_HU
 #usr/share/i18n/locales/hy_AM
 #usr/share/i18n/locales/i18n
+#usr/share/i18n/locales/ia_FR
 #usr/share/i18n/locales/id_ID
 #usr/share/i18n/locales/ig_NG
 #usr/share/i18n/locales/ik_CA
@@ -7099,7 +7771,6 @@ usr/lib/locale
 #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
@@ -7113,57 +7784,73 @@ usr/lib/locale
 #usr/share/i18n/locales/ku_TR
 #usr/share/i18n/locales/kw_GB
 #usr/share/i18n/locales/ky_KG
+#usr/share/i18n/locales/lb_LU
 #usr/share/i18n/locales/lg_UG
 #usr/share/i18n/locales/li_BE
 #usr/share/i18n/locales/li_NL
+#usr/share/i18n/locales/lij_IT
+#usr/share/i18n/locales/ln_CD
 #usr/share/i18n/locales/lo_LA
 #usr/share/i18n/locales/lt_LT
 #usr/share/i18n/locales/lv_LV
+#usr/share/i18n/locales/lzh_TW
+#usr/share/i18n/locales/mag_IN
 #usr/share/i18n/locales/mai_IN
 #usr/share/i18n/locales/mg_MG
+#usr/share/i18n/locales/mhr_RU
 #usr/share/i18n/locales/mi_NZ
 #usr/share/i18n/locales/mk_MK
 #usr/share/i18n/locales/ml_IN
 #usr/share/i18n/locales/mn_MN
+#usr/share/i18n/locales/mni_IN
 #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
 #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/nhn_MX
+#usr/share/i18n/locales/niu_NU
+#usr/share/i18n/locales/niu_NZ
 #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/os_RU
 #usr/share/i18n/locales/pa_IN
 #usr/share/i18n/locales/pa_PK
-#usr/share/i18n/locales/pap_AN
+#usr/share/i18n/locales/pap_AW
+#usr/share/i18n/locales/pap_CW
 #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/quz_PE
+#usr/share/i18n/locales/raj_IN
 #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/sat_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/sgs_LT
 #usr/share/i18n/locales/shs_CA
 #usr/share/i18n/locales/si_LK
 #usr/share/i18n/locales/sid_ET
@@ -7183,10 +7870,16 @@ usr/lib/locale
 #usr/share/i18n/locales/sv_FI
 #usr/share/i18n/locales/sv_FI@euro
 #usr/share/i18n/locales/sv_SE
+#usr/share/i18n/locales/sw_KE
+#usr/share/i18n/locales/sw_TZ
+#usr/share/i18n/locales/szl_PL
 #usr/share/i18n/locales/ta_IN
+#usr/share/i18n/locales/ta_LK
+#usr/share/i18n/locales/tcy_IN
 #usr/share/i18n/locales/te_IN
 #usr/share/i18n/locales/tg_TJ
 #usr/share/i18n/locales/th_TH
+#usr/share/i18n/locales/the_NP
 #usr/share/i18n/locales/ti_ER
 #usr/share/i18n/locales/ti_ET
 #usr/share/i18n/locales/tig_ER
@@ -7212,6 +7905,7 @@ usr/lib/locale
 #usr/share/i18n/locales/tt_RU@iqtelif
 #usr/share/i18n/locales/ug_CN
 #usr/share/i18n/locales/uk_UA
+#usr/share/i18n/locales/unm_US
 #usr/share/i18n/locales/ur_IN
 #usr/share/i18n/locales/ur_PK
 #usr/share/i18n/locales/uz_UZ
@@ -7220,11 +7914,13 @@ usr/lib/locale
 #usr/share/i18n/locales/vi_VN
 #usr/share/i18n/locales/wa_BE
 #usr/share/i18n/locales/wa_BE@euro
+#usr/share/i18n/locales/wae_CH
 #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/yue_HK
 #usr/share/i18n/locales/zh_CN
 #usr/share/i18n/locales/zh_HK
 #usr/share/i18n/locales/zh_SG
@@ -7235,6 +7931,10 @@ usr/lib/locale
 #usr/share/info/libc.info-1
 #usr/share/info/libc.info-10
 #usr/share/info/libc.info-11
+#usr/share/info/libc.info-12
+#usr/share/info/libc.info-13
+#usr/share/info/libc.info-14
+#usr/share/info/libc.info-15
 #usr/share/info/libc.info-2
 #usr/share/info/libc.info-3
 #usr/share/info/libc.info-4
@@ -7267,6 +7967,9 @@ usr/lib/locale
 #usr/share/locale/en_GB
 #usr/share/locale/en_GB/LC_MESSAGES
 #usr/share/locale/en_GB/LC_MESSAGES/libc.mo
+#usr/share/locale/eo
+#usr/share/locale/eo/LC_MESSAGES
+#usr/share/locale/eo/LC_MESSAGES/libc.mo
 #usr/share/locale/es
 #usr/share/locale/es/LC_MESSAGES
 #usr/share/locale/es/LC_MESSAGES/libc.mo
@@ -7285,6 +7988,9 @@ usr/lib/locale
 #usr/share/locale/hu
 #usr/share/locale/hu/LC_MESSAGES
 #usr/share/locale/hu/LC_MESSAGES/libc.mo
+#usr/share/locale/ia
+#usr/share/locale/ia/LC_MESSAGES
+#usr/share/locale/ia/LC_MESSAGES/libc.mo
 #usr/share/locale/id
 #usr/share/locale/id/LC_MESSAGES
 #usr/share/locale/id/LC_MESSAGES/libc.mo
@@ -7322,12 +8028,18 @@ usr/lib/locale
 #usr/share/locale/sk
 #usr/share/locale/sk/LC_MESSAGES
 #usr/share/locale/sk/LC_MESSAGES/libc.mo
+#usr/share/locale/sl
+#usr/share/locale/sl/LC_MESSAGES
+#usr/share/locale/sl/LC_MESSAGES/libc.mo
 #usr/share/locale/sv
 #usr/share/locale/sv/LC_MESSAGES
 #usr/share/locale/sv/LC_MESSAGES/libc.mo
 #usr/share/locale/tr
 #usr/share/locale/tr/LC_MESSAGES
 #usr/share/locale/tr/LC_MESSAGES/libc.mo
+#usr/share/locale/uk
+#usr/share/locale/uk/LC_MESSAGES
+#usr/share/locale/uk/LC_MESSAGES/libc.mo
 #usr/share/locale/vi
 #usr/share/locale/vi/LC_MESSAGES
 #usr/share/locale/vi/LC_MESSAGES/libc.mo
@@ -7339,3 +8051,5 @@ usr/lib/locale
 #usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
 #var/cache/ldconfig
 #var/cache/ldconfig/aux-cache
+#var/db
+#var/db/Makefile
index de549fcf448148f9d0bcca30b92e494b9ef1d406..919b0845aadce0b7bba495c62884ef9c1c7b5442 100644 (file)
@@ -4,12 +4,12 @@
 #usr/lib/libgmp.la
 #usr/lib/libgmp.so
 usr/lib/libgmp.so.10
-usr/lib/libgmp.so.10.3.0
+usr/lib/libgmp.so.10.3.2
 #usr/lib/libgmpxx.a
 #usr/lib/libgmpxx.la
 #usr/lib/libgmpxx.so
 usr/lib/libgmpxx.so.4
-usr/lib/libgmpxx.so.4.5.0
+usr/lib/libgmpxx.so.4.5.2
 #usr/share/info/gmp.info
 #usr/share/info/gmp.info-1
 #usr/share/info/gmp.info-2
index e1e78dce1513cae296d5c93512d9124f1484d32f..1e67c36e68b60fe33ffa1723158d53f7021e00d6 100644 (file)
@@ -3,65 +3,30 @@ etc/init.d
 #etc/rc.d/helper
 etc/rc.d/helper/getdnsfromdhcpc.pl
 #etc/rc.d/init.d
-#etc/rc.d/init.d/alsa
-#etc/rc.d/init.d/amavisd
 etc/rc.d/init.d/apache
-#etc/rc.d/init.d/apcupsd
-#etc/rc.d/init.d/applejuice
-#etc/rc.d/init.d/asterisk
 etc/rc.d/init.d/beep
-#etc/rc.d/init.d/bluetooth
 etc/rc.d/init.d/checkfs
-#etc/rc.d/init.d/clamav
 etc/rc.d/init.d/cleanfs
-#etc/rc.d/init.d/client175
 etc/rc.d/init.d/collectd
 etc/rc.d/init.d/connectd
 etc/rc.d/init.d/console
-#etc/rc.d/init.d/cpufreq
-#etc/rc.d/init.d/cups
-#etc/rc.d/init.d/cyrus-imapd
-#etc/rc.d/init.d/cyrus-sasl
 etc/rc.d/init.d/dhcp
 etc/rc.d/init.d/dhcrelay
-#etc/rc.d/init.d/dnsdist
 etc/rc.d/init.d/fcron
-#etc/rc.d/init.d/fetchmail
 etc/rc.d/init.d/fireinfo
 etc/rc.d/init.d/firewall
 etc/rc.d/init.d/firstsetup
-#etc/rc.d/init.d/freeradius
 etc/rc.d/init.d/fsresize
 etc/rc.d/init.d/functions
-#etc/rc.d/init.d/gnump3d
-#etc/rc.d/init.d/guardian
 etc/rc.d/init.d/halt
-#etc/rc.d/init.d/haproxy
-#etc/rc.d/init.d/hostapd
-#etc/rc.d/init.d/imspector
 etc/rc.d/init.d/ipsec
-#etc/rc.d/init.d/keepalived
-#etc/rc.d/init.d/lcd4linux
-#etc/rc.d/init.d/lcdproc
-#etc/rc.d/init.d/lcr
 etc/rc.d/init.d/leds
-#etc/rc.d/init.d/libvirtd
 etc/rc.d/init.d/localnet
 etc/rc.d/init.d/mISDN
-#etc/rc.d/init.d/mediatomb
-#etc/rc.d/init.d/messagebus
-#etc/rc.d/init.d/miau
-#etc/rc.d/init.d/minidlna
-#etc/rc.d/init.d/miniupnpd
 etc/rc.d/init.d/modules
-#etc/rc.d/init.d/monit
-#etc/rc.d/init.d/motion
 etc/rc.d/init.d/mountfs
 etc/rc.d/init.d/mountkernfs
 etc/rc.d/init.d/mounttmpfs
-#etc/rc.d/init.d/mpd
-#etc/rc.d/init.d/mysql
-#etc/rc.d/init.d/netsnmpd
 etc/rc.d/init.d/network
 etc/rc.d/init.d/network-trigger
 #etc/rc.d/init.d/networking
@@ -98,52 +63,31 @@ etc/rc.d/init.d/networking/red.up/99-fireinfo
 etc/rc.d/init.d/networking/red.up/99-geoip-database
 etc/rc.d/init.d/networking/red.up/99-pakfire-update
 etc/rc.d/init.d/networking/wpa_supplicant.exe
-#etc/rc.d/init.d/nfs-server
 etc/rc.d/init.d/ntp
-#etc/rc.d/init.d/nut
-#etc/rc.d/init.d/openvmtools
 etc/rc.d/init.d/partresize
-#etc/rc.d/init.d/postfix
-#etc/rc.d/init.d/pound
 etc/rc.d/init.d/random
 etc/rc.d/init.d/rc
 etc/rc.d/init.d/reboot
 etc/rc.d/init.d/rngd
-#etc/rc.d/init.d/rpcbind
-#etc/rc.d/init.d/rtpproxy
-#etc/rc.d/init.d/samba
-#etc/rc.d/init.d/sane
 etc/rc.d/init.d/sendsignals
 etc/rc.d/init.d/setclock
 etc/rc.d/init.d/smartenabler
 etc/rc.d/init.d/snort
-#etc/rc.d/init.d/spamassassin
 etc/rc.d/init.d/squid
 etc/rc.d/init.d/sshd
-#etc/rc.d/init.d/sslh
 etc/rc.d/init.d/static-routes
-#etc/rc.d/init.d/stunnel
 etc/rc.d/init.d/swap
 etc/rc.d/init.d/swconfig
 etc/rc.d/init.d/sysctl
 etc/rc.d/init.d/sysklogd
 etc/rc.d/init.d/template
-#etc/rc.d/init.d/tftpd
-#etc/rc.d/init.d/tor
-#etc/rc.d/init.d/transmission
 etc/rc.d/init.d/udev
 etc/rc.d/init.d/udev_retry
 etc/rc.d/init.d/unbound
 etc/rc.d/init.d/upnpd
-#etc/rc.d/init.d/vdr
-#etc/rc.d/init.d/vdradmin
-#etc/rc.d/init.d/virtlogd
 etc/rc.d/init.d/vnstat
-#etc/rc.d/init.d/vsftpd
 etc/rc.d/init.d/waitdrives
-#etc/rc.d/init.d/watchdog
 etc/rc.d/init.d/wlanclient
-#etc/rc.d/init.d/xinetd
 #etc/rc.d/rc0.d
 #etc/rc.d/rc0.d/K01imspetor
 #etc/rc.d/rc0.d/K01motion
index 4d17590b6ddc163f87805bdfc17838f49faa6a84..998b02e9f106518a54810e62cbc9a0cb28876c96 100644 (file)
@@ -8,7 +8,7 @@ usr/bin/sensors-conf-convert
 #usr/lib/libsensors.a
 usr/lib/libsensors.so
 usr/lib/libsensors.so.4
-usr/lib/libsensors.so.4.3.2
+usr/lib/libsensors.so.4.4.0
 #usr/man/man1/sensors.1
 #usr/man/man3/libsensors.3
 #usr/man/man5/sensors.conf.5
@@ -17,6 +17,7 @@ usr/lib/libsensors.so.4.3.2
 #usr/man/man8/isadump.8
 #usr/man/man8/isaset.8
 #usr/man/man8/pwmconfig.8
+#usr/man/man8/sensors-conf-convert.8
 #usr/man/man8/sensors-detect.8
 usr/sbin/fancontrol
 usr/sbin/pwmconfig
index a308ae0e4f31a4fcd6bf639601eabe387645883f..9248201f90b2c4545a3f764be6b0b4344acd1b60 100644 (file)
@@ -1463,8 +1463,8 @@ usr/lib/python2.7/encodings/zlib_codec.pyc
 #usr/lib/python2.7/ensurepip/__main__.pyc
 #usr/lib/python2.7/ensurepip/__main__.pyo
 #usr/lib/python2.7/ensurepip/_bundled
-#usr/lib/python2.7/ensurepip/_bundled/pip-6.1.1-py2.py3-none-any.whl
-#usr/lib/python2.7/ensurepip/_bundled/setuptools-15.2-py2.py3-none-any.whl
+#usr/lib/python2.7/ensurepip/_bundled/pip-9.0.1-py2.py3-none-any.whl
+#usr/lib/python2.7/ensurepip/_bundled/setuptools-28.8.0-py2.py3-none-any.whl
 #usr/lib/python2.7/ensurepip/_uninstall.py
 #usr/lib/python2.7/ensurepip/_uninstall.pyc
 #usr/lib/python2.7/ensurepip/_uninstall.pyo
@@ -1718,6 +1718,10 @@ usr/lib/python2.7/httplib.pyc
 #usr/lib/python2.7/idlelib/dynOptionMenuWidget.pyc
 #usr/lib/python2.7/idlelib/dynOptionMenuWidget.pyo
 #usr/lib/python2.7/idlelib/extend.txt
+#usr/lib/python2.7/idlelib/help.html
+#usr/lib/python2.7/idlelib/help.py
+#usr/lib/python2.7/idlelib/help.pyc
+#usr/lib/python2.7/idlelib/help.pyo
 #usr/lib/python2.7/idlelib/help.txt
 #usr/lib/python2.7/idlelib/idle.bat
 #usr/lib/python2.7/idlelib/idle.py
@@ -1756,12 +1760,18 @@ usr/lib/python2.7/httplib.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_delegator.py
 #usr/lib/python2.7/idlelib/idle_test/test_delegator.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_delegator.pyo
+#usr/lib/python2.7/idlelib/idle_test/test_editmenu.py
+#usr/lib/python2.7/idlelib/idle_test/test_editmenu.pyc
+#usr/lib/python2.7/idlelib/idle_test/test_editmenu.pyo
 #usr/lib/python2.7/idlelib/idle_test/test_formatparagraph.py
 #usr/lib/python2.7/idlelib/idle_test/test_formatparagraph.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_formatparagraph.pyo
 #usr/lib/python2.7/idlelib/idle_test/test_grep.py
 #usr/lib/python2.7/idlelib/idle_test/test_grep.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_grep.pyo
+#usr/lib/python2.7/idlelib/idle_test/test_helpabout.py
+#usr/lib/python2.7/idlelib/idle_test/test_helpabout.pyc
+#usr/lib/python2.7/idlelib/idle_test/test_helpabout.pyo
 #usr/lib/python2.7/idlelib/idle_test/test_hyperparser.py
 #usr/lib/python2.7/idlelib/idle_test/test_hyperparser.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_hyperparser.pyo
@@ -1916,7 +1926,7 @@ usr/lib/python2.7/json/tool.pyc
 usr/lib/python2.7/keyword.pyc
 #usr/lib/python2.7/keyword.pyo
 #usr/lib/python2.7/lib-dynload
-#usr/lib/python2.7/lib-dynload/Python-2.7.10-py2.7.egg-info
+#usr/lib/python2.7/lib-dynload/Python-2.7.13-py2.7.egg-info
 usr/lib/python2.7/lib-dynload/_bisect.so
 usr/lib/python2.7/lib-dynload/_bsddb.so
 usr/lib/python2.7/lib-dynload/_codecs_cn.so
@@ -2092,9 +2102,9 @@ usr/lib/python2.7/lib-dynload/zlib.so
 #usr/lib/python2.7/lib-tk/turtle.pyo
 #usr/lib/python2.7/lib2to3
 #usr/lib/python2.7/lib2to3/Grammar.txt
-#usr/lib/python2.7/lib2to3/Grammar2.7.10.final.0.pickle
+#usr/lib/python2.7/lib2to3/Grammar2.7.13.final.0.pickle
 #usr/lib/python2.7/lib2to3/PatternGrammar.txt
-#usr/lib/python2.7/lib2to3/PatternGrammar2.7.10.final.0.pickle
+#usr/lib/python2.7/lib2to3/PatternGrammar2.7.13.final.0.pickle
 #usr/lib/python2.7/lib2to3/__init__.py
 #usr/lib/python2.7/lib2to3/__init__.pyc
 #usr/lib/python2.7/lib2to3/__init__.pyo
@@ -2129,9 +2139,6 @@ usr/lib/python2.7/lib-dynload/zlib.so
 #usr/lib/python2.7/lib2to3/fixes/fix_buffer.py
 #usr/lib/python2.7/lib2to3/fixes/fix_buffer.pyc
 #usr/lib/python2.7/lib2to3/fixes/fix_buffer.pyo
-#usr/lib/python2.7/lib2to3/fixes/fix_callable.py
-#usr/lib/python2.7/lib2to3/fixes/fix_callable.pyc
-#usr/lib/python2.7/lib2to3/fixes/fix_callable.pyo
 #usr/lib/python2.7/lib2to3/fixes/fix_dict.py
 #usr/lib/python2.7/lib2to3/fixes/fix_dict.pyc
 #usr/lib/python2.7/lib2to3/fixes/fix_dict.pyo
@@ -2750,6 +2757,7 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/_mock_backport.py
 #usr/lib/python2.7/test/_mock_backport.pyc
 #usr/lib/python2.7/test/_mock_backport.pyo
+#usr/lib/python2.7/test/allsans.pem
 #usr/lib/python2.7/test/audiodata
 #usr/lib/python2.7/test/audiodata/pluck-pcm16.aiff
 #usr/lib/python2.7/test/audiodata/pluck-pcm16.au
@@ -2784,16 +2792,14 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/badsyntax_future8.py
 #usr/lib/python2.7/test/badsyntax_future9.py
 #usr/lib/python2.7/test/badsyntax_nocaret.py
-#usr/lib/python2.7/test/buffer_tests.py
-#usr/lib/python2.7/test/buffer_tests.pyc
-#usr/lib/python2.7/test/buffer_tests.pyo
 #usr/lib/python2.7/test/capath
+#usr/lib/python2.7/test/capath/0e4015b9.0
 #usr/lib/python2.7/test/capath/4e1295a3.0
 #usr/lib/python2.7/test/capath/5ed36f99.0
 #usr/lib/python2.7/test/capath/6e88d7b8.0
 #usr/lib/python2.7/test/capath/99d0fa06.0
+#usr/lib/python2.7/test/capath/ce7b8643.0
 #usr/lib/python2.7/test/cfgparser.1
-#usr/lib/python2.7/test/check_soundcard.vbs
 #usr/lib/python2.7/test/cjkencodings
 #usr/lib/python2.7/test/cjkencodings/big5-utf8.txt
 #usr/lib/python2.7/test/cjkencodings/big5.txt
@@ -2993,7 +2999,6 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/gdb_sample.pyc
 #usr/lib/python2.7/test/gdb_sample.pyo
 #usr/lib/python2.7/test/greyrgb.uue
-#usr/lib/python2.7/test/https_svn_python_org_root.pem
 #usr/lib/python2.7/test/ieee754.txt
 #usr/lib/python2.7/test/imghdrdata
 #usr/lib/python2.7/test/imghdrdata/python.bmp
@@ -3105,6 +3110,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/ssl_servers.py
 #usr/lib/python2.7/test/ssl_servers.pyc
 #usr/lib/python2.7/test/ssl_servers.pyo
+#usr/lib/python2.7/test/ssltests.py
+#usr/lib/python2.7/test/ssltests.pyc
+#usr/lib/python2.7/test/ssltests.pyo
 #usr/lib/python2.7/test/string_tests.py
 #usr/lib/python2.7/test/string_tests.pyc
 #usr/lib/python2.7/test/string_tests.pyo
@@ -3319,9 +3327,6 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_codeop.py
 #usr/lib/python2.7/test/test_codeop.pyc
 #usr/lib/python2.7/test/test_codeop.pyo
-#usr/lib/python2.7/test/test_coding.py
-#usr/lib/python2.7/test/test_coding.pyc
-#usr/lib/python2.7/test/test_coding.pyo
 #usr/lib/python2.7/test/test_coercion.py
 #usr/lib/python2.7/test/test_coercion.pyc
 #usr/lib/python2.7/test/test_coercion.pyo
@@ -3837,6 +3842,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_optparse.py
 #usr/lib/python2.7/test/test_optparse.pyc
 #usr/lib/python2.7/test/test_optparse.pyo
+#usr/lib/python2.7/test/test_ordered_dict.py
+#usr/lib/python2.7/test/test_ordered_dict.pyc
+#usr/lib/python2.7/test/test_ordered_dict.pyo
 #usr/lib/python2.7/test/test_os.py
 #usr/lib/python2.7/test/test_os.pyc
 #usr/lib/python2.7/test/test_os.pyo
@@ -3855,15 +3863,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_pep247.py
 #usr/lib/python2.7/test/test_pep247.pyc
 #usr/lib/python2.7/test/test_pep247.pyo
-#usr/lib/python2.7/test/test_pep263.py
-#usr/lib/python2.7/test/test_pep263.pyc
-#usr/lib/python2.7/test/test_pep263.pyo
 #usr/lib/python2.7/test/test_pep277.py
 #usr/lib/python2.7/test/test_pep277.pyc
 #usr/lib/python2.7/test/test_pep277.pyo
-#usr/lib/python2.7/test/test_pep292.py
-#usr/lib/python2.7/test/test_pep292.pyc
-#usr/lib/python2.7/test/test_pep292.pyo
 #usr/lib/python2.7/test/test_pep352.py
 #usr/lib/python2.7/test/test_pep352.pyc
 #usr/lib/python2.7/test/test_pep352.pyo
@@ -4047,6 +4049,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_sort.py
 #usr/lib/python2.7/test/test_sort.pyc
 #usr/lib/python2.7/test/test_sort.pyo
+#usr/lib/python2.7/test/test_source_encoding.py
+#usr/lib/python2.7/test/test_source_encoding.pyc
+#usr/lib/python2.7/test/test_source_encoding.pyo
 #usr/lib/python2.7/test/test_spwd.py
 #usr/lib/python2.7/test/test_spwd.pyc
 #usr/lib/python2.7/test/test_spwd.pyo
@@ -4194,6 +4199,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_tuple.py
 #usr/lib/python2.7/test/test_tuple.pyc
 #usr/lib/python2.7/test/test_tuple.pyo
+#usr/lib/python2.7/test/test_turtle.py
+#usr/lib/python2.7/test/test_turtle.pyc
+#usr/lib/python2.7/test/test_turtle.pyo
 #usr/lib/python2.7/test/test_typechecks.py
 #usr/lib/python2.7/test/test_typechecks.pyc
 #usr/lib/python2.7/test/test_typechecks.pyo
index d24d1334d51a323a8650500d5c8a8b731a8ebfef..6a3ed507aa61ba89248da7eba107869e443f7fe0 100644 (file)
@@ -8,7 +8,7 @@ usr/bin/setfattr
 #usr/include/attr/xattr.h
 #usr/lib/libattr.a
 #usr/lib/libattr.la
-usr/lib/libattr.so
+#usr/lib/libattr.so
 usr/lib/libattr.so.1
 usr/lib/libattr.so.1.1.0
 #usr/share/doc/attr
@@ -28,17 +28,12 @@ usr/lib/libattr.so.1.1.0
 #usr/share/man/man1/attr.1
 #usr/share/man/man1/getfattr.1
 #usr/share/man/man1/setfattr.1
-#usr/share/man/man2/fgetxattr.2
+#usr/share/man/man2/flistxattr.2
 #usr/share/man/man2/fremovexattr.2
-#usr/share/man/man2/fsetxattr.2
 #usr/share/man/man2/getxattr.2
+#usr/share/man/man2/setxattr.2
 #usr/share/man/man2/llistxattr.2
-#usr/share/man/man2/lgetxattr.2
-#usr/share/man/man2/listxattr.2
 #usr/share/man/man2/lremovexattr.2
-#usr/share/man/man2/lsetxattr.2
-#usr/share/man/man2/removexattr.2
-#usr/share/man/man2/setxattr.2
 #usr/share/man/man3/attr_get.3
 #usr/share/man/man3/attr_getf.3
 #usr/share/man/man3/attr_list.3
index b398eb974505539160f8aa2b3f3a3c5b46567ad3..3e28ae7445b6f032c12c0d69d02814eb264ba451 100644 (file)
@@ -54,6 +54,7 @@
 #usr/share/autoconf/m4sugar/m4sugar.m4f
 #usr/share/autoconf/m4sugar/version.m4
 #usr/share/info/autoconf.info
+#usr/share/info/standards.info
 #usr/share/man/man1/autoconf.1
 #usr/share/man/man1/autoheader.1
 #usr/share/man/man1/autom4te.1
index 145c177897dc1f200939b72778401f780b904b7a..2e983a862c6a8cde7a9613972ff112f9f9c3418d 100644 (file)
@@ -1,6 +1,6 @@
 usr/bin/bc
 usr/bin/dc
-#usr/info/bc.info
-#usr/info/dc.info
-#usr/man/man1/bc.1
-#usr/man/man1/dc.1
+#usr/share/info/bc.info
+#usr/share/info/dc.info
+#usr/share/man/man1/bc.1
+#usr/share/man/man1/dc.1
index 57cb128b17321a569d5a39d7ff37fcb2455a1b43..afced4e16aaf1ae5c8cdd1f580a35bccf2fb97ae 100644 (file)
@@ -59,7 +59,9 @@
 #usr/include/boost/accumulators/statistics/pot_tail_mean.hpp
 #usr/include/boost/accumulators/statistics/rolling_count.hpp
 #usr/include/boost/accumulators/statistics/rolling_mean.hpp
+#usr/include/boost/accumulators/statistics/rolling_moment.hpp
 #usr/include/boost/accumulators/statistics/rolling_sum.hpp
+#usr/include/boost/accumulators/statistics/rolling_variance.hpp
 #usr/include/boost/accumulators/statistics/rolling_window.hpp
 #usr/include/boost/accumulators/statistics/skewness.hpp
 #usr/include/boost/accumulators/statistics/stats.hpp
@@ -95,6 +97,7 @@
 #usr/include/boost/accumulators/statistics/with_error.hpp
 #usr/include/boost/accumulators/statistics_fwd.hpp
 #usr/include/boost/algorithm
+#usr/include/boost/algorithm/algorithm.hpp
 #usr/include/boost/algorithm/clamp.hpp
 #usr/include/boost/algorithm/cxx11
 #usr/include/boost/algorithm/cxx11/all_of.hpp
 #usr/include/boost/algorithm/cxx14/mismatch.hpp
 #usr/include/boost/algorithm/gather.hpp
 #usr/include/boost/algorithm/hex.hpp
+#usr/include/boost/algorithm/is_palindrome.hpp
 #usr/include/boost/algorithm/minmax.hpp
 #usr/include/boost/algorithm/minmax_element.hpp
 #usr/include/boost/algorithm/searching
 #usr/include/boost/algorithm/searching/detail/bm_traits.hpp
 #usr/include/boost/algorithm/searching/detail/debugging.hpp
 #usr/include/boost/algorithm/searching/knuth_morris_pratt.hpp
+#usr/include/boost/algorithm/sort_subrange.hpp
 #usr/include/boost/algorithm/string
 #usr/include/boost/algorithm/string.hpp
 #usr/include/boost/algorithm/string/case_conv.hpp
 #usr/include/boost/algorithm/string/trim_all.hpp
 #usr/include/boost/algorithm/string/yes_no_type.hpp
 #usr/include/boost/algorithm/string_regex.hpp
+#usr/include/boost/align
+#usr/include/boost/align.hpp
+#usr/include/boost/align/align.hpp
+#usr/include/boost/align/align_down.hpp
+#usr/include/boost/align/align_up.hpp
+#usr/include/boost/align/aligned_alloc.hpp
+#usr/include/boost/align/aligned_allocator.hpp
+#usr/include/boost/align/aligned_allocator_adaptor.hpp
+#usr/include/boost/align/aligned_allocator_adaptor_forward.hpp
+#usr/include/boost/align/aligned_allocator_forward.hpp
+#usr/include/boost/align/aligned_delete.hpp
+#usr/include/boost/align/aligned_delete_forward.hpp
+#usr/include/boost/align/alignment_of.hpp
+#usr/include/boost/align/alignment_of_forward.hpp
+#usr/include/boost/align/assume_aligned.hpp
+#usr/include/boost/align/detail
+#usr/include/boost/align/detail/addressof.hpp
+#usr/include/boost/align/detail/align.hpp
+#usr/include/boost/align/detail/align_cxx11.hpp
+#usr/include/boost/align/detail/align_down.hpp
+#usr/include/boost/align/detail/align_up.hpp
+#usr/include/boost/align/detail/aligned_alloc.hpp
+#usr/include/boost/align/detail/aligned_alloc_android.hpp
+#usr/include/boost/align/detail/aligned_alloc_macos.hpp
+#usr/include/boost/align/detail/aligned_alloc_msvc.hpp
+#usr/include/boost/align/detail/aligned_alloc_posix.hpp
+#usr/include/boost/align/detail/aligned_alloc_sunos.hpp
+#usr/include/boost/align/detail/alignment_of.hpp
+#usr/include/boost/align/detail/alignment_of_clang.hpp
+#usr/include/boost/align/detail/alignment_of_codegear.hpp
+#usr/include/boost/align/detail/alignment_of_cxx11.hpp
+#usr/include/boost/align/detail/alignment_of_gcc.hpp
+#usr/include/boost/align/detail/alignment_of_msvc.hpp
+#usr/include/boost/align/detail/assume_aligned.hpp
+#usr/include/boost/align/detail/assume_aligned_clang.hpp
+#usr/include/boost/align/detail/assume_aligned_gcc.hpp
+#usr/include/boost/align/detail/assume_aligned_intel.hpp
+#usr/include/boost/align/detail/assume_aligned_msvc.hpp
+#usr/include/boost/align/detail/element_type.hpp
+#usr/include/boost/align/detail/integral_constant.hpp
+#usr/include/boost/align/detail/is_aligned.hpp
+#usr/include/boost/align/detail/is_alignment.hpp
+#usr/include/boost/align/detail/is_alignment_constant.hpp
+#usr/include/boost/align/detail/max_align.hpp
+#usr/include/boost/align/detail/max_objects.hpp
+#usr/include/boost/align/detail/max_size.hpp
+#usr/include/boost/align/detail/min_size.hpp
+#usr/include/boost/align/is_aligned.hpp
 #usr/include/boost/aligned_storage.hpp
 #usr/include/boost/any.hpp
 #usr/include/boost/archive
-#usr/include/boost/archive/add_facet.hpp
 #usr/include/boost/archive/archive_exception.hpp
 #usr/include/boost/archive/basic_archive.hpp
 #usr/include/boost/archive/basic_binary_iarchive.hpp
 #usr/include/boost/archive/detail/archive_serializer_map.hpp
 #usr/include/boost/archive/detail/auto_link_archive.hpp
 #usr/include/boost/archive/detail/auto_link_warchive.hpp
-#usr/include/boost/archive/detail/basic_archive_impl.hpp
-#usr/include/boost/archive/detail/basic_config.hpp
 #usr/include/boost/archive/detail/basic_iarchive.hpp
 #usr/include/boost/archive/detail/basic_iserializer.hpp
 #usr/include/boost/archive/detail/basic_oarchive.hpp
 #usr/include/boost/archive/detail/common_iarchive.hpp
 #usr/include/boost/archive/detail/common_oarchive.hpp
 #usr/include/boost/archive/detail/decl.hpp
+#usr/include/boost/archive/detail/helper_collection.hpp
 #usr/include/boost/archive/detail/interface_iarchive.hpp
 #usr/include/boost/archive/detail/interface_oarchive.hpp
 #usr/include/boost/archive/detail/iserializer.hpp
 #usr/include/boost/archive/iterators/dataflow.hpp
 #usr/include/boost/archive/iterators/dataflow_exception.hpp
 #usr/include/boost/archive/iterators/escape.hpp
-#usr/include/boost/archive/iterators/head_iterator.hpp
 #usr/include/boost/archive/iterators/insert_linebreaks.hpp
 #usr/include/boost/archive/iterators/istream_iterator.hpp
 #usr/include/boost/archive/iterators/mb_from_wchar.hpp
 #usr/include/boost/archive/polymorphic_xml_oarchive.hpp
 #usr/include/boost/archive/polymorphic_xml_wiarchive.hpp
 #usr/include/boost/archive/polymorphic_xml_woarchive.hpp
-#usr/include/boost/archive/shared_ptr_helper.hpp
 #usr/include/boost/archive/text_iarchive.hpp
 #usr/include/boost/archive/text_oarchive.hpp
 #usr/include/boost/archive/text_wiarchive.hpp
 #usr/include/boost/asio/detail/limits.hpp
 #usr/include/boost/asio/detail/local_free_on_block_exit.hpp
 #usr/include/boost/asio/detail/macos_fenced_block.hpp
+#usr/include/boost/asio/detail/memory.hpp
 #usr/include/boost/asio/detail/mutex.hpp
 #usr/include/boost/asio/detail/noncopyable.hpp
 #usr/include/boost/asio/detail/null_event.hpp
 #usr/include/boost/asio/detail/solaris_fenced_block.hpp
 #usr/include/boost/asio/detail/static_mutex.hpp
 #usr/include/boost/asio/detail/std_event.hpp
+#usr/include/boost/asio/detail/std_fenced_block.hpp
 #usr/include/boost/asio/detail/std_mutex.hpp
 #usr/include/boost/asio/detail/std_static_mutex.hpp
 #usr/include/boost/asio/detail/std_thread.hpp
 #usr/include/boost/asio/detail/win_iocp_overlapped_ptr.hpp
 #usr/include/boost/asio/detail/win_iocp_serial_port_service.hpp
 #usr/include/boost/asio/detail/win_iocp_socket_accept_op.hpp
+#usr/include/boost/asio/detail/win_iocp_socket_connect_op.hpp
 #usr/include/boost/asio/detail/win_iocp_socket_recv_op.hpp
 #usr/include/boost/asio/detail/win_iocp_socket_recvfrom_op.hpp
 #usr/include/boost/asio/detail/win_iocp_socket_recvmsg_op.hpp
 #usr/include/boost/asio/detail/win_static_mutex.hpp
 #usr/include/boost/asio/detail/win_thread.hpp
 #usr/include/boost/asio/detail/win_tss_ptr.hpp
-#usr/include/boost/asio/detail/wince_thread.hpp
+#usr/include/boost/asio/detail/winapi_thread.hpp
 #usr/include/boost/asio/detail/winrt_async_manager.hpp
 #usr/include/boost/asio/detail/winrt_async_op.hpp
 #usr/include/boost/asio/detail/winrt_resolve_op.hpp
 #usr/include/boost/atomic
 #usr/include/boost/atomic.hpp
 #usr/include/boost/atomic/atomic.hpp
+#usr/include/boost/atomic/atomic_flag.hpp
+#usr/include/boost/atomic/capabilities.hpp
 #usr/include/boost/atomic/detail
-#usr/include/boost/atomic/detail/base.hpp
-#usr/include/boost/atomic/detail/cas128strong.hpp
-#usr/include/boost/atomic/detail/cas32strong.hpp
-#usr/include/boost/atomic/detail/cas32weak.hpp
-#usr/include/boost/atomic/detail/cas64strong-ptr.hpp
-#usr/include/boost/atomic/detail/cas64strong.hpp
+#usr/include/boost/atomic/detail/atomic_flag.hpp
+#usr/include/boost/atomic/detail/atomic_template.hpp
+#usr/include/boost/atomic/detail/bitwise_cast.hpp
+#usr/include/boost/atomic/detail/caps_gcc_alpha.hpp
+#usr/include/boost/atomic/detail/caps_gcc_arm.hpp
+#usr/include/boost/atomic/detail/caps_gcc_atomic.hpp
+#usr/include/boost/atomic/detail/caps_gcc_ppc.hpp
+#usr/include/boost/atomic/detail/caps_gcc_sparc.hpp
+#usr/include/boost/atomic/detail/caps_gcc_sync.hpp
+#usr/include/boost/atomic/detail/caps_gcc_x86.hpp
+#usr/include/boost/atomic/detail/caps_linux_arm.hpp
+#usr/include/boost/atomic/detail/caps_msvc_arm.hpp
+#usr/include/boost/atomic/detail/caps_msvc_x86.hpp
+#usr/include/boost/atomic/detail/caps_windows.hpp
 #usr/include/boost/atomic/detail/config.hpp
-#usr/include/boost/atomic/detail/gcc-alpha.hpp
-#usr/include/boost/atomic/detail/gcc-armv6plus.hpp
-#usr/include/boost/atomic/detail/gcc-atomic.hpp
-#usr/include/boost/atomic/detail/gcc-cas.hpp
-#usr/include/boost/atomic/detail/gcc-ppc.hpp
-#usr/include/boost/atomic/detail/gcc-sparcv9.hpp
-#usr/include/boost/atomic/detail/gcc-x86.hpp
-#usr/include/boost/atomic/detail/generic-cas.hpp
+#usr/include/boost/atomic/detail/int_sizes.hpp
 #usr/include/boost/atomic/detail/interlocked.hpp
 #usr/include/boost/atomic/detail/link.hpp
-#usr/include/boost/atomic/detail/linux-arm.hpp
 #usr/include/boost/atomic/detail/lockpool.hpp
+#usr/include/boost/atomic/detail/operations.hpp
+#usr/include/boost/atomic/detail/operations_fwd.hpp
+#usr/include/boost/atomic/detail/operations_lockfree.hpp
+#usr/include/boost/atomic/detail/ops_cas_based.hpp
+#usr/include/boost/atomic/detail/ops_emulated.hpp
+#usr/include/boost/atomic/detail/ops_extending_cas_based.hpp
+#usr/include/boost/atomic/detail/ops_gcc_alpha.hpp
+#usr/include/boost/atomic/detail/ops_gcc_arm.hpp
+#usr/include/boost/atomic/detail/ops_gcc_atomic.hpp
+#usr/include/boost/atomic/detail/ops_gcc_ppc.hpp
+#usr/include/boost/atomic/detail/ops_gcc_sparc.hpp
+#usr/include/boost/atomic/detail/ops_gcc_sync.hpp
+#usr/include/boost/atomic/detail/ops_gcc_x86.hpp
+#usr/include/boost/atomic/detail/ops_gcc_x86_dcas.hpp
+#usr/include/boost/atomic/detail/ops_linux_arm.hpp
+#usr/include/boost/atomic/detail/ops_msvc_arm.hpp
+#usr/include/boost/atomic/detail/ops_msvc_common.hpp
+#usr/include/boost/atomic/detail/ops_msvc_x86.hpp
+#usr/include/boost/atomic/detail/ops_windows.hpp
+#usr/include/boost/atomic/detail/pause.hpp
 #usr/include/boost/atomic/detail/platform.hpp
-#usr/include/boost/atomic/detail/type-classification.hpp
-#usr/include/boost/atomic/detail/windows.hpp
+#usr/include/boost/atomic/detail/storage_type.hpp
+#usr/include/boost/atomic/fences.hpp
 #usr/include/boost/bimap
 #usr/include/boost/bimap.hpp
 #usr/include/boost/bimap/bimap.hpp
 #usr/include/boost/compatibility/cpp_c_headers/cwchar
 #usr/include/boost/compatibility/cpp_c_headers/cwctype
 #usr/include/boost/compressed_pair.hpp
+#usr/include/boost/compute
+#usr/include/boost/compute.hpp
+#usr/include/boost/compute/algorithm
+#usr/include/boost/compute/algorithm.hpp
+#usr/include/boost/compute/algorithm/accumulate.hpp
+#usr/include/boost/compute/algorithm/adjacent_difference.hpp
+#usr/include/boost/compute/algorithm/adjacent_find.hpp
+#usr/include/boost/compute/algorithm/all_of.hpp
+#usr/include/boost/compute/algorithm/any_of.hpp
+#usr/include/boost/compute/algorithm/binary_search.hpp
+#usr/include/boost/compute/algorithm/copy.hpp
+#usr/include/boost/compute/algorithm/copy_if.hpp
+#usr/include/boost/compute/algorithm/copy_n.hpp
+#usr/include/boost/compute/algorithm/count.hpp
+#usr/include/boost/compute/algorithm/count_if.hpp
+#usr/include/boost/compute/algorithm/detail
+#usr/include/boost/compute/algorithm/detail/balanced_path.hpp
+#usr/include/boost/compute/algorithm/detail/binary_find.hpp
+#usr/include/boost/compute/algorithm/detail/compact.hpp
+#usr/include/boost/compute/algorithm/detail/copy_on_device.hpp
+#usr/include/boost/compute/algorithm/detail/copy_to_device.hpp
+#usr/include/boost/compute/algorithm/detail/copy_to_host.hpp
+#usr/include/boost/compute/algorithm/detail/count_if_with_ballot.hpp
+#usr/include/boost/compute/algorithm/detail/count_if_with_reduce.hpp
+#usr/include/boost/compute/algorithm/detail/count_if_with_threads.hpp
+#usr/include/boost/compute/algorithm/detail/find_extrema.hpp
+#usr/include/boost/compute/algorithm/detail/find_extrema_on_cpu.hpp
+#usr/include/boost/compute/algorithm/detail/find_extrema_with_atomics.hpp
+#usr/include/boost/compute/algorithm/detail/find_extrema_with_reduce.hpp
+#usr/include/boost/compute/algorithm/detail/find_if_with_atomics.hpp
+#usr/include/boost/compute/algorithm/detail/inplace_reduce.hpp
+#usr/include/boost/compute/algorithm/detail/insertion_sort.hpp
+#usr/include/boost/compute/algorithm/detail/merge_path.hpp
+#usr/include/boost/compute/algorithm/detail/merge_sort_on_cpu.hpp
+#usr/include/boost/compute/algorithm/detail/merge_sort_on_gpu.hpp
+#usr/include/boost/compute/algorithm/detail/merge_with_merge_path.hpp
+#usr/include/boost/compute/algorithm/detail/radix_sort.hpp
+#usr/include/boost/compute/algorithm/detail/random_fill.hpp
+#usr/include/boost/compute/algorithm/detail/reduce_by_key.hpp
+#usr/include/boost/compute/algorithm/detail/reduce_by_key_with_scan.hpp
+#usr/include/boost/compute/algorithm/detail/reduce_on_cpu.hpp
+#usr/include/boost/compute/algorithm/detail/reduce_on_gpu.hpp
+#usr/include/boost/compute/algorithm/detail/scan.hpp
+#usr/include/boost/compute/algorithm/detail/scan_on_cpu.hpp
+#usr/include/boost/compute/algorithm/detail/scan_on_gpu.hpp
+#usr/include/boost/compute/algorithm/detail/search_all.hpp
+#usr/include/boost/compute/algorithm/detail/serial_accumulate.hpp
+#usr/include/boost/compute/algorithm/detail/serial_count_if.hpp
+#usr/include/boost/compute/algorithm/detail/serial_find_extrema.hpp
+#usr/include/boost/compute/algorithm/detail/serial_merge.hpp
+#usr/include/boost/compute/algorithm/detail/serial_reduce.hpp
+#usr/include/boost/compute/algorithm/detail/serial_reduce_by_key.hpp
+#usr/include/boost/compute/algorithm/detail/serial_scan.hpp
+#usr/include/boost/compute/algorithm/equal.hpp
+#usr/include/boost/compute/algorithm/equal_range.hpp
+#usr/include/boost/compute/algorithm/exclusive_scan.hpp
+#usr/include/boost/compute/algorithm/fill.hpp
+#usr/include/boost/compute/algorithm/fill_n.hpp
+#usr/include/boost/compute/algorithm/find.hpp
+#usr/include/boost/compute/algorithm/find_end.hpp
+#usr/include/boost/compute/algorithm/find_if.hpp
+#usr/include/boost/compute/algorithm/find_if_not.hpp
+#usr/include/boost/compute/algorithm/for_each.hpp
+#usr/include/boost/compute/algorithm/for_each_n.hpp
+#usr/include/boost/compute/algorithm/gather.hpp
+#usr/include/boost/compute/algorithm/generate.hpp
+#usr/include/boost/compute/algorithm/generate_n.hpp
+#usr/include/boost/compute/algorithm/includes.hpp
+#usr/include/boost/compute/algorithm/inclusive_scan.hpp
+#usr/include/boost/compute/algorithm/inner_product.hpp
+#usr/include/boost/compute/algorithm/inplace_merge.hpp
+#usr/include/boost/compute/algorithm/iota.hpp
+#usr/include/boost/compute/algorithm/is_partitioned.hpp
+#usr/include/boost/compute/algorithm/is_permutation.hpp
+#usr/include/boost/compute/algorithm/is_sorted.hpp
+#usr/include/boost/compute/algorithm/lexicographical_compare.hpp
+#usr/include/boost/compute/algorithm/lower_bound.hpp
+#usr/include/boost/compute/algorithm/max_element.hpp
+#usr/include/boost/compute/algorithm/merge.hpp
+#usr/include/boost/compute/algorithm/min_element.hpp
+#usr/include/boost/compute/algorithm/minmax_element.hpp
+#usr/include/boost/compute/algorithm/mismatch.hpp
+#usr/include/boost/compute/algorithm/next_permutation.hpp
+#usr/include/boost/compute/algorithm/none_of.hpp
+#usr/include/boost/compute/algorithm/nth_element.hpp
+#usr/include/boost/compute/algorithm/partial_sum.hpp
+#usr/include/boost/compute/algorithm/partition.hpp
+#usr/include/boost/compute/algorithm/partition_copy.hpp
+#usr/include/boost/compute/algorithm/partition_point.hpp
+#usr/include/boost/compute/algorithm/prev_permutation.hpp
+#usr/include/boost/compute/algorithm/random_shuffle.hpp
+#usr/include/boost/compute/algorithm/reduce.hpp
+#usr/include/boost/compute/algorithm/reduce_by_key.hpp
+#usr/include/boost/compute/algorithm/remove.hpp
+#usr/include/boost/compute/algorithm/remove_if.hpp
+#usr/include/boost/compute/algorithm/replace.hpp
+#usr/include/boost/compute/algorithm/replace_copy.hpp
+#usr/include/boost/compute/algorithm/reverse.hpp
+#usr/include/boost/compute/algorithm/reverse_copy.hpp
+#usr/include/boost/compute/algorithm/rotate.hpp
+#usr/include/boost/compute/algorithm/rotate_copy.hpp
+#usr/include/boost/compute/algorithm/scatter.hpp
+#usr/include/boost/compute/algorithm/scatter_if.hpp
+#usr/include/boost/compute/algorithm/search.hpp
+#usr/include/boost/compute/algorithm/search_n.hpp
+#usr/include/boost/compute/algorithm/set_difference.hpp
+#usr/include/boost/compute/algorithm/set_intersection.hpp
+#usr/include/boost/compute/algorithm/set_symmetric_difference.hpp
+#usr/include/boost/compute/algorithm/set_union.hpp
+#usr/include/boost/compute/algorithm/sort.hpp
+#usr/include/boost/compute/algorithm/sort_by_key.hpp
+#usr/include/boost/compute/algorithm/stable_partition.hpp
+#usr/include/boost/compute/algorithm/stable_sort.hpp
+#usr/include/boost/compute/algorithm/stable_sort_by_key.hpp
+#usr/include/boost/compute/algorithm/swap_ranges.hpp
+#usr/include/boost/compute/algorithm/transform.hpp
+#usr/include/boost/compute/algorithm/transform_if.hpp
+#usr/include/boost/compute/algorithm/transform_reduce.hpp
+#usr/include/boost/compute/algorithm/unique.hpp
+#usr/include/boost/compute/algorithm/unique_copy.hpp
+#usr/include/boost/compute/algorithm/upper_bound.hpp
+#usr/include/boost/compute/allocator
+#usr/include/boost/compute/allocator.hpp
+#usr/include/boost/compute/allocator/buffer_allocator.hpp
+#usr/include/boost/compute/allocator/pinned_allocator.hpp
+#usr/include/boost/compute/async
+#usr/include/boost/compute/async.hpp
+#usr/include/boost/compute/async/future.hpp
+#usr/include/boost/compute/async/wait.hpp
+#usr/include/boost/compute/async/wait_guard.hpp
+#usr/include/boost/compute/buffer.hpp
+#usr/include/boost/compute/cl.hpp
+#usr/include/boost/compute/cl_ext.hpp
+#usr/include/boost/compute/closure.hpp
+#usr/include/boost/compute/command_queue.hpp
+#usr/include/boost/compute/config.hpp
+#usr/include/boost/compute/container
+#usr/include/boost/compute/container.hpp
+#usr/include/boost/compute/container/array.hpp
+#usr/include/boost/compute/container/basic_string.hpp
+#usr/include/boost/compute/container/detail
+#usr/include/boost/compute/container/detail/scalar.hpp
+#usr/include/boost/compute/container/dynamic_bitset.hpp
+#usr/include/boost/compute/container/flat_map.hpp
+#usr/include/boost/compute/container/flat_set.hpp
+#usr/include/boost/compute/container/mapped_view.hpp
+#usr/include/boost/compute/container/stack.hpp
+#usr/include/boost/compute/container/string.hpp
+#usr/include/boost/compute/container/valarray.hpp
+#usr/include/boost/compute/container/vector.hpp
+#usr/include/boost/compute/context.hpp
+#usr/include/boost/compute/core.hpp
+#usr/include/boost/compute/detail
+#usr/include/boost/compute/detail/assert_cl_success.hpp
+#usr/include/boost/compute/detail/buffer_value.hpp
+#usr/include/boost/compute/detail/device_ptr.hpp
+#usr/include/boost/compute/detail/diagnostic.hpp
+#usr/include/boost/compute/detail/duration.hpp
+#usr/include/boost/compute/detail/get_object_info.hpp
+#usr/include/boost/compute/detail/getenv.hpp
+#usr/include/boost/compute/detail/global_static.hpp
+#usr/include/boost/compute/detail/is_buffer_iterator.hpp
+#usr/include/boost/compute/detail/is_contiguous_iterator.hpp
+#usr/include/boost/compute/detail/iterator_plus_distance.hpp
+#usr/include/boost/compute/detail/iterator_range_size.hpp
+#usr/include/boost/compute/detail/iterator_traits.hpp
+#usr/include/boost/compute/detail/literal.hpp
+#usr/include/boost/compute/detail/lru_cache.hpp
+#usr/include/boost/compute/detail/meta_kernel.hpp
+#usr/include/boost/compute/detail/mpl_vector_to_tuple.hpp
+#usr/include/boost/compute/detail/nvidia_compute_capability.hpp
+#usr/include/boost/compute/detail/parameter_cache.hpp
+#usr/include/boost/compute/detail/path.hpp
+#usr/include/boost/compute/detail/print_range.hpp
+#usr/include/boost/compute/detail/read_write_single_value.hpp
+#usr/include/boost/compute/detail/sha1.hpp
+#usr/include/boost/compute/detail/variadic_macros.hpp
+#usr/include/boost/compute/detail/vendor.hpp
+#usr/include/boost/compute/detail/work_size.hpp
+#usr/include/boost/compute/device.hpp
+#usr/include/boost/compute/event.hpp
+#usr/include/boost/compute/exception
+#usr/include/boost/compute/exception.hpp
+#usr/include/boost/compute/exception/context_error.hpp
+#usr/include/boost/compute/exception/no_device_found.hpp
+#usr/include/boost/compute/exception/opencl_error.hpp
+#usr/include/boost/compute/exception/unsupported_extension_error.hpp
+#usr/include/boost/compute/experimental
+#usr/include/boost/compute/experimental/clamp_range.hpp
+#usr/include/boost/compute/experimental/malloc.hpp
+#usr/include/boost/compute/experimental/sort_by_transform.hpp
+#usr/include/boost/compute/experimental/tabulate.hpp
+#usr/include/boost/compute/function.hpp
+#usr/include/boost/compute/functional
+#usr/include/boost/compute/functional.hpp
+#usr/include/boost/compute/functional/as.hpp
+#usr/include/boost/compute/functional/atomic.hpp
+#usr/include/boost/compute/functional/bind.hpp
+#usr/include/boost/compute/functional/common.hpp
+#usr/include/boost/compute/functional/convert.hpp
+#usr/include/boost/compute/functional/detail
+#usr/include/boost/compute/functional/detail/macros.hpp
+#usr/include/boost/compute/functional/detail/nvidia_ballot.hpp
+#usr/include/boost/compute/functional/detail/nvidia_popcount.hpp
+#usr/include/boost/compute/functional/detail/unpack.hpp
+#usr/include/boost/compute/functional/field.hpp
+#usr/include/boost/compute/functional/geometry.hpp
+#usr/include/boost/compute/functional/get.hpp
+#usr/include/boost/compute/functional/hash.hpp
+#usr/include/boost/compute/functional/identity.hpp
+#usr/include/boost/compute/functional/integer.hpp
+#usr/include/boost/compute/functional/logical.hpp
+#usr/include/boost/compute/functional/math.hpp
+#usr/include/boost/compute/functional/operator.hpp
+#usr/include/boost/compute/functional/popcount.hpp
+#usr/include/boost/compute/functional/relational.hpp
+#usr/include/boost/compute/image
+#usr/include/boost/compute/image.hpp
+#usr/include/boost/compute/image/image1d.hpp
+#usr/include/boost/compute/image/image2d.hpp
+#usr/include/boost/compute/image/image3d.hpp
+#usr/include/boost/compute/image/image_format.hpp
+#usr/include/boost/compute/image/image_object.hpp
+#usr/include/boost/compute/image/image_sampler.hpp
+#usr/include/boost/compute/image2d.hpp
+#usr/include/boost/compute/image3d.hpp
+#usr/include/boost/compute/image_format.hpp
+#usr/include/boost/compute/image_sampler.hpp
+#usr/include/boost/compute/interop
+#usr/include/boost/compute/interop/eigen
+#usr/include/boost/compute/interop/eigen.hpp
+#usr/include/boost/compute/interop/eigen/core.hpp
+#usr/include/boost/compute/interop/opencv
+#usr/include/boost/compute/interop/opencv.hpp
+#usr/include/boost/compute/interop/opencv/core.hpp
+#usr/include/boost/compute/interop/opencv/highgui.hpp
+#usr/include/boost/compute/interop/opencv/ocl.hpp
+#usr/include/boost/compute/interop/opengl
+#usr/include/boost/compute/interop/opengl.hpp
+#usr/include/boost/compute/interop/opengl/acquire.hpp
+#usr/include/boost/compute/interop/opengl/cl_gl.hpp
+#usr/include/boost/compute/interop/opengl/cl_gl_ext.hpp
+#usr/include/boost/compute/interop/opengl/context.hpp
+#usr/include/boost/compute/interop/opengl/gl.hpp
+#usr/include/boost/compute/interop/opengl/opengl_buffer.hpp
+#usr/include/boost/compute/interop/opengl/opengl_renderbuffer.hpp
+#usr/include/boost/compute/interop/opengl/opengl_texture.hpp
+#usr/include/boost/compute/interop/qt
+#usr/include/boost/compute/interop/qt.hpp
+#usr/include/boost/compute/interop/qt/qimage.hpp
+#usr/include/boost/compute/interop/qt/qpoint.hpp
+#usr/include/boost/compute/interop/qt/qpointf.hpp
+#usr/include/boost/compute/interop/qt/qtcore.hpp
+#usr/include/boost/compute/interop/qt/qtgui.hpp
+#usr/include/boost/compute/interop/qt/qvector.hpp
+#usr/include/boost/compute/interop/vtk
+#usr/include/boost/compute/interop/vtk.hpp
+#usr/include/boost/compute/interop/vtk/bounds.hpp
+#usr/include/boost/compute/interop/vtk/data_array.hpp
+#usr/include/boost/compute/interop/vtk/matrix4x4.hpp
+#usr/include/boost/compute/interop/vtk/points.hpp
+#usr/include/boost/compute/iterator
+#usr/include/boost/compute/iterator.hpp
+#usr/include/boost/compute/iterator/buffer_iterator.hpp
+#usr/include/boost/compute/iterator/constant_buffer_iterator.hpp
+#usr/include/boost/compute/iterator/constant_iterator.hpp
+#usr/include/boost/compute/iterator/counting_iterator.hpp
+#usr/include/boost/compute/iterator/detail
+#usr/include/boost/compute/iterator/detail/get_base_iterator_buffer.hpp
+#usr/include/boost/compute/iterator/detail/swizzle_iterator.hpp
+#usr/include/boost/compute/iterator/discard_iterator.hpp
+#usr/include/boost/compute/iterator/function_input_iterator.hpp
+#usr/include/boost/compute/iterator/permutation_iterator.hpp
+#usr/include/boost/compute/iterator/strided_iterator.hpp
+#usr/include/boost/compute/iterator/transform_iterator.hpp
+#usr/include/boost/compute/iterator/zip_iterator.hpp
+#usr/include/boost/compute/kernel.hpp
+#usr/include/boost/compute/lambda
+#usr/include/boost/compute/lambda.hpp
+#usr/include/boost/compute/lambda/context.hpp
+#usr/include/boost/compute/lambda/functional.hpp
+#usr/include/boost/compute/lambda/get.hpp
+#usr/include/boost/compute/lambda/make_pair.hpp
+#usr/include/boost/compute/lambda/make_tuple.hpp
+#usr/include/boost/compute/lambda/placeholder.hpp
+#usr/include/boost/compute/lambda/placeholders.hpp
+#usr/include/boost/compute/lambda/result_of.hpp
+#usr/include/boost/compute/memory
+#usr/include/boost/compute/memory.hpp
+#usr/include/boost/compute/memory/local_buffer.hpp
+#usr/include/boost/compute/memory/svm_ptr.hpp
+#usr/include/boost/compute/memory_object.hpp
+#usr/include/boost/compute/pipe.hpp
+#usr/include/boost/compute/platform.hpp
+#usr/include/boost/compute/program.hpp
+#usr/include/boost/compute/random
+#usr/include/boost/compute/random.hpp
+#usr/include/boost/compute/random/bernoulli_distribution.hpp
+#usr/include/boost/compute/random/default_random_engine.hpp
+#usr/include/boost/compute/random/discrete_distribution.hpp
+#usr/include/boost/compute/random/linear_congruential_engine.hpp
+#usr/include/boost/compute/random/mersenne_twister_engine.hpp
+#usr/include/boost/compute/random/normal_distribution.hpp
+#usr/include/boost/compute/random/threefry_engine.hpp
+#usr/include/boost/compute/random/uniform_int_distribution.hpp
+#usr/include/boost/compute/random/uniform_real_distribution.hpp
+#usr/include/boost/compute/source.hpp
+#usr/include/boost/compute/svm.hpp
+#usr/include/boost/compute/system.hpp
+#usr/include/boost/compute/type_traits
+#usr/include/boost/compute/type_traits.hpp
+#usr/include/boost/compute/type_traits/common_type.hpp
+#usr/include/boost/compute/type_traits/detail
+#usr/include/boost/compute/type_traits/detail/capture_traits.hpp
+#usr/include/boost/compute/type_traits/is_device_iterator.hpp
+#usr/include/boost/compute/type_traits/is_fundamental.hpp
+#usr/include/boost/compute/type_traits/is_vector_type.hpp
+#usr/include/boost/compute/type_traits/make_vector_type.hpp
+#usr/include/boost/compute/type_traits/result_of.hpp
+#usr/include/boost/compute/type_traits/scalar_type.hpp
+#usr/include/boost/compute/type_traits/type_definition.hpp
+#usr/include/boost/compute/type_traits/type_name.hpp
+#usr/include/boost/compute/type_traits/vector_size.hpp
+#usr/include/boost/compute/types
+#usr/include/boost/compute/types.hpp
+#usr/include/boost/compute/types/builtin.hpp
+#usr/include/boost/compute/types/complex.hpp
+#usr/include/boost/compute/types/fundamental.hpp
+#usr/include/boost/compute/types/pair.hpp
+#usr/include/boost/compute/types/struct.hpp
+#usr/include/boost/compute/types/tuple.hpp
+#usr/include/boost/compute/user_event.hpp
+#usr/include/boost/compute/utility
+#usr/include/boost/compute/utility.hpp
+#usr/include/boost/compute/utility/dim.hpp
+#usr/include/boost/compute/utility/extents.hpp
+#usr/include/boost/compute/utility/invoke.hpp
+#usr/include/boost/compute/utility/program_cache.hpp
+#usr/include/boost/compute/utility/source.hpp
+#usr/include/boost/compute/utility/wait_list.hpp
+#usr/include/boost/compute/version.hpp
+#usr/include/boost/compute/wait_list.hpp
 #usr/include/boost/concept
 #usr/include/boost/concept/assert.hpp
 #usr/include/boost/concept/detail
 #usr/include/boost/config/compiler/sunpro_cc.hpp
 #usr/include/boost/config/compiler/vacpp.hpp
 #usr/include/boost/config/compiler/visualc.hpp
+#usr/include/boost/config/compiler/xlcpp.hpp
 #usr/include/boost/config/no_tr1
 #usr/include/boost/config/no_tr1/cmath.hpp
 #usr/include/boost/config/no_tr1/complex.hpp
 #usr/include/boost/config/platform/amigaos.hpp
 #usr/include/boost/config/platform/beos.hpp
 #usr/include/boost/config/platform/bsd.hpp
+#usr/include/boost/config/platform/cloudabi.hpp
 #usr/include/boost/config/platform/cray.hpp
 #usr/include/boost/config/platform/cygwin.hpp
+#usr/include/boost/config/platform/haiku.hpp
 #usr/include/boost/config/platform/hpux.hpp
 #usr/include/boost/config/platform/irix.hpp
 #usr/include/boost/config/platform/linux.hpp
 #usr/include/boost/config/user.hpp
 #usr/include/boost/config/warning_disable.hpp
 #usr/include/boost/container
+#usr/include/boost/container/adaptive_pool.hpp
+#usr/include/boost/container/allocator.hpp
 #usr/include/boost/container/allocator_traits.hpp
 #usr/include/boost/container/container_fwd.hpp
 #usr/include/boost/container/deque.hpp
 #usr/include/boost/container/detail
+#usr/include/boost/container/detail/adaptive_node_pool.hpp
 #usr/include/boost/container/detail/adaptive_node_pool_impl.hpp
+#usr/include/boost/container/detail/addressof.hpp
 #usr/include/boost/container/detail/advanced_insert_int.hpp
-#usr/include/boost/container/detail/algorithms.hpp
+#usr/include/boost/container/detail/algorithm.hpp
+#usr/include/boost/container/detail/alloc_helpers.hpp
+#usr/include/boost/container/detail/alloc_lib.h
 #usr/include/boost/container/detail/allocation_type.hpp
 #usr/include/boost/container/detail/allocator_version_traits.hpp
+#usr/include/boost/container/detail/auto_link.hpp
+#usr/include/boost/container/detail/block_list.hpp
+#usr/include/boost/container/detail/block_slist.hpp
+#usr/include/boost/container/detail/compare_functors.hpp
 #usr/include/boost/container/detail/config_begin.hpp
 #usr/include/boost/container/detail/config_end.hpp
+#usr/include/boost/container/detail/construct_in_place.hpp
+#usr/include/boost/container/detail/copy_move_algo.hpp
 #usr/include/boost/container/detail/destroyers.hpp
+#usr/include/boost/container/detail/dispatch_uses_allocator.hpp
+#usr/include/boost/container/detail/dlmalloc.hpp
 #usr/include/boost/container/detail/flat_tree.hpp
 #usr/include/boost/container/detail/function_detector.hpp
+#usr/include/boost/container/detail/is_sorted.hpp
+#usr/include/boost/container/detail/iterator.hpp
+#usr/include/boost/container/detail/iterator_to_raw_pointer.hpp
 #usr/include/boost/container/detail/iterators.hpp
 #usr/include/boost/container/detail/math_functions.hpp
-#usr/include/boost/container/detail/memory_util.hpp
+#usr/include/boost/container/detail/min_max.hpp
+#usr/include/boost/container/detail/minimal_char_traits_header.hpp
 #usr/include/boost/container/detail/mpl.hpp
 #usr/include/boost/container/detail/multiallocation_chain.hpp
+#usr/include/boost/container/detail/mutex.hpp
+#usr/include/boost/container/detail/next_capacity.hpp
 #usr/include/boost/container/detail/node_alloc_holder.hpp
+#usr/include/boost/container/detail/node_pool.hpp
 #usr/include/boost/container/detail/node_pool_impl.hpp
 #usr/include/boost/container/detail/pair.hpp
+#usr/include/boost/container/detail/placement_new.hpp
 #usr/include/boost/container/detail/pool_common.hpp
-#usr/include/boost/container/detail/preprocessor.hpp
+#usr/include/boost/container/detail/pool_common_alloc.hpp
+#usr/include/boost/container/detail/pool_resource.hpp
+#usr/include/boost/container/detail/singleton.hpp
+#usr/include/boost/container/detail/std_fwd.hpp
+#usr/include/boost/container/detail/to_raw_pointer.hpp
 #usr/include/boost/container/detail/transform_iterator.hpp
 #usr/include/boost/container/detail/tree.hpp
 #usr/include/boost/container/detail/type_traits.hpp
-#usr/include/boost/container/detail/utilities.hpp
 #usr/include/boost/container/detail/value_init.hpp
 #usr/include/boost/container/detail/variadic_templates_tools.hpp
 #usr/include/boost/container/detail/version_type.hpp
 #usr/include/boost/container/flat_set.hpp
 #usr/include/boost/container/list.hpp
 #usr/include/boost/container/map.hpp
+#usr/include/boost/container/new_allocator.hpp
+#usr/include/boost/container/node_allocator.hpp
+#usr/include/boost/container/node_handle.hpp
+#usr/include/boost/container/options.hpp
+#usr/include/boost/container/pmr
+#usr/include/boost/container/pmr/deque.hpp
+#usr/include/boost/container/pmr/flat_map.hpp
+#usr/include/boost/container/pmr/flat_set.hpp
+#usr/include/boost/container/pmr/global_resource.hpp
+#usr/include/boost/container/pmr/list.hpp
+#usr/include/boost/container/pmr/map.hpp
+#usr/include/boost/container/pmr/memory_resource.hpp
+#usr/include/boost/container/pmr/monotonic_buffer_resource.hpp
+#usr/include/boost/container/pmr/polymorphic_allocator.hpp
+#usr/include/boost/container/pmr/pool_options.hpp
+#usr/include/boost/container/pmr/resource_adaptor.hpp
+#usr/include/boost/container/pmr/set.hpp
+#usr/include/boost/container/pmr/slist.hpp
+#usr/include/boost/container/pmr/small_vector.hpp
+#usr/include/boost/container/pmr/stable_vector.hpp
+#usr/include/boost/container/pmr/string.hpp
+#usr/include/boost/container/pmr/synchronized_pool_resource.hpp
+#usr/include/boost/container/pmr/unsynchronized_pool_resource.hpp
+#usr/include/boost/container/pmr/vector.hpp
 #usr/include/boost/container/scoped_allocator.hpp
 #usr/include/boost/container/scoped_allocator_fwd.hpp
 #usr/include/boost/container/set.hpp
 #usr/include/boost/container/slist.hpp
+#usr/include/boost/container/small_vector.hpp
 #usr/include/boost/container/stable_vector.hpp
 #usr/include/boost/container/static_vector.hpp
 #usr/include/boost/container/string.hpp
 #usr/include/boost/container/throw_exception.hpp
+#usr/include/boost/container/uses_allocator.hpp
+#usr/include/boost/container/uses_allocator_fwd.hpp
 #usr/include/boost/container/vector.hpp
 #usr/include/boost/context
 #usr/include/boost/context/all.hpp
+#usr/include/boost/context/continuation.hpp
 #usr/include/boost/context/detail
+#usr/include/boost/context/detail/apply.hpp
 #usr/include/boost/context/detail/config.hpp
+#usr/include/boost/context/detail/disable_overload.hpp
+#usr/include/boost/context/detail/exception.hpp
+#usr/include/boost/context/detail/exchange.hpp
+#usr/include/boost/context/detail/fcontext.hpp
 #usr/include/boost/context/detail/fcontext_arm.hpp
+#usr/include/boost/context/detail/fcontext_arm_mac.hpp
+#usr/include/boost/context/detail/fcontext_arm_win.hpp
 #usr/include/boost/context/detail/fcontext_i386.hpp
 #usr/include/boost/context/detail/fcontext_i386_win.hpp
 #usr/include/boost/context/detail/fcontext_mips.hpp
 #usr/include/boost/context/detail/fcontext_sparc.hpp
 #usr/include/boost/context/detail/fcontext_x86_64.hpp
 #usr/include/boost/context/detail/fcontext_x86_64_win.hpp
-#usr/include/boost/context/fcontext.hpp
+#usr/include/boost/context/detail/index_sequence.hpp
+#usr/include/boost/context/detail/invoke.hpp
+#usr/include/boost/context/detail/tuple.hpp
+#usr/include/boost/context/execution_context.hpp
+#usr/include/boost/context/execution_context_v1.hpp
+#usr/include/boost/context/execution_context_v2.hpp
+#usr/include/boost/context/execution_context_v2_void.ipp
+#usr/include/boost/context/fixedsize_stack.hpp
+#usr/include/boost/context/flags.hpp
+#usr/include/boost/context/pooled_fixedsize_stack.hpp
+#usr/include/boost/context/posix
+#usr/include/boost/context/posix/fixedsize_stack.hpp
+#usr/include/boost/context/posix/protected_fixedsize_stack.hpp
+#usr/include/boost/context/posix/segmented_stack.hpp
+#usr/include/boost/context/preallocated.hpp
+#usr/include/boost/context/protected_fixedsize_stack.hpp
+#usr/include/boost/context/segmented_stack.hpp
+#usr/include/boost/context/stack_context.hpp
+#usr/include/boost/context/stack_traits.hpp
+#usr/include/boost/context/windows
+#usr/include/boost/context/windows/fixedsize_stack.hpp
+#usr/include/boost/context/windows/protected_fixedsize_stack.hpp
+#usr/include/boost/convert
+#usr/include/boost/convert.hpp
+#usr/include/boost/convert/base.hpp
+#usr/include/boost/convert/detail
+#usr/include/boost/convert/detail/boost_parameter_ext.hpp
+#usr/include/boost/convert/detail/char.hpp
+#usr/include/boost/convert/detail/forward.hpp
+#usr/include/boost/convert/detail/has_member.hpp
+#usr/include/boost/convert/detail/is_callable.hpp
+#usr/include/boost/convert/detail/is_converter.hpp
+#usr/include/boost/convert/detail/is_fun.hpp
+#usr/include/boost/convert/detail/is_string.hpp
+#usr/include/boost/convert/detail/range.hpp
+#usr/include/boost/convert/lexical_cast.hpp
+#usr/include/boost/convert/parameters.hpp
+#usr/include/boost/convert/printf.hpp
+#usr/include/boost/convert/spirit.hpp
+#usr/include/boost/convert/stream.hpp
+#usr/include/boost/convert/strtol.hpp
+#usr/include/boost/core
+#usr/include/boost/core/addressof.hpp
+#usr/include/boost/core/checked_delete.hpp
+#usr/include/boost/core/demangle.hpp
+#usr/include/boost/core/enable_if.hpp
+#usr/include/boost/core/explicit_operator_bool.hpp
+#usr/include/boost/core/ignore_unused.hpp
+#usr/include/boost/core/is_same.hpp
+#usr/include/boost/core/lightweight_test.hpp
+#usr/include/boost/core/lightweight_test_trait.hpp
+#usr/include/boost/core/no_exceptions_support.hpp
+#usr/include/boost/core/noncopyable.hpp
+#usr/include/boost/core/null_deleter.hpp
+#usr/include/boost/core/ref.hpp
+#usr/include/boost/core/scoped_enum.hpp
+#usr/include/boost/core/swap.hpp
+#usr/include/boost/core/typeinfo.hpp
+#usr/include/boost/core/underlying_type.hpp
 #usr/include/boost/coroutine
 #usr/include/boost/coroutine/all.hpp
+#usr/include/boost/coroutine/asymmetric_coroutine.hpp
 #usr/include/boost/coroutine/attributes.hpp
-#usr/include/boost/coroutine/checkpoint.hpp
 #usr/include/boost/coroutine/coroutine.hpp
 #usr/include/boost/coroutine/detail
 #usr/include/boost/coroutine/detail/config.hpp
 #usr/include/boost/coroutine/detail/coroutine_context.hpp
-#usr/include/boost/coroutine/detail/exceptions.hpp
+#usr/include/boost/coroutine/detail/data.hpp
 #usr/include/boost/coroutine/detail/flags.hpp
-#usr/include/boost/coroutine/detail/holder.hpp
-#usr/include/boost/coroutine/detail/param.hpp
-#usr/include/boost/coroutine/detail/segmented_stack_allocator.hpp
-#usr/include/boost/coroutine/detail/stack_tuple.hpp
-#usr/include/boost/coroutine/detail/standard_stack_allocator.hpp
+#usr/include/boost/coroutine/detail/parameters.hpp
+#usr/include/boost/coroutine/detail/preallocated.hpp
+#usr/include/boost/coroutine/detail/pull_coroutine_impl.hpp
+#usr/include/boost/coroutine/detail/pull_coroutine_object.hpp
+#usr/include/boost/coroutine/detail/pull_coroutine_synthesized.hpp
+#usr/include/boost/coroutine/detail/push_coroutine_impl.hpp
+#usr/include/boost/coroutine/detail/push_coroutine_object.hpp
+#usr/include/boost/coroutine/detail/push_coroutine_synthesized.hpp
+#usr/include/boost/coroutine/detail/setup.hpp
+#usr/include/boost/coroutine/detail/symmetric_coroutine_call.hpp
+#usr/include/boost/coroutine/detail/symmetric_coroutine_impl.hpp
+#usr/include/boost/coroutine/detail/symmetric_coroutine_object.hpp
+#usr/include/boost/coroutine/detail/symmetric_coroutine_yield.hpp
 #usr/include/boost/coroutine/detail/trampoline.hpp
+#usr/include/boost/coroutine/detail/trampoline_pull.hpp
+#usr/include/boost/coroutine/detail/trampoline_push.hpp
 #usr/include/boost/coroutine/exceptions.hpp
 #usr/include/boost/coroutine/flags.hpp
+#usr/include/boost/coroutine/posix
+#usr/include/boost/coroutine/posix/protected_stack_allocator.hpp
+#usr/include/boost/coroutine/posix/segmented_stack_allocator.hpp
+#usr/include/boost/coroutine/protected_stack_allocator.hpp
+#usr/include/boost/coroutine/segmented_stack_allocator.hpp
 #usr/include/boost/coroutine/stack_allocator.hpp
 #usr/include/boost/coroutine/stack_context.hpp
-#usr/include/boost/coroutine/v1
-#usr/include/boost/coroutine/v1/coroutine.hpp
-#usr/include/boost/coroutine/v1/detail
-#usr/include/boost/coroutine/v1/detail/arg.hpp
-#usr/include/boost/coroutine/v1/detail/coroutine_base.hpp
-#usr/include/boost/coroutine/v1/detail/coroutine_base_resume.hpp
-#usr/include/boost/coroutine/v1/detail/coroutine_caller.hpp
-#usr/include/boost/coroutine/v1/detail/coroutine_get.hpp
-#usr/include/boost/coroutine/v1/detail/coroutine_object.hpp
-#usr/include/boost/coroutine/v1/detail/coroutine_object_result_0.ipp
-#usr/include/boost/coroutine/v1/detail/coroutine_object_result_1.ipp
-#usr/include/boost/coroutine/v1/detail/coroutine_object_result_arity.ipp
-#usr/include/boost/coroutine/v1/detail/coroutine_object_void_0.ipp
-#usr/include/boost/coroutine/v1/detail/coroutine_object_void_1.ipp
-#usr/include/boost/coroutine/v1/detail/coroutine_object_void_arity.ipp
-#usr/include/boost/coroutine/v1/detail/coroutine_op.hpp
-#usr/include/boost/coroutine/v2
-#usr/include/boost/coroutine/v2/coroutine.hpp
-#usr/include/boost/coroutine/v2/detail
-#usr/include/boost/coroutine/v2/detail/pull_coroutine_base.hpp
-#usr/include/boost/coroutine/v2/detail/pull_coroutine_caller.hpp
-#usr/include/boost/coroutine/v2/detail/pull_coroutine_object.hpp
-#usr/include/boost/coroutine/v2/detail/push_coroutine_base.hpp
-#usr/include/boost/coroutine/v2/detail/push_coroutine_caller.hpp
-#usr/include/boost/coroutine/v2/detail/push_coroutine_object.hpp
+#usr/include/boost/coroutine/stack_traits.hpp
+#usr/include/boost/coroutine/standard_stack_allocator.hpp
+#usr/include/boost/coroutine/symmetric_coroutine.hpp
+#usr/include/boost/coroutine/windows
+#usr/include/boost/coroutine/windows/protected_stack_allocator.hpp
+#usr/include/boost/coroutine2
+#usr/include/boost/coroutine2/all.hpp
+#usr/include/boost/coroutine2/coroutine.hpp
+#usr/include/boost/coroutine2/detail
+#usr/include/boost/coroutine2/detail/config.hpp
+#usr/include/boost/coroutine2/detail/coroutine.hpp
+#usr/include/boost/coroutine2/detail/create_control_block.ipp
+#usr/include/boost/coroutine2/detail/decay_copy.hpp
+#usr/include/boost/coroutine2/detail/disable_overload.hpp
+#usr/include/boost/coroutine2/detail/forced_unwind.hpp
+#usr/include/boost/coroutine2/detail/pull_control_block_cc.hpp
+#usr/include/boost/coroutine2/detail/pull_control_block_cc.ipp
+#usr/include/boost/coroutine2/detail/pull_control_block_ecv1.hpp
+#usr/include/boost/coroutine2/detail/pull_control_block_ecv1.ipp
+#usr/include/boost/coroutine2/detail/pull_coroutine.hpp
+#usr/include/boost/coroutine2/detail/pull_coroutine.ipp
+#usr/include/boost/coroutine2/detail/push_control_block_cc.hpp
+#usr/include/boost/coroutine2/detail/push_control_block_cc.ipp
+#usr/include/boost/coroutine2/detail/push_control_block_ecv1.hpp
+#usr/include/boost/coroutine2/detail/push_control_block_ecv1.ipp
+#usr/include/boost/coroutine2/detail/push_coroutine.hpp
+#usr/include/boost/coroutine2/detail/push_coroutine.ipp
+#usr/include/boost/coroutine2/detail/state.hpp
+#usr/include/boost/coroutine2/detail/wrap.hpp
+#usr/include/boost/coroutine2/fixedsize_stack.hpp
+#usr/include/boost/coroutine2/pooled_fixedsize_stack.hpp
+#usr/include/boost/coroutine2/protected_fixedsize_stack.hpp
+#usr/include/boost/coroutine2/segmented_stack.hpp
 #usr/include/boost/crc.hpp
 #usr/include/boost/cregex.hpp
+#usr/include/boost/cstdfloat.hpp
 #usr/include/boost/cstdint.hpp
 #usr/include/boost/cstdlib.hpp
 #usr/include/boost/current_function.hpp
+#usr/include/boost/cxx11_char_types.hpp
 #usr/include/boost/date_time
 #usr/include/boost/date_time.hpp
 #usr/include/boost/date_time/adjust_functors.hpp
 #usr/include/boost/detail/atomic_count.hpp
 #usr/include/boost/detail/atomic_redef_macros.hpp
 #usr/include/boost/detail/atomic_undef_macros.hpp
+#usr/include/boost/detail/basic_pointerbuf.hpp
 #usr/include/boost/detail/binary_search.hpp
 #usr/include/boost/detail/bitmask.hpp
 #usr/include/boost/detail/call_traits.hpp
 #usr/include/boost/detail/identifier.hpp
 #usr/include/boost/detail/indirect_traits.hpp
 #usr/include/boost/detail/interlocked.hpp
-#usr/include/boost/detail/is_function_ref_tester.hpp
 #usr/include/boost/detail/is_incrementable.hpp
 #usr/include/boost/detail/is_sorted.hpp
 #usr/include/boost/detail/is_xxx.hpp
 #usr/include/boost/detail/lightweight_main.hpp
 #usr/include/boost/detail/lightweight_mutex.hpp
 #usr/include/boost/detail/lightweight_test.hpp
+#usr/include/boost/detail/lightweight_test_report.hpp
 #usr/include/boost/detail/lightweight_thread.hpp
-#usr/include/boost/detail/limits.hpp
 #usr/include/boost/detail/named_template_params.hpp
 #usr/include/boost/detail/no_exceptions_support.hpp
-#usr/include/boost/detail/none_t.hpp
 #usr/include/boost/detail/numeric_traits.hpp
-#usr/include/boost/detail/ob_call_traits.hpp
 #usr/include/boost/detail/ob_compressed_pair.hpp
 #usr/include/boost/detail/quick_allocator.hpp
 #usr/include/boost/detail/reference_content.hpp
 #usr/include/boost/detail/winapi/GetLastError.hpp
 #usr/include/boost/detail/winapi/GetProcessTimes.hpp
 #usr/include/boost/detail/winapi/GetThreadTimes.hpp
-#usr/include/boost/detail/winapi/LocalFree.hpp
+#usr/include/boost/detail/winapi/access_rights.hpp
+#usr/include/boost/detail/winapi/apc.hpp
 #usr/include/boost/detail/winapi/basic_types.hpp
+#usr/include/boost/detail/winapi/character_code_conversion.hpp
+#usr/include/boost/detail/winapi/condition_variable.hpp
+#usr/include/boost/detail/winapi/config.hpp
+#usr/include/boost/detail/winapi/critical_section.hpp
+#usr/include/boost/detail/winapi/crypt.hpp
+#usr/include/boost/detail/winapi/dbghelp.hpp
+#usr/include/boost/detail/winapi/detail
+#usr/include/boost/detail/winapi/detail/cast_ptr.hpp
 #usr/include/boost/detail/winapi/directory_management.hpp
 #usr/include/boost/detail/winapi/dll.hpp
+#usr/include/boost/detail/winapi/environment.hpp
+#usr/include/boost/detail/winapi/error_codes.hpp
 #usr/include/boost/detail/winapi/error_handling.hpp
+#usr/include/boost/detail/winapi/event.hpp
 #usr/include/boost/detail/winapi/file_management.hpp
+#usr/include/boost/detail/winapi/file_mapping.hpp
+#usr/include/boost/detail/winapi/get_current_process.hpp
+#usr/include/boost/detail/winapi/get_current_process_id.hpp
+#usr/include/boost/detail/winapi/get_current_thread.hpp
+#usr/include/boost/detail/winapi/get_current_thread_id.hpp
+#usr/include/boost/detail/winapi/get_last_error.hpp
+#usr/include/boost/detail/winapi/get_process_times.hpp
+#usr/include/boost/detail/winapi/get_system_directory.hpp
+#usr/include/boost/detail/winapi/get_thread_times.hpp
+#usr/include/boost/detail/winapi/handle_info.hpp
 #usr/include/boost/detail/winapi/handles.hpp
+#usr/include/boost/detail/winapi/heap_memory.hpp
+#usr/include/boost/detail/winapi/init_once.hpp
+#usr/include/boost/detail/winapi/jobs.hpp
+#usr/include/boost/detail/winapi/limits.hpp
+#usr/include/boost/detail/winapi/local_memory.hpp
 #usr/include/boost/detail/winapi/memory.hpp
+#usr/include/boost/detail/winapi/mutex.hpp
+#usr/include/boost/detail/winapi/overlapped.hpp
+#usr/include/boost/detail/winapi/page_protection_flags.hpp
+#usr/include/boost/detail/winapi/pipes.hpp
+#usr/include/boost/detail/winapi/priority_class.hpp
 #usr/include/boost/detail/winapi/process.hpp
 #usr/include/boost/detail/winapi/security.hpp
+#usr/include/boost/detail/winapi/semaphore.hpp
+#usr/include/boost/detail/winapi/shell.hpp
+#usr/include/boost/detail/winapi/show_window.hpp
+#usr/include/boost/detail/winapi/srw_lock.hpp
 #usr/include/boost/detail/winapi/synchronization.hpp
 #usr/include/boost/detail/winapi/system.hpp
 #usr/include/boost/detail/winapi/thread.hpp
+#usr/include/boost/detail/winapi/thread_pool.hpp
 #usr/include/boost/detail/winapi/time.hpp
 #usr/include/boost/detail/winapi/timers.hpp
+#usr/include/boost/detail/winapi/tls.hpp
+#usr/include/boost/detail/winapi/wait.hpp
+#usr/include/boost/detail/winapi/waitable_timer.hpp
 #usr/include/boost/detail/workaround.hpp
+#usr/include/boost/dll
+#usr/include/boost/dll.hpp
+#usr/include/boost/dll/alias.hpp
+#usr/include/boost/dll/detail
+#usr/include/boost/dll/detail/aggressive_ptr_cast.hpp
+#usr/include/boost/dll/detail/ctor_dtor.hpp
+#usr/include/boost/dll/detail/demangling
+#usr/include/boost/dll/detail/demangling/demangle_symbol.hpp
+#usr/include/boost/dll/detail/demangling/itanium.hpp
+#usr/include/boost/dll/detail/demangling/mangled_storage_base.hpp
+#usr/include/boost/dll/detail/demangling/msvc.hpp
+#usr/include/boost/dll/detail/elf_info.hpp
+#usr/include/boost/dll/detail/get_mem_fn_type.hpp
+#usr/include/boost/dll/detail/import_mangled_helpers.hpp
+#usr/include/boost/dll/detail/macho_info.hpp
+#usr/include/boost/dll/detail/pe_info.hpp
+#usr/include/boost/dll/detail/posix
+#usr/include/boost/dll/detail/posix/path_from_handle.hpp
+#usr/include/boost/dll/detail/posix/program_location_impl.hpp
+#usr/include/boost/dll/detail/posix/shared_library_impl.hpp
+#usr/include/boost/dll/detail/system_error.hpp
+#usr/include/boost/dll/detail/type_info.hpp
+#usr/include/boost/dll/detail/windows
+#usr/include/boost/dll/detail/windows/path_from_handle.hpp
+#usr/include/boost/dll/detail/windows/shared_library_impl.hpp
+#usr/include/boost/dll/detail/x_info_interface.hpp
+#usr/include/boost/dll/import.hpp
+#usr/include/boost/dll/import_class.hpp
+#usr/include/boost/dll/import_mangled.hpp
+#usr/include/boost/dll/library_info.hpp
+#usr/include/boost/dll/runtime_symbol_info.hpp
+#usr/include/boost/dll/shared_library.hpp
+#usr/include/boost/dll/shared_library_load_mode.hpp
+#usr/include/boost/dll/smart_library.hpp
 #usr/include/boost/dynamic_bitset
 #usr/include/boost/dynamic_bitset.hpp
 #usr/include/boost/dynamic_bitset/config.hpp
 #usr/include/boost/dynamic_bitset/dynamic_bitset.hpp
+#usr/include/boost/dynamic_bitset/serialization.hpp
 #usr/include/boost/dynamic_bitset_fwd.hpp
 #usr/include/boost/enable_shared_from_this.hpp
+#usr/include/boost/endian
+#usr/include/boost/endian/arithmetic.hpp
+#usr/include/boost/endian/buffers.hpp
+#usr/include/boost/endian/conversion.hpp
+#usr/include/boost/endian/detail
+#usr/include/boost/endian/detail/config.hpp
+#usr/include/boost/endian/detail/cover_operators.hpp
+#usr/include/boost/endian/detail/disable_warnings.hpp
+#usr/include/boost/endian/detail/disable_warnings_pop.hpp
+#usr/include/boost/endian/detail/intrinsic.hpp
+#usr/include/boost/endian/detail/lightweight_test.hpp
+#usr/include/boost/endian/endian.hpp
+#usr/include/boost/endian/std_pair.hpp
 #usr/include/boost/exception
-#usr/include/boost/exception.hpp
+#usr/include/boost/exception/N3757.hpp
 #usr/include/boost/exception/all.hpp
 #usr/include/boost/exception/current_exception_cast.hpp
 #usr/include/boost/exception/detail
-#usr/include/boost/exception/detail/attribute_noreturn.hpp
 #usr/include/boost/exception/detail/clone_current_exception.hpp
 #usr/include/boost/exception/detail/error_info_impl.hpp
 #usr/include/boost/exception/detail/exception_ptr.hpp
 #usr/include/boost/exception/detail/is_output_streamable.hpp
 #usr/include/boost/exception/detail/object_hex_dump.hpp
+#usr/include/boost/exception/detail/shared_ptr.hpp
 #usr/include/boost/exception/detail/type_info.hpp
 #usr/include/boost/exception/diagnostic_information.hpp
 #usr/include/boost/exception/enable_current_exception.hpp
 #usr/include/boost/exception/to_string.hpp
 #usr/include/boost/exception/to_string_stub.hpp
 #usr/include/boost/exception_ptr.hpp
+#usr/include/boost/fiber
+#usr/include/boost/fiber/algo
+#usr/include/boost/fiber/algo/algorithm.hpp
+#usr/include/boost/fiber/algo/round_robin.hpp
+#usr/include/boost/fiber/algo/shared_work.hpp
+#usr/include/boost/fiber/algo/work_stealing.hpp
+#usr/include/boost/fiber/all.hpp
+#usr/include/boost/fiber/barrier.hpp
+#usr/include/boost/fiber/buffered_channel.hpp
+#usr/include/boost/fiber/channel_op_status.hpp
+#usr/include/boost/fiber/condition_variable.hpp
+#usr/include/boost/fiber/context.hpp
+#usr/include/boost/fiber/detail
+#usr/include/boost/fiber/detail/config.hpp
+#usr/include/boost/fiber/detail/context_spinlock_queue.hpp
+#usr/include/boost/fiber/detail/context_spmc_queue.hpp
+#usr/include/boost/fiber/detail/convert.hpp
+#usr/include/boost/fiber/detail/cpu_relax.hpp
+#usr/include/boost/fiber/detail/data.hpp
+#usr/include/boost/fiber/detail/decay_copy.hpp
+#usr/include/boost/fiber/detail/disable_overload.hpp
+#usr/include/boost/fiber/detail/fss.hpp
+#usr/include/boost/fiber/detail/futex.hpp
+#usr/include/boost/fiber/detail/spinlock.hpp
+#usr/include/boost/fiber/detail/spinlock_ttas.hpp
+#usr/include/boost/fiber/detail/spinlock_ttas_adaptive.hpp
+#usr/include/boost/fiber/detail/spinlock_ttas_adaptive_futex.hpp
+#usr/include/boost/fiber/detail/spinlock_ttas_futex.hpp
+#usr/include/boost/fiber/detail/wrap.hpp
+#usr/include/boost/fiber/exceptions.hpp
+#usr/include/boost/fiber/fiber.hpp
+#usr/include/boost/fiber/fixedsize_stack.hpp
+#usr/include/boost/fiber/fss.hpp
+#usr/include/boost/fiber/future
+#usr/include/boost/fiber/future.hpp
+#usr/include/boost/fiber/future/async.hpp
+#usr/include/boost/fiber/future/detail
+#usr/include/boost/fiber/future/detail/shared_state.hpp
+#usr/include/boost/fiber/future/detail/shared_state_object.hpp
+#usr/include/boost/fiber/future/detail/task_base.hpp
+#usr/include/boost/fiber/future/detail/task_object.hpp
+#usr/include/boost/fiber/future/future.hpp
+#usr/include/boost/fiber/future/future_status.hpp
+#usr/include/boost/fiber/future/packaged_task.hpp
+#usr/include/boost/fiber/future/promise.hpp
+#usr/include/boost/fiber/mutex.hpp
+#usr/include/boost/fiber/operations.hpp
+#usr/include/boost/fiber/policy.hpp
+#usr/include/boost/fiber/pooled_fixedsize_stack.hpp
+#usr/include/boost/fiber/properties.hpp
+#usr/include/boost/fiber/protected_fixedsize_stack.hpp
+#usr/include/boost/fiber/recursive_mutex.hpp
+#usr/include/boost/fiber/recursive_timed_mutex.hpp
+#usr/include/boost/fiber/scheduler.hpp
+#usr/include/boost/fiber/segmented_stack.hpp
+#usr/include/boost/fiber/timed_mutex.hpp
+#usr/include/boost/fiber/type.hpp
+#usr/include/boost/fiber/unbuffered_channel.hpp
 #usr/include/boost/filesystem
 #usr/include/boost/filesystem.hpp
 #usr/include/boost/filesystem/config.hpp
 #usr/include/boost/filesystem/convenience.hpp
 #usr/include/boost/filesystem/detail
+#usr/include/boost/filesystem/detail/macro_value.hpp
 #usr/include/boost/filesystem/detail/utf8_codecvt_facet.hpp
 #usr/include/boost/filesystem/exception.hpp
 #usr/include/boost/filesystem/fstream.hpp
 #usr/include/boost/filesystem/operations.hpp
 #usr/include/boost/filesystem/path.hpp
 #usr/include/boost/filesystem/path_traits.hpp
+#usr/include/boost/filesystem/string_file.hpp
 #usr/include/boost/flyweight
 #usr/include/boost/flyweight.hpp
 #usr/include/boost/flyweight/assoc_container_factory.hpp
 #usr/include/boost/flyweight/assoc_container_factory_fwd.hpp
 #usr/include/boost/flyweight/detail
+#usr/include/boost/flyweight/detail/archive_constructed.hpp
 #usr/include/boost/flyweight/detail/default_value_policy.hpp
 #usr/include/boost/flyweight/detail/dyn_perfect_fwd.hpp
 #usr/include/boost/flyweight/detail/flyweight_core.hpp
 #usr/include/boost/flyweight/detail/perfect_fwd.hpp
 #usr/include/boost/flyweight/detail/pp_perfect_fwd.hpp
 #usr/include/boost/flyweight/detail/recursive_lw_mutex.hpp
+#usr/include/boost/flyweight/detail/serialization_helper.hpp
 #usr/include/boost/flyweight/detail/value_tag.hpp
 #usr/include/boost/flyweight/factory_tag.hpp
 #usr/include/boost/flyweight/flyweight.hpp
 #usr/include/boost/flyweight/no_tracking_fwd.hpp
 #usr/include/boost/flyweight/refcounted.hpp
 #usr/include/boost/flyweight/refcounted_fwd.hpp
+#usr/include/boost/flyweight/serialize.hpp
 #usr/include/boost/flyweight/set_factory.hpp
 #usr/include/boost/flyweight/set_factory_fwd.hpp
 #usr/include/boost/flyweight/simple_locking.hpp
 #usr/include/boost/fusion/adapted/adt/adapt_assoc_adt_named.hpp
 #usr/include/boost/fusion/adapted/adt/detail
 #usr/include/boost/fusion/adapted/adt/detail/adapt_base.hpp
+#usr/include/boost/fusion/adapted/adt/detail/adapt_base_assoc_attr_filler.hpp
+#usr/include/boost/fusion/adapted/adt/detail/adapt_base_attr_filler.hpp
 #usr/include/boost/fusion/adapted/adt/detail/extension.hpp
 #usr/include/boost/fusion/adapted/array
 #usr/include/boost/fusion/adapted/array.hpp
 #usr/include/boost/fusion/adapted/boost_tuple/detail
 #usr/include/boost/fusion/adapted/boost_tuple/detail/at_impl.hpp
 #usr/include/boost/fusion/adapted/boost_tuple/detail/begin_impl.hpp
+#usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp
 #usr/include/boost/fusion/adapted/boost_tuple/detail/category_of_impl.hpp
+#usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp
 #usr/include/boost/fusion/adapted/boost_tuple/detail/end_impl.hpp
 #usr/include/boost/fusion/adapted/boost_tuple/detail/is_sequence_impl.hpp
 #usr/include/boost/fusion/adapted/boost_tuple/detail/is_view_impl.hpp
 #usr/include/boost/fusion/adapted/boost_tuple/detail/size_impl.hpp
 #usr/include/boost/fusion/adapted/boost_tuple/detail/value_at_impl.hpp
+#usr/include/boost/fusion/adapted/boost_tuple/mpl
+#usr/include/boost/fusion/adapted/boost_tuple/mpl/clear.hpp
 #usr/include/boost/fusion/adapted/boost_tuple/tag_of.hpp
 #usr/include/boost/fusion/adapted/mpl
 #usr/include/boost/fusion/adapted/mpl.hpp
 #usr/include/boost/fusion/adapted/mpl/detail/size_impl.hpp
 #usr/include/boost/fusion/adapted/mpl/detail/value_at_impl.hpp
 #usr/include/boost/fusion/adapted/mpl/mpl_iterator.hpp
+#usr/include/boost/fusion/adapted/std_array
+#usr/include/boost/fusion/adapted/std_array.hpp
+#usr/include/boost/fusion/adapted/std_array/detail
+#usr/include/boost/fusion/adapted/std_array/detail/array_size.hpp
+#usr/include/boost/fusion/adapted/std_array/detail/at_impl.hpp
+#usr/include/boost/fusion/adapted/std_array/detail/begin_impl.hpp
+#usr/include/boost/fusion/adapted/std_array/detail/category_of_impl.hpp
+#usr/include/boost/fusion/adapted/std_array/detail/end_impl.hpp
+#usr/include/boost/fusion/adapted/std_array/detail/is_sequence_impl.hpp
+#usr/include/boost/fusion/adapted/std_array/detail/is_view_impl.hpp
+#usr/include/boost/fusion/adapted/std_array/detail/size_impl.hpp
+#usr/include/boost/fusion/adapted/std_array/detail/value_at_impl.hpp
+#usr/include/boost/fusion/adapted/std_array/std_array_iterator.hpp
+#usr/include/boost/fusion/adapted/std_array/tag_of.hpp
 #usr/include/boost/fusion/adapted/std_pair.hpp
 #usr/include/boost/fusion/adapted/std_tuple
 #usr/include/boost/fusion/adapted/std_tuple.hpp
 #usr/include/boost/fusion/adapted/std_tuple/detail
 #usr/include/boost/fusion/adapted/std_tuple/detail/at_impl.hpp
 #usr/include/boost/fusion/adapted/std_tuple/detail/begin_impl.hpp
+#usr/include/boost/fusion/adapted/std_tuple/detail/build_std_tuple.hpp
 #usr/include/boost/fusion/adapted/std_tuple/detail/category_of_impl.hpp
+#usr/include/boost/fusion/adapted/std_tuple/detail/convert_impl.hpp
 #usr/include/boost/fusion/adapted/std_tuple/detail/end_impl.hpp
 #usr/include/boost/fusion/adapted/std_tuple/detail/is_sequence_impl.hpp
 #usr/include/boost/fusion/adapted/std_tuple/detail/is_view_impl.hpp
 #usr/include/boost/fusion/adapted/std_tuple/detail/size_impl.hpp
 #usr/include/boost/fusion/adapted/std_tuple/detail/value_at_impl.hpp
+#usr/include/boost/fusion/adapted/std_tuple/mpl
+#usr/include/boost/fusion/adapted/std_tuple/mpl/clear.hpp
 #usr/include/boost/fusion/adapted/std_tuple/std_tuple_iterator.hpp
 #usr/include/boost/fusion/adapted/std_tuple/tag_of.hpp
 #usr/include/boost/fusion/adapted/struct
 #usr/include/boost/fusion/adapted/struct/define_struct.hpp
 #usr/include/boost/fusion/adapted/struct/define_struct_inline.hpp
 #usr/include/boost/fusion/adapted/struct/detail
+#usr/include/boost/fusion/adapted/struct/detail/adapt_auto.hpp
 #usr/include/boost/fusion/adapted/struct/detail/adapt_base.hpp
+#usr/include/boost/fusion/adapted/struct/detail/adapt_base_assoc_attr_filler.hpp
+#usr/include/boost/fusion/adapted/struct/detail/adapt_base_attr_filler.hpp
+#usr/include/boost/fusion/adapted/struct/detail/adapt_is_tpl.hpp
 #usr/include/boost/fusion/adapted/struct/detail/at_impl.hpp
 #usr/include/boost/fusion/adapted/struct/detail/begin_impl.hpp
 #usr/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp
 #usr/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp
 #usr/include/boost/fusion/adapted/struct/detail/key_of_impl.hpp
 #usr/include/boost/fusion/adapted/struct/detail/namespace.hpp
+#usr/include/boost/fusion/adapted/struct/detail/preprocessor
+#usr/include/boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp
 #usr/include/boost/fusion/adapted/struct/detail/proxy_type.hpp
 #usr/include/boost/fusion/adapted/struct/detail/size_impl.hpp
 #usr/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp
 #usr/include/boost/fusion/algorithm/transformation/erase_key.hpp
 #usr/include/boost/fusion/algorithm/transformation/filter.hpp
 #usr/include/boost/fusion/algorithm/transformation/filter_if.hpp
+#usr/include/boost/fusion/algorithm/transformation/flatten.hpp
 #usr/include/boost/fusion/algorithm/transformation/insert.hpp
 #usr/include/boost/fusion/algorithm/transformation/insert_range.hpp
 #usr/include/boost/fusion/algorithm/transformation/join.hpp
 #usr/include/boost/fusion/container/generation/deque_tie.hpp
 #usr/include/boost/fusion/container/generation/detail
 #usr/include/boost/fusion/container/generation/detail/pp_deque_tie.hpp
+#usr/include/boost/fusion/container/generation/detail/pp_list_tie.hpp
 #usr/include/boost/fusion/container/generation/detail/pp_make_deque.hpp
+#usr/include/boost/fusion/container/generation/detail/pp_make_list.hpp
 #usr/include/boost/fusion/container/generation/detail/pp_make_map.hpp
+#usr/include/boost/fusion/container/generation/detail/pp_make_set.hpp
+#usr/include/boost/fusion/container/generation/detail/pp_make_vector.hpp
 #usr/include/boost/fusion/container/generation/detail/pp_map_tie.hpp
+#usr/include/boost/fusion/container/generation/detail/pp_vector_tie.hpp
 #usr/include/boost/fusion/container/generation/detail/preprocessed
 #usr/include/boost/fusion/container/generation/detail/preprocessed/deque_tie.hpp
 #usr/include/boost/fusion/container/generation/detail/preprocessed/deque_tie10.hpp
 #usr/include/boost/fusion/container/list/detail/begin_impl.hpp
 #usr/include/boost/fusion/container/list/detail/build_cons.hpp
 #usr/include/boost/fusion/container/list/detail/convert_impl.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03
+#usr/include/boost/fusion/container/list/detail/cpp03/limits.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/list.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/list_forward_ctor.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/list_fwd.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/list_to_cons.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/list_to_cons_call.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list10.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list10_fwd.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list20.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list20_fwd.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list30.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list30_fwd.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list40.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list40_fwd.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list50.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list50_fwd.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_fwd.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons10.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons20.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons30.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons40.hpp
+#usr/include/boost/fusion/container/list/detail/cpp03/preprocessed/list_to_cons50.hpp
 #usr/include/boost/fusion/container/list/detail/deref_impl.hpp
 #usr/include/boost/fusion/container/list/detail/empty_impl.hpp
 #usr/include/boost/fusion/container/list/detail/end_impl.hpp
 #usr/include/boost/fusion/container/list/detail/equal_to_impl.hpp
-#usr/include/boost/fusion/container/list/detail/list_forward_ctor.hpp
 #usr/include/boost/fusion/container/list/detail/list_to_cons.hpp
-#usr/include/boost/fusion/container/list/detail/list_to_cons_call.hpp
 #usr/include/boost/fusion/container/list/detail/next_impl.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed
-#usr/include/boost/fusion/container/list/detail/preprocessed/list.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list10.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list20.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list30.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list40.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list50.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list_to_cons.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list_to_cons10.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list_to_cons20.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list_to_cons30.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list_to_cons40.hpp
-#usr/include/boost/fusion/container/list/detail/preprocessed/list_to_cons50.hpp
 #usr/include/boost/fusion/container/list/detail/reverse_cons.hpp
 #usr/include/boost/fusion/container/list/detail/value_at_impl.hpp
 #usr/include/boost/fusion/container/list/detail/value_of_impl.hpp
-#usr/include/boost/fusion/container/list/limits.hpp
 #usr/include/boost/fusion/container/list/list.hpp
 #usr/include/boost/fusion/container/list/list_fwd.hpp
+#usr/include/boost/fusion/container/list/nil.hpp
 #usr/include/boost/fusion/container/map
 #usr/include/boost/fusion/container/map.hpp
 #usr/include/boost/fusion/container/map/convert.hpp
 #usr/include/boost/fusion/container/set/detail/as_set.hpp
 #usr/include/boost/fusion/container/set/detail/begin_impl.hpp
 #usr/include/boost/fusion/container/set/detail/convert_impl.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03
+#usr/include/boost/fusion/container/set/detail/cpp03/as_set.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/limits.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set10.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set20.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set30.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set40.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/as_set50.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set10.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set10_fwd.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set20.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set20_fwd.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set30.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set30_fwd.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set40.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set40_fwd.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set50.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set50_fwd.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/preprocessed/set_fwd.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/set.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/set_forward_ctor.hpp
+#usr/include/boost/fusion/container/set/detail/cpp03/set_fwd.hpp
 #usr/include/boost/fusion/container/set/detail/deref_data_impl.hpp
 #usr/include/boost/fusion/container/set/detail/deref_impl.hpp
 #usr/include/boost/fusion/container/set/detail/end_impl.hpp
 #usr/include/boost/fusion/container/set/detail/key_of_impl.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed
-#usr/include/boost/fusion/container/set/detail/preprocessed/as_set.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/as_set10.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/as_set20.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/as_set30.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/as_set40.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/as_set50.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set10.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set10_fwd.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set20.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set20_fwd.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set30.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set30_fwd.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set40.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set40_fwd.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set50.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set50_fwd.hpp
-#usr/include/boost/fusion/container/set/detail/preprocessed/set_fwd.hpp
-#usr/include/boost/fusion/container/set/detail/set_forward_ctor.hpp
 #usr/include/boost/fusion/container/set/detail/value_of_data_impl.hpp
 #usr/include/boost/fusion/container/set/detail/value_of_impl.hpp
-#usr/include/boost/fusion/container/set/limits.hpp
 #usr/include/boost/fusion/container/set/set.hpp
 #usr/include/boost/fusion/container/set/set_fwd.hpp
 #usr/include/boost/fusion/container/vector
 #usr/include/boost/fusion/container/vector/detail/as_vector.hpp
 #usr/include/boost/fusion/container/vector/detail/at_impl.hpp
 #usr/include/boost/fusion/container/vector/detail/begin_impl.hpp
+#usr/include/boost/fusion/container/vector/detail/config.hpp
 #usr/include/boost/fusion/container/vector/detail/convert_impl.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03
+#usr/include/boost/fusion/container/vector/detail/cpp03/as_vector.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/limits.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector10.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector20.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector30.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector40.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/as_vector50.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector10_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector20_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector30_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector40_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector50_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser10.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser20.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser30.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser40.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_chooser50.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vector_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector10_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector20_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector30_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector40_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/preprocessed/vvector50_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/value_at_impl.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector10.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector10_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector20.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector20_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector30.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector30_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector40.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector40_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector50.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector50_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector_forward_ctor.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector_fwd.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector_n.hpp
+#usr/include/boost/fusion/container/vector/detail/cpp03/vector_n_chooser.hpp
 #usr/include/boost/fusion/container/vector/detail/deref_impl.hpp
 #usr/include/boost/fusion/container/vector/detail/distance_impl.hpp
 #usr/include/boost/fusion/container/vector/detail/end_impl.hpp
 #usr/include/boost/fusion/container/vector/detail/equal_to_impl.hpp
 #usr/include/boost/fusion/container/vector/detail/next_impl.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed
-#usr/include/boost/fusion/container/vector/detail/preprocessed/as_vector.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/as_vector10.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/as_vector20.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/as_vector30.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/as_vector40.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/as_vector50.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector10.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector20.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector30.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector40.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector50.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp
-#usr/include/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp
 #usr/include/boost/fusion/container/vector/detail/prior_impl.hpp
 #usr/include/boost/fusion/container/vector/detail/value_at_impl.hpp
 #usr/include/boost/fusion/container/vector/detail/value_of_impl.hpp
-#usr/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp
-#usr/include/boost/fusion/container/vector/detail/vector_n.hpp
-#usr/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp
-#usr/include/boost/fusion/container/vector/limits.hpp
 #usr/include/boost/fusion/container/vector/vector.hpp
 #usr/include/boost/fusion/container/vector/vector10.hpp
-#usr/include/boost/fusion/container/vector/vector10_fwd.hpp
 #usr/include/boost/fusion/container/vector/vector20.hpp
-#usr/include/boost/fusion/container/vector/vector20_fwd.hpp
 #usr/include/boost/fusion/container/vector/vector30.hpp
-#usr/include/boost/fusion/container/vector/vector30_fwd.hpp
 #usr/include/boost/fusion/container/vector/vector40.hpp
-#usr/include/boost/fusion/container/vector/vector40_fwd.hpp
 #usr/include/boost/fusion/container/vector/vector50.hpp
-#usr/include/boost/fusion/container/vector/vector50_fwd.hpp
 #usr/include/boost/fusion/container/vector/vector_fwd.hpp
 #usr/include/boost/fusion/container/vector/vector_iterator.hpp
 #usr/include/boost/fusion/functional
 #usr/include/boost/fusion/include/adapt_adt_named.hpp
 #usr/include/boost/fusion/include/adapt_assoc_adt.hpp
 #usr/include/boost/fusion/include/adapt_assoc_adt_named.hpp
-#usr/include/boost/fusion/include/adapt_assoc_class.hpp
-#usr/include/boost/fusion/include/adapt_assoc_class_named.hpp
 #usr/include/boost/fusion/include/adapt_assoc_struct.hpp
 #usr/include/boost/fusion/include/adapt_assoc_struct_named.hpp
 #usr/include/boost/fusion/include/adapt_struct.hpp
 #usr/include/boost/fusion/include/filter_view.hpp
 #usr/include/boost/fusion/include/find.hpp
 #usr/include/boost/fusion/include/find_if.hpp
+#usr/include/boost/fusion/include/flatten.hpp
+#usr/include/boost/fusion/include/flatten_view.hpp
 #usr/include/boost/fusion/include/fold.hpp
 #usr/include/boost/fusion/include/for_each.hpp
 #usr/include/boost/fusion/include/front.hpp
 #usr/include/boost/fusion/include/greater.hpp
 #usr/include/boost/fusion/include/greater_equal.hpp
 #usr/include/boost/fusion/include/has_key.hpp
+#usr/include/boost/fusion/include/hash.hpp
 #usr/include/boost/fusion/include/ignore.hpp
 #usr/include/boost/fusion/include/in.hpp
 #usr/include/boost/fusion/include/insert.hpp
 #usr/include/boost/fusion/include/move.hpp
 #usr/include/boost/fusion/include/mpl.hpp
 #usr/include/boost/fusion/include/next.hpp
+#usr/include/boost/fusion/include/nil.hpp
 #usr/include/boost/fusion/include/none.hpp
 #usr/include/boost/fusion/include/not_equal_to.hpp
 #usr/include/boost/fusion/include/nview.hpp
 #usr/include/boost/fusion/include/single_view.hpp
 #usr/include/boost/fusion/include/size.hpp
 #usr/include/boost/fusion/include/std_pair.hpp
+#usr/include/boost/fusion/include/std_tuple.hpp
 #usr/include/boost/fusion/include/struct.hpp
 #usr/include/boost/fusion/include/support.hpp
 #usr/include/boost/fusion/include/swap.hpp
 #usr/include/boost/fusion/sequence/comparison/less_equal.hpp
 #usr/include/boost/fusion/sequence/comparison/not_equal_to.hpp
 #usr/include/boost/fusion/sequence/convert.hpp
+#usr/include/boost/fusion/sequence/hash.hpp
 #usr/include/boost/fusion/sequence/intrinsic
 #usr/include/boost/fusion/sequence/intrinsic.hpp
 #usr/include/boost/fusion/sequence/intrinsic/at.hpp
 #usr/include/boost/fusion/support.hpp
 #usr/include/boost/fusion/support/as_const.hpp
 #usr/include/boost/fusion/support/category_of.hpp
+#usr/include/boost/fusion/support/config.hpp
 #usr/include/boost/fusion/support/deduce.hpp
 #usr/include/boost/fusion/support/deduce_sequence.hpp
 #usr/include/boost/fusion/support/detail
 #usr/include/boost/fusion/support/detail/access.hpp
+#usr/include/boost/fusion/support/detail/and.hpp
 #usr/include/boost/fusion/support/detail/as_fusion_element.hpp
 #usr/include/boost/fusion/support/detail/category_of.hpp
+#usr/include/boost/fusion/support/detail/enabler.hpp
+#usr/include/boost/fusion/support/detail/index_sequence.hpp
 #usr/include/boost/fusion/support/detail/is_mpl_sequence.hpp
+#usr/include/boost/fusion/support/detail/is_same_size.hpp
 #usr/include/boost/fusion/support/detail/is_view.hpp
 #usr/include/boost/fusion/support/detail/mpl_iterator_category.hpp
 #usr/include/boost/fusion/support/detail/pp_round.hpp
 #usr/include/boost/fusion/tuple
 #usr/include/boost/fusion/tuple.hpp
 #usr/include/boost/fusion/tuple/detail
+#usr/include/boost/fusion/tuple/detail/make_tuple.hpp
 #usr/include/boost/fusion/tuple/detail/preprocessed
 #usr/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp
 #usr/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp
 #usr/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp
 #usr/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp
 #usr/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp
+#usr/include/boost/fusion/tuple/detail/tuple.hpp
 #usr/include/boost/fusion/tuple/detail/tuple_expand.hpp
+#usr/include/boost/fusion/tuple/detail/tuple_fwd.hpp
+#usr/include/boost/fusion/tuple/detail/tuple_tie.hpp
 #usr/include/boost/fusion/tuple/make_tuple.hpp
 #usr/include/boost/fusion/tuple/tuple.hpp
 #usr/include/boost/fusion/tuple/tuple_fwd.hpp
 #usr/include/boost/fusion/view/filter_view/detail/value_of_impl.hpp
 #usr/include/boost/fusion/view/filter_view/filter_view.hpp
 #usr/include/boost/fusion/view/filter_view/filter_view_iterator.hpp
+#usr/include/boost/fusion/view/flatten_view
+#usr/include/boost/fusion/view/flatten_view.hpp
+#usr/include/boost/fusion/view/flatten_view/flatten_view.hpp
+#usr/include/boost/fusion/view/flatten_view/flatten_view_iterator.hpp
 #usr/include/boost/fusion/view/iterator_range
 #usr/include/boost/fusion/view/iterator_range.hpp
 #usr/include/boost/fusion/view/iterator_range/detail
 #usr/include/boost/fusion/view/nview/detail/advance_impl.hpp
 #usr/include/boost/fusion/view/nview/detail/at_impl.hpp
 #usr/include/boost/fusion/view/nview/detail/begin_impl.hpp
+#usr/include/boost/fusion/view/nview/detail/cpp03
+#usr/include/boost/fusion/view/nview/detail/cpp03/nview_impl.hpp
 #usr/include/boost/fusion/view/nview/detail/deref_impl.hpp
 #usr/include/boost/fusion/view/nview/detail/distance_impl.hpp
 #usr/include/boost/fusion/view/nview/detail/end_impl.hpp
 #usr/include/boost/geometry/algorithms/convex_hull.hpp
 #usr/include/boost/geometry/algorithms/correct.hpp
 #usr/include/boost/geometry/algorithms/covered_by.hpp
+#usr/include/boost/geometry/algorithms/crosses.hpp
 #usr/include/boost/geometry/algorithms/detail
 #usr/include/boost/geometry/algorithms/detail/as_range.hpp
 #usr/include/boost/geometry/algorithms/detail/assign_box_corners.hpp
 #usr/include/boost/geometry/algorithms/detail/assign_indexed_point.hpp
 #usr/include/boost/geometry/algorithms/detail/assign_values.hpp
+#usr/include/boost/geometry/algorithms/detail/azimuth.hpp
+#usr/include/boost/geometry/algorithms/detail/buffer
+#usr/include/boost/geometry/algorithms/detail/buffer/buffer_inserter.hpp
+#usr/include/boost/geometry/algorithms/detail/buffer/buffer_policies.hpp
+#usr/include/boost/geometry/algorithms/detail/buffer/buffered_piece_collection.hpp
+#usr/include/boost/geometry/algorithms/detail/buffer/buffered_ring.hpp
+#usr/include/boost/geometry/algorithms/detail/buffer/get_piece_turns.hpp
+#usr/include/boost/geometry/algorithms/detail/buffer/line_line_intersection.hpp
+#usr/include/boost/geometry/algorithms/detail/buffer/parallel_continue.hpp
+#usr/include/boost/geometry/algorithms/detail/buffer/turn_in_original_visitor.hpp
+#usr/include/boost/geometry/algorithms/detail/buffer/turn_in_piece_visitor.hpp
 #usr/include/boost/geometry/algorithms/detail/calculate_null.hpp
 #usr/include/boost/geometry/algorithms/detail/calculate_sum.hpp
+#usr/include/boost/geometry/algorithms/detail/centroid
+#usr/include/boost/geometry/algorithms/detail/centroid/translating_transformer.hpp
+#usr/include/boost/geometry/algorithms/detail/check_iterator_range.hpp
+#usr/include/boost/geometry/algorithms/detail/closest_feature
+#usr/include/boost/geometry/algorithms/detail/closest_feature/geometry_to_range.hpp
+#usr/include/boost/geometry/algorithms/detail/closest_feature/point_to_range.hpp
+#usr/include/boost/geometry/algorithms/detail/closest_feature/range_to_range.hpp
+#usr/include/boost/geometry/algorithms/detail/comparable_distance
+#usr/include/boost/geometry/algorithms/detail/comparable_distance/implementation.hpp
+#usr/include/boost/geometry/algorithms/detail/comparable_distance/interface.hpp
 #usr/include/boost/geometry/algorithms/detail/convert_indexed_to_indexed.hpp
 #usr/include/boost/geometry/algorithms/detail/convert_point_to_point.hpp
-#usr/include/boost/geometry/algorithms/detail/disjoint.hpp
+#usr/include/boost/geometry/algorithms/detail/counting.hpp
+#usr/include/boost/geometry/algorithms/detail/course.hpp
+#usr/include/boost/geometry/algorithms/detail/direction_code.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint
+#usr/include/boost/geometry/algorithms/detail/disjoint/areal_areal.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/box_box.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/implementation.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/interface.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/linear_areal.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/linear_linear.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/linear_segment_or_box.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/multipoint_geometry.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/multirange_geometry.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/point_box.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/point_geometry.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/point_point.hpp
+#usr/include/boost/geometry/algorithms/detail/disjoint/segment_box.hpp
+#usr/include/boost/geometry/algorithms/detail/distance
+#usr/include/boost/geometry/algorithms/detail/distance/backward_compatibility.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/box_to_box.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/default_strategies.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/geometry_to_segment_or_box.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/implementation.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/interface.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/is_comparable.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/iterator_selector.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/linear_or_areal_to_areal.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/linear_to_linear.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/multipoint_to_geometry.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/point_to_geometry.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/range_to_geometry_rtree.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/segment_to_box.hpp
+#usr/include/boost/geometry/algorithms/detail/distance/segment_to_segment.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope
+#usr/include/boost/geometry/algorithms/detail/envelope/box.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/implementation.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/initialize.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/interface.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/intersects_antimeridian.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/linear.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/multipoint.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/point.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/range.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/range_of_boxes.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/segment.hpp
+#usr/include/boost/geometry/algorithms/detail/envelope/transform_units.hpp
 #usr/include/boost/geometry/algorithms/detail/equals
 #usr/include/boost/geometry/algorithms/detail/equals/collect_vectors.hpp
+#usr/include/boost/geometry/algorithms/detail/equals/point_point.hpp
+#usr/include/boost/geometry/algorithms/detail/expand
+#usr/include/boost/geometry/algorithms/detail/expand/box.hpp
+#usr/include/boost/geometry/algorithms/detail/expand/implementation.hpp
+#usr/include/boost/geometry/algorithms/detail/expand/indexed.hpp
+#usr/include/boost/geometry/algorithms/detail/expand/interface.hpp
+#usr/include/boost/geometry/algorithms/detail/expand/point.hpp
+#usr/include/boost/geometry/algorithms/detail/expand/segment.hpp
+#usr/include/boost/geometry/algorithms/detail/expand_by_epsilon.hpp
+#usr/include/boost/geometry/algorithms/detail/extreme_points.hpp
 #usr/include/boost/geometry/algorithms/detail/for_each_range.hpp
 #usr/include/boost/geometry/algorithms/detail/get_left_turns.hpp
+#usr/include/boost/geometry/algorithms/detail/get_max_size.hpp
 #usr/include/boost/geometry/algorithms/detail/has_self_intersections.hpp
+#usr/include/boost/geometry/algorithms/detail/interior_iterator.hpp
+#usr/include/boost/geometry/algorithms/detail/intersection
+#usr/include/boost/geometry/algorithms/detail/intersection/box_box.hpp
+#usr/include/boost/geometry/algorithms/detail/intersection/implementation.hpp
+#usr/include/boost/geometry/algorithms/detail/intersection/interface.hpp
+#usr/include/boost/geometry/algorithms/detail/intersection/multi.hpp
+#usr/include/boost/geometry/algorithms/detail/is_simple
+#usr/include/boost/geometry/algorithms/detail/is_simple/always_simple.hpp
+#usr/include/boost/geometry/algorithms/detail/is_simple/areal.hpp
+#usr/include/boost/geometry/algorithms/detail/is_simple/debug_print_boundary_points.hpp
+#usr/include/boost/geometry/algorithms/detail/is_simple/failure_policy.hpp
+#usr/include/boost/geometry/algorithms/detail/is_simple/implementation.hpp
+#usr/include/boost/geometry/algorithms/detail/is_simple/interface.hpp
+#usr/include/boost/geometry/algorithms/detail/is_simple/linear.hpp
+#usr/include/boost/geometry/algorithms/detail/is_simple/multipoint.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid
+#usr/include/boost/geometry/algorithms/detail/is_valid/box.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/complement_graph.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/debug_complement_graph.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/debug_print_turns.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/debug_validity_phase.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/has_duplicates.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/has_invalid_coordinate.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/has_spikes.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/has_valid_self_turns.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/implementation.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/interface.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/is_acceptable_turn.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/linear.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/multipolygon.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/pointlike.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/polygon.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/ring.hpp
+#usr/include/boost/geometry/algorithms/detail/is_valid/segment.hpp
+#usr/include/boost/geometry/algorithms/detail/max_interval_gap.hpp
+#usr/include/boost/geometry/algorithms/detail/multi_modify.hpp
+#usr/include/boost/geometry/algorithms/detail/multi_modify_with_predicate.hpp
+#usr/include/boost/geometry/algorithms/detail/multi_sum.hpp
+#usr/include/boost/geometry/algorithms/detail/normalize.hpp
 #usr/include/boost/geometry/algorithms/detail/not.hpp
+#usr/include/boost/geometry/algorithms/detail/num_distinct_consecutive_points.hpp
 #usr/include/boost/geometry/algorithms/detail/occupation_info.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay
 #usr/include/boost/geometry/algorithms/detail/overlay/add_rings.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/aggregate_operations.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/append_no_duplicates.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/append_no_dups_or_spikes.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/assign_parents.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/backtrack_check_si.hpp
-#usr/include/boost/geometry/algorithms/detail/overlay/calculate_distance_policy.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/check_enrich.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/clip_linestring.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/cluster_info.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/convert_ring.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/copy_segment_point.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/copy_segments.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/debug_turn_info.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/do_reverse.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/enrichment_info.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/follow.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/follow_linear_linear.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/get_intersection_points.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/get_relative_order.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/get_ring.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/get_turn_info_for_endpoint.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/get_turn_info_helpers.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/get_turn_info_la.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/get_turn_info_ll.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp
-#usr/include/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/handle_colocations.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/inconsistent_turns_exception.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/intersection_box_box.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/less_by_segment_ratio.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/linear_linear.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/overlay.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/overlay_type.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/pointlike_linear.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/pointlike_pointlike.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/ring_properties.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/segment_identifier.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/select_rings.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/sort_by_side.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/stream_info.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/traversal.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/traversal_info.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/traversal_ring_creator.hpp
+#usr/include/boost/geometry/algorithms/detail/overlay/traversal_switch_detector.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/traverse.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/turn_info.hpp
 #usr/include/boost/geometry/algorithms/detail/overlay/visit_info.hpp
 #usr/include/boost/geometry/algorithms/detail/partition.hpp
 #usr/include/boost/geometry/algorithms/detail/point_is_spike_or_equal.hpp
 #usr/include/boost/geometry/algorithms/detail/point_on_border.hpp
+#usr/include/boost/geometry/algorithms/detail/recalculate.hpp
+#usr/include/boost/geometry/algorithms/detail/relate
+#usr/include/boost/geometry/algorithms/detail/relate/areal_areal.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/boundary_checker.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/de9im.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/follow_helpers.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/implementation.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/interface.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/less.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/linear_areal.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/linear_linear.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/point_geometry.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/point_point.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/relate_impl.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/result.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/topology_check.hpp
+#usr/include/boost/geometry/algorithms/detail/relate/turns.hpp
+#usr/include/boost/geometry/algorithms/detail/relation
+#usr/include/boost/geometry/algorithms/detail/relation/implementation.hpp
+#usr/include/boost/geometry/algorithms/detail/relation/interface.hpp
 #usr/include/boost/geometry/algorithms/detail/ring_identifier.hpp
 #usr/include/boost/geometry/algorithms/detail/sections
 #usr/include/boost/geometry/algorithms/detail/sections/range_by_section.hpp
+#usr/include/boost/geometry/algorithms/detail/sections/section_box_policies.hpp
+#usr/include/boost/geometry/algorithms/detail/sections/section_functions.hpp
 #usr/include/boost/geometry/algorithms/detail/sections/sectionalize.hpp
+#usr/include/boost/geometry/algorithms/detail/signed_size_type.hpp
+#usr/include/boost/geometry/algorithms/detail/single_geometry.hpp
+#usr/include/boost/geometry/algorithms/detail/sub_range.hpp
+#usr/include/boost/geometry/algorithms/detail/sweep.hpp
 #usr/include/boost/geometry/algorithms/detail/throw_on_empty_input.hpp
+#usr/include/boost/geometry/algorithms/detail/turns
+#usr/include/boost/geometry/algorithms/detail/turns/compare_turns.hpp
+#usr/include/boost/geometry/algorithms/detail/turns/debug_turn.hpp
+#usr/include/boost/geometry/algorithms/detail/turns/filter_continue_turns.hpp
+#usr/include/boost/geometry/algorithms/detail/turns/print_turns.hpp
+#usr/include/boost/geometry/algorithms/detail/turns/remove_duplicate_turns.hpp
+#usr/include/boost/geometry/algorithms/detail/within
+#usr/include/boost/geometry/algorithms/detail/within/point_in_geometry.hpp
+#usr/include/boost/geometry/algorithms/detail/within/within_no_turns.hpp
 #usr/include/boost/geometry/algorithms/difference.hpp
 #usr/include/boost/geometry/algorithms/disjoint.hpp
+#usr/include/boost/geometry/algorithms/dispatch
+#usr/include/boost/geometry/algorithms/dispatch/disjoint.hpp
+#usr/include/boost/geometry/algorithms/dispatch/distance.hpp
+#usr/include/boost/geometry/algorithms/dispatch/envelope.hpp
+#usr/include/boost/geometry/algorithms/dispatch/expand.hpp
+#usr/include/boost/geometry/algorithms/dispatch/is_simple.hpp
+#usr/include/boost/geometry/algorithms/dispatch/is_valid.hpp
 #usr/include/boost/geometry/algorithms/distance.hpp
 #usr/include/boost/geometry/algorithms/envelope.hpp
 #usr/include/boost/geometry/algorithms/equals.hpp
 #usr/include/boost/geometry/algorithms/for_each.hpp
 #usr/include/boost/geometry/algorithms/intersection.hpp
 #usr/include/boost/geometry/algorithms/intersects.hpp
+#usr/include/boost/geometry/algorithms/is_convex.hpp
+#usr/include/boost/geometry/algorithms/is_empty.hpp
+#usr/include/boost/geometry/algorithms/is_simple.hpp
+#usr/include/boost/geometry/algorithms/is_valid.hpp
 #usr/include/boost/geometry/algorithms/length.hpp
 #usr/include/boost/geometry/algorithms/make.hpp
 #usr/include/boost/geometry/algorithms/not_implemented.hpp
 #usr/include/boost/geometry/algorithms/num_geometries.hpp
 #usr/include/boost/geometry/algorithms/num_interior_rings.hpp
 #usr/include/boost/geometry/algorithms/num_points.hpp
+#usr/include/boost/geometry/algorithms/num_segments.hpp
 #usr/include/boost/geometry/algorithms/overlaps.hpp
 #usr/include/boost/geometry/algorithms/perimeter.hpp
+#usr/include/boost/geometry/algorithms/point_on_surface.hpp
+#usr/include/boost/geometry/algorithms/relate.hpp
+#usr/include/boost/geometry/algorithms/relation.hpp
+#usr/include/boost/geometry/algorithms/remove_spikes.hpp
 #usr/include/boost/geometry/algorithms/reverse.hpp
 #usr/include/boost/geometry/algorithms/simplify.hpp
 #usr/include/boost/geometry/algorithms/sym_difference.hpp
 #usr/include/boost/geometry/algorithms/transform.hpp
 #usr/include/boost/geometry/algorithms/union.hpp
 #usr/include/boost/geometry/algorithms/unique.hpp
+#usr/include/boost/geometry/algorithms/validity_failure_type.hpp
 #usr/include/boost/geometry/algorithms/within.hpp
 #usr/include/boost/geometry/arithmetic
 #usr/include/boost/geometry/arithmetic/arithmetic.hpp
+#usr/include/boost/geometry/arithmetic/cross_product.hpp
 #usr/include/boost/geometry/arithmetic/determinant.hpp
 #usr/include/boost/geometry/arithmetic/dot_product.hpp
+#usr/include/boost/geometry/arithmetic/normalize.hpp
 #usr/include/boost/geometry/core
 #usr/include/boost/geometry/core/access.hpp
+#usr/include/boost/geometry/core/assert.hpp
 #usr/include/boost/geometry/core/closure.hpp
 #usr/include/boost/geometry/core/coordinate_dimension.hpp
 #usr/include/boost/geometry/core/coordinate_system.hpp
 #usr/include/boost/geometry/core/point_order.hpp
 #usr/include/boost/geometry/core/point_type.hpp
 #usr/include/boost/geometry/core/radian_access.hpp
+#usr/include/boost/geometry/core/radius.hpp
 #usr/include/boost/geometry/core/reverse_dispatch.hpp
 #usr/include/boost/geometry/core/ring_type.hpp
+#usr/include/boost/geometry/core/srs.hpp
 #usr/include/boost/geometry/core/tag.hpp
 #usr/include/boost/geometry/core/tag_cast.hpp
 #usr/include/boost/geometry/core/tags.hpp
 #usr/include/boost/geometry/core/topological_dimension.hpp
+#usr/include/boost/geometry/formulas
+#usr/include/boost/geometry/formulas/andoyer_inverse.hpp
+#usr/include/boost/geometry/formulas/area_formulas.hpp
+#usr/include/boost/geometry/formulas/differential_quantities.hpp
+#usr/include/boost/geometry/formulas/eccentricity_sqr.hpp
+#usr/include/boost/geometry/formulas/flattening.hpp
+#usr/include/boost/geometry/formulas/geographic.hpp
+#usr/include/boost/geometry/formulas/gnomonic_intersection.hpp
+#usr/include/boost/geometry/formulas/gnomonic_spheroid.hpp
+#usr/include/boost/geometry/formulas/result_direct.hpp
+#usr/include/boost/geometry/formulas/result_inverse.hpp
+#usr/include/boost/geometry/formulas/sjoberg_intersection.hpp
+#usr/include/boost/geometry/formulas/spherical.hpp
+#usr/include/boost/geometry/formulas/thomas_direct.hpp
+#usr/include/boost/geometry/formulas/thomas_inverse.hpp
+#usr/include/boost/geometry/formulas/vertex_latitude.hpp
+#usr/include/boost/geometry/formulas/vincenty_direct.hpp
+#usr/include/boost/geometry/formulas/vincenty_inverse.hpp
 #usr/include/boost/geometry/geometries
 #usr/include/boost/geometry/geometries/adapted
 #usr/include/boost/geometry/geometries/adapted/boost_array.hpp
 #usr/include/boost/geometry/geometries/adapted/boost_range/uniqued.hpp
 #usr/include/boost/geometry/geometries/adapted/boost_tuple.hpp
 #usr/include/boost/geometry/geometries/adapted/c_array.hpp
+#usr/include/boost/geometry/geometries/adapted/std_array.hpp
 #usr/include/boost/geometry/geometries/adapted/std_pair_as_segment.hpp
 #usr/include/boost/geometry/geometries/box.hpp
 #usr/include/boost/geometry/geometries/concepts
 #usr/include/boost/geometry/geometries/concepts/box_concept.hpp
 #usr/include/boost/geometry/geometries/concepts/check.hpp
 #usr/include/boost/geometry/geometries/concepts/linestring_concept.hpp
+#usr/include/boost/geometry/geometries/concepts/multi_linestring_concept.hpp
+#usr/include/boost/geometry/geometries/concepts/multi_point_concept.hpp
+#usr/include/boost/geometry/geometries/concepts/multi_polygon_concept.hpp
 #usr/include/boost/geometry/geometries/concepts/point_concept.hpp
 #usr/include/boost/geometry/geometries/concepts/polygon_concept.hpp
 #usr/include/boost/geometry/geometries/concepts/ring_concept.hpp
 #usr/include/boost/geometry/geometries/concepts/segment_concept.hpp
 #usr/include/boost/geometry/geometries/geometries.hpp
+#usr/include/boost/geometry/geometries/helper_geometry.hpp
 #usr/include/boost/geometry/geometries/linestring.hpp
+#usr/include/boost/geometry/geometries/multi_linestring.hpp
+#usr/include/boost/geometry/geometries/multi_point.hpp
+#usr/include/boost/geometry/geometries/multi_polygon.hpp
 #usr/include/boost/geometry/geometries/point.hpp
 #usr/include/boost/geometry/geometries/point_xy.hpp
+#usr/include/boost/geometry/geometries/pointing_segment.hpp
 #usr/include/boost/geometry/geometries/polygon.hpp
 #usr/include/boost/geometry/geometries/register
 #usr/include/boost/geometry/geometries/register/box.hpp
 #usr/include/boost/geometry/geometries/register/linestring.hpp
+#usr/include/boost/geometry/geometries/register/multi_linestring.hpp
+#usr/include/boost/geometry/geometries/register/multi_point.hpp
+#usr/include/boost/geometry/geometries/register/multi_polygon.hpp
 #usr/include/boost/geometry/geometries/register/point.hpp
 #usr/include/boost/geometry/geometries/register/ring.hpp
 #usr/include/boost/geometry/geometries/register/segment.hpp
 #usr/include/boost/geometry/index/detail/algorithms/is_valid.hpp
 #usr/include/boost/geometry/index/detail/algorithms/margin.hpp
 #usr/include/boost/geometry/index/detail/algorithms/minmaxdist.hpp
+#usr/include/boost/geometry/index/detail/algorithms/nth_element.hpp
 #usr/include/boost/geometry/index/detail/algorithms/path_intersection.hpp
 #usr/include/boost/geometry/index/detail/algorithms/segment_intersection.hpp
 #usr/include/boost/geometry/index/detail/algorithms/smallest_for_indexable.hpp
 #usr/include/boost/geometry/index/detail/algorithms/sum_for_indexable.hpp
 #usr/include/boost/geometry/index/detail/algorithms/union_content.hpp
 #usr/include/boost/geometry/index/detail/assert.hpp
+#usr/include/boost/geometry/index/detail/bounded_view.hpp
 #usr/include/boost/geometry/index/detail/config_begin.hpp
 #usr/include/boost/geometry/index/detail/config_end.hpp
 #usr/include/boost/geometry/index/detail/distance_predicates.hpp
 #usr/include/boost/geometry/index/detail/exception.hpp
+#usr/include/boost/geometry/index/detail/is_bounding_geometry.hpp
+#usr/include/boost/geometry/index/detail/is_indexable.hpp
 #usr/include/boost/geometry/index/detail/meta.hpp
 #usr/include/boost/geometry/index/detail/predicates.hpp
-#usr/include/boost/geometry/index/detail/pushable_array.hpp
 #usr/include/boost/geometry/index/detail/rtree
 #usr/include/boost/geometry/index/detail/rtree/adaptors.hpp
+#usr/include/boost/geometry/index/detail/rtree/iterators.hpp
 #usr/include/boost/geometry/index/detail/rtree/kmeans
 #usr/include/boost/geometry/index/detail/rtree/kmeans/kmeans.hpp
 #usr/include/boost/geometry/index/detail/rtree/kmeans/split.hpp
 #usr/include/boost/geometry/index/detail/rtree/linear/linear.hpp
 #usr/include/boost/geometry/index/detail/rtree/linear/redistribute_elements.hpp
 #usr/include/boost/geometry/index/detail/rtree/node
-#usr/include/boost/geometry/index/detail/rtree/node/auto_deallocator.hpp
 #usr/include/boost/geometry/index/detail/rtree/node/concept.hpp
-#usr/include/boost/geometry/index/detail/rtree/node/dynamic_visitor.hpp
 #usr/include/boost/geometry/index/detail/rtree/node/node.hpp
-#usr/include/boost/geometry/index/detail/rtree/node/node_auto_ptr.hpp
-#usr/include/boost/geometry/index/detail/rtree/node/node_d_mem_dynamic.hpp
-#usr/include/boost/geometry/index/detail/rtree/node/node_d_mem_static.hpp
-#usr/include/boost/geometry/index/detail/rtree/node/node_s_mem_dynamic.hpp
-#usr/include/boost/geometry/index/detail/rtree/node/node_s_mem_static.hpp
+#usr/include/boost/geometry/index/detail/rtree/node/node_elements.hpp
 #usr/include/boost/geometry/index/detail/rtree/node/pairs.hpp
-#usr/include/boost/geometry/index/detail/rtree/node/static_visitor.hpp
+#usr/include/boost/geometry/index/detail/rtree/node/scoped_deallocator.hpp
+#usr/include/boost/geometry/index/detail/rtree/node/subtree_destroyer.hpp
+#usr/include/boost/geometry/index/detail/rtree/node/variant_dynamic.hpp
+#usr/include/boost/geometry/index/detail/rtree/node/variant_static.hpp
+#usr/include/boost/geometry/index/detail/rtree/node/variant_visitor.hpp
+#usr/include/boost/geometry/index/detail/rtree/node/weak_dynamic.hpp
+#usr/include/boost/geometry/index/detail/rtree/node/weak_static.hpp
+#usr/include/boost/geometry/index/detail/rtree/node/weak_visitor.hpp
 #usr/include/boost/geometry/index/detail/rtree/options.hpp
 #usr/include/boost/geometry/index/detail/rtree/pack_create.hpp
 #usr/include/boost/geometry/index/detail/rtree/quadratic
 #usr/include/boost/geometry/index/detail/rtree/rstar/rstar.hpp
 #usr/include/boost/geometry/index/detail/rtree/utilities
 #usr/include/boost/geometry/index/detail/rtree/utilities/are_boxes_ok.hpp
+#usr/include/boost/geometry/index/detail/rtree/utilities/are_counts_ok.hpp
 #usr/include/boost/geometry/index/detail/rtree/utilities/are_levels_ok.hpp
 #usr/include/boost/geometry/index/detail/rtree/utilities/gl_draw.hpp
 #usr/include/boost/geometry/index/detail/rtree/utilities/print.hpp
 #usr/include/boost/geometry/index/detail/rtree/visitors/distance_query.hpp
 #usr/include/boost/geometry/index/detail/rtree/visitors/insert.hpp
 #usr/include/boost/geometry/index/detail/rtree/visitors/is_leaf.hpp
+#usr/include/boost/geometry/index/detail/rtree/visitors/iterator.hpp
 #usr/include/boost/geometry/index/detail/rtree/visitors/remove.hpp
 #usr/include/boost/geometry/index/detail/rtree/visitors/spatial_query.hpp
 #usr/include/boost/geometry/index/detail/serialization.hpp
 #usr/include/boost/geometry/io/io.hpp
 #usr/include/boost/geometry/io/svg
 #usr/include/boost/geometry/io/svg/svg_mapper.hpp
+#usr/include/boost/geometry/io/svg/write.hpp
 #usr/include/boost/geometry/io/svg/write_svg.hpp
 #usr/include/boost/geometry/io/svg/write_svg_multi.hpp
 #usr/include/boost/geometry/io/wkt
 #usr/include/boost/geometry/iterators
 #usr/include/boost/geometry/iterators/base.hpp
 #usr/include/boost/geometry/iterators/closing_iterator.hpp
+#usr/include/boost/geometry/iterators/concatenate_iterator.hpp
+#usr/include/boost/geometry/iterators/detail
+#usr/include/boost/geometry/iterators/detail/point_iterator
+#usr/include/boost/geometry/iterators/detail/point_iterator/inner_range_type.hpp
+#usr/include/boost/geometry/iterators/detail/point_iterator/iterator_type.hpp
+#usr/include/boost/geometry/iterators/detail/point_iterator/value_type.hpp
+#usr/include/boost/geometry/iterators/detail/segment_iterator
+#usr/include/boost/geometry/iterators/detail/segment_iterator/iterator_type.hpp
+#usr/include/boost/geometry/iterators/detail/segment_iterator/range_segment_iterator.hpp
+#usr/include/boost/geometry/iterators/detail/segment_iterator/value_type.hpp
+#usr/include/boost/geometry/iterators/dispatch
+#usr/include/boost/geometry/iterators/dispatch/point_iterator.hpp
+#usr/include/boost/geometry/iterators/dispatch/segment_iterator.hpp
 #usr/include/boost/geometry/iterators/ever_circling_iterator.hpp
+#usr/include/boost/geometry/iterators/flatten_iterator.hpp
+#usr/include/boost/geometry/iterators/has_one_element.hpp
+#usr/include/boost/geometry/iterators/point_iterator.hpp
+#usr/include/boost/geometry/iterators/point_reverse_iterator.hpp
+#usr/include/boost/geometry/iterators/segment_iterator.hpp
 #usr/include/boost/geometry/multi
 #usr/include/boost/geometry/multi/algorithms
 #usr/include/boost/geometry/multi/algorithms/append.hpp
 #usr/include/boost/geometry/multi/algorithms/correct.hpp
 #usr/include/boost/geometry/multi/algorithms/covered_by.hpp
 #usr/include/boost/geometry/multi/algorithms/detail
+#usr/include/boost/geometry/multi/algorithms/detail/extreme_points.hpp
 #usr/include/boost/geometry/multi/algorithms/detail/for_each_range.hpp
 #usr/include/boost/geometry/multi/algorithms/detail/modify.hpp
 #usr/include/boost/geometry/multi/algorithms/detail/modify_with_predicate.hpp
 #usr/include/boost/geometry/multi/algorithms/detail/overlay/copy_segments.hpp
 #usr/include/boost/geometry/multi/algorithms/detail/overlay/get_ring.hpp
 #usr/include/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp
-#usr/include/boost/geometry/multi/algorithms/detail/overlay/select_rings.hpp
 #usr/include/boost/geometry/multi/algorithms/detail/overlay/self_turn_points.hpp
 #usr/include/boost/geometry/multi/algorithms/detail/point_on_border.hpp
 #usr/include/boost/geometry/multi/algorithms/detail/sections
 #usr/include/boost/geometry/multi/algorithms/num_interior_rings.hpp
 #usr/include/boost/geometry/multi/algorithms/num_points.hpp
 #usr/include/boost/geometry/multi/algorithms/perimeter.hpp
+#usr/include/boost/geometry/multi/algorithms/remove_spikes.hpp
 #usr/include/boost/geometry/multi/algorithms/reverse.hpp
 #usr/include/boost/geometry/multi/algorithms/simplify.hpp
 #usr/include/boost/geometry/multi/algorithms/transform.hpp
 #usr/include/boost/geometry/multi/views/detail/range_type.hpp
 #usr/include/boost/geometry/policies
 #usr/include/boost/geometry/policies/compare.hpp
+#usr/include/boost/geometry/policies/disjoint_interrupt_policy.hpp
+#usr/include/boost/geometry/policies/is_valid
+#usr/include/boost/geometry/policies/is_valid/default_policy.hpp
+#usr/include/boost/geometry/policies/is_valid/failing_reason_policy.hpp
+#usr/include/boost/geometry/policies/is_valid/failure_type_policy.hpp
+#usr/include/boost/geometry/policies/predicate_based_interrupt_policy.hpp
 #usr/include/boost/geometry/policies/relate
-#usr/include/boost/geometry/policies/relate/de9im.hpp
 #usr/include/boost/geometry/policies/relate/direction.hpp
 #usr/include/boost/geometry/policies/relate/intersection_points.hpp
+#usr/include/boost/geometry/policies/relate/intersection_ratios.hpp
 #usr/include/boost/geometry/policies/relate/tupled.hpp
+#usr/include/boost/geometry/policies/robustness
+#usr/include/boost/geometry/policies/robustness/get_rescale_policy.hpp
+#usr/include/boost/geometry/policies/robustness/no_rescale_policy.hpp
+#usr/include/boost/geometry/policies/robustness/rescale_policy.hpp
+#usr/include/boost/geometry/policies/robustness/robust_point_type.hpp
+#usr/include/boost/geometry/policies/robustness/robust_type.hpp
+#usr/include/boost/geometry/policies/robustness/segment_ratio.hpp
+#usr/include/boost/geometry/policies/robustness/segment_ratio_type.hpp
 #usr/include/boost/geometry/strategies
 #usr/include/boost/geometry/strategies/agnostic
+#usr/include/boost/geometry/strategies/agnostic/buffer_distance_asymmetric.hpp
+#usr/include/boost/geometry/strategies/agnostic/buffer_distance_symmetric.hpp
 #usr/include/boost/geometry/strategies/agnostic/hull_graham_andrew.hpp
 #usr/include/boost/geometry/strategies/agnostic/point_in_box_by_side.hpp
+#usr/include/boost/geometry/strategies/agnostic/point_in_point.hpp
 #usr/include/boost/geometry/strategies/agnostic/point_in_poly_oriented_winding.hpp
 #usr/include/boost/geometry/strategies/agnostic/point_in_poly_winding.hpp
 #usr/include/boost/geometry/strategies/agnostic/simplify_douglas_peucker.hpp
 #usr/include/boost/geometry/strategies/area.hpp
+#usr/include/boost/geometry/strategies/azimuth.hpp
+#usr/include/boost/geometry/strategies/buffer.hpp
 #usr/include/boost/geometry/strategies/cartesian
 #usr/include/boost/geometry/strategies/cartesian/area_surveyor.hpp
+#usr/include/boost/geometry/strategies/cartesian/azimuth.hpp
 #usr/include/boost/geometry/strategies/cartesian/box_in_box.hpp
-#usr/include/boost/geometry/strategies/cartesian/cart_intersect.hpp
+#usr/include/boost/geometry/strategies/cartesian/buffer_end_flat.hpp
+#usr/include/boost/geometry/strategies/cartesian/buffer_end_round.hpp
+#usr/include/boost/geometry/strategies/cartesian/buffer_join_miter.hpp
+#usr/include/boost/geometry/strategies/cartesian/buffer_join_round.hpp
+#usr/include/boost/geometry/strategies/cartesian/buffer_join_round_by_divide.hpp
+#usr/include/boost/geometry/strategies/cartesian/buffer_point_circle.hpp
+#usr/include/boost/geometry/strategies/cartesian/buffer_point_square.hpp
+#usr/include/boost/geometry/strategies/cartesian/buffer_side_straight.hpp
+#usr/include/boost/geometry/strategies/cartesian/centroid_average.hpp
 #usr/include/boost/geometry/strategies/cartesian/centroid_bashein_detmer.hpp
 #usr/include/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp
+#usr/include/boost/geometry/strategies/cartesian/disjoint_segment_box.hpp
 #usr/include/boost/geometry/strategies/cartesian/distance_projected_point.hpp
+#usr/include/boost/geometry/strategies/cartesian/distance_projected_point_ax.hpp
 #usr/include/boost/geometry/strategies/cartesian/distance_pythagoras.hpp
+#usr/include/boost/geometry/strategies/cartesian/distance_pythagoras_box_box.hpp
+#usr/include/boost/geometry/strategies/cartesian/distance_pythagoras_point_box.hpp
+#usr/include/boost/geometry/strategies/cartesian/envelope_segment.hpp
+#usr/include/boost/geometry/strategies/cartesian/intersection.hpp
 #usr/include/boost/geometry/strategies/cartesian/point_in_box.hpp
 #usr/include/boost/geometry/strategies/cartesian/point_in_poly_crossings_multiply.hpp
 #usr/include/boost/geometry/strategies/cartesian/point_in_poly_franklin.hpp
 #usr/include/boost/geometry/strategies/cartesian/side_by_triangle.hpp
+#usr/include/boost/geometry/strategies/cartesian/side_of_intersection.hpp
 #usr/include/boost/geometry/strategies/centroid.hpp
+#usr/include/boost/geometry/strategies/comparable_distance_result.hpp
 #usr/include/boost/geometry/strategies/compare.hpp
 #usr/include/boost/geometry/strategies/concepts
 #usr/include/boost/geometry/strategies/concepts/area_concept.hpp
 #usr/include/boost/geometry/strategies/convex_hull.hpp
 #usr/include/boost/geometry/strategies/covered_by.hpp
 #usr/include/boost/geometry/strategies/default_area_result.hpp
+#usr/include/boost/geometry/strategies/default_comparable_distance_result.hpp
 #usr/include/boost/geometry/strategies/default_distance_result.hpp
 #usr/include/boost/geometry/strategies/default_length_result.hpp
+#usr/include/boost/geometry/strategies/default_strategy.hpp
+#usr/include/boost/geometry/strategies/disjoint.hpp
 #usr/include/boost/geometry/strategies/distance.hpp
+#usr/include/boost/geometry/strategies/distance_result.hpp
+#usr/include/boost/geometry/strategies/envelope.hpp
+#usr/include/boost/geometry/strategies/geographic
+#usr/include/boost/geometry/strategies/geographic/area.hpp
+#usr/include/boost/geometry/strategies/geographic/azimuth.hpp
+#usr/include/boost/geometry/strategies/geographic/distance.hpp
+#usr/include/boost/geometry/strategies/geographic/distance_andoyer.hpp
+#usr/include/boost/geometry/strategies/geographic/distance_thomas.hpp
+#usr/include/boost/geometry/strategies/geographic/distance_vincenty.hpp
+#usr/include/boost/geometry/strategies/geographic/envelope_segment.hpp
+#usr/include/boost/geometry/strategies/geographic/intersection.hpp
+#usr/include/boost/geometry/strategies/geographic/intersection_elliptic.hpp
+#usr/include/boost/geometry/strategies/geographic/mapping_ssf.hpp
+#usr/include/boost/geometry/strategies/geographic/parameters.hpp
+#usr/include/boost/geometry/strategies/geographic/side.hpp
+#usr/include/boost/geometry/strategies/geographic/side_andoyer.hpp
+#usr/include/boost/geometry/strategies/geographic/side_thomas.hpp
+#usr/include/boost/geometry/strategies/geographic/side_vincenty.hpp
 #usr/include/boost/geometry/strategies/intersection.hpp
 #usr/include/boost/geometry/strategies/intersection_result.hpp
+#usr/include/boost/geometry/strategies/intersection_strategies.hpp
+#usr/include/boost/geometry/strategies/relate.hpp
 #usr/include/boost/geometry/strategies/side.hpp
 #usr/include/boost/geometry/strategies/side_info.hpp
 #usr/include/boost/geometry/strategies/spherical
-#usr/include/boost/geometry/strategies/spherical/area_huiller.hpp
+#usr/include/boost/geometry/strategies/spherical/area.hpp
+#usr/include/boost/geometry/strategies/spherical/azimuth.hpp
 #usr/include/boost/geometry/strategies/spherical/compare_circular.hpp
 #usr/include/boost/geometry/strategies/spherical/distance_cross_track.hpp
+#usr/include/boost/geometry/strategies/spherical/distance_cross_track_point_box.hpp
 #usr/include/boost/geometry/strategies/spherical/distance_haversine.hpp
+#usr/include/boost/geometry/strategies/spherical/envelope_segment.hpp
+#usr/include/boost/geometry/strategies/spherical/intersection.hpp
 #usr/include/boost/geometry/strategies/spherical/side_by_cross_track.hpp
 #usr/include/boost/geometry/strategies/spherical/ssf.hpp
 #usr/include/boost/geometry/strategies/strategies.hpp
 #usr/include/boost/geometry/util/bare_type.hpp
 #usr/include/boost/geometry/util/calculation_type.hpp
 #usr/include/boost/geometry/util/closure_as_bool.hpp
+#usr/include/boost/geometry/util/combine_if.hpp
+#usr/include/boost/geometry/util/compress_variant.hpp
+#usr/include/boost/geometry/util/condition.hpp
 #usr/include/boost/geometry/util/coordinate_cast.hpp
 #usr/include/boost/geometry/util/for_each_coordinate.hpp
+#usr/include/boost/geometry/util/has_infinite_coordinate.hpp
+#usr/include/boost/geometry/util/has_nan_coordinate.hpp
+#usr/include/boost/geometry/util/has_non_finite_coordinate.hpp
 #usr/include/boost/geometry/util/math.hpp
+#usr/include/boost/geometry/util/normalize_spheroidal_box_coordinates.hpp
+#usr/include/boost/geometry/util/normalize_spheroidal_coordinates.hpp
 #usr/include/boost/geometry/util/order_as_direction.hpp
 #usr/include/boost/geometry/util/parameter_type_of.hpp
 #usr/include/boost/geometry/util/promote_floating_point.hpp
+#usr/include/boost/geometry/util/promote_integral.hpp
+#usr/include/boost/geometry/util/range.hpp
 #usr/include/boost/geometry/util/rational.hpp
 #usr/include/boost/geometry/util/select_calculation_type.hpp
 #usr/include/boost/geometry/util/select_coordinate_type.hpp
 #usr/include/boost/geometry/util/select_most_precise.hpp
+#usr/include/boost/geometry/util/transform_variant.hpp
 #usr/include/boost/geometry/views
 #usr/include/boost/geometry/views/box_view.hpp
 #usr/include/boost/geometry/views/closeable_view.hpp
 #usr/include/boost/geometry/views/detail
+#usr/include/boost/geometry/views/detail/boundary_view
+#usr/include/boost/geometry/views/detail/boundary_view.hpp
+#usr/include/boost/geometry/views/detail/boundary_view/implementation.hpp
+#usr/include/boost/geometry/views/detail/boundary_view/interface.hpp
+#usr/include/boost/geometry/views/detail/indexed_point_view.hpp
+#usr/include/boost/geometry/views/detail/normalized_view.hpp
 #usr/include/boost/geometry/views/detail/points_view.hpp
 #usr/include/boost/geometry/views/detail/range_type.hpp
+#usr/include/boost/geometry/views/detail/two_dimensional_view.hpp
 #usr/include/boost/geometry/views/identity_view.hpp
 #usr/include/boost/geometry/views/reversible_view.hpp
 #usr/include/boost/geometry/views/segment_view.hpp
 #usr/include/boost/graph/visitors.hpp
 #usr/include/boost/graph/wavefront.hpp
 #usr/include/boost/graph/write_dimacs.hpp
+#usr/include/boost/hana
+#usr/include/boost/hana.hpp
+#usr/include/boost/hana/accessors.hpp
+#usr/include/boost/hana/adapt_adt.hpp
+#usr/include/boost/hana/adapt_struct.hpp
+#usr/include/boost/hana/adjust.hpp
+#usr/include/boost/hana/adjust_if.hpp
+#usr/include/boost/hana/all.hpp
+#usr/include/boost/hana/all_of.hpp
+#usr/include/boost/hana/and.hpp
+#usr/include/boost/hana/any.hpp
+#usr/include/boost/hana/any_of.hpp
+#usr/include/boost/hana/ap.hpp
+#usr/include/boost/hana/append.hpp
+#usr/include/boost/hana/assert.hpp
+#usr/include/boost/hana/at.hpp
+#usr/include/boost/hana/at_key.hpp
+#usr/include/boost/hana/back.hpp
+#usr/include/boost/hana/basic_tuple.hpp
+#usr/include/boost/hana/bool.hpp
+#usr/include/boost/hana/cartesian_product.hpp
+#usr/include/boost/hana/chain.hpp
+#usr/include/boost/hana/comparing.hpp
+#usr/include/boost/hana/concat.hpp
+#usr/include/boost/hana/concept
+#usr/include/boost/hana/concept.hpp
+#usr/include/boost/hana/concept/applicative.hpp
+#usr/include/boost/hana/concept/comonad.hpp
+#usr/include/boost/hana/concept/comparable.hpp
+#usr/include/boost/hana/concept/constant.hpp
+#usr/include/boost/hana/concept/euclidean_ring.hpp
+#usr/include/boost/hana/concept/foldable.hpp
+#usr/include/boost/hana/concept/functor.hpp
+#usr/include/boost/hana/concept/group.hpp
+#usr/include/boost/hana/concept/hashable.hpp
+#usr/include/boost/hana/concept/integral_constant.hpp
+#usr/include/boost/hana/concept/iterable.hpp
+#usr/include/boost/hana/concept/logical.hpp
+#usr/include/boost/hana/concept/metafunction.hpp
+#usr/include/boost/hana/concept/monad.hpp
+#usr/include/boost/hana/concept/monad_plus.hpp
+#usr/include/boost/hana/concept/monoid.hpp
+#usr/include/boost/hana/concept/orderable.hpp
+#usr/include/boost/hana/concept/product.hpp
+#usr/include/boost/hana/concept/ring.hpp
+#usr/include/boost/hana/concept/searchable.hpp
+#usr/include/boost/hana/concept/sequence.hpp
+#usr/include/boost/hana/concept/struct.hpp
+#usr/include/boost/hana/config.hpp
+#usr/include/boost/hana/contains.hpp
+#usr/include/boost/hana/core
+#usr/include/boost/hana/core.hpp
+#usr/include/boost/hana/core/common.hpp
+#usr/include/boost/hana/core/default.hpp
+#usr/include/boost/hana/core/dispatch.hpp
+#usr/include/boost/hana/core/is_a.hpp
+#usr/include/boost/hana/core/make.hpp
+#usr/include/boost/hana/core/tag_of.hpp
+#usr/include/boost/hana/core/to.hpp
+#usr/include/boost/hana/core/when.hpp
+#usr/include/boost/hana/count.hpp
+#usr/include/boost/hana/count_if.hpp
+#usr/include/boost/hana/cycle.hpp
+#usr/include/boost/hana/define_struct.hpp
+#usr/include/boost/hana/detail
+#usr/include/boost/hana/detail/algorithm.hpp
+#usr/include/boost/hana/detail/any_of.hpp
+#usr/include/boost/hana/detail/array.hpp
+#usr/include/boost/hana/detail/canonical_constant.hpp
+#usr/include/boost/hana/detail/concepts.hpp
+#usr/include/boost/hana/detail/create.hpp
+#usr/include/boost/hana/detail/decay.hpp
+#usr/include/boost/hana/detail/dispatch_if.hpp
+#usr/include/boost/hana/detail/ebo.hpp
+#usr/include/boost/hana/detail/fast_and.hpp
+#usr/include/boost/hana/detail/first_unsatisfied_index.hpp
+#usr/include/boost/hana/detail/has_common_embedding.hpp
+#usr/include/boost/hana/detail/has_duplicates.hpp
+#usr/include/boost/hana/detail/hash_table.hpp
+#usr/include/boost/hana/detail/index_if.hpp
+#usr/include/boost/hana/detail/integral_constant.hpp
+#usr/include/boost/hana/detail/intrinsics.hpp
+#usr/include/boost/hana/detail/nested_by.hpp
+#usr/include/boost/hana/detail/nested_by_fwd.hpp
+#usr/include/boost/hana/detail/nested_than.hpp
+#usr/include/boost/hana/detail/nested_than_fwd.hpp
+#usr/include/boost/hana/detail/nested_to.hpp
+#usr/include/boost/hana/detail/nested_to_fwd.hpp
+#usr/include/boost/hana/detail/operators
+#usr/include/boost/hana/detail/operators/adl.hpp
+#usr/include/boost/hana/detail/operators/arithmetic.hpp
+#usr/include/boost/hana/detail/operators/comparable.hpp
+#usr/include/boost/hana/detail/operators/iterable.hpp
+#usr/include/boost/hana/detail/operators/logical.hpp
+#usr/include/boost/hana/detail/operators/monad.hpp
+#usr/include/boost/hana/detail/operators/orderable.hpp
+#usr/include/boost/hana/detail/operators/searchable.hpp
+#usr/include/boost/hana/detail/preprocessor.hpp
+#usr/include/boost/hana/detail/std_common_type.hpp
+#usr/include/boost/hana/detail/struct_macros.erb.hpp
+#usr/include/boost/hana/detail/struct_macros.hpp
+#usr/include/boost/hana/detail/type_at.hpp
+#usr/include/boost/hana/detail/type_foldl1.hpp
+#usr/include/boost/hana/detail/type_foldr1.hpp
+#usr/include/boost/hana/detail/unpack_flatten.hpp
+#usr/include/boost/hana/detail/variadic
+#usr/include/boost/hana/detail/variadic/at.hpp
+#usr/include/boost/hana/detail/variadic/drop_into.hpp
+#usr/include/boost/hana/detail/variadic/foldl1.hpp
+#usr/include/boost/hana/detail/variadic/foldr1.hpp
+#usr/include/boost/hana/detail/variadic/reverse_apply
+#usr/include/boost/hana/detail/variadic/reverse_apply.hpp
+#usr/include/boost/hana/detail/variadic/reverse_apply/flat.hpp
+#usr/include/boost/hana/detail/variadic/reverse_apply/unrolled.hpp
+#usr/include/boost/hana/detail/variadic/split_at.hpp
+#usr/include/boost/hana/detail/variadic/take.hpp
+#usr/include/boost/hana/detail/void_t.hpp
+#usr/include/boost/hana/detail/wrong.hpp
+#usr/include/boost/hana/difference.hpp
+#usr/include/boost/hana/div.hpp
+#usr/include/boost/hana/drop_back.hpp
+#usr/include/boost/hana/drop_front.hpp
+#usr/include/boost/hana/drop_front_exactly.hpp
+#usr/include/boost/hana/drop_while.hpp
+#usr/include/boost/hana/duplicate.hpp
+#usr/include/boost/hana/empty.hpp
+#usr/include/boost/hana/equal.hpp
+#usr/include/boost/hana/erase_key.hpp
+#usr/include/boost/hana/eval.hpp
+#usr/include/boost/hana/eval_if.hpp
+#usr/include/boost/hana/experimental
+#usr/include/boost/hana/experimental/printable.hpp
+#usr/include/boost/hana/experimental/type_name.hpp
+#usr/include/boost/hana/experimental/types.hpp
+#usr/include/boost/hana/experimental/view.hpp
+#usr/include/boost/hana/ext
+#usr/include/boost/hana/ext/boost
+#usr/include/boost/hana/ext/boost.hpp
+#usr/include/boost/hana/ext/boost/fusion
+#usr/include/boost/hana/ext/boost/fusion.hpp
+#usr/include/boost/hana/ext/boost/fusion/deque.hpp
+#usr/include/boost/hana/ext/boost/fusion/detail
+#usr/include/boost/hana/ext/boost/fusion/detail/common.hpp
+#usr/include/boost/hana/ext/boost/fusion/list.hpp
+#usr/include/boost/hana/ext/boost/fusion/tuple.hpp
+#usr/include/boost/hana/ext/boost/fusion/vector.hpp
+#usr/include/boost/hana/ext/boost/mpl
+#usr/include/boost/hana/ext/boost/mpl.hpp
+#usr/include/boost/hana/ext/boost/mpl/integral_c.hpp
+#usr/include/boost/hana/ext/boost/mpl/list.hpp
+#usr/include/boost/hana/ext/boost/mpl/vector.hpp
+#usr/include/boost/hana/ext/boost/tuple.hpp
+#usr/include/boost/hana/ext/std
+#usr/include/boost/hana/ext/std.hpp
+#usr/include/boost/hana/ext/std/array.hpp
+#usr/include/boost/hana/ext/std/integer_sequence.hpp
+#usr/include/boost/hana/ext/std/integral_constant.hpp
+#usr/include/boost/hana/ext/std/pair.hpp
+#usr/include/boost/hana/ext/std/ratio.hpp
+#usr/include/boost/hana/ext/std/tuple.hpp
+#usr/include/boost/hana/ext/std/vector.hpp
+#usr/include/boost/hana/extend.hpp
+#usr/include/boost/hana/extract.hpp
+#usr/include/boost/hana/fill.hpp
+#usr/include/boost/hana/filter.hpp
+#usr/include/boost/hana/find.hpp
+#usr/include/boost/hana/find_if.hpp
+#usr/include/boost/hana/first.hpp
+#usr/include/boost/hana/flatten.hpp
+#usr/include/boost/hana/fold.hpp
+#usr/include/boost/hana/fold_left.hpp
+#usr/include/boost/hana/fold_right.hpp
+#usr/include/boost/hana/for_each.hpp
+#usr/include/boost/hana/front.hpp
+#usr/include/boost/hana/functional
+#usr/include/boost/hana/functional.hpp
+#usr/include/boost/hana/functional/always.hpp
+#usr/include/boost/hana/functional/apply.hpp
+#usr/include/boost/hana/functional/arg.hpp
+#usr/include/boost/hana/functional/capture.hpp
+#usr/include/boost/hana/functional/compose.hpp
+#usr/include/boost/hana/functional/curry.hpp
+#usr/include/boost/hana/functional/demux.hpp
+#usr/include/boost/hana/functional/fix.hpp
+#usr/include/boost/hana/functional/flip.hpp
+#usr/include/boost/hana/functional/id.hpp
+#usr/include/boost/hana/functional/infix.hpp
+#usr/include/boost/hana/functional/iterate.hpp
+#usr/include/boost/hana/functional/lockstep.hpp
+#usr/include/boost/hana/functional/on.hpp
+#usr/include/boost/hana/functional/overload.hpp
+#usr/include/boost/hana/functional/overload_linearly.hpp
+#usr/include/boost/hana/functional/partial.hpp
+#usr/include/boost/hana/functional/placeholder.hpp
+#usr/include/boost/hana/functional/reverse_partial.hpp
+#usr/include/boost/hana/fuse.hpp
+#usr/include/boost/hana/fwd
+#usr/include/boost/hana/fwd/accessors.hpp
+#usr/include/boost/hana/fwd/adapt_adt.hpp
+#usr/include/boost/hana/fwd/adapt_struct.hpp
+#usr/include/boost/hana/fwd/adjust.hpp
+#usr/include/boost/hana/fwd/adjust_if.hpp
+#usr/include/boost/hana/fwd/all.hpp
+#usr/include/boost/hana/fwd/all_of.hpp
+#usr/include/boost/hana/fwd/and.hpp
+#usr/include/boost/hana/fwd/any.hpp
+#usr/include/boost/hana/fwd/any_of.hpp
+#usr/include/boost/hana/fwd/ap.hpp
+#usr/include/boost/hana/fwd/append.hpp
+#usr/include/boost/hana/fwd/at.hpp
+#usr/include/boost/hana/fwd/at_key.hpp
+#usr/include/boost/hana/fwd/back.hpp
+#usr/include/boost/hana/fwd/basic_tuple.hpp
+#usr/include/boost/hana/fwd/bool.hpp
+#usr/include/boost/hana/fwd/cartesian_product.hpp
+#usr/include/boost/hana/fwd/chain.hpp
+#usr/include/boost/hana/fwd/comparing.hpp
+#usr/include/boost/hana/fwd/concat.hpp
+#usr/include/boost/hana/fwd/concept
+#usr/include/boost/hana/fwd/concept/applicative.hpp
+#usr/include/boost/hana/fwd/concept/comonad.hpp
+#usr/include/boost/hana/fwd/concept/comparable.hpp
+#usr/include/boost/hana/fwd/concept/constant.hpp
+#usr/include/boost/hana/fwd/concept/euclidean_ring.hpp
+#usr/include/boost/hana/fwd/concept/foldable.hpp
+#usr/include/boost/hana/fwd/concept/functor.hpp
+#usr/include/boost/hana/fwd/concept/group.hpp
+#usr/include/boost/hana/fwd/concept/hashable.hpp
+#usr/include/boost/hana/fwd/concept/integral_constant.hpp
+#usr/include/boost/hana/fwd/concept/iterable.hpp
+#usr/include/boost/hana/fwd/concept/logical.hpp
+#usr/include/boost/hana/fwd/concept/metafunction.hpp
+#usr/include/boost/hana/fwd/concept/monad.hpp
+#usr/include/boost/hana/fwd/concept/monad_plus.hpp
+#usr/include/boost/hana/fwd/concept/monoid.hpp
+#usr/include/boost/hana/fwd/concept/orderable.hpp
+#usr/include/boost/hana/fwd/concept/product.hpp
+#usr/include/boost/hana/fwd/concept/ring.hpp
+#usr/include/boost/hana/fwd/concept/searchable.hpp
+#usr/include/boost/hana/fwd/concept/sequence.hpp
+#usr/include/boost/hana/fwd/concept/struct.hpp
+#usr/include/boost/hana/fwd/contains.hpp
+#usr/include/boost/hana/fwd/core
+#usr/include/boost/hana/fwd/core.hpp
+#usr/include/boost/hana/fwd/core/common.hpp
+#usr/include/boost/hana/fwd/core/default.hpp
+#usr/include/boost/hana/fwd/core/is_a.hpp
+#usr/include/boost/hana/fwd/core/make.hpp
+#usr/include/boost/hana/fwd/core/tag_of.hpp
+#usr/include/boost/hana/fwd/core/to.hpp
+#usr/include/boost/hana/fwd/core/when.hpp
+#usr/include/boost/hana/fwd/count.hpp
+#usr/include/boost/hana/fwd/count_if.hpp
+#usr/include/boost/hana/fwd/cycle.hpp
+#usr/include/boost/hana/fwd/define_struct.hpp
+#usr/include/boost/hana/fwd/difference.hpp
+#usr/include/boost/hana/fwd/div.hpp
+#usr/include/boost/hana/fwd/drop_back.hpp
+#usr/include/boost/hana/fwd/drop_front.hpp
+#usr/include/boost/hana/fwd/drop_front_exactly.hpp
+#usr/include/boost/hana/fwd/drop_while.hpp
+#usr/include/boost/hana/fwd/duplicate.hpp
+#usr/include/boost/hana/fwd/empty.hpp
+#usr/include/boost/hana/fwd/equal.hpp
+#usr/include/boost/hana/fwd/erase_key.hpp
+#usr/include/boost/hana/fwd/eval.hpp
+#usr/include/boost/hana/fwd/eval_if.hpp
+#usr/include/boost/hana/fwd/extend.hpp
+#usr/include/boost/hana/fwd/extract.hpp
+#usr/include/boost/hana/fwd/fill.hpp
+#usr/include/boost/hana/fwd/filter.hpp
+#usr/include/boost/hana/fwd/find.hpp
+#usr/include/boost/hana/fwd/find_if.hpp
+#usr/include/boost/hana/fwd/first.hpp
+#usr/include/boost/hana/fwd/flatten.hpp
+#usr/include/boost/hana/fwd/fold.hpp
+#usr/include/boost/hana/fwd/fold_left.hpp
+#usr/include/boost/hana/fwd/fold_right.hpp
+#usr/include/boost/hana/fwd/for_each.hpp
+#usr/include/boost/hana/fwd/front.hpp
+#usr/include/boost/hana/fwd/fuse.hpp
+#usr/include/boost/hana/fwd/greater.hpp
+#usr/include/boost/hana/fwd/greater_equal.hpp
+#usr/include/boost/hana/fwd/group.hpp
+#usr/include/boost/hana/fwd/hash.hpp
+#usr/include/boost/hana/fwd/if.hpp
+#usr/include/boost/hana/fwd/insert.hpp
+#usr/include/boost/hana/fwd/insert_range.hpp
+#usr/include/boost/hana/fwd/integral_constant.hpp
+#usr/include/boost/hana/fwd/intersection.hpp
+#usr/include/boost/hana/fwd/intersperse.hpp
+#usr/include/boost/hana/fwd/is_disjoint.hpp
+#usr/include/boost/hana/fwd/is_empty.hpp
+#usr/include/boost/hana/fwd/is_subset.hpp
+#usr/include/boost/hana/fwd/keys.hpp
+#usr/include/boost/hana/fwd/lazy.hpp
+#usr/include/boost/hana/fwd/length.hpp
+#usr/include/boost/hana/fwd/less.hpp
+#usr/include/boost/hana/fwd/less_equal.hpp
+#usr/include/boost/hana/fwd/lexicographical_compare.hpp
+#usr/include/boost/hana/fwd/lift.hpp
+#usr/include/boost/hana/fwd/map.hpp
+#usr/include/boost/hana/fwd/max.hpp
+#usr/include/boost/hana/fwd/maximum.hpp
+#usr/include/boost/hana/fwd/members.hpp
+#usr/include/boost/hana/fwd/min.hpp
+#usr/include/boost/hana/fwd/minimum.hpp
+#usr/include/boost/hana/fwd/minus.hpp
+#usr/include/boost/hana/fwd/mod.hpp
+#usr/include/boost/hana/fwd/monadic_compose.hpp
+#usr/include/boost/hana/fwd/monadic_fold_left.hpp
+#usr/include/boost/hana/fwd/monadic_fold_right.hpp
+#usr/include/boost/hana/fwd/mult.hpp
+#usr/include/boost/hana/fwd/negate.hpp
+#usr/include/boost/hana/fwd/none.hpp
+#usr/include/boost/hana/fwd/none_of.hpp
+#usr/include/boost/hana/fwd/not.hpp
+#usr/include/boost/hana/fwd/not_equal.hpp
+#usr/include/boost/hana/fwd/one.hpp
+#usr/include/boost/hana/fwd/optional.hpp
+#usr/include/boost/hana/fwd/or.hpp
+#usr/include/boost/hana/fwd/ordering.hpp
+#usr/include/boost/hana/fwd/pair.hpp
+#usr/include/boost/hana/fwd/partition.hpp
+#usr/include/boost/hana/fwd/permutations.hpp
+#usr/include/boost/hana/fwd/plus.hpp
+#usr/include/boost/hana/fwd/power.hpp
+#usr/include/boost/hana/fwd/prefix.hpp
+#usr/include/boost/hana/fwd/prepend.hpp
+#usr/include/boost/hana/fwd/product.hpp
+#usr/include/boost/hana/fwd/range.hpp
+#usr/include/boost/hana/fwd/remove.hpp
+#usr/include/boost/hana/fwd/remove_at.hpp
+#usr/include/boost/hana/fwd/remove_if.hpp
+#usr/include/boost/hana/fwd/remove_range.hpp
+#usr/include/boost/hana/fwd/repeat.hpp
+#usr/include/boost/hana/fwd/replace.hpp
+#usr/include/boost/hana/fwd/replace_if.hpp
+#usr/include/boost/hana/fwd/replicate.hpp
+#usr/include/boost/hana/fwd/reverse.hpp
+#usr/include/boost/hana/fwd/reverse_fold.hpp
+#usr/include/boost/hana/fwd/scan_left.hpp
+#usr/include/boost/hana/fwd/scan_right.hpp
+#usr/include/boost/hana/fwd/second.hpp
+#usr/include/boost/hana/fwd/set.hpp
+#usr/include/boost/hana/fwd/size.hpp
+#usr/include/boost/hana/fwd/slice.hpp
+#usr/include/boost/hana/fwd/sort.hpp
+#usr/include/boost/hana/fwd/span.hpp
+#usr/include/boost/hana/fwd/string.hpp
+#usr/include/boost/hana/fwd/suffix.hpp
+#usr/include/boost/hana/fwd/sum.hpp
+#usr/include/boost/hana/fwd/symmetric_difference.hpp
+#usr/include/boost/hana/fwd/take_back.hpp
+#usr/include/boost/hana/fwd/take_front.hpp
+#usr/include/boost/hana/fwd/take_while.hpp
+#usr/include/boost/hana/fwd/tap.hpp
+#usr/include/boost/hana/fwd/then.hpp
+#usr/include/boost/hana/fwd/transform.hpp
+#usr/include/boost/hana/fwd/tuple.hpp
+#usr/include/boost/hana/fwd/type.hpp
+#usr/include/boost/hana/fwd/unfold_left.hpp
+#usr/include/boost/hana/fwd/unfold_right.hpp
+#usr/include/boost/hana/fwd/union.hpp
+#usr/include/boost/hana/fwd/unique.hpp
+#usr/include/boost/hana/fwd/unpack.hpp
+#usr/include/boost/hana/fwd/value.hpp
+#usr/include/boost/hana/fwd/while.hpp
+#usr/include/boost/hana/fwd/zero.hpp
+#usr/include/boost/hana/fwd/zip.hpp
+#usr/include/boost/hana/fwd/zip_shortest.hpp
+#usr/include/boost/hana/fwd/zip_shortest_with.hpp
+#usr/include/boost/hana/fwd/zip_with.hpp
+#usr/include/boost/hana/greater.hpp
+#usr/include/boost/hana/greater_equal.hpp
+#usr/include/boost/hana/group.hpp
+#usr/include/boost/hana/hash.hpp
+#usr/include/boost/hana/if.hpp
+#usr/include/boost/hana/insert.hpp
+#usr/include/boost/hana/insert_range.hpp
+#usr/include/boost/hana/integral_constant.hpp
+#usr/include/boost/hana/intersection.hpp
+#usr/include/boost/hana/intersperse.hpp
+#usr/include/boost/hana/is_disjoint.hpp
+#usr/include/boost/hana/is_empty.hpp
+#usr/include/boost/hana/is_subset.hpp
+#usr/include/boost/hana/keys.hpp
+#usr/include/boost/hana/lazy.hpp
+#usr/include/boost/hana/length.hpp
+#usr/include/boost/hana/less.hpp
+#usr/include/boost/hana/less_equal.hpp
+#usr/include/boost/hana/lexicographical_compare.hpp
+#usr/include/boost/hana/lift.hpp
+#usr/include/boost/hana/map.hpp
+#usr/include/boost/hana/max.hpp
+#usr/include/boost/hana/maximum.hpp
+#usr/include/boost/hana/members.hpp
+#usr/include/boost/hana/min.hpp
+#usr/include/boost/hana/minimum.hpp
+#usr/include/boost/hana/minus.hpp
+#usr/include/boost/hana/mod.hpp
+#usr/include/boost/hana/monadic_compose.hpp
+#usr/include/boost/hana/monadic_fold_left.hpp
+#usr/include/boost/hana/monadic_fold_right.hpp
+#usr/include/boost/hana/mult.hpp
+#usr/include/boost/hana/negate.hpp
+#usr/include/boost/hana/none.hpp
+#usr/include/boost/hana/none_of.hpp
+#usr/include/boost/hana/not.hpp
+#usr/include/boost/hana/not_equal.hpp
+#usr/include/boost/hana/one.hpp
+#usr/include/boost/hana/optional.hpp
+#usr/include/boost/hana/or.hpp
+#usr/include/boost/hana/ordering.hpp
+#usr/include/boost/hana/pair.hpp
+#usr/include/boost/hana/partition.hpp
+#usr/include/boost/hana/permutations.hpp
+#usr/include/boost/hana/plus.hpp
+#usr/include/boost/hana/power.hpp
+#usr/include/boost/hana/prefix.hpp
+#usr/include/boost/hana/prepend.hpp
+#usr/include/boost/hana/product.hpp
+#usr/include/boost/hana/range.hpp
+#usr/include/boost/hana/remove.hpp
+#usr/include/boost/hana/remove_at.hpp
+#usr/include/boost/hana/remove_if.hpp
+#usr/include/boost/hana/remove_range.hpp
+#usr/include/boost/hana/repeat.hpp
+#usr/include/boost/hana/replace.hpp
+#usr/include/boost/hana/replace_if.hpp
+#usr/include/boost/hana/replicate.hpp
+#usr/include/boost/hana/reverse.hpp
+#usr/include/boost/hana/reverse_fold.hpp
+#usr/include/boost/hana/scan_left.hpp
+#usr/include/boost/hana/scan_right.hpp
+#usr/include/boost/hana/second.hpp
+#usr/include/boost/hana/set.hpp
+#usr/include/boost/hana/size.hpp
+#usr/include/boost/hana/slice.hpp
+#usr/include/boost/hana/sort.hpp
+#usr/include/boost/hana/span.hpp
+#usr/include/boost/hana/string.hpp
+#usr/include/boost/hana/suffix.hpp
+#usr/include/boost/hana/sum.hpp
+#usr/include/boost/hana/symmetric_difference.hpp
+#usr/include/boost/hana/take_back.hpp
+#usr/include/boost/hana/take_front.hpp
+#usr/include/boost/hana/take_while.hpp
+#usr/include/boost/hana/tap.hpp
+#usr/include/boost/hana/then.hpp
+#usr/include/boost/hana/traits.hpp
+#usr/include/boost/hana/transform.hpp
+#usr/include/boost/hana/tuple.hpp
+#usr/include/boost/hana/type.hpp
+#usr/include/boost/hana/unfold_left.hpp
+#usr/include/boost/hana/unfold_right.hpp
+#usr/include/boost/hana/union.hpp
+#usr/include/boost/hana/unique.hpp
+#usr/include/boost/hana/unpack.hpp
+#usr/include/boost/hana/value.hpp
+#usr/include/boost/hana/version.hpp
+#usr/include/boost/hana/while.hpp
+#usr/include/boost/hana/zero.hpp
+#usr/include/boost/hana/zip.hpp
+#usr/include/boost/hana/zip_shortest.hpp
+#usr/include/boost/hana/zip_shortest_with.hpp
+#usr/include/boost/hana/zip_with.hpp
 #usr/include/boost/heap
 #usr/include/boost/heap/binomial_heap.hpp
 #usr/include/boost/heap/d_ary_heap.hpp
 #usr/include/boost/indirect_reference.hpp
 #usr/include/boost/integer
 #usr/include/boost/integer.hpp
+#usr/include/boost/integer/common_factor.hpp
+#usr/include/boost/integer/common_factor_ct.hpp
+#usr/include/boost/integer/common_factor_rt.hpp
+#usr/include/boost/integer/integer_log2.hpp
 #usr/include/boost/integer/integer_mask.hpp
 #usr/include/boost/integer/static_log2.hpp
 #usr/include/boost/integer/static_min_max.hpp
 #usr/include/boost/interprocess/detail/min_max.hpp
 #usr/include/boost/interprocess/detail/move.hpp
 #usr/include/boost/interprocess/detail/mpl.hpp
-#usr/include/boost/interprocess/detail/multi_segment_services.hpp
 #usr/include/boost/interprocess/detail/named_proxy.hpp
+#usr/include/boost/interprocess/detail/nothrow.hpp
 #usr/include/boost/interprocess/detail/os_file_functions.hpp
 #usr/include/boost/interprocess/detail/os_thread_functions.hpp
 #usr/include/boost/interprocess/detail/pointer_type.hpp
 #usr/include/boost/interprocess/detail/portable_intermodule_singleton.hpp
 #usr/include/boost/interprocess/detail/posix_time_types_wrk.hpp
-#usr/include/boost/interprocess/detail/preprocessor.hpp
 #usr/include/boost/interprocess/detail/ptime_wrk.hpp
 #usr/include/boost/interprocess/detail/robust_emulation.hpp
 #usr/include/boost/interprocess/detail/segment_manager_helper.hpp
-#usr/include/boost/interprocess/detail/tmp_dir_helpers.hpp
+#usr/include/boost/interprocess/detail/shared_dir_helpers.hpp
+#usr/include/boost/interprocess/detail/simple_swap.hpp
+#usr/include/boost/interprocess/detail/std_fwd.hpp
 #usr/include/boost/interprocess/detail/transform_iterator.hpp
 #usr/include/boost/interprocess/detail/type_traits.hpp
 #usr/include/boost/interprocess/detail/utilities.hpp
 #usr/include/boost/interprocess/detail/win32_api.hpp
 #usr/include/boost/interprocess/detail/windows_intermodule_singleton.hpp
 #usr/include/boost/interprocess/detail/workaround.hpp
-#usr/include/boost/interprocess/detail/xsi_shared_memory_device.hpp
 #usr/include/boost/interprocess/detail/xsi_shared_memory_file_wrapper.hpp
 #usr/include/boost/interprocess/errors.hpp
 #usr/include/boost/interprocess/exceptions.hpp
 #usr/include/boost/interprocess/mem_algo
 #usr/include/boost/interprocess/mem_algo/detail
 #usr/include/boost/interprocess/mem_algo/detail/mem_algo_common.hpp
-#usr/include/boost/interprocess/mem_algo/detail/multi_simple_seq_fit.hpp
-#usr/include/boost/interprocess/mem_algo/detail/multi_simple_seq_fit_impl.hpp
 #usr/include/boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp
 #usr/include/boost/interprocess/mem_algo/rbtree_best_fit.hpp
 #usr/include/boost/interprocess/mem_algo/simple_seq_fit.hpp
 #usr/include/boost/interprocess/streams/vectorstream.hpp
 #usr/include/boost/interprocess/sync
 #usr/include/boost/interprocess/sync/detail
+#usr/include/boost/interprocess/sync/detail/common_algorithms.hpp
 #usr/include/boost/interprocess/sync/detail/condition_algorithm_8a.hpp
 #usr/include/boost/interprocess/sync/detail/condition_any_algorithm.hpp
 #usr/include/boost/interprocess/sync/detail/locks.hpp
 #usr/include/boost/interprocess/sync/windows/sync_utils.hpp
 #usr/include/boost/interprocess/sync/windows/winapi_mutex_wrapper.hpp
 #usr/include/boost/interprocess/sync/windows/winapi_semaphore_wrapper.hpp
-#usr/include/boost/interprocess/sync/xsi
-#usr/include/boost/interprocess/sync/xsi/advanced_xsi_semaphore.hpp
-#usr/include/boost/interprocess/sync/xsi/simple_xsi_semaphore.hpp
-#usr/include/boost/interprocess/sync/xsi/xsi_named_mutex.hpp
+#usr/include/boost/interprocess/sync/windows/winapi_wrapper_common.hpp
 #usr/include/boost/interprocess/windows_shared_memory.hpp
 #usr/include/boost/interprocess/xsi_key.hpp
 #usr/include/boost/interprocess/xsi_shared_memory.hpp
 #usr/include/boost/intrusive/circular_slist_algorithms.hpp
 #usr/include/boost/intrusive/derivation_value_traits.hpp
 #usr/include/boost/intrusive/detail
+#usr/include/boost/intrusive/detail/algo_type.hpp
+#usr/include/boost/intrusive/detail/algorithm.hpp
 #usr/include/boost/intrusive/detail/any_node_and_algorithms.hpp
+#usr/include/boost/intrusive/detail/array_initializer.hpp
 #usr/include/boost/intrusive/detail/assert.hpp
 #usr/include/boost/intrusive/detail/avltree_node.hpp
-#usr/include/boost/intrusive/detail/clear_on_destructor_base.hpp
+#usr/include/boost/intrusive/detail/bstree_algorithms_base.hpp
 #usr/include/boost/intrusive/detail/common_slist_algorithms.hpp
 #usr/include/boost/intrusive/detail/config_begin.hpp
 #usr/include/boost/intrusive/detail/config_end.hpp
+#usr/include/boost/intrusive/detail/default_header_holder.hpp
 #usr/include/boost/intrusive/detail/ebo_functor_holder.hpp
+#usr/include/boost/intrusive/detail/empty_node_checker.hpp
+#usr/include/boost/intrusive/detail/equal_to_value.hpp
+#usr/include/boost/intrusive/detail/exception_disposer.hpp
 #usr/include/boost/intrusive/detail/function_detector.hpp
 #usr/include/boost/intrusive/detail/generic_hook.hpp
+#usr/include/boost/intrusive/detail/get_value_traits.hpp
 #usr/include/boost/intrusive/detail/has_member_function_callable_with.hpp
 #usr/include/boost/intrusive/detail/hashtable_node.hpp
+#usr/include/boost/intrusive/detail/hook_traits.hpp
+#usr/include/boost/intrusive/detail/iiterator.hpp
 #usr/include/boost/intrusive/detail/is_stateful_value_traits.hpp
+#usr/include/boost/intrusive/detail/iterator.hpp
+#usr/include/boost/intrusive/detail/key_nodeptr_comp.hpp
+#usr/include/boost/intrusive/detail/list_iterator.hpp
 #usr/include/boost/intrusive/detail/list_node.hpp
-#usr/include/boost/intrusive/detail/memory_util.hpp
+#usr/include/boost/intrusive/detail/math.hpp
+#usr/include/boost/intrusive/detail/minimal_less_equal_header.hpp
+#usr/include/boost/intrusive/detail/minimal_pair_header.hpp
 #usr/include/boost/intrusive/detail/mpl.hpp
+#usr/include/boost/intrusive/detail/node_cloner_disposer.hpp
+#usr/include/boost/intrusive/detail/node_holder.hpp
+#usr/include/boost/intrusive/detail/node_to_value.hpp
 #usr/include/boost/intrusive/detail/parent_from_member.hpp
-#usr/include/boost/intrusive/detail/preprocessor.hpp
+#usr/include/boost/intrusive/detail/pointer_element.hpp
 #usr/include/boost/intrusive/detail/rbtree_node.hpp
+#usr/include/boost/intrusive/detail/reverse_iterator.hpp
+#usr/include/boost/intrusive/detail/simple_disposers.hpp
+#usr/include/boost/intrusive/detail/size_holder.hpp
+#usr/include/boost/intrusive/detail/slist_iterator.hpp
 #usr/include/boost/intrusive/detail/slist_node.hpp
+#usr/include/boost/intrusive/detail/std_fwd.hpp
+#usr/include/boost/intrusive/detail/to_raw_pointer.hpp
 #usr/include/boost/intrusive/detail/transform_iterator.hpp
+#usr/include/boost/intrusive/detail/tree_iterator.hpp
 #usr/include/boost/intrusive/detail/tree_node.hpp
-#usr/include/boost/intrusive/detail/utilities.hpp
+#usr/include/boost/intrusive/detail/tree_value_compare.hpp
+#usr/include/boost/intrusive/detail/uncast.hpp
 #usr/include/boost/intrusive/detail/workaround.hpp
 #usr/include/boost/intrusive/hashtable.hpp
 #usr/include/boost/intrusive/intrusive_fwd.hpp
 #usr/include/boost/intrusive/list_hook.hpp
 #usr/include/boost/intrusive/member_value_traits.hpp
 #usr/include/boost/intrusive/options.hpp
+#usr/include/boost/intrusive/pack_options.hpp
 #usr/include/boost/intrusive/parent_from_member.hpp
 #usr/include/boost/intrusive/pointer_plus_bits.hpp
+#usr/include/boost/intrusive/pointer_rebind.hpp
 #usr/include/boost/intrusive/pointer_traits.hpp
 #usr/include/boost/intrusive/priority_compare.hpp
 #usr/include/boost/intrusive/rbtree.hpp
 #usr/include/boost/intrusive/slist.hpp
 #usr/include/boost/intrusive/slist_hook.hpp
 #usr/include/boost/intrusive/splay_set.hpp
-#usr/include/boost/intrusive/splay_set_hook.hpp
 #usr/include/boost/intrusive/splaytree.hpp
 #usr/include/boost/intrusive/splaytree_algorithms.hpp
 #usr/include/boost/intrusive/treap.hpp
 #usr/include/boost/iostreams/detail/system_failure.hpp
 #usr/include/boost/iostreams/detail/template_params.hpp
 #usr/include/boost/iostreams/detail/translate_int_type.hpp
-#usr/include/boost/iostreams/detail/vc6
-#usr/include/boost/iostreams/detail/vc6/close.hpp
-#usr/include/boost/iostreams/detail/vc6/read.hpp
-#usr/include/boost/iostreams/detail/vc6/write.hpp
 #usr/include/boost/iostreams/detail/wrap_unwrap.hpp
 #usr/include/boost/iostreams/device
 #usr/include/boost/iostreams/device/array.hpp
 #usr/include/boost/iterator/iterator_concepts.hpp
 #usr/include/boost/iterator/iterator_facade.hpp
 #usr/include/boost/iterator/iterator_traits.hpp
+#usr/include/boost/iterator/minimum_category.hpp
 #usr/include/boost/iterator/new_iterator_tests.hpp
 #usr/include/boost/iterator/permutation_iterator.hpp
 #usr/include/boost/iterator/reverse_iterator.hpp
 #usr/include/boost/lambda/numeric.hpp
 #usr/include/boost/lambda/switch.hpp
 #usr/include/boost/last_value.hpp
+#usr/include/boost/lexical_cast
 #usr/include/boost/lexical_cast.hpp
+#usr/include/boost/lexical_cast/bad_lexical_cast.hpp
+#usr/include/boost/lexical_cast/detail
+#usr/include/boost/lexical_cast/detail/converter_lexical.hpp
+#usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp
+#usr/include/boost/lexical_cast/detail/converter_numeric.hpp
+#usr/include/boost/lexical_cast/detail/inf_nan.hpp
+#usr/include/boost/lexical_cast/detail/is_character.hpp
+#usr/include/boost/lexical_cast/detail/lcast_char_constants.hpp
+#usr/include/boost/lexical_cast/detail/lcast_unsigned_converters.hpp
+#usr/include/boost/lexical_cast/detail/widest_char.hpp
+#usr/include/boost/lexical_cast/lexical_cast_old.hpp
+#usr/include/boost/lexical_cast/try_lexical_convert.hpp
 #usr/include/boost/limits.hpp
 #usr/include/boost/local_function
 #usr/include/boost/local_function.hpp
 #usr/include/boost/locale/format.hpp
 #usr/include/boost/locale/formatting.hpp
 #usr/include/boost/locale/generator.hpp
+#usr/include/boost/locale/generic_codecvt.hpp
 #usr/include/boost/locale/gnu_gettext.hpp
 #usr/include/boost/locale/hold_ptr.hpp
 #usr/include/boost/locale/info.hpp
 #usr/include/boost/locale/message.hpp
 #usr/include/boost/locale/time_zone.hpp
 #usr/include/boost/locale/utf.hpp
+#usr/include/boost/locale/utf8_codecvt.hpp
 #usr/include/boost/locale/util.hpp
 #usr/include/boost/lockfree
 #usr/include/boost/lockfree/detail
 #usr/include/boost/lockfree/detail/atomic.hpp
-#usr/include/boost/lockfree/detail/branch_hints.hpp
 #usr/include/boost/lockfree/detail/copy_payload.hpp
 #usr/include/boost/lockfree/detail/freelist.hpp
 #usr/include/boost/lockfree/detail/parameter.hpp
 #usr/include/boost/lockfree/detail/tagged_ptr.hpp
 #usr/include/boost/lockfree/detail/tagged_ptr_dcas.hpp
 #usr/include/boost/lockfree/detail/tagged_ptr_ptrcompression.hpp
+#usr/include/boost/lockfree/lockfree_forward.hpp
 #usr/include/boost/lockfree/policies.hpp
 #usr/include/boost/lockfree/queue.hpp
 #usr/include/boost/lockfree/spsc_queue.hpp
 #usr/include/boost/log/core/record.hpp
 #usr/include/boost/log/core/record_view.hpp
 #usr/include/boost/log/detail
+#usr/include/boost/log/detail/adaptive_mutex.hpp
 #usr/include/boost/log/detail/asio_fwd.hpp
 #usr/include/boost/log/detail/attachable_sstream_buf.hpp
 #usr/include/boost/log/detail/attr_output_impl.hpp
 #usr/include/boost/log/detail/attr_output_terminal.hpp
 #usr/include/boost/log/detail/attribute_get_value_impl.hpp
 #usr/include/boost/log/detail/attribute_predicate.hpp
+#usr/include/boost/log/detail/c_str.hpp
 #usr/include/boost/log/detail/cleanup_scope_guard.hpp
 #usr/include/boost/log/detail/code_conversion.hpp
 #usr/include/boost/log/detail/config.hpp
+#usr/include/boost/log/detail/copy_cv.hpp
 #usr/include/boost/log/detail/custom_terminal_spec.hpp
 #usr/include/boost/log/detail/date_time_fmt_gen_traits_fwd.hpp
 #usr/include/boost/log/detail/date_time_format_parser.hpp
 #usr/include/boost/log/detail/deduce_char_type.hpp
 #usr/include/boost/log/detail/default_attribute_names.hpp
 #usr/include/boost/log/detail/embedded_string_type.hpp
+#usr/include/boost/log/detail/enqueued_record.hpp
 #usr/include/boost/log/detail/event.hpp
 #usr/include/boost/log/detail/fake_mutex.hpp
 #usr/include/boost/log/detail/footer.hpp
 #usr/include/boost/log/detail/generate_overloads.hpp
 #usr/include/boost/log/detail/header.hpp
 #usr/include/boost/log/detail/id.hpp
+#usr/include/boost/log/detail/is_character_type.hpp
+#usr/include/boost/log/detail/is_ostream.hpp
 #usr/include/boost/log/detail/light_function.hpp
 #usr/include/boost/log/detail/light_function_pp.hpp
 #usr/include/boost/log/detail/light_rw_mutex.hpp
 #usr/include/boost/log/detail/locking_ptr.hpp
 #usr/include/boost/log/detail/locks.hpp
-#usr/include/boost/log/detail/malloc_aligned.hpp
 #usr/include/boost/log/detail/named_scope_fmt_pp.hpp
 #usr/include/boost/log/detail/native_typeof.hpp
 #usr/include/boost/log/detail/parameter_tools.hpp
+#usr/include/boost/log/detail/pause.hpp
 #usr/include/boost/log/detail/pp_identity.hpp
 #usr/include/boost/log/detail/process_id.hpp
 #usr/include/boost/log/detail/setup_config.hpp
+#usr/include/boost/log/detail/sfinae_tools.hpp
 #usr/include/boost/log/detail/singleton.hpp
 #usr/include/boost/log/detail/sink_init_helpers.hpp
 #usr/include/boost/log/detail/snprintf.hpp
-#usr/include/boost/log/detail/spin_mutex.hpp
 #usr/include/boost/log/detail/tagged_integer.hpp
 #usr/include/boost/log/detail/thread_id.hpp
 #usr/include/boost/log/detail/thread_specific.hpp
 #usr/include/boost/log/detail/unary_function_terminal.hpp
 #usr/include/boost/log/detail/unhandled_exception_count.hpp
 #usr/include/boost/log/detail/value_ref_visitation.hpp
-#usr/include/boost/log/detail/visible_type.hpp
 #usr/include/boost/log/exceptions.hpp
 #usr/include/boost/log/expressions
 #usr/include/boost/log/expressions.hpp
 #usr/include/boost/log/expressions/formatters/date_time.hpp
 #usr/include/boost/log/expressions/formatters/format.hpp
 #usr/include/boost/log/expressions/formatters/if.hpp
+#usr/include/boost/log/expressions/formatters/max_size_decorator.hpp
 #usr/include/boost/log/expressions/formatters/named_scope.hpp
 #usr/include/boost/log/expressions/formatters/stream.hpp
 #usr/include/boost/log/expressions/formatters/wrap_formatter.hpp
 #usr/include/boost/log/expressions/record.hpp
 #usr/include/boost/log/keywords
 #usr/include/boost/log/keywords/auto_flush.hpp
+#usr/include/boost/log/keywords/block_size.hpp
+#usr/include/boost/log/keywords/capacity.hpp
 #usr/include/boost/log/keywords/channel.hpp
 #usr/include/boost/log/keywords/delimiter.hpp
 #usr/include/boost/log/keywords/depth.hpp
+#usr/include/boost/log/keywords/empty_marker.hpp
+#usr/include/boost/log/keywords/enable_final_rotation.hpp
 #usr/include/boost/log/keywords/facility.hpp
 #usr/include/boost/log/keywords/file_name.hpp
 #usr/include/boost/log/keywords/filter.hpp
 #usr/include/boost/log/keywords/format.hpp
 #usr/include/boost/log/keywords/ident.hpp
+#usr/include/boost/log/keywords/incomplete_marker.hpp
 #usr/include/boost/log/keywords/ip_version.hpp
 #usr/include/boost/log/keywords/iteration.hpp
 #usr/include/boost/log/keywords/log_name.hpp
 #usr/include/boost/log/keywords/log_source.hpp
+#usr/include/boost/log/keywords/max_files.hpp
 #usr/include/boost/log/keywords/max_size.hpp
 #usr/include/boost/log/keywords/message_file.hpp
 #usr/include/boost/log/keywords/min_free_space.hpp
+#usr/include/boost/log/keywords/name.hpp
 #usr/include/boost/log/keywords/open_mode.hpp
 #usr/include/boost/log/keywords/order.hpp
 #usr/include/boost/log/keywords/ordering_window.hpp
+#usr/include/boost/log/keywords/overflow_policy.hpp
+#usr/include/boost/log/keywords/permissions.hpp
 #usr/include/boost/log/keywords/registration.hpp
 #usr/include/boost/log/keywords/rotation_size.hpp
 #usr/include/boost/log/keywords/scan_method.hpp
 #usr/include/boost/log/sinks/syslog_backend.hpp
 #usr/include/boost/log/sinks/syslog_constants.hpp
 #usr/include/boost/log/sinks/text_file_backend.hpp
+#usr/include/boost/log/sinks/text_ipc_message_queue_backend.hpp
 #usr/include/boost/log/sinks/text_multifile_backend.hpp
 #usr/include/boost/log/sinks/text_ostream_backend.hpp
 #usr/include/boost/log/sinks/unbounded_fifo_queue.hpp
 #usr/include/boost/log/support/regex.hpp
 #usr/include/boost/log/support/spirit_classic.hpp
 #usr/include/boost/log/support/spirit_qi.hpp
+#usr/include/boost/log/support/std_regex.hpp
 #usr/include/boost/log/support/xpressive.hpp
 #usr/include/boost/log/trivial.hpp
 #usr/include/boost/log/utility
-#usr/include/boost/log/utility/empty_deleter.hpp
 #usr/include/boost/log/utility/exception_handler.hpp
-#usr/include/boost/log/utility/explicit_operator_bool.hpp
 #usr/include/boost/log/utility/formatting_ostream.hpp
 #usr/include/boost/log/utility/formatting_ostream_fwd.hpp
 #usr/include/boost/log/utility/functional
 #usr/include/boost/log/utility/functional/matches.hpp
 #usr/include/boost/log/utility/functional/nop.hpp
 #usr/include/boost/log/utility/functional/save_result.hpp
-#usr/include/boost/log/utility/intrusive_ref_counter.hpp
+#usr/include/boost/log/utility/ipc
+#usr/include/boost/log/utility/ipc/object_name.hpp
+#usr/include/boost/log/utility/ipc/reliable_message_queue.hpp
 #usr/include/boost/log/utility/manipulators
 #usr/include/boost/log/utility/manipulators.hpp
 #usr/include/boost/log/utility/manipulators/add_value.hpp
 #usr/include/boost/log/utility/manipulators/dump.hpp
 #usr/include/boost/log/utility/manipulators/to_log.hpp
 #usr/include/boost/log/utility/once_block.hpp
+#usr/include/boost/log/utility/open_mode.hpp
+#usr/include/boost/log/utility/permissions.hpp
 #usr/include/boost/log/utility/record_ordering.hpp
 #usr/include/boost/log/utility/setup
 #usr/include/boost/log/utility/setup.hpp
 #usr/include/boost/log/utility/type_dispatch/standard_types.hpp
 #usr/include/boost/log/utility/type_dispatch/static_type_dispatcher.hpp
 #usr/include/boost/log/utility/type_dispatch/type_dispatcher.hpp
-#usr/include/boost/log/utility/type_info_wrapper.hpp
 #usr/include/boost/log/utility/unique_identifier_name.hpp
 #usr/include/boost/log/utility/unused_variable.hpp
 #usr/include/boost/log/utility/value_ref.hpp
 #usr/include/boost/logic/tribool.hpp
 #usr/include/boost/logic/tribool_fwd.hpp
 #usr/include/boost/logic/tribool_io.hpp
+#usr/include/boost/make_default.hpp
 #usr/include/boost/make_shared.hpp
+#usr/include/boost/make_unique.hpp
 #usr/include/boost/math
 #usr/include/boost/math/bindings
 #usr/include/boost/math/bindings/detail
 #usr/include/boost/math/constants
 #usr/include/boost/math/constants/calculate_constants.hpp
 #usr/include/boost/math/constants/constants.hpp
-#usr/include/boost/math/constants/generate.hpp
 #usr/include/boost/math/constants/info.hpp
+#usr/include/boost/math/cstdfloat
+#usr/include/boost/math/cstdfloat/cstdfloat_cmath.hpp
+#usr/include/boost/math/cstdfloat/cstdfloat_complex.hpp
+#usr/include/boost/math/cstdfloat/cstdfloat_complex_std.hpp
+#usr/include/boost/math/cstdfloat/cstdfloat_iostream.hpp
+#usr/include/boost/math/cstdfloat/cstdfloat_limits.hpp
+#usr/include/boost/math/cstdfloat/cstdfloat_types.hpp
 #usr/include/boost/math/distributions
 #usr/include/boost/math/distributions.hpp
+#usr/include/boost/math/distributions/arcsine.hpp
 #usr/include/boost/math/distributions/bernoulli.hpp
 #usr/include/boost/math/distributions/beta.hpp
 #usr/include/boost/math/distributions/binomial.hpp
 #usr/include/boost/math/distributions/fwd.hpp
 #usr/include/boost/math/distributions/gamma.hpp
 #usr/include/boost/math/distributions/geometric.hpp
+#usr/include/boost/math/distributions/hyperexponential.hpp
 #usr/include/boost/math/distributions/hypergeometric.hpp
 #usr/include/boost/math/distributions/inverse_chi_squared.hpp
 #usr/include/boost/math/distributions/inverse_gamma.hpp
 #usr/include/boost/math/special_functions/airy.hpp
 #usr/include/boost/math/special_functions/asinh.hpp
 #usr/include/boost/math/special_functions/atanh.hpp
+#usr/include/boost/math/special_functions/bernoulli.hpp
 #usr/include/boost/math/special_functions/bessel.hpp
+#usr/include/boost/math/special_functions/bessel_prime.hpp
 #usr/include/boost/math/special_functions/beta.hpp
 #usr/include/boost/math/special_functions/binomial.hpp
 #usr/include/boost/math/special_functions/cbrt.hpp
 #usr/include/boost/math/special_functions/cos_pi.hpp
 #usr/include/boost/math/special_functions/detail
 #usr/include/boost/math/special_functions/detail/airy_ai_bi_zero.hpp
+#usr/include/boost/math/special_functions/detail/bernoulli_details.hpp
+#usr/include/boost/math/special_functions/detail/bessel_derivatives_linear.hpp
 #usr/include/boost/math/special_functions/detail/bessel_i0.hpp
 #usr/include/boost/math/special_functions/detail/bessel_i1.hpp
 #usr/include/boost/math/special_functions/detail/bessel_ik.hpp
 #usr/include/boost/math/special_functions/detail/bessel_jn.hpp
 #usr/include/boost/math/special_functions/detail/bessel_jy.hpp
 #usr/include/boost/math/special_functions/detail/bessel_jy_asym.hpp
+#usr/include/boost/math/special_functions/detail/bessel_jy_derivatives_asym.hpp
+#usr/include/boost/math/special_functions/detail/bessel_jy_derivatives_series.hpp
 #usr/include/boost/math/special_functions/detail/bessel_jy_series.hpp
 #usr/include/boost/math/special_functions/detail/bessel_jy_zero.hpp
 #usr/include/boost/math/special_functions/detail/bessel_k0.hpp
 #usr/include/boost/math/special_functions/detail/igamma_large.hpp
 #usr/include/boost/math/special_functions/detail/lanczos_sse2.hpp
 #usr/include/boost/math/special_functions/detail/lgamma_small.hpp
+#usr/include/boost/math/special_functions/detail/polygamma.hpp
 #usr/include/boost/math/special_functions/detail/round_fwd.hpp
 #usr/include/boost/math/special_functions/detail/t_distribution_inv.hpp
+#usr/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp
 #usr/include/boost/math/special_functions/detail/unchecked_factorial.hpp
 #usr/include/boost/math/special_functions/digamma.hpp
 #usr/include/boost/math/special_functions/ellint_1.hpp
 #usr/include/boost/math/special_functions/ellint_2.hpp
 #usr/include/boost/math/special_functions/ellint_3.hpp
+#usr/include/boost/math/special_functions/ellint_d.hpp
 #usr/include/boost/math/special_functions/ellint_rc.hpp
 #usr/include/boost/math/special_functions/ellint_rd.hpp
 #usr/include/boost/math/special_functions/ellint_rf.hpp
+#usr/include/boost/math/special_functions/ellint_rg.hpp
 #usr/include/boost/math/special_functions/ellint_rj.hpp
 #usr/include/boost/math/special_functions/erf.hpp
 #usr/include/boost/math/special_functions/expint.hpp
 #usr/include/boost/math/special_functions/gamma.hpp
 #usr/include/boost/math/special_functions/hankel.hpp
 #usr/include/boost/math/special_functions/hermite.hpp
+#usr/include/boost/math/special_functions/heuman_lambda.hpp
 #usr/include/boost/math/special_functions/hypot.hpp
 #usr/include/boost/math/special_functions/jacobi_elliptic.hpp
+#usr/include/boost/math/special_functions/jacobi_zeta.hpp
 #usr/include/boost/math/special_functions/laguerre.hpp
 #usr/include/boost/math/special_functions/lanczos.hpp
 #usr/include/boost/math/special_functions/legendre.hpp
 #usr/include/boost/math/special_functions/next.hpp
 #usr/include/boost/math/special_functions/nonfinite_num_facets.hpp
 #usr/include/boost/math/special_functions/owens_t.hpp
+#usr/include/boost/math/special_functions/polygamma.hpp
 #usr/include/boost/math/special_functions/pow.hpp
 #usr/include/boost/math/special_functions/powm1.hpp
 #usr/include/boost/math/special_functions/prime.hpp
+#usr/include/boost/math/special_functions/relative_difference.hpp
 #usr/include/boost/math/special_functions/round.hpp
 #usr/include/boost/math/special_functions/sign.hpp
 #usr/include/boost/math/special_functions/sin_pi.hpp
 #usr/include/boost/math/special_functions/sinhc.hpp
 #usr/include/boost/math/special_functions/spherical_harmonic.hpp
 #usr/include/boost/math/special_functions/sqrt1pm1.hpp
+#usr/include/boost/math/special_functions/trigamma.hpp
 #usr/include/boost/math/special_functions/trunc.hpp
+#usr/include/boost/math/special_functions/ulp.hpp
 #usr/include/boost/math/special_functions/zeta.hpp
 #usr/include/boost/math/tools
 #usr/include/boost/math/tools/big_constant.hpp
 #usr/include/boost/math/tools/config.hpp
+#usr/include/boost/math/tools/convert_from_string.hpp
 #usr/include/boost/math/tools/detail
 #usr/include/boost/math/tools/detail/polynomial_horner1_10.hpp
 #usr/include/boost/math/tools/detail/polynomial_horner1_11.hpp
 #usr/include/boost/math/tools/promotion.hpp
 #usr/include/boost/math/tools/rational.hpp
 #usr/include/boost/math/tools/real_cast.hpp
-#usr/include/boost/math/tools/remez.hpp
 #usr/include/boost/math/tools/roots.hpp
 #usr/include/boost/math/tools/series.hpp
-#usr/include/boost/math/tools/solve.hpp
 #usr/include/boost/math/tools/stats.hpp
-#usr/include/boost/math/tools/test.hpp
-#usr/include/boost/math/tools/test_data.hpp
 #usr/include/boost/math/tools/toms748_solve.hpp
 #usr/include/boost/math/tools/traits.hpp
 #usr/include/boost/math/tools/tuple.hpp
 #usr/include/boost/math_fwd.hpp
 #usr/include/boost/mem_fn.hpp
 #usr/include/boost/memory_order.hpp
+#usr/include/boost/metaparse
+#usr/include/boost/metaparse.hpp
+#usr/include/boost/metaparse/accept.hpp
+#usr/include/boost/metaparse/accept_tag.hpp
+#usr/include/boost/metaparse/accept_when.hpp
+#usr/include/boost/metaparse/alphanum.hpp
+#usr/include/boost/metaparse/always.hpp
+#usr/include/boost/metaparse/always_c.hpp
+#usr/include/boost/metaparse/build_parser.hpp
+#usr/include/boost/metaparse/change_error_message.hpp
+#usr/include/boost/metaparse/config.hpp
+#usr/include/boost/metaparse/debug_parsing_error.hpp
+#usr/include/boost/metaparse/define_error.hpp
+#usr/include/boost/metaparse/digit.hpp
+#usr/include/boost/metaparse/digit_val.hpp
+#usr/include/boost/metaparse/empty.hpp
+#usr/include/boost/metaparse/entire_input.hpp
+#usr/include/boost/metaparse/error
+#usr/include/boost/metaparse/error/digit_expected.hpp
+#usr/include/boost/metaparse/error/end_of_input_expected.hpp
+#usr/include/boost/metaparse/error/index_out_of_range.hpp
+#usr/include/boost/metaparse/error/letter_expected.hpp
+#usr/include/boost/metaparse/error/literal_expected.hpp
+#usr/include/boost/metaparse/error/none_of_the_expected_cases_found.hpp
+#usr/include/boost/metaparse/error/unexpected_character.hpp
+#usr/include/boost/metaparse/error/unexpected_end_of_input.hpp
+#usr/include/boost/metaparse/error/unpaired.hpp
+#usr/include/boost/metaparse/error/whitespace_expected.hpp
+#usr/include/boost/metaparse/except.hpp
+#usr/include/boost/metaparse/fail.hpp
+#usr/include/boost/metaparse/fail_at_first_char_expected.hpp
+#usr/include/boost/metaparse/fail_tag.hpp
+#usr/include/boost/metaparse/first_of.hpp
+#usr/include/boost/metaparse/foldl.hpp
+#usr/include/boost/metaparse/foldl1.hpp
+#usr/include/boost/metaparse/foldl_reject_incomplete.hpp
+#usr/include/boost/metaparse/foldl_reject_incomplete1.hpp
+#usr/include/boost/metaparse/foldl_reject_incomplete_start_with_parser.hpp
+#usr/include/boost/metaparse/foldl_start_with_parser.hpp
+#usr/include/boost/metaparse/foldr.hpp
+#usr/include/boost/metaparse/foldr1.hpp
+#usr/include/boost/metaparse/foldr_reject_incomplete.hpp
+#usr/include/boost/metaparse/foldr_reject_incomplete1.hpp
+#usr/include/boost/metaparse/foldr_start_with_parser.hpp
+#usr/include/boost/metaparse/get_col.hpp
+#usr/include/boost/metaparse/get_line.hpp
+#usr/include/boost/metaparse/get_message.hpp
+#usr/include/boost/metaparse/get_position.hpp
+#usr/include/boost/metaparse/get_prev_char.hpp
+#usr/include/boost/metaparse/get_remaining.hpp
+#usr/include/boost/metaparse/get_result.hpp
+#usr/include/boost/metaparse/grammar.hpp
+#usr/include/boost/metaparse/if_.hpp
+#usr/include/boost/metaparse/int_.hpp
+#usr/include/boost/metaparse/is_error.hpp
+#usr/include/boost/metaparse/iterate.hpp
+#usr/include/boost/metaparse/iterate_c.hpp
+#usr/include/boost/metaparse/keyword.hpp
+#usr/include/boost/metaparse/last_of.hpp
+#usr/include/boost/metaparse/letter.hpp
+#usr/include/boost/metaparse/limit_one_char_except_size.hpp
+#usr/include/boost/metaparse/limit_one_of_size.hpp
+#usr/include/boost/metaparse/limit_sequence_size.hpp
+#usr/include/boost/metaparse/limit_string_size.hpp
+#usr/include/boost/metaparse/lit.hpp
+#usr/include/boost/metaparse/lit_c.hpp
+#usr/include/boost/metaparse/look_ahead.hpp
+#usr/include/boost/metaparse/middle_of.hpp
+#usr/include/boost/metaparse/next_char.hpp
+#usr/include/boost/metaparse/next_line.hpp
+#usr/include/boost/metaparse/nth_of.hpp
+#usr/include/boost/metaparse/nth_of_c.hpp
+#usr/include/boost/metaparse/one_char.hpp
+#usr/include/boost/metaparse/one_char_except.hpp
+#usr/include/boost/metaparse/one_char_except_c.hpp
+#usr/include/boost/metaparse/one_of.hpp
+#usr/include/boost/metaparse/one_of_c.hpp
+#usr/include/boost/metaparse/optional.hpp
+#usr/include/boost/metaparse/range.hpp
+#usr/include/boost/metaparse/range_c.hpp
+#usr/include/boost/metaparse/reject.hpp
+#usr/include/boost/metaparse/repeated.hpp
+#usr/include/boost/metaparse/repeated1.hpp
+#usr/include/boost/metaparse/repeated_one_of.hpp
+#usr/include/boost/metaparse/repeated_one_of1.hpp
+#usr/include/boost/metaparse/repeated_reject_incomplete.hpp
+#usr/include/boost/metaparse/repeated_reject_incomplete1.hpp
+#usr/include/boost/metaparse/return_.hpp
+#usr/include/boost/metaparse/sequence.hpp
+#usr/include/boost/metaparse/sequence_apply.hpp
+#usr/include/boost/metaparse/source_position.hpp
+#usr/include/boost/metaparse/source_position_tag.hpp
+#usr/include/boost/metaparse/space.hpp
+#usr/include/boost/metaparse/spaces.hpp
+#usr/include/boost/metaparse/start.hpp
+#usr/include/boost/metaparse/string.hpp
+#usr/include/boost/metaparse/string_tag.hpp
+#usr/include/boost/metaparse/token.hpp
+#usr/include/boost/metaparse/transform.hpp
+#usr/include/boost/metaparse/transform_error.hpp
+#usr/include/boost/metaparse/transform_error_message.hpp
+#usr/include/boost/metaparse/unless_error.hpp
+#usr/include/boost/metaparse/util
+#usr/include/boost/metaparse/util/digit_to_int.hpp
+#usr/include/boost/metaparse/util/digit_to_int_c.hpp
+#usr/include/boost/metaparse/util/in_range.hpp
+#usr/include/boost/metaparse/util/in_range_c.hpp
+#usr/include/boost/metaparse/util/int_to_digit.hpp
+#usr/include/boost/metaparse/util/int_to_digit_c.hpp
+#usr/include/boost/metaparse/util/is_digit.hpp
+#usr/include/boost/metaparse/util/is_lcase_letter.hpp
+#usr/include/boost/metaparse/util/is_letter.hpp
+#usr/include/boost/metaparse/util/is_ucase_letter.hpp
+#usr/include/boost/metaparse/util/is_whitespace.hpp
+#usr/include/boost/metaparse/util/is_whitespace_c.hpp
+#usr/include/boost/metaparse/v1
+#usr/include/boost/metaparse/v1/accept.hpp
+#usr/include/boost/metaparse/v1/accept_tag.hpp
+#usr/include/boost/metaparse/v1/accept_when.hpp
+#usr/include/boost/metaparse/v1/alphanum.hpp
+#usr/include/boost/metaparse/v1/always.hpp
+#usr/include/boost/metaparse/v1/always_c.hpp
+#usr/include/boost/metaparse/v1/build_parser.hpp
+#usr/include/boost/metaparse/v1/change_error_message.hpp
+#usr/include/boost/metaparse/v1/debug_parsing_error.hpp
+#usr/include/boost/metaparse/v1/define_error.hpp
+#usr/include/boost/metaparse/v1/digit.hpp
+#usr/include/boost/metaparse/v1/digit_val.hpp
+#usr/include/boost/metaparse/v1/empty.hpp
+#usr/include/boost/metaparse/v1/entire_input.hpp
+#usr/include/boost/metaparse/v1/error
+#usr/include/boost/metaparse/v1/error/digit_expected.hpp
+#usr/include/boost/metaparse/v1/error/end_of_input_expected.hpp
+#usr/include/boost/metaparse/v1/error/expected_to_fail.hpp
+#usr/include/boost/metaparse/v1/error/index_out_of_range.hpp
+#usr/include/boost/metaparse/v1/error/letter_expected.hpp
+#usr/include/boost/metaparse/v1/error/literal_expected.hpp
+#usr/include/boost/metaparse/v1/error/none_of_the_expected_cases_found.hpp
+#usr/include/boost/metaparse/v1/error/unexpected_character.hpp
+#usr/include/boost/metaparse/v1/error/unexpected_end_of_input.hpp
+#usr/include/boost/metaparse/v1/error/unpaired.hpp
+#usr/include/boost/metaparse/v1/error/whitespace_expected.hpp
+#usr/include/boost/metaparse/v1/except.hpp
+#usr/include/boost/metaparse/v1/fail.hpp
+#usr/include/boost/metaparse/v1/fail_at_first_char_expected.hpp
+#usr/include/boost/metaparse/v1/fail_tag.hpp
+#usr/include/boost/metaparse/v1/first_of.hpp
+#usr/include/boost/metaparse/v1/foldl.hpp
+#usr/include/boost/metaparse/v1/foldl1.hpp
+#usr/include/boost/metaparse/v1/foldl_reject_incomplete.hpp
+#usr/include/boost/metaparse/v1/foldl_reject_incomplete1.hpp
+#usr/include/boost/metaparse/v1/foldl_reject_incomplete_start_with_parser.hpp
+#usr/include/boost/metaparse/v1/foldl_start_with_parser.hpp
+#usr/include/boost/metaparse/v1/foldr.hpp
+#usr/include/boost/metaparse/v1/foldr1.hpp
+#usr/include/boost/metaparse/v1/foldr_reject_incomplete.hpp
+#usr/include/boost/metaparse/v1/foldr_reject_incomplete1.hpp
+#usr/include/boost/metaparse/v1/foldr_start_with_parser.hpp
+#usr/include/boost/metaparse/v1/fwd
+#usr/include/boost/metaparse/v1/fwd/accept.hpp
+#usr/include/boost/metaparse/v1/fwd/build_parser.hpp
+#usr/include/boost/metaparse/v1/fwd/get_col.hpp
+#usr/include/boost/metaparse/v1/fwd/get_line.hpp
+#usr/include/boost/metaparse/v1/fwd/get_message.hpp
+#usr/include/boost/metaparse/v1/fwd/get_position.hpp
+#usr/include/boost/metaparse/v1/fwd/get_prev_char.hpp
+#usr/include/boost/metaparse/v1/fwd/get_remaining.hpp
+#usr/include/boost/metaparse/v1/fwd/get_result.hpp
+#usr/include/boost/metaparse/v1/fwd/next_char.hpp
+#usr/include/boost/metaparse/v1/fwd/next_line.hpp
+#usr/include/boost/metaparse/v1/fwd/reject.hpp
+#usr/include/boost/metaparse/v1/fwd/source_position.hpp
+#usr/include/boost/metaparse/v1/fwd/string.hpp
+#usr/include/boost/metaparse/v1/get_col.hpp
+#usr/include/boost/metaparse/v1/get_line.hpp
+#usr/include/boost/metaparse/v1/get_message.hpp
+#usr/include/boost/metaparse/v1/get_position.hpp
+#usr/include/boost/metaparse/v1/get_prev_char.hpp
+#usr/include/boost/metaparse/v1/get_remaining.hpp
+#usr/include/boost/metaparse/v1/get_result.hpp
+#usr/include/boost/metaparse/v1/grammar.hpp
+#usr/include/boost/metaparse/v1/if_.hpp
+#usr/include/boost/metaparse/v1/impl
+#usr/include/boost/metaparse/v1/impl/apply_parser.hpp
+#usr/include/boost/metaparse/v1/impl/assert_string_length.hpp
+#usr/include/boost/metaparse/v1/impl/at_c.hpp
+#usr/include/boost/metaparse/v1/impl/back_inserter.hpp
+#usr/include/boost/metaparse/v1/impl/concat.hpp
+#usr/include/boost/metaparse/v1/impl/empty_string.hpp
+#usr/include/boost/metaparse/v1/impl/front_inserter.hpp
+#usr/include/boost/metaparse/v1/impl/fwd
+#usr/include/boost/metaparse/v1/impl/fwd/iterate_impl.hpp
+#usr/include/boost/metaparse/v1/impl/has_type.hpp
+#usr/include/boost/metaparse/v1/impl/is_any.hpp
+#usr/include/boost/metaparse/v1/impl/is_char_c.hpp
+#usr/include/boost/metaparse/v1/impl/iterate_impl.hpp
+#usr/include/boost/metaparse/v1/impl/iterate_impl_unchecked.hpp
+#usr/include/boost/metaparse/v1/impl/later_result.hpp
+#usr/include/boost/metaparse/v1/impl/next_digit.hpp
+#usr/include/boost/metaparse/v1/impl/no_char.hpp
+#usr/include/boost/metaparse/v1/impl/nth_of_c.hpp
+#usr/include/boost/metaparse/v1/impl/nth_of_c_impl.hpp
+#usr/include/boost/metaparse/v1/impl/one_char_except_not_used.hpp
+#usr/include/boost/metaparse/v1/impl/one_of.hpp
+#usr/include/boost/metaparse/v1/impl/one_of_fwd_op.hpp
+#usr/include/boost/metaparse/v1/impl/pop_back.hpp
+#usr/include/boost/metaparse/v1/impl/pop_front.hpp
+#usr/include/boost/metaparse/v1/impl/push_back_c.hpp
+#usr/include/boost/metaparse/v1/impl/push_front_c.hpp
+#usr/include/boost/metaparse/v1/impl/remove_trailing_no_chars.hpp
+#usr/include/boost/metaparse/v1/impl/returns.hpp
+#usr/include/boost/metaparse/v1/impl/sequence.hpp
+#usr/include/boost/metaparse/v1/impl/sequence_impl.hpp
+#usr/include/boost/metaparse/v1/impl/size.hpp
+#usr/include/boost/metaparse/v1/impl/skip_seq.hpp
+#usr/include/boost/metaparse/v1/impl/split_at_c.hpp
+#usr/include/boost/metaparse/v1/impl/string.hpp
+#usr/include/boost/metaparse/v1/impl/string_at.hpp
+#usr/include/boost/metaparse/v1/impl/string_iterator.hpp
+#usr/include/boost/metaparse/v1/impl/string_iterator_tag.hpp
+#usr/include/boost/metaparse/v1/impl/update_c.hpp
+#usr/include/boost/metaparse/v1/impl/void_.hpp
+#usr/include/boost/metaparse/v1/int_.hpp
+#usr/include/boost/metaparse/v1/is_error.hpp
+#usr/include/boost/metaparse/v1/iterate.hpp
+#usr/include/boost/metaparse/v1/iterate_c.hpp
+#usr/include/boost/metaparse/v1/keyword.hpp
+#usr/include/boost/metaparse/v1/last_of.hpp
+#usr/include/boost/metaparse/v1/letter.hpp
+#usr/include/boost/metaparse/v1/lit.hpp
+#usr/include/boost/metaparse/v1/lit_c.hpp
+#usr/include/boost/metaparse/v1/look_ahead.hpp
+#usr/include/boost/metaparse/v1/middle_of.hpp
+#usr/include/boost/metaparse/v1/next_char.hpp
+#usr/include/boost/metaparse/v1/next_line.hpp
+#usr/include/boost/metaparse/v1/nth_of.hpp
+#usr/include/boost/metaparse/v1/nth_of_c.hpp
+#usr/include/boost/metaparse/v1/one_char.hpp
+#usr/include/boost/metaparse/v1/one_char_except.hpp
+#usr/include/boost/metaparse/v1/one_char_except_c.hpp
+#usr/include/boost/metaparse/v1/one_of.hpp
+#usr/include/boost/metaparse/v1/one_of_c.hpp
+#usr/include/boost/metaparse/v1/optional.hpp
+#usr/include/boost/metaparse/v1/range.hpp
+#usr/include/boost/metaparse/v1/range_c.hpp
+#usr/include/boost/metaparse/v1/reject.hpp
+#usr/include/boost/metaparse/v1/repeated.hpp
+#usr/include/boost/metaparse/v1/repeated1.hpp
+#usr/include/boost/metaparse/v1/repeated_one_of.hpp
+#usr/include/boost/metaparse/v1/repeated_one_of1.hpp
+#usr/include/boost/metaparse/v1/repeated_reject_incomplete.hpp
+#usr/include/boost/metaparse/v1/repeated_reject_incomplete1.hpp
+#usr/include/boost/metaparse/v1/return_.hpp
+#usr/include/boost/metaparse/v1/sequence.hpp
+#usr/include/boost/metaparse/v1/sequence_apply.hpp
+#usr/include/boost/metaparse/v1/source_position.hpp
+#usr/include/boost/metaparse/v1/source_position_tag.hpp
+#usr/include/boost/metaparse/v1/space.hpp
+#usr/include/boost/metaparse/v1/spaces.hpp
+#usr/include/boost/metaparse/v1/start.hpp
+#usr/include/boost/metaparse/v1/string.hpp
+#usr/include/boost/metaparse/v1/string_tag.hpp
+#usr/include/boost/metaparse/v1/swap.hpp
+#usr/include/boost/metaparse/v1/token.hpp
+#usr/include/boost/metaparse/v1/transform.hpp
+#usr/include/boost/metaparse/v1/transform_error.hpp
+#usr/include/boost/metaparse/v1/transform_error_message.hpp
+#usr/include/boost/metaparse/v1/unless_error.hpp
+#usr/include/boost/metaparse/v1/util
+#usr/include/boost/metaparse/v1/util/digit_to_int.hpp
+#usr/include/boost/metaparse/v1/util/digit_to_int_c.hpp
+#usr/include/boost/metaparse/v1/util/in_range.hpp
+#usr/include/boost/metaparse/v1/util/in_range_c.hpp
+#usr/include/boost/metaparse/v1/util/int_to_digit.hpp
+#usr/include/boost/metaparse/v1/util/int_to_digit_c.hpp
+#usr/include/boost/metaparse/v1/util/is_digit.hpp
+#usr/include/boost/metaparse/v1/util/is_lcase_letter.hpp
+#usr/include/boost/metaparse/v1/util/is_letter.hpp
+#usr/include/boost/metaparse/v1/util/is_ucase_letter.hpp
+#usr/include/boost/metaparse/v1/util/is_whitespace.hpp
+#usr/include/boost/metaparse/v1/util/is_whitespace_c.hpp
+#usr/include/boost/metaparse/version.hpp
 #usr/include/boost/move
+#usr/include/boost/move/adl_move_swap.hpp
+#usr/include/boost/move/algo
+#usr/include/boost/move/algo/adaptive_merge.hpp
+#usr/include/boost/move/algo/adaptive_sort.hpp
+#usr/include/boost/move/algo/detail
+#usr/include/boost/move/algo/detail/adaptive_sort_merge.hpp
+#usr/include/boost/move/algo/detail/basic_op.hpp
+#usr/include/boost/move/algo/detail/insertion_sort.hpp
+#usr/include/boost/move/algo/detail/merge.hpp
+#usr/include/boost/move/algo/detail/merge_sort.hpp
+#usr/include/boost/move/algo/move.hpp
 #usr/include/boost/move/algorithm.hpp
 #usr/include/boost/move/core.hpp
+#usr/include/boost/move/default_delete.hpp
 #usr/include/boost/move/detail
 #usr/include/boost/move/detail/config_begin.hpp
 #usr/include/boost/move/detail/config_end.hpp
+#usr/include/boost/move/detail/destruct_n.hpp
+#usr/include/boost/move/detail/fwd_macros.hpp
+#usr/include/boost/move/detail/iterator_traits.hpp
 #usr/include/boost/move/detail/meta_utils.hpp
+#usr/include/boost/move/detail/meta_utils_core.hpp
 #usr/include/boost/move/detail/move_helpers.hpp
+#usr/include/boost/move/detail/placement_new.hpp
+#usr/include/boost/move/detail/reverse_iterator.hpp
+#usr/include/boost/move/detail/std_ns_begin.hpp
+#usr/include/boost/move/detail/std_ns_end.hpp
+#usr/include/boost/move/detail/type_traits.hpp
+#usr/include/boost/move/detail/unique_ptr_meta_utils.hpp
+#usr/include/boost/move/detail/workaround.hpp
 #usr/include/boost/move/iterator.hpp
+#usr/include/boost/move/make_unique.hpp
 #usr/include/boost/move/move.hpp
 #usr/include/boost/move/traits.hpp
+#usr/include/boost/move/unique_ptr.hpp
 #usr/include/boost/move/utility.hpp
+#usr/include/boost/move/utility_core.hpp
 #usr/include/boost/mpi
 #usr/include/boost/mpi.hpp
 #usr/include/boost/mpi/allocator.hpp
 #usr/include/boost/mpi/collectives/all_to_all.hpp
 #usr/include/boost/mpi/collectives/broadcast.hpp
 #usr/include/boost/mpi/collectives/gather.hpp
+#usr/include/boost/mpi/collectives/gatherv.hpp
 #usr/include/boost/mpi/collectives/reduce.hpp
 #usr/include/boost/mpi/collectives/scan.hpp
 #usr/include/boost/mpi/collectives/scatter.hpp
+#usr/include/boost/mpi/collectives/scatterv.hpp
 #usr/include/boost/mpi/collectives_fwd.hpp
 #usr/include/boost/mpi/communicator.hpp
 #usr/include/boost/mpi/config.hpp
 #usr/include/boost/mpl/aux_/config/eti.hpp
 #usr/include/boost/mpl/aux_/config/forwarding.hpp
 #usr/include/boost/mpl/aux_/config/gcc.hpp
+#usr/include/boost/mpl/aux_/config/gpu.hpp
 #usr/include/boost/mpl/aux_/config/has_apply.hpp
 #usr/include/boost/mpl/aux_/config/has_xxx.hpp
 #usr/include/boost/mpl/aux_/config/integral.hpp
 #usr/include/boost/mpl/map/aux_/has_key_impl.hpp
 #usr/include/boost/mpl/map/aux_/include_preprocessed.hpp
 #usr/include/boost/mpl/map/aux_/insert_impl.hpp
+#usr/include/boost/mpl/map/aux_/insert_range_impl.hpp
 #usr/include/boost/mpl/map/aux_/item.hpp
 #usr/include/boost/mpl/map/aux_/iterator.hpp
 #usr/include/boost/mpl/map/aux_/key_type_impl.hpp
 #usr/include/boost/mpl/set/aux_/has_key_impl.hpp
 #usr/include/boost/mpl/set/aux_/include_preprocessed.hpp
 #usr/include/boost/mpl/set/aux_/insert_impl.hpp
+#usr/include/boost/mpl/set/aux_/insert_range_impl.hpp
 #usr/include/boost/mpl/set/aux_/item.hpp
 #usr/include/boost/mpl/set/aux_/iterator.hpp
 #usr/include/boost/mpl/set/aux_/key_type_impl.hpp
 #usr/include/boost/multi_index/detail/base_type.hpp
 #usr/include/boost/multi_index/detail/bidir_node_iterator.hpp
 #usr/include/boost/multi_index/detail/bucket_array.hpp
+#usr/include/boost/multi_index/detail/cons_stdtuple.hpp
 #usr/include/boost/multi_index/detail/converter.hpp
 #usr/include/boost/multi_index/detail/copy_map.hpp
 #usr/include/boost/multi_index/detail/do_not_copy_elements_tag.hpp
 #usr/include/boost/multi_index/detail/hash_index_iterator.hpp
 #usr/include/boost/multi_index/detail/hash_index_node.hpp
 #usr/include/boost/multi_index/detail/header_holder.hpp
+#usr/include/boost/multi_index/detail/ignore_wstrict_aliasing.hpp
 #usr/include/boost/multi_index/detail/index_base.hpp
 #usr/include/boost/multi_index/detail/index_loader.hpp
 #usr/include/boost/multi_index/detail/index_matcher.hpp
 #usr/include/boost/multi_index/detail/index_saver.hpp
 #usr/include/boost/multi_index/detail/invariant_assert.hpp
 #usr/include/boost/multi_index/detail/is_index_list.hpp
+#usr/include/boost/multi_index/detail/is_transparent.hpp
 #usr/include/boost/multi_index/detail/iter_adaptor.hpp
 #usr/include/boost/multi_index/detail/modify_key_adaptor.hpp
-#usr/include/boost/multi_index/detail/msvc_index_specifier.hpp
 #usr/include/boost/multi_index/detail/no_duplicate_tags.hpp
 #usr/include/boost/multi_index/detail/node_type.hpp
 #usr/include/boost/multi_index/detail/ord_index_args.hpp
+#usr/include/boost/multi_index/detail/ord_index_impl.hpp
+#usr/include/boost/multi_index/detail/ord_index_impl_fwd.hpp
 #usr/include/boost/multi_index/detail/ord_index_node.hpp
 #usr/include/boost/multi_index/detail/ord_index_ops.hpp
-#usr/include/boost/multi_index/detail/prevent_eti.hpp
+#usr/include/boost/multi_index/detail/promotes_arg.hpp
+#usr/include/boost/multi_index/detail/raw_ptr.hpp
+#usr/include/boost/multi_index/detail/restore_wstrict_aliasing.hpp
 #usr/include/boost/multi_index/detail/rnd_index_loader.hpp
 #usr/include/boost/multi_index/detail/rnd_index_node.hpp
 #usr/include/boost/multi_index/detail/rnd_index_ops.hpp
 #usr/include/boost/multi_index/detail/rnd_index_ptr_array.hpp
 #usr/include/boost/multi_index/detail/rnd_node_iterator.hpp
-#usr/include/boost/multi_index/detail/safe_ctr_proxy.hpp
+#usr/include/boost/multi_index/detail/rnk_index_ops.hpp
 #usr/include/boost/multi_index/detail/safe_mode.hpp
 #usr/include/boost/multi_index/detail/scope_guard.hpp
 #usr/include/boost/multi_index/detail/seq_index_node.hpp
 #usr/include/boost/multi_index/ordered_index_fwd.hpp
 #usr/include/boost/multi_index/random_access_index.hpp
 #usr/include/boost/multi_index/random_access_index_fwd.hpp
+#usr/include/boost/multi_index/ranked_index.hpp
+#usr/include/boost/multi_index/ranked_index_fwd.hpp
 #usr/include/boost/multi_index/safe_mode_errors.hpp
 #usr/include/boost/multi_index/sequenced_index.hpp
 #usr/include/boost/multi_index/sequenced_index_fwd.hpp
 #usr/include/boost/multiprecision
 #usr/include/boost/multiprecision/concepts
 #usr/include/boost/multiprecision/concepts/mp_number_archetypes.hpp
+#usr/include/boost/multiprecision/cpp_bin_float
+#usr/include/boost/multiprecision/cpp_bin_float.hpp
+#usr/include/boost/multiprecision/cpp_bin_float/io.hpp
+#usr/include/boost/multiprecision/cpp_bin_float/transcendental.hpp
 #usr/include/boost/multiprecision/cpp_dec_float.hpp
 #usr/include/boost/multiprecision/cpp_int
 #usr/include/boost/multiprecision/cpp_int.hpp
 #usr/include/boost/multiprecision/cpp_int/comparison.hpp
 #usr/include/boost/multiprecision/cpp_int/cpp_int_config.hpp
 #usr/include/boost/multiprecision/cpp_int/divide.hpp
+#usr/include/boost/multiprecision/cpp_int/import_export.hpp
 #usr/include/boost/multiprecision/cpp_int/limits.hpp
 #usr/include/boost/multiprecision/cpp_int/literals.hpp
 #usr/include/boost/multiprecision/cpp_int/misc.hpp
 #usr/include/boost/multiprecision/detail/functions/trig.hpp
 #usr/include/boost/multiprecision/detail/generic_interconvert.hpp
 #usr/include/boost/multiprecision/detail/integer_ops.hpp
+#usr/include/boost/multiprecision/detail/min_max.hpp
 #usr/include/boost/multiprecision/detail/no_et_ops.hpp
 #usr/include/boost/multiprecision/detail/number_base.hpp
 #usr/include/boost/multiprecision/detail/number_compare.hpp
 #usr/include/boost/multiprecision/traits
 #usr/include/boost/multiprecision/traits/explicit_conversion.hpp
 #usr/include/boost/multiprecision/traits/extract_exponent_type.hpp
+#usr/include/boost/multiprecision/traits/is_backend.hpp
+#usr/include/boost/multiprecision/traits/is_byte_container.hpp
 #usr/include/boost/multiprecision/traits/is_restricted_conversion.hpp
 #usr/include/boost/next_prior.hpp
 #usr/include/boost/non_type.hpp
 #usr/include/boost/numeric/odeint
 #usr/include/boost/numeric/odeint.hpp
 #usr/include/boost/numeric/odeint/algebra
+#usr/include/boost/numeric/odeint/algebra/algebra_dispatcher.hpp
 #usr/include/boost/numeric/odeint/algebra/array_algebra.hpp
 #usr/include/boost/numeric/odeint/algebra/default_operations.hpp
 #usr/include/boost/numeric/odeint/algebra/detail
+#usr/include/boost/numeric/odeint/algebra/detail/extract_value_type.hpp
 #usr/include/boost/numeric/odeint/algebra/detail/for_each.hpp
 #usr/include/boost/numeric/odeint/algebra/detail/macros.hpp
-#usr/include/boost/numeric/odeint/algebra/detail/reduce.hpp
+#usr/include/boost/numeric/odeint/algebra/detail/norm_inf.hpp
 #usr/include/boost/numeric/odeint/algebra/fusion_algebra.hpp
+#usr/include/boost/numeric/odeint/algebra/fusion_algebra_dispatcher.hpp
+#usr/include/boost/numeric/odeint/algebra/multi_array_algebra.hpp
+#usr/include/boost/numeric/odeint/algebra/norm_result_type.hpp
+#usr/include/boost/numeric/odeint/algebra/operations_dispatcher.hpp
 #usr/include/boost/numeric/odeint/algebra/range_algebra.hpp
 #usr/include/boost/numeric/odeint/algebra/vector_space_algebra.hpp
 #usr/include/boost/numeric/odeint/config.hpp
 #usr/include/boost/numeric/odeint/external
+#usr/include/boost/numeric/odeint/external/blaze
+#usr/include/boost/numeric/odeint/external/blaze/blaze_algebra_dispatcher.hpp
+#usr/include/boost/numeric/odeint/external/blaze/blaze_resize.hpp
+#usr/include/boost/numeric/odeint/external/compute
+#usr/include/boost/numeric/odeint/external/compute/compute.hpp
+#usr/include/boost/numeric/odeint/external/compute/compute_algebra.hpp
+#usr/include/boost/numeric/odeint/external/compute/compute_algebra_dispatcher.hpp
+#usr/include/boost/numeric/odeint/external/compute/compute_operations.hpp
+#usr/include/boost/numeric/odeint/external/compute/compute_operations_dispatcher.hpp
+#usr/include/boost/numeric/odeint/external/compute/compute_resize.hpp
+#usr/include/boost/numeric/odeint/external/eigen
+#usr/include/boost/numeric/odeint/external/eigen/eigen.hpp
+#usr/include/boost/numeric/odeint/external/eigen/eigen_algebra.hpp
+#usr/include/boost/numeric/odeint/external/eigen/eigen_algebra_dispatcher.hpp
+#usr/include/boost/numeric/odeint/external/eigen/eigen_resize.hpp
 #usr/include/boost/numeric/odeint/external/gsl
 #usr/include/boost/numeric/odeint/external/gsl/gsl_wrapper.hpp
 #usr/include/boost/numeric/odeint/external/mkl
 #usr/include/boost/numeric/odeint/external/mkl/mkl_operations.hpp
+#usr/include/boost/numeric/odeint/external/mpi
+#usr/include/boost/numeric/odeint/external/mpi/mpi.hpp
+#usr/include/boost/numeric/odeint/external/mpi/mpi_nested_algebra.hpp
+#usr/include/boost/numeric/odeint/external/mpi/mpi_state.hpp
+#usr/include/boost/numeric/odeint/external/mpi/mpi_vector_state.hpp
 #usr/include/boost/numeric/odeint/external/mtl4
 #usr/include/boost/numeric/odeint/external/mtl4/implicit_euler_mtl4.hpp
+#usr/include/boost/numeric/odeint/external/mtl4/mtl4.hpp
+#usr/include/boost/numeric/odeint/external/mtl4/mtl4_algebra_dispatcher.hpp
 #usr/include/boost/numeric/odeint/external/mtl4/mtl4_resize.hpp
+#usr/include/boost/numeric/odeint/external/nt2
+#usr/include/boost/numeric/odeint/external/nt2/nt2_algebra_dispatcher.hpp
+#usr/include/boost/numeric/odeint/external/nt2/nt2_copy.hpp
+#usr/include/boost/numeric/odeint/external/nt2/nt2_norm_inf.hpp
+#usr/include/boost/numeric/odeint/external/nt2/nt2_resize.hpp
+#usr/include/boost/numeric/odeint/external/openmp
+#usr/include/boost/numeric/odeint/external/openmp/openmp.hpp
+#usr/include/boost/numeric/odeint/external/openmp/openmp_nested_algebra.hpp
+#usr/include/boost/numeric/odeint/external/openmp/openmp_range_algebra.hpp
+#usr/include/boost/numeric/odeint/external/openmp/openmp_state.hpp
 #usr/include/boost/numeric/odeint/external/thrust
+#usr/include/boost/numeric/odeint/external/thrust/thrust.hpp
 #usr/include/boost/numeric/odeint/external/thrust/thrust_algebra.hpp
+#usr/include/boost/numeric/odeint/external/thrust/thrust_algebra_dispatcher.hpp
 #usr/include/boost/numeric/odeint/external/thrust/thrust_operations.hpp
+#usr/include/boost/numeric/odeint/external/thrust/thrust_operations_dispatcher.hpp
 #usr/include/boost/numeric/odeint/external/thrust/thrust_resize.hpp
 #usr/include/boost/numeric/odeint/external/vexcl
+#usr/include/boost/numeric/odeint/external/vexcl/vexcl.hpp
+#usr/include/boost/numeric/odeint/external/vexcl/vexcl_abs.hpp
+#usr/include/boost/numeric/odeint/external/vexcl/vexcl_algebra_dispatcher.hpp
+#usr/include/boost/numeric/odeint/external/vexcl/vexcl_copy.hpp
+#usr/include/boost/numeric/odeint/external/vexcl/vexcl_norm_inf.hpp
 #usr/include/boost/numeric/odeint/external/vexcl/vexcl_resize.hpp
+#usr/include/boost/numeric/odeint/external/vexcl/vexcl_same_instance.hpp
 #usr/include/boost/numeric/odeint/external/viennacl
 #usr/include/boost/numeric/odeint/external/viennacl/viennacl_operations.hpp
 #usr/include/boost/numeric/odeint/external/viennacl/viennacl_resize.hpp
 #usr/include/boost/numeric/odeint/integrate
+#usr/include/boost/numeric/odeint/integrate/check_adapter.hpp
 #usr/include/boost/numeric/odeint/integrate/detail
+#usr/include/boost/numeric/odeint/integrate/detail/functors.hpp
 #usr/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp
 #usr/include/boost/numeric/odeint/integrate/detail/integrate_const.hpp
 #usr/include/boost/numeric/odeint/integrate/detail/integrate_n_steps.hpp
 #usr/include/boost/numeric/odeint/integrate/integrate_const.hpp
 #usr/include/boost/numeric/odeint/integrate/integrate_n_steps.hpp
 #usr/include/boost/numeric/odeint/integrate/integrate_times.hpp
+#usr/include/boost/numeric/odeint/integrate/max_step_checker.hpp
 #usr/include/boost/numeric/odeint/integrate/null_observer.hpp
 #usr/include/boost/numeric/odeint/integrate/observer_collection.hpp
+#usr/include/boost/numeric/odeint/iterator
+#usr/include/boost/numeric/odeint/iterator/adaptive_iterator.hpp
+#usr/include/boost/numeric/odeint/iterator/adaptive_time_iterator.hpp
+#usr/include/boost/numeric/odeint/iterator/const_step_iterator.hpp
+#usr/include/boost/numeric/odeint/iterator/const_step_time_iterator.hpp
+#usr/include/boost/numeric/odeint/iterator/detail
+#usr/include/boost/numeric/odeint/iterator/detail/ode_iterator_base.hpp
+#usr/include/boost/numeric/odeint/iterator/impl
+#usr/include/boost/numeric/odeint/iterator/impl/adaptive_iterator_impl.hpp
+#usr/include/boost/numeric/odeint/iterator/impl/const_step_iterator_impl.hpp
+#usr/include/boost/numeric/odeint/iterator/impl/n_step_iterator_impl.hpp
+#usr/include/boost/numeric/odeint/iterator/impl/times_iterator_impl.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate
+#usr/include/boost/numeric/odeint/iterator/integrate/detail
+#usr/include/boost/numeric/odeint/iterator/integrate/detail/functors.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/detail/integrate_adaptive.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/detail/integrate_const.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/detail/integrate_n_steps.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/detail/integrate_times.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/integrate.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/integrate_adaptive.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/integrate_const.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/integrate_n_steps.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/integrate_times.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/null_observer.hpp
+#usr/include/boost/numeric/odeint/iterator/integrate/observer_collection.hpp
+#usr/include/boost/numeric/odeint/iterator/n_step_iterator.hpp
+#usr/include/boost/numeric/odeint/iterator/n_step_time_iterator.hpp
+#usr/include/boost/numeric/odeint/iterator/times_iterator.hpp
+#usr/include/boost/numeric/odeint/iterator/times_time_iterator.hpp
 #usr/include/boost/numeric/odeint/stepper
 #usr/include/boost/numeric/odeint/stepper/adams_bashforth.hpp
 #usr/include/boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp
 #usr/include/boost/numeric/odeint/stepper/euler.hpp
 #usr/include/boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp
 #usr/include/boost/numeric/odeint/stepper/explicit_generic_rk.hpp
+#usr/include/boost/numeric/odeint/stepper/extrapolation_stepper.hpp
 #usr/include/boost/numeric/odeint/stepper/generation
 #usr/include/boost/numeric/odeint/stepper/generation.hpp
 #usr/include/boost/numeric/odeint/stepper/generation/generation_controlled_runge_kutta.hpp
 #usr/include/boost/numeric/odeint/stepper/symplectic_euler.hpp
 #usr/include/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp
 #usr/include/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp
+#usr/include/boost/numeric/odeint/stepper/velocity_verlet.hpp
 #usr/include/boost/numeric/odeint/util
 #usr/include/boost/numeric/odeint/util/bind.hpp
 #usr/include/boost/numeric/odeint/util/copy.hpp
 #usr/include/boost/numeric/odeint/util/detail/less_with_sign.hpp
 #usr/include/boost/numeric/odeint/util/is_pair.hpp
 #usr/include/boost/numeric/odeint/util/is_resizeable.hpp
+#usr/include/boost/numeric/odeint/util/multi_array_adaption.hpp
+#usr/include/boost/numeric/odeint/util/n_ary_helper.hpp
+#usr/include/boost/numeric/odeint/util/odeint_error.hpp
 #usr/include/boost/numeric/odeint/util/resize.hpp
 #usr/include/boost/numeric/odeint/util/resizer.hpp
 #usr/include/boost/numeric/odeint/util/same_instance.hpp
 #usr/include/boost/numeric/odeint/util/same_size.hpp
+#usr/include/boost/numeric/odeint/util/split.hpp
+#usr/include/boost/numeric/odeint/util/split_adaptor.hpp
 #usr/include/boost/numeric/odeint/util/state_wrapper.hpp
+#usr/include/boost/numeric/odeint/util/stepper_traits.hpp
 #usr/include/boost/numeric/odeint/util/ublas_wrapper.hpp
 #usr/include/boost/numeric/odeint/util/unit_helper.hpp
 #usr/include/boost/numeric/odeint/util/unwrap_reference.hpp
 #usr/include/boost/numeric/ublas/matrix_expression.hpp
 #usr/include/boost/numeric/ublas/matrix_proxy.hpp
 #usr/include/boost/numeric/ublas/matrix_sparse.hpp
+#usr/include/boost/numeric/ublas/matrix_vector.hpp
 #usr/include/boost/numeric/ublas/operation
 #usr/include/boost/numeric/ublas/operation.hpp
 #usr/include/boost/numeric/ublas/operation/begin.hpp
 #usr/include/boost/numeric/ublas/vector_proxy.hpp
 #usr/include/boost/numeric/ublas/vector_sparse.hpp
 #usr/include/boost/operators.hpp
+#usr/include/boost/operators_v1.hpp
 #usr/include/boost/optional
 #usr/include/boost/optional.hpp
+#usr/include/boost/optional/bad_optional_access.hpp
+#usr/include/boost/optional/detail
+#usr/include/boost/optional/detail/old_optional_implementation.hpp
+#usr/include/boost/optional/detail/optional_aligned_storage.hpp
+#usr/include/boost/optional/detail/optional_config.hpp
+#usr/include/boost/optional/detail/optional_factory_support.hpp
+#usr/include/boost/optional/detail/optional_reference_spec.hpp
+#usr/include/boost/optional/detail/optional_relops.hpp
+#usr/include/boost/optional/detail/optional_swap.hpp
 #usr/include/boost/optional/optional.hpp
 #usr/include/boost/optional/optional_fwd.hpp
 #usr/include/boost/optional/optional_io.hpp
 #usr/include/boost/pending
 #usr/include/boost/pending/bucket_sorter.hpp
 #usr/include/boost/pending/container_traits.hpp
-#usr/include/boost/pending/cstddef.hpp
 #usr/include/boost/pending/detail
 #usr/include/boost/pending/detail/disjoint_sets.hpp
 #usr/include/boost/pending/detail/int_iterator.hpp
 #usr/include/boost/phoenix/bind/bind_member_function.hpp
 #usr/include/boost/phoenix/bind/bind_member_variable.hpp
 #usr/include/boost/phoenix/bind/detail
-#usr/include/boost/phoenix/bind/detail/function_ptr.hpp
-#usr/include/boost/phoenix/bind/detail/member_function_ptr.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03
+#usr/include/boost/phoenix/bind/detail/cpp03/bind_function.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/bind_function_object.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/bind_member_function.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/function_ptr.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/member_function_ptr.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_10.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_20.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_30.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_40.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_50.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_object.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_object_10.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_object_20.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_object_30.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_object_40.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_object_50.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_member_function.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_member_function_10.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_member_function_20.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_member_function_30.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_member_function_40.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/bind_member_function_50.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/function_ptr.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/function_ptr_10.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/function_ptr_20.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/function_ptr_30.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/function_ptr_40.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/function_ptr_50.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr_10.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr_20.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr_30.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr_40.hpp
+#usr/include/boost/phoenix/bind/detail/cpp03/preprocessed/member_function_ptr_50.hpp
 #usr/include/boost/phoenix/bind/detail/member_variable.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed
-#usr/include/boost/phoenix/bind/detail/preprocessed/function_ptr.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/function_ptr_10.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/function_ptr_20.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/function_ptr_30.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/function_ptr_40.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/function_ptr_50.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/member_function_ptr.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/member_function_ptr_10.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/member_function_ptr_20.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/member_function_ptr_30.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/member_function_ptr_40.hpp
-#usr/include/boost/phoenix/bind/detail/preprocessed/member_function_ptr_50.hpp
-#usr/include/boost/phoenix/bind/preprocessed
-#usr/include/boost/phoenix/bind/preprocessed/bind_function.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_10.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_20.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_30.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_40.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_50.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_object.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_object_10.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_object_20.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_object_30.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_object_40.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_function_object_50.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_member_function.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_member_function_10.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_member_function_20.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_member_function_30.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_member_function_40.hpp
-#usr/include/boost/phoenix/bind/preprocessed/bind_member_function_50.hpp
+#usr/include/boost/phoenix/config.hpp
 #usr/include/boost/phoenix/core
 #usr/include/boost/phoenix/core.hpp
 #usr/include/boost/phoenix/core/actor.hpp
 #usr/include/boost/phoenix/core/arity.hpp
 #usr/include/boost/phoenix/core/as_actor.hpp
 #usr/include/boost/phoenix/core/call.hpp
+#usr/include/boost/phoenix/core/debug.hpp
 #usr/include/boost/phoenix/core/detail
-#usr/include/boost/phoenix/core/detail/actor_operator.hpp
-#usr/include/boost/phoenix/core/detail/actor_result_of.hpp
 #usr/include/boost/phoenix/core/detail/argument.hpp
-#usr/include/boost/phoenix/core/detail/call.hpp
+#usr/include/boost/phoenix/core/detail/cpp03
+#usr/include/boost/phoenix/core/detail/cpp03/actor_operator.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/actor_result_of.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/assign.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/call.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/expression.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/function_equal.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/function_eval.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/function_eval_expr.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/phx2_result.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_operator.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_operator_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_operator_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_operator_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_operator_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_operator_50.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_result_of.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_result_of_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_result_of_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_result_of_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_result_of_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/actor_result_of_50.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument_no_predefined_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument_no_predefined_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument_no_predefined_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument_no_predefined_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument_no_predefined_50.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument_predefined_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument_predefined_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument_predefined_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument_predefined_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/argument_predefined_50.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/assign.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/assign_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/assign_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/assign_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/assign_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/assign_50.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/call.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/call_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/call_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/call_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/call_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/call_50.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/expression.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/expression_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/expression_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/expression_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/expression_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/expression_50.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_equal.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_equal_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_equal_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_equal_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_equal_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_equal_50.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_50.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_expr.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_expr_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_expr_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_expr_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_expr_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/function_eval_expr_50.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/phx2_result.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/phx2_result_10.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/phx2_result_20.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/phx2_result_30.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/phx2_result_40.hpp
+#usr/include/boost/phoenix/core/detail/cpp03/preprocessed/phx2_result_50.hpp
 #usr/include/boost/phoenix/core/detail/expression.hpp
 #usr/include/boost/phoenix/core/detail/function_eval.hpp
+#usr/include/boost/phoenix/core/detail/index_sequence.hpp
 #usr/include/boost/phoenix/core/detail/phx2_result.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_operator.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_operator_20.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_operator_30.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_operator_40.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_operator_50.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_result_of.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_result_of_20.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_result_of_30.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_result_of_40.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/actor_result_of_50.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/call.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/call_10.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/call_20.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/call_30.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/call_40.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/call_50.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/function_eval.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/function_eval_10.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/function_eval_20.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/function_eval_30.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/function_eval_40.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/function_eval_50.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/phx2_result.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/phx2_result_10.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/phx2_result_20.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/phx2_result_30.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/phx2_result_40.hpp
-#usr/include/boost/phoenix/core/detail/preprocessed/phx2_result_50.hpp
 #usr/include/boost/phoenix/core/domain.hpp
 #usr/include/boost/phoenix/core/environment.hpp
 #usr/include/boost/phoenix/core/expression.hpp
 #usr/include/boost/phoenix/core/function_equal.hpp
 #usr/include/boost/phoenix/core/is_actor.hpp
 #usr/include/boost/phoenix/core/is_nullary.hpp
+#usr/include/boost/phoenix/core/is_value.hpp
 #usr/include/boost/phoenix/core/limits.hpp
 #usr/include/boost/phoenix/core/meta_grammar.hpp
 #usr/include/boost/phoenix/core/nothing.hpp
-#usr/include/boost/phoenix/core/preprocessed
-#usr/include/boost/phoenix/core/preprocessed/actor.hpp
-#usr/include/boost/phoenix/core/preprocessed/actor_10.hpp
-#usr/include/boost/phoenix/core/preprocessed/actor_20.hpp
-#usr/include/boost/phoenix/core/preprocessed/actor_30.hpp
-#usr/include/boost/phoenix/core/preprocessed/actor_40.hpp
-#usr/include/boost/phoenix/core/preprocessed/actor_50.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_10.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_no_predefined_10.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_no_predefined_20.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_no_predefined_30.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_no_predefined_40.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_no_predefined_50.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_predefined_10.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_predefined_20.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_predefined_30.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_predefined_40.hpp
-#usr/include/boost/phoenix/core/preprocessed/argument_predefined_50.hpp
-#usr/include/boost/phoenix/core/preprocessed/expression.hpp
-#usr/include/boost/phoenix/core/preprocessed/expression_10.hpp
-#usr/include/boost/phoenix/core/preprocessed/expression_20.hpp
-#usr/include/boost/phoenix/core/preprocessed/expression_30.hpp
-#usr/include/boost/phoenix/core/preprocessed/expression_40.hpp
-#usr/include/boost/phoenix/core/preprocessed/expression_50.hpp
-#usr/include/boost/phoenix/core/preprocessed/function_equal.hpp
-#usr/include/boost/phoenix/core/preprocessed/function_equal_10.hpp
-#usr/include/boost/phoenix/core/preprocessed/function_equal_20.hpp
-#usr/include/boost/phoenix/core/preprocessed/function_equal_30.hpp
-#usr/include/boost/phoenix/core/preprocessed/function_equal_40.hpp
-#usr/include/boost/phoenix/core/preprocessed/function_equal_50.hpp
 #usr/include/boost/phoenix/core/reference.hpp
 #usr/include/boost/phoenix/core/terminal.hpp
 #usr/include/boost/phoenix/core/terminal_fwd.hpp
 #usr/include/boost/phoenix/function/adapt_callable.hpp
 #usr/include/boost/phoenix/function/adapt_function.hpp
 #usr/include/boost/phoenix/function/detail
-#usr/include/boost/phoenix/function/detail/function_operator.hpp
-#usr/include/boost/phoenix/function/detail/function_result_of.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed
-#usr/include/boost/phoenix/function/detail/preprocessed/function_operator.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_operator_10.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_operator_20.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_operator_30.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_operator_40.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_operator_50.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_result_of.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_result_of_10.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_result_of_20.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_result_of_30.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_result_of_40.hpp
-#usr/include/boost/phoenix/function/detail/preprocessed/function_result_of_50.hpp
+#usr/include/boost/phoenix/function/detail/cpp03
+#usr/include/boost/phoenix/function/detail/cpp03/function_operator.hpp
+#usr/include/boost/phoenix/function/detail/cpp03/preprocessed
+#usr/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator.hpp
+#usr/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_10.hpp
+#usr/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_20.hpp
+#usr/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_30.hpp
+#usr/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_40.hpp
+#usr/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_50.hpp
 #usr/include/boost/phoenix/function/function.hpp
+#usr/include/boost/phoenix/function/lazy_list.hpp
+#usr/include/boost/phoenix/function/lazy_operator.hpp
+#usr/include/boost/phoenix/function/lazy_prelude.hpp
+#usr/include/boost/phoenix/function/lazy_reuse.hpp
+#usr/include/boost/phoenix/function/lazy_signature.hpp
+#usr/include/boost/phoenix/function/lazy_smart.hpp
 #usr/include/boost/phoenix/fusion
 #usr/include/boost/phoenix/fusion.hpp
 #usr/include/boost/phoenix/fusion/at.hpp
 #usr/include/boost/phoenix/object/construct.hpp
 #usr/include/boost/phoenix/object/delete.hpp
 #usr/include/boost/phoenix/object/detail
-#usr/include/boost/phoenix/object/detail/construct.hpp
-#usr/include/boost/phoenix/object/detail/construct_eval.hpp
-#usr/include/boost/phoenix/object/detail/new.hpp
-#usr/include/boost/phoenix/object/detail/new_eval.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed
-#usr/include/boost/phoenix/object/detail/preprocessed/construct.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_10.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_20.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_30.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_40.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_50.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_eval.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_eval_10.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_eval_20.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_eval_30.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_eval_40.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/construct_eval_50.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_10.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_20.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_30.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_40.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_50.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_eval.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_eval_10.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_eval_20.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_eval_30.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_eval_40.hpp
-#usr/include/boost/phoenix/object/detail/preprocessed/new_eval_50.hpp
+#usr/include/boost/phoenix/object/detail/cpp03
+#usr/include/boost/phoenix/object/detail/cpp03/construct.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/construct_eval.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/construct_expr.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/new.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/new_eval.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/new_expr.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_10.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_20.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_30.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_40.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_50.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_eval.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_eval_10.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_eval_20.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_eval_30.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_eval_40.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_eval_50.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_expr.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_expr_10.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_expr_20.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_expr_30.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_expr_40.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/construct_expr_50.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_10.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_20.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_30.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_40.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_50.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_eval.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_eval_10.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_eval_20.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_eval_30.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_eval_40.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_eval_50.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_expr.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_expr_10.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_expr_20.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_expr_30.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_expr_40.hpp
+#usr/include/boost/phoenix/object/detail/cpp03/preprocessed/new_expr_50.hpp
 #usr/include/boost/phoenix/object/detail/target.hpp
 #usr/include/boost/phoenix/object/dynamic_cast.hpp
 #usr/include/boost/phoenix/object/new.hpp
 #usr/include/boost/phoenix/operator/bitwise.hpp
 #usr/include/boost/phoenix/operator/comparison.hpp
 #usr/include/boost/phoenix/operator/detail
+#usr/include/boost/phoenix/operator/detail/cpp03
+#usr/include/boost/phoenix/operator/detail/cpp03/mem_fun_ptr_eval.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/mem_fun_ptr_eval_result_of.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/mem_fun_ptr_expr.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/mem_fun_ptr_gen.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_10.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_20.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_30.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_40.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_50.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_eval_result_of.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_expr.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_expr_10.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_expr_20.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_expr_30.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_expr_40.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_expr_50.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_gen.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_gen_10.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_gen_20.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_gen_30.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_gen_40.hpp
+#usr/include/boost/phoenix/operator/detail/cpp03/preprocessed/mem_fun_ptr_gen_50.hpp
 #usr/include/boost/phoenix/operator/detail/define_operator.hpp
-#usr/include/boost/phoenix/operator/detail/mem_fun_ptr_eval_result_of.hpp
-#usr/include/boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp
-#usr/include/boost/phoenix/operator/detail/preprocessed
-#usr/include/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen.hpp
-#usr/include/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp
-#usr/include/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp
-#usr/include/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp
-#usr/include/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp
-#usr/include/boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp
 #usr/include/boost/phoenix/operator/detail/undef_operator.hpp
 #usr/include/boost/phoenix/operator/if_else.hpp
 #usr/include/boost/phoenix/operator/io.hpp
 #usr/include/boost/phoenix/operator/logical.hpp
 #usr/include/boost/phoenix/operator/member.hpp
-#usr/include/boost/phoenix/operator/preprocessed
-#usr/include/boost/phoenix/operator/preprocessed/member.hpp
-#usr/include/boost/phoenix/operator/preprocessed/member_10.hpp
-#usr/include/boost/phoenix/operator/preprocessed/member_20.hpp
-#usr/include/boost/phoenix/operator/preprocessed/member_30.hpp
-#usr/include/boost/phoenix/operator/preprocessed/member_40.hpp
-#usr/include/boost/phoenix/operator/preprocessed/member_50.hpp
 #usr/include/boost/phoenix/operator/self.hpp
 #usr/include/boost/phoenix/phoenix.hpp
 #usr/include/boost/phoenix/scope
 #usr/include/boost/phoenix/scope.hpp
 #usr/include/boost/phoenix/scope/detail
-#usr/include/boost/phoenix/scope/detail/dynamic.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03
+#usr/include/boost/phoenix/scope/detail/cpp03/dynamic.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/lambda.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/local_gen.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/dynamic.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/dynamic_10.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/dynamic_20.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/dynamic_30.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/dynamic_40.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/dynamic_50.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/lambda.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/lambda_10.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/lambda_20.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/lambda_30.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/lambda_40.hpp
+#usr/include/boost/phoenix/scope/detail/cpp03/preprocessed/lambda_50.hpp
 #usr/include/boost/phoenix/scope/detail/local_gen.hpp
 #usr/include/boost/phoenix/scope/detail/local_variable.hpp
-#usr/include/boost/phoenix/scope/detail/make_locals.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed
-#usr/include/boost/phoenix/scope/detail/preprocessed/dynamic.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/dynamic_10.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/dynamic_20.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/dynamic_30.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/dynamic_40.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/dynamic_50.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/make_locals.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/make_locals_10.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/make_locals_20.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/make_locals_30.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/make_locals_40.hpp
-#usr/include/boost/phoenix/scope/detail/preprocessed/make_locals_50.hpp
 #usr/include/boost/phoenix/scope/dynamic.hpp
 #usr/include/boost/phoenix/scope/lambda.hpp
 #usr/include/boost/phoenix/scope/let.hpp
 #usr/include/boost/phoenix/scope/local_variable.hpp
-#usr/include/boost/phoenix/scope/preprocessed
-#usr/include/boost/phoenix/scope/preprocessed/lambda.hpp
-#usr/include/boost/phoenix/scope/preprocessed/lambda_10.hpp
-#usr/include/boost/phoenix/scope/preprocessed/lambda_20.hpp
-#usr/include/boost/phoenix/scope/preprocessed/lambda_30.hpp
-#usr/include/boost/phoenix/scope/preprocessed/lambda_40.hpp
-#usr/include/boost/phoenix/scope/preprocessed/lambda_50.hpp
 #usr/include/boost/phoenix/scope/scoped_environment.hpp
 #usr/include/boost/phoenix/scope/this.hpp
 #usr/include/boost/phoenix/statement
 #usr/include/boost/phoenix/stl/algorithm/detail/is_std_list.hpp
 #usr/include/boost/phoenix/stl/algorithm/detail/is_std_map.hpp
 #usr/include/boost/phoenix/stl/algorithm/detail/is_std_set.hpp
+#usr/include/boost/phoenix/stl/algorithm/detail/is_unordered_set_or_map.hpp
 #usr/include/boost/phoenix/stl/algorithm/detail/std_hash_map_fwd.hpp
 #usr/include/boost/phoenix/stl/algorithm/detail/std_hash_set_fwd.hpp
+#usr/include/boost/phoenix/stl/algorithm/detail/std_unordered_set_or_map_fwd.hpp
 #usr/include/boost/phoenix/stl/algorithm/iteration.hpp
 #usr/include/boost/phoenix/stl/algorithm/querying.hpp
 #usr/include/boost/phoenix/stl/algorithm/transformation.hpp
 #usr/include/boost/polygon/voronoi_builder.hpp
 #usr/include/boost/polygon/voronoi_diagram.hpp
 #usr/include/boost/polygon/voronoi_geometry_type.hpp
+#usr/include/boost/polymorphic_cast.hpp
+#usr/include/boost/polymorphic_pointer_cast.hpp
 #usr/include/boost/pool
 #usr/include/boost/pool/detail
 #usr/include/boost/pool/detail/guard.hpp
 #usr/include/boost/predef/detail
 #usr/include/boost/predef/detail/_cassert.h
 #usr/include/boost/predef/detail/_exception.h
+#usr/include/boost/predef/detail/comp_detected.h
 #usr/include/boost/predef/detail/endian_compat.h
 #usr/include/boost/predef/detail/os_detected.h
+#usr/include/boost/predef/detail/platform_detected.h
 #usr/include/boost/predef/detail/test.h
+#usr/include/boost/predef/detail/test_def.h
+#usr/include/boost/predef/hardware
+#usr/include/boost/predef/hardware.h
+#usr/include/boost/predef/hardware/simd
+#usr/include/boost/predef/hardware/simd.h
+#usr/include/boost/predef/hardware/simd/arm
+#usr/include/boost/predef/hardware/simd/arm.h
+#usr/include/boost/predef/hardware/simd/arm/versions.h
+#usr/include/boost/predef/hardware/simd/ppc
+#usr/include/boost/predef/hardware/simd/ppc.h
+#usr/include/boost/predef/hardware/simd/ppc/versions.h
+#usr/include/boost/predef/hardware/simd/x86
+#usr/include/boost/predef/hardware/simd/x86.h
+#usr/include/boost/predef/hardware/simd/x86/versions.h
+#usr/include/boost/predef/hardware/simd/x86_amd
+#usr/include/boost/predef/hardware/simd/x86_amd.h
+#usr/include/boost/predef/hardware/simd/x86_amd/versions.h
 #usr/include/boost/predef/language
 #usr/include/boost/predef/language.h
 #usr/include/boost/predef/language/objc.h
 #usr/include/boost/predef/os/bsd/net.h
 #usr/include/boost/predef/os/bsd/open.h
 #usr/include/boost/predef/os/cygwin.h
+#usr/include/boost/predef/os/haiku.h
 #usr/include/boost/predef/os/hpux.h
+#usr/include/boost/predef/os/ios.h
 #usr/include/boost/predef/os/irix.h
 #usr/include/boost/predef/os/linux.h
 #usr/include/boost/predef/os/macos.h
 #usr/include/boost/predef/platform
 #usr/include/boost/predef/platform.h
 #usr/include/boost/predef/platform/mingw.h
+#usr/include/boost/predef/platform/windows_desktop.h
+#usr/include/boost/predef/platform/windows_phone.h
+#usr/include/boost/predef/platform/windows_runtime.h
+#usr/include/boost/predef/platform/windows_store.h
+#usr/include/boost/predef/version.h
 #usr/include/boost/predef/version_number.h
 #usr/include/boost/preprocessor
 #usr/include/boost/preprocessor.hpp
 #usr/include/boost/preprocessor/array
 #usr/include/boost/preprocessor/array.hpp
 #usr/include/boost/preprocessor/array/data.hpp
+#usr/include/boost/preprocessor/array/detail
+#usr/include/boost/preprocessor/array/detail/get_data.hpp
 #usr/include/boost/preprocessor/array/elem.hpp
 #usr/include/boost/preprocessor/array/enum.hpp
 #usr/include/boost/preprocessor/array/insert.hpp
 #usr/include/boost/preprocessor/facilities
 #usr/include/boost/preprocessor/facilities.hpp
 #usr/include/boost/preprocessor/facilities/apply.hpp
+#usr/include/boost/preprocessor/facilities/detail
+#usr/include/boost/preprocessor/facilities/detail/is_empty.hpp
 #usr/include/boost/preprocessor/facilities/empty.hpp
 #usr/include/boost/preprocessor/facilities/expand.hpp
 #usr/include/boost/preprocessor/facilities/identity.hpp
 #usr/include/boost/preprocessor/facilities/is_1.hpp
 #usr/include/boost/preprocessor/facilities/is_empty.hpp
 #usr/include/boost/preprocessor/facilities/is_empty_or_1.hpp
+#usr/include/boost/preprocessor/facilities/is_empty_variadic.hpp
 #usr/include/boost/preprocessor/facilities/overload.hpp
 #usr/include/boost/preprocessor/for.hpp
 #usr/include/boost/preprocessor/identity.hpp
 #usr/include/boost/preprocessor/punctuation.hpp
 #usr/include/boost/preprocessor/punctuation/comma.hpp
 #usr/include/boost/preprocessor/punctuation/comma_if.hpp
+#usr/include/boost/preprocessor/punctuation/detail
+#usr/include/boost/preprocessor/punctuation/detail/is_begin_parens.hpp
+#usr/include/boost/preprocessor/punctuation/is_begin_parens.hpp
 #usr/include/boost/preprocessor/punctuation/paren.hpp
 #usr/include/boost/preprocessor/punctuation/paren_if.hpp
+#usr/include/boost/preprocessor/punctuation/remove_parens.hpp
 #usr/include/boost/preprocessor/repeat.hpp
 #usr/include/boost/preprocessor/repeat_2nd.hpp
 #usr/include/boost/preprocessor/repeat_3rd.hpp
 #usr/include/boost/preprocessor/seq/cat.hpp
 #usr/include/boost/preprocessor/seq/detail
 #usr/include/boost/preprocessor/seq/detail/binary_transform.hpp
+#usr/include/boost/preprocessor/seq/detail/is_empty.hpp
 #usr/include/boost/preprocessor/seq/detail/split.hpp
+#usr/include/boost/preprocessor/seq/detail/to_list_msvc.hpp
 #usr/include/boost/preprocessor/seq/elem.hpp
 #usr/include/boost/preprocessor/seq/enum.hpp
 #usr/include/boost/preprocessor/seq/filter.hpp
 #usr/include/boost/preprocessor/seq/to_list.hpp
 #usr/include/boost/preprocessor/seq/to_tuple.hpp
 #usr/include/boost/preprocessor/seq/transform.hpp
+#usr/include/boost/preprocessor/seq/variadic_seq_to_seq.hpp
 #usr/include/boost/preprocessor/slot
 #usr/include/boost/preprocessor/slot.hpp
 #usr/include/boost/preprocessor/slot/counter.hpp
 #usr/include/boost/preprocessor/stringize.hpp
 #usr/include/boost/preprocessor/tuple
 #usr/include/boost/preprocessor/tuple.hpp
+#usr/include/boost/preprocessor/tuple/detail
+#usr/include/boost/preprocessor/tuple/detail/is_single_return.hpp
 #usr/include/boost/preprocessor/tuple/eat.hpp
 #usr/include/boost/preprocessor/tuple/elem.hpp
 #usr/include/boost/preprocessor/tuple/enum.hpp
+#usr/include/boost/preprocessor/tuple/insert.hpp
+#usr/include/boost/preprocessor/tuple/pop_back.hpp
+#usr/include/boost/preprocessor/tuple/pop_front.hpp
+#usr/include/boost/preprocessor/tuple/push_back.hpp
+#usr/include/boost/preprocessor/tuple/push_front.hpp
 #usr/include/boost/preprocessor/tuple/rem.hpp
+#usr/include/boost/preprocessor/tuple/remove.hpp
+#usr/include/boost/preprocessor/tuple/replace.hpp
 #usr/include/boost/preprocessor/tuple/reverse.hpp
 #usr/include/boost/preprocessor/tuple/size.hpp
 #usr/include/boost/preprocessor/tuple/to_array.hpp
 #usr/include/boost/preprocessor/tuple/to_seq.hpp
 #usr/include/boost/preprocessor/variadic
 #usr/include/boost/preprocessor/variadic.hpp
+#usr/include/boost/preprocessor/variadic/detail
+#usr/include/boost/preprocessor/variadic/detail/is_single_return.hpp
 #usr/include/boost/preprocessor/variadic/elem.hpp
 #usr/include/boost/preprocessor/variadic/size.hpp
 #usr/include/boost/preprocessor/variadic/to_array.hpp
 #usr/include/boost/preprocessor/variadic/to_tuple.hpp
 #usr/include/boost/preprocessor/while.hpp
 #usr/include/boost/preprocessor/wstringize.hpp
+#usr/include/boost/process
+#usr/include/boost/process.hpp
+#usr/include/boost/process/args.hpp
+#usr/include/boost/process/async.hpp
+#usr/include/boost/process/async_pipe.hpp
+#usr/include/boost/process/async_system.hpp
+#usr/include/boost/process/child.hpp
+#usr/include/boost/process/cmd.hpp
+#usr/include/boost/process/detail
+#usr/include/boost/process/detail/async_handler.hpp
+#usr/include/boost/process/detail/basic_cmd.hpp
+#usr/include/boost/process/detail/child_decl.hpp
+#usr/include/boost/process/detail/config.hpp
+#usr/include/boost/process/detail/execute_impl.hpp
+#usr/include/boost/process/detail/handler.hpp
+#usr/include/boost/process/detail/handler_base.hpp
+#usr/include/boost/process/detail/on_exit.hpp
+#usr/include/boost/process/detail/posix
+#usr/include/boost/process/detail/posix/asio_fwd.hpp
+#usr/include/boost/process/detail/posix/async_handler.hpp
+#usr/include/boost/process/detail/posix/async_in.hpp
+#usr/include/boost/process/detail/posix/async_out.hpp
+#usr/include/boost/process/detail/posix/async_pipe.hpp
+#usr/include/boost/process/detail/posix/basic_cmd.hpp
+#usr/include/boost/process/detail/posix/basic_pipe.hpp
+#usr/include/boost/process/detail/posix/child_handle.hpp
+#usr/include/boost/process/detail/posix/close_in.hpp
+#usr/include/boost/process/detail/posix/close_out.hpp
+#usr/include/boost/process/detail/posix/cmd.hpp
+#usr/include/boost/process/detail/posix/compare_handles.hpp
+#usr/include/boost/process/detail/posix/env_init.hpp
+#usr/include/boost/process/detail/posix/environment.hpp
+#usr/include/boost/process/detail/posix/exe.hpp
+#usr/include/boost/process/detail/posix/executor.hpp
+#usr/include/boost/process/detail/posix/fd.hpp
+#usr/include/boost/process/detail/posix/file_descriptor.hpp
+#usr/include/boost/process/detail/posix/file_in.hpp
+#usr/include/boost/process/detail/posix/file_out.hpp
+#usr/include/boost/process/detail/posix/group_handle.hpp
+#usr/include/boost/process/detail/posix/group_ref.hpp
+#usr/include/boost/process/detail/posix/handler.hpp
+#usr/include/boost/process/detail/posix/io_service_ref.hpp
+#usr/include/boost/process/detail/posix/is_running.hpp
+#usr/include/boost/process/detail/posix/null_in.hpp
+#usr/include/boost/process/detail/posix/null_out.hpp
+#usr/include/boost/process/detail/posix/on_exit.hpp
+#usr/include/boost/process/detail/posix/pipe_in.hpp
+#usr/include/boost/process/detail/posix/pipe_out.hpp
+#usr/include/boost/process/detail/posix/search_path.hpp
+#usr/include/boost/process/detail/posix/shell_path.hpp
+#usr/include/boost/process/detail/posix/signal.hpp
+#usr/include/boost/process/detail/posix/start_dir.hpp
+#usr/include/boost/process/detail/posix/terminate.hpp
+#usr/include/boost/process/detail/posix/use_vfork.hpp
+#usr/include/boost/process/detail/posix/wait_for_exit.hpp
+#usr/include/boost/process/detail/posix/wait_group.hpp
+#usr/include/boost/process/detail/throw_on_error.hpp
+#usr/include/boost/process/detail/traits
+#usr/include/boost/process/detail/traits.hpp
+#usr/include/boost/process/detail/traits/async.hpp
+#usr/include/boost/process/detail/traits/cmd_or_exe.hpp
+#usr/include/boost/process/detail/traits/decl.hpp
+#usr/include/boost/process/detail/traits/env.hpp
+#usr/include/boost/process/detail/traits/error.hpp
+#usr/include/boost/process/detail/traits/group.hpp
+#usr/include/boost/process/detail/traits/wchar_t.hpp
+#usr/include/boost/process/detail/windows
+#usr/include/boost/process/detail/windows/asio_fwd.hpp
+#usr/include/boost/process/detail/windows/async_handler.hpp
+#usr/include/boost/process/detail/windows/async_in.hpp
+#usr/include/boost/process/detail/windows/async_out.hpp
+#usr/include/boost/process/detail/windows/async_pipe.hpp
+#usr/include/boost/process/detail/windows/basic_cmd.hpp
+#usr/include/boost/process/detail/windows/basic_pipe.hpp
+#usr/include/boost/process/detail/windows/child_handle.hpp
+#usr/include/boost/process/detail/windows/close_in.hpp
+#usr/include/boost/process/detail/windows/close_out.hpp
+#usr/include/boost/process/detail/windows/cmd.hpp
+#usr/include/boost/process/detail/windows/compare_handles.hpp
+#usr/include/boost/process/detail/windows/env_init.hpp
+#usr/include/boost/process/detail/windows/environment.hpp
+#usr/include/boost/process/detail/windows/executor.hpp
+#usr/include/boost/process/detail/windows/file_descriptor.hpp
+#usr/include/boost/process/detail/windows/file_in.hpp
+#usr/include/boost/process/detail/windows/file_out.hpp
+#usr/include/boost/process/detail/windows/group_handle.hpp
+#usr/include/boost/process/detail/windows/group_ref.hpp
+#usr/include/boost/process/detail/windows/handler.hpp
+#usr/include/boost/process/detail/windows/io_service_ref.hpp
+#usr/include/boost/process/detail/windows/is_running.hpp
+#usr/include/boost/process/detail/windows/job_workaround.hpp
+#usr/include/boost/process/detail/windows/locale.hpp
+#usr/include/boost/process/detail/windows/null_in.hpp
+#usr/include/boost/process/detail/windows/null_out.hpp
+#usr/include/boost/process/detail/windows/on_exit.hpp
+#usr/include/boost/process/detail/windows/pipe_in.hpp
+#usr/include/boost/process/detail/windows/pipe_out.hpp
+#usr/include/boost/process/detail/windows/search_path.hpp
+#usr/include/boost/process/detail/windows/shell_path.hpp
+#usr/include/boost/process/detail/windows/show_window.hpp
+#usr/include/boost/process/detail/windows/start_dir.hpp
+#usr/include/boost/process/detail/windows/terminate.hpp
+#usr/include/boost/process/detail/windows/wait_for_exit.hpp
+#usr/include/boost/process/detail/windows/wait_group.hpp
+#usr/include/boost/process/env.hpp
+#usr/include/boost/process/environment.hpp
+#usr/include/boost/process/error.hpp
+#usr/include/boost/process/exception.hpp
+#usr/include/boost/process/exe.hpp
+#usr/include/boost/process/extend.hpp
+#usr/include/boost/process/group.hpp
+#usr/include/boost/process/io.hpp
+#usr/include/boost/process/locale.hpp
+#usr/include/boost/process/pipe.hpp
+#usr/include/boost/process/posix.hpp
+#usr/include/boost/process/search_path.hpp
+#usr/include/boost/process/shell.hpp
+#usr/include/boost/process/spawn.hpp
+#usr/include/boost/process/start_dir.hpp
+#usr/include/boost/process/system.hpp
+#usr/include/boost/process/windows.hpp
 #usr/include/boost/program_options
 #usr/include/boost/program_options.hpp
 #usr/include/boost/program_options/cmdline.hpp
 #usr/include/boost/property_map/dynamic_property_map.hpp
 #usr/include/boost/property_map/function_property_map.hpp
 #usr/include/boost/property_map/parallel
+#usr/include/boost/property_map/parallel/basic_reduce.hpp
 #usr/include/boost/property_map/parallel/caching_property_map.hpp
+#usr/include/boost/property_map/parallel/detail
+#usr/include/boost/property_map/parallel/detail/untracked_pair.hpp
 #usr/include/boost/property_map/parallel/distributed_property_map.hpp
 #usr/include/boost/property_map/parallel/global_index_map.hpp
 #usr/include/boost/property_map/parallel/impl
 #usr/include/boost/property_map/parallel/impl/distributed_property_map.ipp
 #usr/include/boost/property_map/parallel/local_property_map.hpp
+#usr/include/boost/property_map/parallel/parallel_property_maps.hpp
+#usr/include/boost/property_map/parallel/process_group.hpp
+#usr/include/boost/property_map/parallel/simple_trigger.hpp
+#usr/include/boost/property_map/parallel/unsafe_serialize.hpp
+#usr/include/boost/property_map/parallel/vector_property_map.hpp
 #usr/include/boost/property_map/property_map.hpp
 #usr/include/boost/property_map/property_map_iterator.hpp
 #usr/include/boost/property_map/shared_array_property_map.hpp
 #usr/include/boost/property_tree/detail/info_parser_utils.hpp
 #usr/include/boost/property_tree/detail/info_parser_write.hpp
 #usr/include/boost/property_tree/detail/info_parser_writer_settings.hpp
-#usr/include/boost/property_tree/detail/json_parser_error.hpp
-#usr/include/boost/property_tree/detail/json_parser_read.hpp
-#usr/include/boost/property_tree/detail/json_parser_write.hpp
 #usr/include/boost/property_tree/detail/ptree_implementation.hpp
 #usr/include/boost/property_tree/detail/ptree_utils.hpp
 #usr/include/boost/property_tree/detail/rapidxml.hpp
 #usr/include/boost/property_tree/id_translator.hpp
 #usr/include/boost/property_tree/info_parser.hpp
 #usr/include/boost/property_tree/ini_parser.hpp
+#usr/include/boost/property_tree/json_parser
 #usr/include/boost/property_tree/json_parser.hpp
+#usr/include/boost/property_tree/json_parser/detail
+#usr/include/boost/property_tree/json_parser/detail/narrow_encoding.hpp
+#usr/include/boost/property_tree/json_parser/detail/parser.hpp
+#usr/include/boost/property_tree/json_parser/detail/read.hpp
+#usr/include/boost/property_tree/json_parser/detail/standard_callbacks.hpp
+#usr/include/boost/property_tree/json_parser/detail/wide_encoding.hpp
+#usr/include/boost/property_tree/json_parser/detail/write.hpp
+#usr/include/boost/property_tree/json_parser/error.hpp
 #usr/include/boost/property_tree/ptree.hpp
 #usr/include/boost/property_tree/ptree_fwd.hpp
 #usr/include/boost/property_tree/ptree_serialization.hpp
 #usr/include/boost/python/detail/translate_exception.hpp
 #usr/include/boost/python/detail/type_list.hpp
 #usr/include/boost/python/detail/type_list_impl.hpp
-#usr/include/boost/python/detail/type_list_impl_no_pts.hpp
 #usr/include/boost/python/detail/unwind_type.hpp
 #usr/include/boost/python/detail/unwrap_type_id.hpp
 #usr/include/boost/python/detail/unwrap_wrapper.hpp
 #usr/include/boost/python/module.hpp
 #usr/include/boost/python/module_init.hpp
 #usr/include/boost/python/numeric.hpp
+#usr/include/boost/python/numpy
+#usr/include/boost/python/numpy.hpp
+#usr/include/boost/python/numpy/config.hpp
+#usr/include/boost/python/numpy/dtype.hpp
+#usr/include/boost/python/numpy/internal.hpp
+#usr/include/boost/python/numpy/invoke_matching.hpp
+#usr/include/boost/python/numpy/matrix.hpp
+#usr/include/boost/python/numpy/ndarray.hpp
+#usr/include/boost/python/numpy/numpy_object_mgr_traits.hpp
+#usr/include/boost/python/numpy/scalars.hpp
+#usr/include/boost/python/numpy/ufunc.hpp
 #usr/include/boost/python/object
 #usr/include/boost/python/object.hpp
 #usr/include/boost/python/object/add_to_namespace.hpp
 #usr/include/boost/python/type_id.hpp
 #usr/include/boost/python/with_custodian_and_ward.hpp
 #usr/include/boost/python/wrapper.hpp
+#usr/include/boost/qvm
+#usr/include/boost/qvm/all.hpp
+#usr/include/boost/qvm/assert.hpp
+#usr/include/boost/qvm/deduce_mat.hpp
+#usr/include/boost/qvm/deduce_quat.hpp
+#usr/include/boost/qvm/deduce_scalar.hpp
+#usr/include/boost/qvm/deduce_vec.hpp
+#usr/include/boost/qvm/detail
+#usr/include/boost/qvm/detail/cofactor_impl.hpp
+#usr/include/boost/qvm/detail/determinant_impl.hpp
+#usr/include/boost/qvm/detail/remove_const.hpp
+#usr/include/boost/qvm/detail/swizzle_traits.hpp
+#usr/include/boost/qvm/detail/transp_impl.hpp
+#usr/include/boost/qvm/enable_if.hpp
+#usr/include/boost/qvm/error.hpp
+#usr/include/boost/qvm/gen
+#usr/include/boost/qvm/gen/mat_operations2.hpp
+#usr/include/boost/qvm/gen/mat_operations3.hpp
+#usr/include/boost/qvm/gen/mat_operations4.hpp
+#usr/include/boost/qvm/gen/swizzle2.hpp
+#usr/include/boost/qvm/gen/swizzle3.hpp
+#usr/include/boost/qvm/gen/swizzle4.hpp
+#usr/include/boost/qvm/gen/vec_mat_operations2.hpp
+#usr/include/boost/qvm/gen/vec_mat_operations3.hpp
+#usr/include/boost/qvm/gen/vec_mat_operations4.hpp
+#usr/include/boost/qvm/gen/vec_operations2.hpp
+#usr/include/boost/qvm/gen/vec_operations3.hpp
+#usr/include/boost/qvm/gen/vec_operations4.hpp
+#usr/include/boost/qvm/inline.hpp
+#usr/include/boost/qvm/map.hpp
+#usr/include/boost/qvm/map_mat_mat.hpp
+#usr/include/boost/qvm/map_mat_vec.hpp
+#usr/include/boost/qvm/map_vec_mat.hpp
+#usr/include/boost/qvm/mat.hpp
+#usr/include/boost/qvm/mat_access.hpp
+#usr/include/boost/qvm/mat_operations.hpp
+#usr/include/boost/qvm/mat_operations2.hpp
+#usr/include/boost/qvm/mat_operations3.hpp
+#usr/include/boost/qvm/mat_operations4.hpp
+#usr/include/boost/qvm/mat_traits.hpp
+#usr/include/boost/qvm/mat_traits_array.hpp
+#usr/include/boost/qvm/mat_traits_defaults.hpp
+#usr/include/boost/qvm/math.hpp
+#usr/include/boost/qvm/operations.hpp
+#usr/include/boost/qvm/quat.hpp
+#usr/include/boost/qvm/quat_access.hpp
+#usr/include/boost/qvm/quat_operations.hpp
+#usr/include/boost/qvm/quat_traits.hpp
+#usr/include/boost/qvm/quat_traits_array.hpp
+#usr/include/boost/qvm/quat_traits_defaults.hpp
+#usr/include/boost/qvm/quat_vec_operations.hpp
+#usr/include/boost/qvm/scalar_traits.hpp
+#usr/include/boost/qvm/static_assert.hpp
+#usr/include/boost/qvm/swizzle.hpp
+#usr/include/boost/qvm/swizzle2.hpp
+#usr/include/boost/qvm/swizzle3.hpp
+#usr/include/boost/qvm/swizzle4.hpp
+#usr/include/boost/qvm/throw_exception.hpp
+#usr/include/boost/qvm/to_string.hpp
+#usr/include/boost/qvm/vec.hpp
+#usr/include/boost/qvm/vec_access.hpp
+#usr/include/boost/qvm/vec_mat_operations.hpp
+#usr/include/boost/qvm/vec_mat_operations2.hpp
+#usr/include/boost/qvm/vec_mat_operations3.hpp
+#usr/include/boost/qvm/vec_mat_operations4.hpp
+#usr/include/boost/qvm/vec_operations.hpp
+#usr/include/boost/qvm/vec_operations2.hpp
+#usr/include/boost/qvm/vec_operations3.hpp
+#usr/include/boost/qvm/vec_operations4.hpp
+#usr/include/boost/qvm/vec_traits.hpp
+#usr/include/boost/qvm/vec_traits_array.hpp
+#usr/include/boost/qvm/vec_traits_defaults.hpp
 #usr/include/boost/random
 #usr/include/boost/random.hpp
 #usr/include/boost/random/additive_combine.hpp
 #usr/include/boost/random/bernoulli_distribution.hpp
+#usr/include/boost/random/beta_distribution.hpp
 #usr/include/boost/random/binomial_distribution.hpp
 #usr/include/boost/random/cauchy_distribution.hpp
 #usr/include/boost/random/chi_squared_distribution.hpp
 #usr/include/boost/random/detail/enable_warnings.hpp
 #usr/include/boost/random/detail/generator_bits.hpp
 #usr/include/boost/random/detail/generator_seed_seq.hpp
+#usr/include/boost/random/detail/int_float_pair.hpp
 #usr/include/boost/random/detail/integer_log2.hpp
 #usr/include/boost/random/detail/iterator_mixin.hpp
 #usr/include/boost/random/detail/large_arithmetic.hpp
 #usr/include/boost/random/detail/operators.hpp
+#usr/include/boost/random/detail/polynomial.hpp
 #usr/include/boost/random/detail/ptr_helper.hpp
 #usr/include/boost/random/detail/seed.hpp
 #usr/include/boost/random/detail/seed_impl.hpp
 #usr/include/boost/random/gamma_distribution.hpp
 #usr/include/boost/random/generate_canonical.hpp
 #usr/include/boost/random/geometric_distribution.hpp
+#usr/include/boost/random/hyperexponential_distribution.hpp
 #usr/include/boost/random/independent_bits.hpp
 #usr/include/boost/random/inversive_congruential.hpp
 #usr/include/boost/random/lagged_fibonacci.hpp
+#usr/include/boost/random/laplace_distribution.hpp
 #usr/include/boost/random/linear_congruential.hpp
 #usr/include/boost/random/linear_feedback_shift.hpp
 #usr/include/boost/random/lognormal_distribution.hpp
 #usr/include/boost/random/mersenne_twister.hpp
 #usr/include/boost/random/negative_binomial_distribution.hpp
+#usr/include/boost/random/non_central_chi_squared_distribution.hpp
 #usr/include/boost/random/normal_distribution.hpp
 #usr/include/boost/random/piecewise_constant_distribution.hpp
 #usr/include/boost/random/piecewise_linear_distribution.hpp
 #usr/include/boost/random/student_t_distribution.hpp
 #usr/include/boost/random/subtract_with_carry.hpp
 #usr/include/boost/random/taus88.hpp
+#usr/include/boost/random/traits.hpp
 #usr/include/boost/random/triangle_distribution.hpp
 #usr/include/boost/random/uniform_01.hpp
 #usr/include/boost/random/uniform_int.hpp
 #usr/include/boost/range/adaptor/copied.hpp
 #usr/include/boost/range/adaptor/define_adaptor.hpp
 #usr/include/boost/range/adaptor/filtered.hpp
+#usr/include/boost/range/adaptor/formatted.hpp
 #usr/include/boost/range/adaptor/indexed.hpp
 #usr/include/boost/range/adaptor/indirected.hpp
 #usr/include/boost/range/adaptor/map.hpp
 #usr/include/boost/range/detail/begin.hpp
 #usr/include/boost/range/detail/collection_traits.hpp
 #usr/include/boost/range/detail/collection_traits_detail.hpp
+#usr/include/boost/range/detail/combine_cxx03.hpp
+#usr/include/boost/range/detail/combine_cxx11.hpp
+#usr/include/boost/range/detail/combine_no_rvalue.hpp
+#usr/include/boost/range/detail/combine_rvalue.hpp
 #usr/include/boost/range/detail/common.hpp
-#usr/include/boost/range/detail/const_iterator.hpp
+#usr/include/boost/range/detail/default_constructible_unary_fn.hpp
 #usr/include/boost/range/detail/demote_iterator_traversal_tag.hpp
 #usr/include/boost/range/detail/detail_str.hpp
 #usr/include/boost/range/detail/difference_type.hpp
 #usr/include/boost/range/detail/empty.hpp
 #usr/include/boost/range/detail/end.hpp
 #usr/include/boost/range/detail/extract_optional_type.hpp
+#usr/include/boost/range/detail/has_member_size.hpp
 #usr/include/boost/range/detail/implementation_help.hpp
-#usr/include/boost/range/detail/iterator.hpp
 #usr/include/boost/range/detail/join_iterator.hpp
 #usr/include/boost/range/detail/microsoft.hpp
 #usr/include/boost/range/detail/misc_concept.hpp
+#usr/include/boost/range/detail/msvc_has_iterator_workaround.hpp
 #usr/include/boost/range/detail/range_return.hpp
 #usr/include/boost/range/detail/remove_extent.hpp
 #usr/include/boost/range/detail/safe_bool.hpp
 #usr/include/boost/range/detail/sfinae.hpp
-#usr/include/boost/range/detail/size.hpp
 #usr/include/boost/range/detail/size_type.hpp
 #usr/include/boost/range/detail/sizer.hpp
 #usr/include/boost/range/detail/str_types.hpp
 #usr/include/boost/range/detail/value_type.hpp
-#usr/include/boost/range/detail/vc6
-#usr/include/boost/range/detail/vc6/end.hpp
-#usr/include/boost/range/detail/vc6/size.hpp
 #usr/include/boost/range/difference_type.hpp
 #usr/include/boost/range/distance.hpp
 #usr/include/boost/range/empty.hpp
 #usr/include/boost/range/iterator.hpp
 #usr/include/boost/range/iterator_range.hpp
 #usr/include/boost/range/iterator_range_core.hpp
+#usr/include/boost/range/iterator_range_hash.hpp
 #usr/include/boost/range/iterator_range_io.hpp
 #usr/include/boost/range/join.hpp
 #usr/include/boost/range/metafunctions.hpp
 #usr/include/boost/range/mfc.hpp
+#usr/include/boost/range/mfc_map.hpp
 #usr/include/boost/range/mutable_iterator.hpp
 #usr/include/boost/range/numeric.hpp
 #usr/include/boost/range/pointer.hpp
+#usr/include/boost/range/range_fwd.hpp
 #usr/include/boost/range/rbegin.hpp
 #usr/include/boost/range/reference.hpp
 #usr/include/boost/range/rend.hpp
 #usr/include/boost/range/size.hpp
 #usr/include/boost/range/size_type.hpp
 #usr/include/boost/range/sub_range.hpp
+#usr/include/boost/range/traversal.hpp
 #usr/include/boost/range/value_type.hpp
 #usr/include/boost/ratio
 #usr/include/boost/ratio.hpp
 #usr/include/boost/ratio/ratio.hpp
 #usr/include/boost/ratio/ratio_fwd.hpp
 #usr/include/boost/ratio/ratio_io.hpp
-#usr/include/boost/ratio/ratio_static_string.hpp
 #usr/include/boost/rational.hpp
 #usr/include/boost/ref.hpp
 #usr/include/boost/regex
 #usr/include/boost/scoped_ptr.hpp
 #usr/include/boost/serialization
 #usr/include/boost/serialization/access.hpp
+#usr/include/boost/serialization/archive_input_unordered_map.hpp
+#usr/include/boost/serialization/archive_input_unordered_set.hpp
 #usr/include/boost/serialization/array.hpp
+#usr/include/boost/serialization/array_optimization.hpp
+#usr/include/boost/serialization/array_wrapper.hpp
 #usr/include/boost/serialization/assume_abstract.hpp
 #usr/include/boost/serialization/base_object.hpp
 #usr/include/boost/serialization/binary_object.hpp
 #usr/include/boost/serialization/bitset.hpp
+#usr/include/boost/serialization/boost_array.hpp
+#usr/include/boost/serialization/boost_unordered_map.hpp
+#usr/include/boost/serialization/boost_unordered_set.hpp
 #usr/include/boost/serialization/collection_size_type.hpp
 #usr/include/boost/serialization/collection_traits.hpp
 #usr/include/boost/serialization/collections_load_imp.hpp
 #usr/include/boost/serialization/config.hpp
 #usr/include/boost/serialization/deque.hpp
 #usr/include/boost/serialization/detail
-#usr/include/boost/serialization/detail/get_data.hpp
+#usr/include/boost/serialization/detail/is_default_constructible.hpp
 #usr/include/boost/serialization/detail/shared_count_132.hpp
 #usr/include/boost/serialization/detail/shared_ptr_132.hpp
 #usr/include/boost/serialization/detail/shared_ptr_nmt_132.hpp
 #usr/include/boost/serialization/extended_type_info_typeid.hpp
 #usr/include/boost/serialization/factory.hpp
 #usr/include/boost/serialization/force_include.hpp
+#usr/include/boost/serialization/forward_list.hpp
 #usr/include/boost/serialization/hash_collections_load_imp.hpp
 #usr/include/boost/serialization/hash_collections_save_imp.hpp
 #usr/include/boost/serialization/hash_map.hpp
 #usr/include/boost/serialization/map.hpp
 #usr/include/boost/serialization/nvp.hpp
 #usr/include/boost/serialization/optional.hpp
-#usr/include/boost/serialization/pfto.hpp
+#usr/include/boost/serialization/priority_queue.hpp
+#usr/include/boost/serialization/queue.hpp
 #usr/include/boost/serialization/scoped_ptr.hpp
 #usr/include/boost/serialization/serialization.hpp
 #usr/include/boost/serialization/set.hpp
 #usr/include/boost/serialization/shared_ptr.hpp
 #usr/include/boost/serialization/shared_ptr_132.hpp
+#usr/include/boost/serialization/shared_ptr_helper.hpp
 #usr/include/boost/serialization/singleton.hpp
 #usr/include/boost/serialization/slist.hpp
 #usr/include/boost/serialization/smart_cast.hpp
 #usr/include/boost/serialization/split_free.hpp
 #usr/include/boost/serialization/split_member.hpp
+#usr/include/boost/serialization/stack.hpp
 #usr/include/boost/serialization/state_saver.hpp
 #usr/include/boost/serialization/static_warning.hpp
 #usr/include/boost/serialization/string.hpp
 #usr/include/boost/serialization/tracking_enum.hpp
 #usr/include/boost/serialization/traits.hpp
 #usr/include/boost/serialization/type_info_implementation.hpp
+#usr/include/boost/serialization/unique_ptr.hpp
+#usr/include/boost/serialization/unordered_collections_load_imp.hpp
+#usr/include/boost/serialization/unordered_collections_save_imp.hpp
+#usr/include/boost/serialization/unordered_map.hpp
+#usr/include/boost/serialization/unordered_set.hpp
 #usr/include/boost/serialization/utility.hpp
 #usr/include/boost/serialization/valarray.hpp
 #usr/include/boost/serialization/variant.hpp
 #usr/include/boost/smart_ptr/allocate_shared_array.hpp
 #usr/include/boost/smart_ptr/bad_weak_ptr.hpp
 #usr/include/boost/smart_ptr/detail
-#usr/include/boost/smart_ptr/detail/allocate_array_helper.hpp
-#usr/include/boost/smart_ptr/detail/array_deleter.hpp
-#usr/include/boost/smart_ptr/detail/array_traits.hpp
-#usr/include/boost/smart_ptr/detail/array_utility.hpp
 #usr/include/boost/smart_ptr/detail/atomic_count.hpp
 #usr/include/boost/smart_ptr/detail/atomic_count_gcc.hpp
 #usr/include/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp
-#usr/include/boost/smart_ptr/detail/atomic_count_pthreads.hpp
+#usr/include/boost/smart_ptr/detail/atomic_count_nt.hpp
+#usr/include/boost/smart_ptr/detail/atomic_count_pt.hpp
 #usr/include/boost/smart_ptr/detail/atomic_count_solaris.hpp
+#usr/include/boost/smart_ptr/detail/atomic_count_spin.hpp
+#usr/include/boost/smart_ptr/detail/atomic_count_std_atomic.hpp
 #usr/include/boost/smart_ptr/detail/atomic_count_sync.hpp
 #usr/include/boost/smart_ptr/detail/atomic_count_win32.hpp
 #usr/include/boost/smart_ptr/detail/lightweight_mutex.hpp
 #usr/include/boost/smart_ptr/detail/lwm_nop.hpp
 #usr/include/boost/smart_ptr/detail/lwm_pthreads.hpp
 #usr/include/boost/smart_ptr/detail/lwm_win32_cs.hpp
-#usr/include/boost/smart_ptr/detail/make_array_helper.hpp
 #usr/include/boost/smart_ptr/detail/operator_bool.hpp
 #usr/include/boost/smart_ptr/detail/quick_allocator.hpp
-#usr/include/boost/smart_ptr/detail/shared_array_nmt.hpp
 #usr/include/boost/smart_ptr/detail/shared_count.hpp
-#usr/include/boost/smart_ptr/detail/shared_ptr_nmt.hpp
 #usr/include/boost/smart_ptr/detail/sp_convertible.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_aix.hpp
+#usr/include/boost/smart_ptr/detail/sp_counted_base_clang.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_solaris.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_spin.hpp
+#usr/include/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_base_w32.hpp
 #usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp
+#usr/include/boost/smart_ptr/detail/sp_disable_deprecated.hpp
 #usr/include/boost/smart_ptr/detail/sp_forward.hpp
 #usr/include/boost/smart_ptr/detail/sp_has_sync.hpp
-#usr/include/boost/smart_ptr/detail/sp_if_array.hpp
+#usr/include/boost/smart_ptr/detail/sp_interlocked.hpp
+#usr/include/boost/smart_ptr/detail/sp_noexcept.hpp
 #usr/include/boost/smart_ptr/detail/sp_nullptr_t.hpp
 #usr/include/boost/smart_ptr/detail/spinlock.hpp
 #usr/include/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
 #usr/include/boost/smart_ptr/detail/spinlock_nt.hpp
 #usr/include/boost/smart_ptr/detail/spinlock_pool.hpp
 #usr/include/boost/smart_ptr/detail/spinlock_pt.hpp
+#usr/include/boost/smart_ptr/detail/spinlock_std_atomic.hpp
 #usr/include/boost/smart_ptr/detail/spinlock_sync.hpp
 #usr/include/boost/smart_ptr/detail/spinlock_w32.hpp
 #usr/include/boost/smart_ptr/detail/yield_k.hpp
 #usr/include/boost/smart_ptr/make_shared.hpp
 #usr/include/boost/smart_ptr/make_shared_array.hpp
 #usr/include/boost/smart_ptr/make_shared_object.hpp
+#usr/include/boost/smart_ptr/make_unique.hpp
 #usr/include/boost/smart_ptr/owner_less.hpp
 #usr/include/boost/smart_ptr/scoped_array.hpp
 #usr/include/boost/smart_ptr/scoped_ptr.hpp
 #usr/include/boost/smart_ptr/shared_array.hpp
 #usr/include/boost/smart_ptr/shared_ptr.hpp
 #usr/include/boost/smart_ptr/weak_ptr.hpp
+#usr/include/boost/sort
+#usr/include/boost/sort/sort.hpp
+#usr/include/boost/sort/spreadsort
+#usr/include/boost/sort/spreadsort/detail
+#usr/include/boost/sort/spreadsort/detail/constants.hpp
+#usr/include/boost/sort/spreadsort/detail/float_sort.hpp
+#usr/include/boost/sort/spreadsort/detail/integer_sort.hpp
+#usr/include/boost/sort/spreadsort/detail/spreadsort_common.hpp
+#usr/include/boost/sort/spreadsort/detail/string_sort.hpp
+#usr/include/boost/sort/spreadsort/float_sort.hpp
+#usr/include/boost/sort/spreadsort/integer_sort.hpp
+#usr/include/boost/sort/spreadsort/spreadsort.hpp
+#usr/include/boost/sort/spreadsort/string_sort.hpp
 #usr/include/boost/spirit
 #usr/include/boost/spirit.hpp
 #usr/include/boost/spirit/home
 #usr/include/boost/spirit/home/lex/reference.hpp
 #usr/include/boost/spirit/home/lex/tokenize_and_parse.hpp
 #usr/include/boost/spirit/home/lex/tokenize_and_parse_attr.hpp
-#usr/include/boost/spirit/home/phoenix
-#usr/include/boost/spirit/home/phoenix.hpp
-#usr/include/boost/spirit/home/phoenix/algorithm.hpp
-#usr/include/boost/spirit/home/phoenix/bind
-#usr/include/boost/spirit/home/phoenix/bind.hpp
-#usr/include/boost/spirit/home/phoenix/bind/bind_function.hpp
-#usr/include/boost/spirit/home/phoenix/bind/bind_function_object.hpp
-#usr/include/boost/spirit/home/phoenix/bind/bind_member_function.hpp
-#usr/include/boost/spirit/home/phoenix/bind/bind_member_variable.hpp
-#usr/include/boost/spirit/home/phoenix/bind/detail
-#usr/include/boost/spirit/home/phoenix/bind/detail/bind_function.hpp
-#usr/include/boost/spirit/home/phoenix/bind/detail/bind_function_object.hpp
-#usr/include/boost/spirit/home/phoenix/bind/detail/bind_member_function.hpp
-#usr/include/boost/spirit/home/phoenix/bind/detail/function_ptr.hpp
-#usr/include/boost/spirit/home/phoenix/bind/detail/member_function_ptr.hpp
-#usr/include/boost/spirit/home/phoenix/container.hpp
-#usr/include/boost/spirit/home/phoenix/core
-#usr/include/boost/spirit/home/phoenix/core.hpp
-#usr/include/boost/spirit/home/phoenix/core/actor.hpp
-#usr/include/boost/spirit/home/phoenix/core/argument.hpp
-#usr/include/boost/spirit/home/phoenix/core/as_actor.hpp
-#usr/include/boost/spirit/home/phoenix/core/basic_environment.hpp
-#usr/include/boost/spirit/home/phoenix/core/compose.hpp
-#usr/include/boost/spirit/home/phoenix/core/composite.hpp
-#usr/include/boost/spirit/home/phoenix/core/detail
-#usr/include/boost/spirit/home/phoenix/core/detail/actor.hpp
-#usr/include/boost/spirit/home/phoenix/core/detail/basic_environment.hpp
-#usr/include/boost/spirit/home/phoenix/core/detail/compose.hpp
-#usr/include/boost/spirit/home/phoenix/core/detail/composite.hpp
-#usr/include/boost/spirit/home/phoenix/core/detail/composite_eval.hpp
-#usr/include/boost/spirit/home/phoenix/core/detail/composite_info.hpp
-#usr/include/boost/spirit/home/phoenix/core/detail/function_eval.hpp
-#usr/include/boost/spirit/home/phoenix/core/is_actor.hpp
-#usr/include/boost/spirit/home/phoenix/core/limits.hpp
-#usr/include/boost/spirit/home/phoenix/core/nothing.hpp
-#usr/include/boost/spirit/home/phoenix/core/reference.hpp
-#usr/include/boost/spirit/home/phoenix/core/value.hpp
-#usr/include/boost/spirit/home/phoenix/detail
-#usr/include/boost/spirit/home/phoenix/detail/local_reference.hpp
-#usr/include/boost/spirit/home/phoenix/detail/type_deduction.hpp
-#usr/include/boost/spirit/home/phoenix/function
-#usr/include/boost/spirit/home/phoenix/function.hpp
-#usr/include/boost/spirit/home/phoenix/function/detail
-#usr/include/boost/spirit/home/phoenix/function/detail/function_call.hpp
-#usr/include/boost/spirit/home/phoenix/function/function.hpp
-#usr/include/boost/spirit/home/phoenix/fusion
-#usr/include/boost/spirit/home/phoenix/fusion.hpp
-#usr/include/boost/spirit/home/phoenix/fusion/at.hpp
-#usr/include/boost/spirit/home/phoenix/object
-#usr/include/boost/spirit/home/phoenix/object.hpp
-#usr/include/boost/spirit/home/phoenix/object/const_cast.hpp
-#usr/include/boost/spirit/home/phoenix/object/construct.hpp
-#usr/include/boost/spirit/home/phoenix/object/delete.hpp
-#usr/include/boost/spirit/home/phoenix/object/detail
-#usr/include/boost/spirit/home/phoenix/object/detail/construct.hpp
-#usr/include/boost/spirit/home/phoenix/object/detail/construct_eval.hpp
-#usr/include/boost/spirit/home/phoenix/object/detail/new.hpp
-#usr/include/boost/spirit/home/phoenix/object/detail/new_eval.hpp
-#usr/include/boost/spirit/home/phoenix/object/dynamic_cast.hpp
-#usr/include/boost/spirit/home/phoenix/object/new.hpp
-#usr/include/boost/spirit/home/phoenix/object/reinterpret_cast.hpp
-#usr/include/boost/spirit/home/phoenix/object/static_cast.hpp
-#usr/include/boost/spirit/home/phoenix/operator
-#usr/include/boost/spirit/home/phoenix/operator.hpp
-#usr/include/boost/spirit/home/phoenix/operator/arithmetic.hpp
-#usr/include/boost/spirit/home/phoenix/operator/bitwise.hpp
-#usr/include/boost/spirit/home/phoenix/operator/comparison.hpp
-#usr/include/boost/spirit/home/phoenix/operator/detail
-#usr/include/boost/spirit/home/phoenix/operator/detail/binary_compose.hpp
-#usr/include/boost/spirit/home/phoenix/operator/detail/binary_eval.hpp
-#usr/include/boost/spirit/home/phoenix/operator/detail/io.hpp
-#usr/include/boost/spirit/home/phoenix/operator/detail/mem_fun_ptr_eval.hpp
-#usr/include/boost/spirit/home/phoenix/operator/detail/mem_fun_ptr_gen.hpp
-#usr/include/boost/spirit/home/phoenix/operator/detail/mem_fun_ptr_return.hpp
-#usr/include/boost/spirit/home/phoenix/operator/detail/unary_compose.hpp
-#usr/include/boost/spirit/home/phoenix/operator/detail/unary_eval.hpp
-#usr/include/boost/spirit/home/phoenix/operator/if_else.hpp
-#usr/include/boost/spirit/home/phoenix/operator/io.hpp
-#usr/include/boost/spirit/home/phoenix/operator/logical.hpp
-#usr/include/boost/spirit/home/phoenix/operator/member.hpp
-#usr/include/boost/spirit/home/phoenix/operator/self.hpp
-#usr/include/boost/spirit/home/phoenix/scope
-#usr/include/boost/spirit/home/phoenix/scope.hpp
-#usr/include/boost/spirit/home/phoenix/scope/detail
-#usr/include/boost/spirit/home/phoenix/scope/detail/local_gen.hpp
-#usr/include/boost/spirit/home/phoenix/scope/detail/local_variable.hpp
-#usr/include/boost/spirit/home/phoenix/scope/dynamic.hpp
-#usr/include/boost/spirit/home/phoenix/scope/lambda.hpp
-#usr/include/boost/spirit/home/phoenix/scope/let.hpp
-#usr/include/boost/spirit/home/phoenix/scope/local_variable.hpp
-#usr/include/boost/spirit/home/phoenix/scope/scoped_environment.hpp
-#usr/include/boost/spirit/home/phoenix/statement
-#usr/include/boost/spirit/home/phoenix/statement.hpp
-#usr/include/boost/spirit/home/phoenix/statement/detail
-#usr/include/boost/spirit/home/phoenix/statement/detail/catch_all_eval.hpp
-#usr/include/boost/spirit/home/phoenix/statement/detail/catch_composite.hpp
-#usr/include/boost/spirit/home/phoenix/statement/detail/catch_eval.hpp
-#usr/include/boost/spirit/home/phoenix/statement/detail/switch.hpp
-#usr/include/boost/spirit/home/phoenix/statement/detail/switch_eval.hpp
-#usr/include/boost/spirit/home/phoenix/statement/detail/switch_eval.ipp
-#usr/include/boost/spirit/home/phoenix/statement/do_while.hpp
-#usr/include/boost/spirit/home/phoenix/statement/for.hpp
-#usr/include/boost/spirit/home/phoenix/statement/if.hpp
-#usr/include/boost/spirit/home/phoenix/statement/sequence.hpp
-#usr/include/boost/spirit/home/phoenix/statement/switch.hpp
-#usr/include/boost/spirit/home/phoenix/statement/throw.hpp
-#usr/include/boost/spirit/home/phoenix/statement/try_catch.hpp
-#usr/include/boost/spirit/home/phoenix/statement/while.hpp
-#usr/include/boost/spirit/home/phoenix/stl
-#usr/include/boost/spirit/home/phoenix/stl.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm
-#usr/include/boost/spirit/home/phoenix/stl/algorithm.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/begin.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/decay_array.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/end.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/has_equal_range.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/has_find.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/has_lower_bound.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/has_remove.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/has_remove_if.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/has_reverse.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/has_sort.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/has_unique.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/has_upper_bound.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/is_std_hash_map.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/is_std_hash_set.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/is_std_list.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/is_std_map.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/is_std_set.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/std_hash_map_fwd.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/detail/std_hash_set_fwd.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/iteration.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/querying.hpp
-#usr/include/boost/spirit/home/phoenix/stl/algorithm/transformation.hpp
-#usr/include/boost/spirit/home/phoenix/stl/container
-#usr/include/boost/spirit/home/phoenix/stl/container.hpp
-#usr/include/boost/spirit/home/phoenix/stl/container/container.hpp
-#usr/include/boost/spirit/home/phoenix/stl/container/detail
-#usr/include/boost/spirit/home/phoenix/stl/container/detail/container.hpp
-#usr/include/boost/spirit/home/phoenix/version.hpp
 #usr/include/boost/spirit/home/qi
 #usr/include/boost/spirit/home/qi.hpp
 #usr/include/boost/spirit/home/qi/action
 #usr/include/boost/spirit/home/qi/char/char.hpp
 #usr/include/boost/spirit/home/qi/char/char_class.hpp
 #usr/include/boost/spirit/home/qi/char/char_parser.hpp
+#usr/include/boost/spirit/home/qi/copy.hpp
 #usr/include/boost/spirit/home/qi/detail
 #usr/include/boost/spirit/home/qi/detail/alternative_function.hpp
 #usr/include/boost/spirit/home/qi/detail/assign_to.hpp
 #usr/include/boost/spirit/home/support/attributes.hpp
 #usr/include/boost/spirit/home/support/attributes_fwd.hpp
 #usr/include/boost/spirit/home/support/auto
+#usr/include/boost/spirit/home/support/auto.hpp
 #usr/include/boost/spirit/home/support/auto/meta_create.hpp
 #usr/include/boost/spirit/home/support/auxiliary
 #usr/include/boost/spirit/home/support/auxiliary/attr_cast.hpp
 #usr/include/boost/spirit/home/support/utree/utree.hpp
 #usr/include/boost/spirit/home/support/utree/utree_traits.hpp
 #usr/include/boost/spirit/home/support/utree/utree_traits_fwd.hpp
+#usr/include/boost/spirit/home/x3
+#usr/include/boost/spirit/home/x3.hpp
+#usr/include/boost/spirit/home/x3/auxiliary
+#usr/include/boost/spirit/home/x3/auxiliary.hpp
+#usr/include/boost/spirit/home/x3/auxiliary/any_parser.hpp
+#usr/include/boost/spirit/home/x3/auxiliary/attr.hpp
+#usr/include/boost/spirit/home/x3/auxiliary/eoi.hpp
+#usr/include/boost/spirit/home/x3/auxiliary/eol.hpp
+#usr/include/boost/spirit/home/x3/auxiliary/eps.hpp
+#usr/include/boost/spirit/home/x3/auxiliary/guard.hpp
+#usr/include/boost/spirit/home/x3/binary
+#usr/include/boost/spirit/home/x3/binary.hpp
+#usr/include/boost/spirit/home/x3/binary/binary.hpp
+#usr/include/boost/spirit/home/x3/char
+#usr/include/boost/spirit/home/x3/char.hpp
+#usr/include/boost/spirit/home/x3/char/any_char.hpp
+#usr/include/boost/spirit/home/x3/char/char.hpp
+#usr/include/boost/spirit/home/x3/char/char_class.hpp
+#usr/include/boost/spirit/home/x3/char/char_class_tags.hpp
+#usr/include/boost/spirit/home/x3/char/char_parser.hpp
+#usr/include/boost/spirit/home/x3/char/char_set.hpp
+#usr/include/boost/spirit/home/x3/char/detail
+#usr/include/boost/spirit/home/x3/char/detail/cast_char.hpp
+#usr/include/boost/spirit/home/x3/char/literal_char.hpp
+#usr/include/boost/spirit/home/x3/char/negated_char_parser.hpp
+#usr/include/boost/spirit/home/x3/char/unicode.hpp
+#usr/include/boost/spirit/home/x3/core
+#usr/include/boost/spirit/home/x3/core.hpp
+#usr/include/boost/spirit/home/x3/core/action.hpp
+#usr/include/boost/spirit/home/x3/core/call.hpp
+#usr/include/boost/spirit/home/x3/core/detail
+#usr/include/boost/spirit/home/x3/core/detail/parse_into_container.hpp
+#usr/include/boost/spirit/home/x3/core/parse.hpp
+#usr/include/boost/spirit/home/x3/core/parser.hpp
+#usr/include/boost/spirit/home/x3/core/proxy.hpp
+#usr/include/boost/spirit/home/x3/core/skip_over.hpp
+#usr/include/boost/spirit/home/x3/directive
+#usr/include/boost/spirit/home/x3/directive.hpp
+#usr/include/boost/spirit/home/x3/directive/confix.hpp
+#usr/include/boost/spirit/home/x3/directive/expect.hpp
+#usr/include/boost/spirit/home/x3/directive/lexeme.hpp
+#usr/include/boost/spirit/home/x3/directive/matches.hpp
+#usr/include/boost/spirit/home/x3/directive/no_case.hpp
+#usr/include/boost/spirit/home/x3/directive/no_skip.hpp
+#usr/include/boost/spirit/home/x3/directive/omit.hpp
+#usr/include/boost/spirit/home/x3/directive/raw.hpp
+#usr/include/boost/spirit/home/x3/directive/repeat.hpp
+#usr/include/boost/spirit/home/x3/directive/seek.hpp
+#usr/include/boost/spirit/home/x3/directive/skip.hpp
+#usr/include/boost/spirit/home/x3/directive/with.hpp
+#usr/include/boost/spirit/home/x3/nonterminal
+#usr/include/boost/spirit/home/x3/nonterminal.hpp
+#usr/include/boost/spirit/home/x3/nonterminal/debug_handler_state.hpp
+#usr/include/boost/spirit/home/x3/nonterminal/detail
+#usr/include/boost/spirit/home/x3/nonterminal/detail/rule.hpp
+#usr/include/boost/spirit/home/x3/nonterminal/detail/transform_attribute.hpp
+#usr/include/boost/spirit/home/x3/nonterminal/rule.hpp
+#usr/include/boost/spirit/home/x3/nonterminal/simple_trace.hpp
+#usr/include/boost/spirit/home/x3/numeric
+#usr/include/boost/spirit/home/x3/numeric.hpp
+#usr/include/boost/spirit/home/x3/numeric/bool.hpp
+#usr/include/boost/spirit/home/x3/numeric/bool_policies.hpp
+#usr/include/boost/spirit/home/x3/numeric/int.hpp
+#usr/include/boost/spirit/home/x3/numeric/real.hpp
+#usr/include/boost/spirit/home/x3/numeric/real_policies.hpp
+#usr/include/boost/spirit/home/x3/numeric/uint.hpp
+#usr/include/boost/spirit/home/x3/operator
+#usr/include/boost/spirit/home/x3/operator.hpp
+#usr/include/boost/spirit/home/x3/operator/alternative.hpp
+#usr/include/boost/spirit/home/x3/operator/and_predicate.hpp
+#usr/include/boost/spirit/home/x3/operator/detail
+#usr/include/boost/spirit/home/x3/operator/detail/alternative.hpp
+#usr/include/boost/spirit/home/x3/operator/detail/sequence.hpp
+#usr/include/boost/spirit/home/x3/operator/difference.hpp
+#usr/include/boost/spirit/home/x3/operator/kleene.hpp
+#usr/include/boost/spirit/home/x3/operator/list.hpp
+#usr/include/boost/spirit/home/x3/operator/not_predicate.hpp
+#usr/include/boost/spirit/home/x3/operator/optional.hpp
+#usr/include/boost/spirit/home/x3/operator/plus.hpp
+#usr/include/boost/spirit/home/x3/operator/sequence.hpp
+#usr/include/boost/spirit/home/x3/string
+#usr/include/boost/spirit/home/x3/string.hpp
+#usr/include/boost/spirit/home/x3/string/detail
+#usr/include/boost/spirit/home/x3/string/detail/no_case_string_parse.hpp
+#usr/include/boost/spirit/home/x3/string/detail/string_parse.hpp
+#usr/include/boost/spirit/home/x3/string/detail/tst.hpp
+#usr/include/boost/spirit/home/x3/string/literal_string.hpp
+#usr/include/boost/spirit/home/x3/string/symbols.hpp
+#usr/include/boost/spirit/home/x3/string/tst.hpp
+#usr/include/boost/spirit/home/x3/string/tst_map.hpp
+#usr/include/boost/spirit/home/x3/support
+#usr/include/boost/spirit/home/x3/support/ast
+#usr/include/boost/spirit/home/x3/support/ast/position_tagged.hpp
+#usr/include/boost/spirit/home/x3/support/ast/variant.hpp
+#usr/include/boost/spirit/home/x3/support/context.hpp
+#usr/include/boost/spirit/home/x3/support/no_case.hpp
+#usr/include/boost/spirit/home/x3/support/numeric_utils
+#usr/include/boost/spirit/home/x3/support/numeric_utils/detail
+#usr/include/boost/spirit/home/x3/support/numeric_utils/detail/extract_int.hpp
+#usr/include/boost/spirit/home/x3/support/numeric_utils/extract_int.hpp
+#usr/include/boost/spirit/home/x3/support/numeric_utils/extract_real.hpp
+#usr/include/boost/spirit/home/x3/support/numeric_utils/pow10.hpp
+#usr/include/boost/spirit/home/x3/support/numeric_utils/sign.hpp
+#usr/include/boost/spirit/home/x3/support/subcontext.hpp
+#usr/include/boost/spirit/home/x3/support/traits
+#usr/include/boost/spirit/home/x3/support/traits/attribute_category.hpp
+#usr/include/boost/spirit/home/x3/support/traits/attribute_of.hpp
+#usr/include/boost/spirit/home/x3/support/traits/attribute_type.hpp
+#usr/include/boost/spirit/home/x3/support/traits/container_traits.hpp
+#usr/include/boost/spirit/home/x3/support/traits/handles_container.hpp
+#usr/include/boost/spirit/home/x3/support/traits/has_attribute.hpp
+#usr/include/boost/spirit/home/x3/support/traits/is_parser.hpp
+#usr/include/boost/spirit/home/x3/support/traits/is_substitute.hpp
+#usr/include/boost/spirit/home/x3/support/traits/is_variant.hpp
+#usr/include/boost/spirit/home/x3/support/traits/make_attribute.hpp
+#usr/include/boost/spirit/home/x3/support/traits/move_to.hpp
+#usr/include/boost/spirit/home/x3/support/traits/numeric_traits.hpp
+#usr/include/boost/spirit/home/x3/support/traits/optional_traits.hpp
+#usr/include/boost/spirit/home/x3/support/traits/print_attribute.hpp
+#usr/include/boost/spirit/home/x3/support/traits/print_token.hpp
+#usr/include/boost/spirit/home/x3/support/traits/string_traits.hpp
+#usr/include/boost/spirit/home/x3/support/traits/transform_attribute.hpp
+#usr/include/boost/spirit/home/x3/support/traits/tuple_traits.hpp
+#usr/include/boost/spirit/home/x3/support/traits/value_traits.hpp
+#usr/include/boost/spirit/home/x3/support/traits/variant_find_substitute.hpp
+#usr/include/boost/spirit/home/x3/support/traits/variant_has_substitute.hpp
+#usr/include/boost/spirit/home/x3/support/unused.hpp
+#usr/include/boost/spirit/home/x3/support/utility
+#usr/include/boost/spirit/home/x3/support/utility/annotate_on_success.hpp
+#usr/include/boost/spirit/home/x3/support/utility/error_reporting.hpp
+#usr/include/boost/spirit/home/x3/support/utility/is_callable.hpp
+#usr/include/boost/spirit/home/x3/support/utility/lambda_visitor.hpp
+#usr/include/boost/spirit/home/x3/support/utility/sfinae.hpp
+#usr/include/boost/spirit/home/x3/support/utility/testing.hpp
+#usr/include/boost/spirit/home/x3/support/utility/unrefcv.hpp
+#usr/include/boost/spirit/home/x3/support/utility/utf8.hpp
+#usr/include/boost/spirit/home/x3/version.hpp
 #usr/include/boost/spirit/include
 #usr/include/boost/spirit/include/classic.hpp
 #usr/include/boost/spirit/include/classic_actions.hpp
 #usr/include/boost/spirit/include/qi_char.hpp
 #usr/include/boost/spirit/include/qi_char_.hpp
 #usr/include/boost/spirit/include/qi_char_class.hpp
+#usr/include/boost/spirit/include/qi_copy.hpp
 #usr/include/boost/spirit/include/qi_core.hpp
 #usr/include/boost/spirit/include/qi_difference.hpp
 #usr/include/boost/spirit/include/qi_directive.hpp
 #usr/include/boost/spirit/include/support_ascii.hpp
 #usr/include/boost/spirit/include/support_attributes.hpp
 #usr/include/boost/spirit/include/support_attributes_fwd.hpp
+#usr/include/boost/spirit/include/support_auto.hpp
 #usr/include/boost/spirit/include/support_char_class.hpp
 #usr/include/boost/spirit/include/support_container.hpp
 #usr/include/boost/spirit/include/support_extended_variant.hpp
 #usr/include/boost/statechart/termination.hpp
 #usr/include/boost/statechart/transition.hpp
 #usr/include/boost/static_assert.hpp
-#usr/include/boost/strong_typedef.hpp
 #usr/include/boost/swap.hpp
 #usr/include/boost/system
 #usr/include/boost/system/api_config.hpp
 #usr/include/boost/system/config.hpp
 #usr/include/boost/system/cygwin_error.hpp
+#usr/include/boost/system/detail
+#usr/include/boost/system/detail/error_code.ipp
+#usr/include/boost/system/detail/local_free_on_destruction.hpp
 #usr/include/boost/system/error_code.hpp
 #usr/include/boost/system/linux_error.hpp
 #usr/include/boost/system/system_error.hpp
 #usr/include/boost/system/windows_error.hpp
 #usr/include/boost/test
 #usr/include/boost/test/auto_unit_test.hpp
+#usr/include/boost/test/data
+#usr/include/boost/test/data/config.hpp
+#usr/include/boost/test/data/dataset.hpp
+#usr/include/boost/test/data/for_each_sample.hpp
+#usr/include/boost/test/data/generators.hpp
+#usr/include/boost/test/data/index_sequence.hpp
+#usr/include/boost/test/data/monomorphic
+#usr/include/boost/test/data/monomorphic.hpp
+#usr/include/boost/test/data/monomorphic/array.hpp
+#usr/include/boost/test/data/monomorphic/collection.hpp
+#usr/include/boost/test/data/monomorphic/fwd.hpp
+#usr/include/boost/test/data/monomorphic/generate.hpp
+#usr/include/boost/test/data/monomorphic/generators
+#usr/include/boost/test/data/monomorphic/generators.hpp
+#usr/include/boost/test/data/monomorphic/generators/keywords.hpp
+#usr/include/boost/test/data/monomorphic/generators/random.hpp
+#usr/include/boost/test/data/monomorphic/generators/xrange.hpp
+#usr/include/boost/test/data/monomorphic/grid.hpp
+#usr/include/boost/test/data/monomorphic/initializer_list.hpp
+#usr/include/boost/test/data/monomorphic/join.hpp
+#usr/include/boost/test/data/monomorphic/sample_merge.hpp
+#usr/include/boost/test/data/monomorphic/singleton.hpp
+#usr/include/boost/test/data/monomorphic/zip.hpp
+#usr/include/boost/test/data/size.hpp
+#usr/include/boost/test/data/test_case.hpp
 #usr/include/boost/test/debug.hpp
 #usr/include/boost/test/debug_config.hpp
 #usr/include/boost/test/detail
 #usr/include/boost/test/detail/fwd_decl.hpp
 #usr/include/boost/test/detail/global_typedef.hpp
 #usr/include/boost/test/detail/log_level.hpp
+#usr/include/boost/test/detail/pp_variadic.hpp
 #usr/include/boost/test/detail/suppress_warnings.hpp
-#usr/include/boost/test/detail/unit_test_parameters.hpp
+#usr/include/boost/test/detail/throw_exception.hpp
 #usr/include/boost/test/detail/workaround.hpp
-#usr/include/boost/test/exception_safety.hpp
 #usr/include/boost/test/execution_monitor.hpp
 #usr/include/boost/test/floating_point_comparison.hpp
 #usr/include/boost/test/framework.hpp
 #usr/include/boost/test/impl/compiler_log_formatter.ipp
 #usr/include/boost/test/impl/cpp_main.ipp
 #usr/include/boost/test/impl/debug.ipp
-#usr/include/boost/test/impl/exception_safety.ipp
+#usr/include/boost/test/impl/decorator.ipp
 #usr/include/boost/test/impl/execution_monitor.ipp
 #usr/include/boost/test/impl/framework.ipp
-#usr/include/boost/test/impl/interaction_based.ipp
-#usr/include/boost/test/impl/logged_expectations.ipp
+#usr/include/boost/test/impl/junit_log_formatter.ipp
 #usr/include/boost/test/impl/plain_report_formatter.ipp
 #usr/include/boost/test/impl/progress_monitor.ipp
 #usr/include/boost/test/impl/results_collector.ipp
 #usr/include/boost/test/impl/results_reporter.ipp
 #usr/include/boost/test/impl/test_main.ipp
 #usr/include/boost/test/impl/test_tools.ipp
+#usr/include/boost/test/impl/test_tree.ipp
 #usr/include/boost/test/impl/unit_test_log.ipp
 #usr/include/boost/test/impl/unit_test_main.ipp
 #usr/include/boost/test/impl/unit_test_monitor.ipp
 #usr/include/boost/test/impl/unit_test_parameters.ipp
-#usr/include/boost/test/impl/unit_test_suite.ipp
 #usr/include/boost/test/impl/xml_log_formatter.ipp
 #usr/include/boost/test/impl/xml_report_formatter.ipp
 #usr/include/boost/test/included
+#usr/include/boost/test/included/execution_monitor.hpp
 #usr/include/boost/test/included/prg_exec_monitor.hpp
 #usr/include/boost/test/included/test_exec_monitor.hpp
 #usr/include/boost/test/included/unit_test.hpp
 #usr/include/boost/test/included/unit_test_framework.hpp
-#usr/include/boost/test/interaction_based.hpp
-#usr/include/boost/test/logged_expectations.hpp
 #usr/include/boost/test/minimal.hpp
-#usr/include/boost/test/mock_object.hpp
 #usr/include/boost/test/output
 #usr/include/boost/test/output/compiler_log_formatter.hpp
+#usr/include/boost/test/output/junit_log_formatter.hpp
 #usr/include/boost/test/output/plain_report_formatter.hpp
 #usr/include/boost/test/output/xml_log_formatter.hpp
 #usr/include/boost/test/output/xml_report_formatter.hpp
 #usr/include/boost/test/results_reporter.hpp
 #usr/include/boost/test/test_case_template.hpp
 #usr/include/boost/test/test_exec_monitor.hpp
-#usr/include/boost/test/test_observer.hpp
 #usr/include/boost/test/test_tools.hpp
+#usr/include/boost/test/tools
+#usr/include/boost/test/tools/assertion.hpp
+#usr/include/boost/test/tools/assertion_result.hpp
+#usr/include/boost/test/tools/collection_comparison_op.hpp
+#usr/include/boost/test/tools/context.hpp
+#usr/include/boost/test/tools/cstring_comparison_op.hpp
+#usr/include/boost/test/tools/detail
+#usr/include/boost/test/tools/detail/bitwise_manip.hpp
+#usr/include/boost/test/tools/detail/expression_holder.hpp
+#usr/include/boost/test/tools/detail/fwd.hpp
+#usr/include/boost/test/tools/detail/indirections.hpp
+#usr/include/boost/test/tools/detail/it_pair.hpp
+#usr/include/boost/test/tools/detail/lexicographic_manip.hpp
+#usr/include/boost/test/tools/detail/per_element_manip.hpp
+#usr/include/boost/test/tools/detail/print_helper.hpp
+#usr/include/boost/test/tools/detail/tolerance_manip.hpp
+#usr/include/boost/test/tools/floating_point_comparison.hpp
+#usr/include/boost/test/tools/fpc_op.hpp
+#usr/include/boost/test/tools/fpc_tolerance.hpp
+#usr/include/boost/test/tools/interface.hpp
+#usr/include/boost/test/tools/old
+#usr/include/boost/test/tools/old/impl.hpp
+#usr/include/boost/test/tools/old/interface.hpp
+#usr/include/boost/test/tools/output_test_stream.hpp
+#usr/include/boost/test/tree
+#usr/include/boost/test/tree/auto_registration.hpp
+#usr/include/boost/test/tree/decorator.hpp
+#usr/include/boost/test/tree/fixture.hpp
+#usr/include/boost/test/tree/global_fixture.hpp
+#usr/include/boost/test/tree/observer.hpp
+#usr/include/boost/test/tree/test_case_counter.hpp
+#usr/include/boost/test/tree/test_case_template.hpp
+#usr/include/boost/test/tree/test_unit.hpp
+#usr/include/boost/test/tree/traverse.hpp
+#usr/include/boost/test/tree/visitor.hpp
 #usr/include/boost/test/unit_test.hpp
 #usr/include/boost/test/unit_test_log.hpp
 #usr/include/boost/test/unit_test_log_formatter.hpp
 #usr/include/boost/test/unit_test_monitor.hpp
+#usr/include/boost/test/unit_test_parameters.hpp
 #usr/include/boost/test/unit_test_suite.hpp
-#usr/include/boost/test/unit_test_suite_impl.hpp
 #usr/include/boost/test/utils
 #usr/include/boost/test/utils/algorithm.hpp
 #usr/include/boost/test/utils/assign_op.hpp
 #usr/include/boost/test/utils/basic_cstring/bcs_char_traits.hpp
 #usr/include/boost/test/utils/basic_cstring/compare.hpp
 #usr/include/boost/test/utils/basic_cstring/io.hpp
-#usr/include/boost/test/utils/callback.hpp
 #usr/include/boost/test/utils/class_properties.hpp
 #usr/include/boost/test/utils/custom_manip.hpp
-#usr/include/boost/test/utils/fixed_mapping.hpp
 #usr/include/boost/test/utils/foreach.hpp
+#usr/include/boost/test/utils/is_cstring.hpp
+#usr/include/boost/test/utils/is_forward_iterable.hpp
 #usr/include/boost/test/utils/iterator
-#usr/include/boost/test/utils/iterator/ifstream_line_iterator.hpp
 #usr/include/boost/test/utils/iterator/input_iterator_facade.hpp
-#usr/include/boost/test/utils/iterator/istream_line_iterator.hpp
 #usr/include/boost/test/utils/iterator/token_iterator.hpp
 #usr/include/boost/test/utils/lazy_ostream.hpp
 #usr/include/boost/test/utils/named_params.hpp
 #usr/include/boost/test/utils/rtti.hpp
 #usr/include/boost/test/utils/runtime
 #usr/include/boost/test/utils/runtime/argument.hpp
+#usr/include/boost/test/utils/runtime/argument_factory.hpp
 #usr/include/boost/test/utils/runtime/cla
-#usr/include/boost/test/utils/runtime/cla/argument_factory.hpp
 #usr/include/boost/test/utils/runtime/cla/argv_traverser.hpp
-#usr/include/boost/test/utils/runtime/cla/argv_traverser.ipp
-#usr/include/boost/test/utils/runtime/cla/basic_parameter.hpp
-#usr/include/boost/test/utils/runtime/cla/char_parameter.hpp
-#usr/include/boost/test/utils/runtime/cla/char_parameter.ipp
-#usr/include/boost/test/utils/runtime/cla/detail
-#usr/include/boost/test/utils/runtime/cla/detail/argument_value_usage.hpp
-#usr/include/boost/test/utils/runtime/cla/dual_name_parameter.hpp
-#usr/include/boost/test/utils/runtime/cla/dual_name_parameter.ipp
-#usr/include/boost/test/utils/runtime/cla/fwd.hpp
-#usr/include/boost/test/utils/runtime/cla/id_policy.hpp
-#usr/include/boost/test/utils/runtime/cla/id_policy.ipp
-#usr/include/boost/test/utils/runtime/cla/iface
-#usr/include/boost/test/utils/runtime/cla/iface/argument_factory.hpp
-#usr/include/boost/test/utils/runtime/cla/iface/id_policy.hpp
-#usr/include/boost/test/utils/runtime/cla/modifier.hpp
-#usr/include/boost/test/utils/runtime/cla/named_parameter.hpp
-#usr/include/boost/test/utils/runtime/cla/named_parameter.ipp
-#usr/include/boost/test/utils/runtime/cla/parameter.hpp
 #usr/include/boost/test/utils/runtime/cla/parser.hpp
-#usr/include/boost/test/utils/runtime/cla/parser.ipp
-#usr/include/boost/test/utils/runtime/cla/positional_parameter.hpp
-#usr/include/boost/test/utils/runtime/cla/typed_parameter.hpp
-#usr/include/boost/test/utils/runtime/cla/validation.hpp
-#usr/include/boost/test/utils/runtime/cla/validation.ipp
-#usr/include/boost/test/utils/runtime/cla/value_generator.hpp
-#usr/include/boost/test/utils/runtime/cla/value_handler.hpp
-#usr/include/boost/test/utils/runtime/config.hpp
-#usr/include/boost/test/utils/runtime/configuration.hpp
 #usr/include/boost/test/utils/runtime/env
-#usr/include/boost/test/utils/runtime/env/environment.hpp
-#usr/include/boost/test/utils/runtime/env/environment.ipp
-#usr/include/boost/test/utils/runtime/env/fwd.hpp
-#usr/include/boost/test/utils/runtime/env/modifier.hpp
-#usr/include/boost/test/utils/runtime/env/variable.hpp
-#usr/include/boost/test/utils/runtime/file
-#usr/include/boost/test/utils/runtime/file/config_file.hpp
-#usr/include/boost/test/utils/runtime/file/config_file_iterator.hpp
+#usr/include/boost/test/utils/runtime/env/fetch.hpp
+#usr/include/boost/test/utils/runtime/errors.hpp
+#usr/include/boost/test/utils/runtime/finalize.hpp
 #usr/include/boost/test/utils/runtime/fwd.hpp
-#usr/include/boost/test/utils/runtime/interpret_argument_value.hpp
+#usr/include/boost/test/utils/runtime/modifier.hpp
 #usr/include/boost/test/utils/runtime/parameter.hpp
-#usr/include/boost/test/utils/runtime/trace.hpp
-#usr/include/boost/test/utils/runtime/validation.hpp
+#usr/include/boost/test/utils/setcolor.hpp
+#usr/include/boost/test/utils/string_cast.hpp
 #usr/include/boost/test/utils/trivial_singleton.hpp
 #usr/include/boost/test/utils/wrap_stringstream.hpp
 #usr/include/boost/test/utils/xml_printer.hpp
 #usr/include/boost/thread
 #usr/include/boost/thread.hpp
 #usr/include/boost/thread/barrier.hpp
+#usr/include/boost/thread/caller_context.hpp
 #usr/include/boost/thread/completion_latch.hpp
+#usr/include/boost/thread/concurrent_queues
+#usr/include/boost/thread/concurrent_queues/deque_adaptor.hpp
+#usr/include/boost/thread/concurrent_queues/deque_base.hpp
+#usr/include/boost/thread/concurrent_queues/deque_views.hpp
+#usr/include/boost/thread/concurrent_queues/detail
+#usr/include/boost/thread/concurrent_queues/detail/sync_deque_base.hpp
+#usr/include/boost/thread/concurrent_queues/detail/sync_queue_base.hpp
+#usr/include/boost/thread/concurrent_queues/queue_adaptor.hpp
+#usr/include/boost/thread/concurrent_queues/queue_base.hpp
+#usr/include/boost/thread/concurrent_queues/queue_op_status.hpp
+#usr/include/boost/thread/concurrent_queues/queue_views.hpp
+#usr/include/boost/thread/concurrent_queues/sync_bounded_queue.hpp
+#usr/include/boost/thread/concurrent_queues/sync_deque.hpp
+#usr/include/boost/thread/concurrent_queues/sync_priority_queue.hpp
+#usr/include/boost/thread/concurrent_queues/sync_queue.hpp
+#usr/include/boost/thread/concurrent_queues/sync_timed_queue.hpp
 #usr/include/boost/thread/condition.hpp
 #usr/include/boost/thread/condition_variable.hpp
+#usr/include/boost/thread/csbl
+#usr/include/boost/thread/csbl/deque.hpp
+#usr/include/boost/thread/csbl/devector.hpp
+#usr/include/boost/thread/csbl/functional.hpp
+#usr/include/boost/thread/csbl/list.hpp
+#usr/include/boost/thread/csbl/memory
+#usr/include/boost/thread/csbl/memory.hpp
+#usr/include/boost/thread/csbl/memory/allocator_arg.hpp
+#usr/include/boost/thread/csbl/memory/allocator_traits.hpp
+#usr/include/boost/thread/csbl/memory/config.hpp
+#usr/include/boost/thread/csbl/memory/default_delete.hpp
+#usr/include/boost/thread/csbl/memory/pointer_traits.hpp
+#usr/include/boost/thread/csbl/memory/scoped_allocator.hpp
+#usr/include/boost/thread/csbl/memory/shared_ptr.hpp
+#usr/include/boost/thread/csbl/memory/unique_ptr.hpp
+#usr/include/boost/thread/csbl/queue.hpp
+#usr/include/boost/thread/csbl/tuple.hpp
+#usr/include/boost/thread/csbl/vector.hpp
 #usr/include/boost/thread/cv_status.hpp
 #usr/include/boost/thread/detail
-#usr/include/boost/thread/detail/async_func.hpp
 #usr/include/boost/thread/detail/config.hpp
 #usr/include/boost/thread/detail/counter.hpp
 #usr/include/boost/thread/detail/delete.hpp
 #usr/include/boost/thread/detail/force_cast.hpp
+#usr/include/boost/thread/detail/function_wrapper.hpp
 #usr/include/boost/thread/detail/invoke.hpp
+#usr/include/boost/thread/detail/invoker.hpp
 #usr/include/boost/thread/detail/is_convertible.hpp
 #usr/include/boost/thread/detail/lockable_wrapper.hpp
 #usr/include/boost/thread/detail/log.hpp
 #usr/include/boost/thread/detail/make_tuple_indices.hpp
 #usr/include/boost/thread/detail/memory.hpp
 #usr/include/boost/thread/detail/move.hpp
+#usr/include/boost/thread/detail/nullary_function.hpp
 #usr/include/boost/thread/detail/platform.hpp
 #usr/include/boost/thread/detail/singleton.hpp
 #usr/include/boost/thread/detail/thread.hpp
 #usr/include/boost/thread/detail/thread_heap_alloc.hpp
 #usr/include/boost/thread/detail/thread_interruption.hpp
 #usr/include/boost/thread/detail/tss_hooks.hpp
+#usr/include/boost/thread/detail/variadic_footer.hpp
+#usr/include/boost/thread/detail/variadic_header.hpp
+#usr/include/boost/thread/exceptional_ptr.hpp
 #usr/include/boost/thread/exceptions.hpp
+#usr/include/boost/thread/executor.hpp
+#usr/include/boost/thread/executors
+#usr/include/boost/thread/executors/basic_thread_pool.hpp
+#usr/include/boost/thread/executors/detail
+#usr/include/boost/thread/executors/detail/priority_executor_base.hpp
+#usr/include/boost/thread/executors/detail/scheduled_executor_base.hpp
+#usr/include/boost/thread/executors/executor.hpp
+#usr/include/boost/thread/executors/executor_adaptor.hpp
+#usr/include/boost/thread/executors/generic_executor_ref.hpp
+#usr/include/boost/thread/executors/inline_executor.hpp
+#usr/include/boost/thread/executors/loop_executor.hpp
+#usr/include/boost/thread/executors/scheduled_thread_pool.hpp
+#usr/include/boost/thread/executors/scheduler.hpp
+#usr/include/boost/thread/executors/scheduling_adaptor.hpp
+#usr/include/boost/thread/executors/serial_executor.hpp
+#usr/include/boost/thread/executors/serial_executor_cont.hpp
+#usr/include/boost/thread/executors/thread_executor.hpp
+#usr/include/boost/thread/executors/work.hpp
+#usr/include/boost/thread/experimental
+#usr/include/boost/thread/experimental/config
+#usr/include/boost/thread/experimental/config/inline_namespace.hpp
+#usr/include/boost/thread/experimental/exception_list.hpp
+#usr/include/boost/thread/experimental/parallel
+#usr/include/boost/thread/experimental/parallel/v1
+#usr/include/boost/thread/experimental/parallel/v1/exception_list.hpp
+#usr/include/boost/thread/experimental/parallel/v1/inline_namespace.hpp
+#usr/include/boost/thread/experimental/parallel/v2
+#usr/include/boost/thread/experimental/parallel/v2/inline_namespace.hpp
+#usr/include/boost/thread/experimental/parallel/v2/task_region.hpp
+#usr/include/boost/thread/experimental/task_region.hpp
 #usr/include/boost/thread/externally_locked.hpp
 #usr/include/boost/thread/externally_locked_stream.hpp
 #usr/include/boost/thread/future.hpp
-#usr/include/boost/thread/future_error_code.hpp
+#usr/include/boost/thread/futures
+#usr/include/boost/thread/futures/future_error.hpp
+#usr/include/boost/thread/futures/future_error_code.hpp
+#usr/include/boost/thread/futures/future_status.hpp
+#usr/include/boost/thread/futures/is_future_type.hpp
+#usr/include/boost/thread/futures/launch.hpp
+#usr/include/boost/thread/futures/wait_for_all.hpp
+#usr/include/boost/thread/futures/wait_for_any.hpp
 #usr/include/boost/thread/is_locked_by_this_thread.hpp
 #usr/include/boost/thread/latch.hpp
 #usr/include/boost/thread/lock_algorithms.hpp
 #usr/include/boost/thread/mutex.hpp
 #usr/include/boost/thread/null_mutex.hpp
 #usr/include/boost/thread/once.hpp
+#usr/include/boost/thread/ostream_buffer.hpp
 #usr/include/boost/thread/poly_lockable.hpp
 #usr/include/boost/thread/poly_lockable_adapter.hpp
 #usr/include/boost/thread/poly_shared_lockable.hpp
 #usr/include/boost/thread/thread_functors.hpp
 #usr/include/boost/thread/thread_guard.hpp
 #usr/include/boost/thread/thread_only.hpp
+#usr/include/boost/thread/thread_pool.hpp
 #usr/include/boost/thread/thread_time.hpp
 #usr/include/boost/thread/tss.hpp
+#usr/include/boost/thread/user_scheduler.hpp
 #usr/include/boost/thread/v2
 #usr/include/boost/thread/v2/shared_mutex.hpp
 #usr/include/boost/thread/v2/thread.hpp
 #usr/include/boost/thread/win32/thread_data.hpp
 #usr/include/boost/thread/win32/thread_heap_alloc.hpp
 #usr/include/boost/thread/win32/thread_primitives.hpp
+#usr/include/boost/thread/with_lock_guard.hpp
 #usr/include/boost/thread/xtime.hpp
 #usr/include/boost/throw_exception.hpp
 #usr/include/boost/timer
 #usr/include/boost/tti
 #usr/include/boost/tti/detail
 #usr/include/boost/tti/detail/dcomp_mem_fun.hpp
-#usr/include/boost/tti/detail/dcomp_static_mem_fun.hpp
 #usr/include/boost/tti/detail/ddata.hpp
 #usr/include/boost/tti/detail/ddeftype.hpp
 #usr/include/boost/tti/detail/dftclass.hpp
 #usr/include/boost/tuple
 #usr/include/boost/tuple/detail
 #usr/include/boost/tuple/detail/tuple_basic.hpp
-#usr/include/boost/tuple/detail/tuple_basic_no_partial_spec.hpp
 #usr/include/boost/tuple/tuple.hpp
 #usr/include/boost/tuple/tuple_comparison.hpp
 #usr/include/boost/tuple/tuple_io.hpp
 #usr/include/boost/type_erasure/detail/access.hpp
 #usr/include/boost/type_erasure/detail/adapt_to_vtable.hpp
 #usr/include/boost/type_erasure/detail/any_base.hpp
+#usr/include/boost/type_erasure/detail/auto_link.hpp
 #usr/include/boost/type_erasure/detail/check_call.hpp
 #usr/include/boost/type_erasure/detail/check_map.hpp
 #usr/include/boost/type_erasure/detail/const.hpp
 #usr/include/boost/type_erasure/detail/construct.hpp
+#usr/include/boost/type_erasure/detail/dynamic_vtable.hpp
 #usr/include/boost/type_erasure/detail/extract_concept.hpp
 #usr/include/boost/type_erasure/detail/get_placeholders.hpp
 #usr/include/boost/type_erasure/detail/get_signature.hpp
 #usr/include/boost/type_erasure/detail/rebind_placeholders.hpp
 #usr/include/boost/type_erasure/detail/storage.hpp
 #usr/include/boost/type_erasure/detail/vtable.hpp
+#usr/include/boost/type_erasure/dynamic_any_cast.hpp
+#usr/include/boost/type_erasure/dynamic_binding.hpp
 #usr/include/boost/type_erasure/exception.hpp
 #usr/include/boost/type_erasure/free.hpp
 #usr/include/boost/type_erasure/is_empty.hpp
 #usr/include/boost/type_erasure/placeholder.hpp
 #usr/include/boost/type_erasure/placeholder_of.hpp
 #usr/include/boost/type_erasure/rebind_any.hpp
+#usr/include/boost/type_erasure/register_binding.hpp
 #usr/include/boost/type_erasure/relaxed.hpp
 #usr/include/boost/type_erasure/require_match.hpp
 #usr/include/boost/type_erasure/same_type.hpp
 #usr/include/boost/type_erasure/static_binding.hpp
 #usr/include/boost/type_erasure/tuple.hpp
 #usr/include/boost/type_erasure/typeid_of.hpp
+#usr/include/boost/type_index
+#usr/include/boost/type_index.hpp
+#usr/include/boost/type_index/ctti_type_index.hpp
+#usr/include/boost/type_index/detail
+#usr/include/boost/type_index/detail/compile_time_type_info.hpp
+#usr/include/boost/type_index/detail/ctti_register_class.hpp
+#usr/include/boost/type_index/detail/stl_register_class.hpp
+#usr/include/boost/type_index/runtime_cast
+#usr/include/boost/type_index/runtime_cast.hpp
+#usr/include/boost/type_index/runtime_cast/boost_shared_ptr_cast.hpp
+#usr/include/boost/type_index/runtime_cast/detail
+#usr/include/boost/type_index/runtime_cast/detail/runtime_cast_impl.hpp
+#usr/include/boost/type_index/runtime_cast/pointer_cast.hpp
+#usr/include/boost/type_index/runtime_cast/reference_cast.hpp
+#usr/include/boost/type_index/runtime_cast/register_runtime_class.hpp
+#usr/include/boost/type_index/runtime_cast/std_shared_ptr_cast.hpp
+#usr/include/boost/type_index/stl_type_index.hpp
+#usr/include/boost/type_index/type_index_facade.hpp
 #usr/include/boost/type_traits
 #usr/include/boost/type_traits.hpp
 #usr/include/boost/type_traits/add_const.hpp
 #usr/include/boost/type_traits/conditional.hpp
 #usr/include/boost/type_traits/config.hpp
 #usr/include/boost/type_traits/conversion_traits.hpp
+#usr/include/boost/type_traits/copy_cv.hpp
 #usr/include/boost/type_traits/cv_traits.hpp
 #usr/include/boost/type_traits/decay.hpp
+#usr/include/boost/type_traits/declval.hpp
 #usr/include/boost/type_traits/detail
 #usr/include/boost/type_traits/detail/bool_trait_def.hpp
 #usr/include/boost/type_traits/detail/bool_trait_undef.hpp
-#usr/include/boost/type_traits/detail/common_type_imp.hpp
-#usr/include/boost/type_traits/detail/cv_traits_impl.hpp
-#usr/include/boost/type_traits/detail/false_result.hpp
+#usr/include/boost/type_traits/detail/common_arithmetic_type.hpp
+#usr/include/boost/type_traits/detail/common_type_impl.hpp
+#usr/include/boost/type_traits/detail/composite_member_pointer_type.hpp
+#usr/include/boost/type_traits/detail/composite_pointer_type.hpp
+#usr/include/boost/type_traits/detail/config.hpp
 #usr/include/boost/type_traits/detail/has_binary_operator.hpp
 #usr/include/boost/type_traits/detail/has_postfix_operator.hpp
 #usr/include/boost/type_traits/detail/has_prefix_operator.hpp
 #usr/include/boost/type_traits/detail/is_function_ptr_tester.hpp
 #usr/include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
 #usr/include/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp
-#usr/include/boost/type_traits/detail/size_t_trait_def.hpp
-#usr/include/boost/type_traits/detail/size_t_trait_undef.hpp
+#usr/include/boost/type_traits/detail/mp_defer.hpp
 #usr/include/boost/type_traits/detail/template_arity_spec.hpp
-#usr/include/boost/type_traits/detail/type_trait_def.hpp
-#usr/include/boost/type_traits/detail/type_trait_undef.hpp
-#usr/include/boost/type_traits/detail/wrap.hpp
 #usr/include/boost/type_traits/detail/yes_no_type.hpp
 #usr/include/boost/type_traits/extent.hpp
 #usr/include/boost/type_traits/floating_point_promotion.hpp
 #usr/include/boost/type_traits/is_abstract.hpp
 #usr/include/boost/type_traits/is_arithmetic.hpp
 #usr/include/boost/type_traits/is_array.hpp
+#usr/include/boost/type_traits/is_assignable.hpp
 #usr/include/boost/type_traits/is_base_and_derived.hpp
 #usr/include/boost/type_traits/is_base_of.hpp
 #usr/include/boost/type_traits/is_base_of_tr1.hpp
 #usr/include/boost/type_traits/is_complex.hpp
 #usr/include/boost/type_traits/is_compound.hpp
 #usr/include/boost/type_traits/is_const.hpp
+#usr/include/boost/type_traits/is_constructible.hpp
 #usr/include/boost/type_traits/is_convertible.hpp
+#usr/include/boost/type_traits/is_copy_assignable.hpp
 #usr/include/boost/type_traits/is_copy_constructible.hpp
+#usr/include/boost/type_traits/is_default_constructible.hpp
+#usr/include/boost/type_traits/is_destructible.hpp
 #usr/include/boost/type_traits/is_empty.hpp
 #usr/include/boost/type_traits/is_enum.hpp
+#usr/include/boost/type_traits/is_final.hpp
 #usr/include/boost/type_traits/is_float.hpp
 #usr/include/boost/type_traits/is_floating_point.hpp
 #usr/include/boost/type_traits/is_function.hpp
 #usr/include/boost/type_traits/is_volatile.hpp
 #usr/include/boost/type_traits/make_signed.hpp
 #usr/include/boost/type_traits/make_unsigned.hpp
-#usr/include/boost/type_traits/msvc
-#usr/include/boost/type_traits/msvc/remove_all_extents.hpp
-#usr/include/boost/type_traits/msvc/remove_bounds.hpp
-#usr/include/boost/type_traits/msvc/remove_const.hpp
-#usr/include/boost/type_traits/msvc/remove_cv.hpp
-#usr/include/boost/type_traits/msvc/remove_extent.hpp
-#usr/include/boost/type_traits/msvc/remove_pointer.hpp
-#usr/include/boost/type_traits/msvc/remove_reference.hpp
-#usr/include/boost/type_traits/msvc/remove_volatile.hpp
-#usr/include/boost/type_traits/msvc/typeof.hpp
+#usr/include/boost/type_traits/make_void.hpp
 #usr/include/boost/type_traits/object_traits.hpp
 #usr/include/boost/type_traits/promote.hpp
 #usr/include/boost/type_traits/rank.hpp
 #usr/include/boost/type_traits/remove_volatile.hpp
 #usr/include/boost/type_traits/same_traits.hpp
 #usr/include/boost/type_traits/transform_traits.hpp
-#usr/include/boost/type_traits/transform_traits_spec.hpp
+#usr/include/boost/type_traits/type_identity.hpp
 #usr/include/boost/type_traits/type_with_alignment.hpp
 #usr/include/boost/typeof
 #usr/include/boost/typeof/dmc
 #usr/include/boost/units/base_units/imperial/thou.hpp
 #usr/include/boost/units/base_units/imperial/ton.hpp
 #usr/include/boost/units/base_units/imperial/yard.hpp
+#usr/include/boost/units/base_units/information
+#usr/include/boost/units/base_units/information/bit.hpp
+#usr/include/boost/units/base_units/information/byte.hpp
+#usr/include/boost/units/base_units/information/hartley.hpp
+#usr/include/boost/units/base_units/information/nat.hpp
+#usr/include/boost/units/base_units/information/shannon.hpp
 #usr/include/boost/units/base_units/metric
 #usr/include/boost/units/base_units/metric/angstrom.hpp
 #usr/include/boost/units/base_units/metric/are.hpp
 #usr/include/boost/units/physical_dimensions/illuminance.hpp
 #usr/include/boost/units/physical_dimensions/impedance.hpp
 #usr/include/boost/units/physical_dimensions/inductance.hpp
+#usr/include/boost/units/physical_dimensions/information.hpp
 #usr/include/boost/units/physical_dimensions/kinematic_viscosity.hpp
 #usr/include/boost/units/physical_dimensions/length.hpp
 #usr/include/boost/units/physical_dimensions/luminance.hpp
 #usr/include/boost/units/systems/cgs/wavenumber.hpp
 #usr/include/boost/units/systems/detail
 #usr/include/boost/units/systems/detail/constants.hpp
+#usr/include/boost/units/systems/information
+#usr/include/boost/units/systems/information.hpp
+#usr/include/boost/units/systems/information/bit.hpp
+#usr/include/boost/units/systems/information/byte.hpp
+#usr/include/boost/units/systems/information/hartley.hpp
+#usr/include/boost/units/systems/information/nat.hpp
+#usr/include/boost/units/systems/information/prefixes.hpp
+#usr/include/boost/units/systems/information/shannon.hpp
 #usr/include/boost/units/systems/si
 #usr/include/boost/units/systems/si.hpp
 #usr/include/boost/units/systems/si/absorbed_dose.hpp
 #usr/include/boost/units/units_fwd.hpp
 #usr/include/boost/unordered
 #usr/include/boost/unordered/detail
-#usr/include/boost/unordered/detail/allocate.hpp
-#usr/include/boost/unordered/detail/buckets.hpp
-#usr/include/boost/unordered/detail/equivalent.hpp
-#usr/include/boost/unordered/detail/extract_key.hpp
 #usr/include/boost/unordered/detail/fwd.hpp
-#usr/include/boost/unordered/detail/table.hpp
-#usr/include/boost/unordered/detail/unique.hpp
-#usr/include/boost/unordered/detail/util.hpp
+#usr/include/boost/unordered/detail/implementation.hpp
+#usr/include/boost/unordered/detail/map.hpp
+#usr/include/boost/unordered/detail/set.hpp
 #usr/include/boost/unordered/unordered_map.hpp
 #usr/include/boost/unordered/unordered_map_fwd.hpp
 #usr/include/boost/unordered/unordered_set.hpp
 #usr/include/boost/utility/result_of.hpp
 #usr/include/boost/utility/string_ref.hpp
 #usr/include/boost/utility/string_ref_fwd.hpp
+#usr/include/boost/utility/string_view.hpp
+#usr/include/boost/utility/string_view_fwd.hpp
 #usr/include/boost/utility/swap.hpp
 #usr/include/boost/utility/typed_in_place_factory.hpp
 #usr/include/boost/utility/value_init.hpp
 #usr/include/boost/uuid
+#usr/include/boost/uuid/detail
+#usr/include/boost/uuid/detail/config.hpp
+#usr/include/boost/uuid/detail/uuid_generic.hpp
+#usr/include/boost/uuid/detail/uuid_x86.hpp
 #usr/include/boost/uuid/name_generator.hpp
 #usr/include/boost/uuid/nil_generator.hpp
 #usr/include/boost/uuid/random_generator.hpp
 #usr/include/boost/variant/detail/apply_visitor_delayed.hpp
 #usr/include/boost/variant/detail/apply_visitor_unary.hpp
 #usr/include/boost/variant/detail/backup_holder.hpp
-#usr/include/boost/variant/detail/bool_trait_def.hpp
-#usr/include/boost/variant/detail/bool_trait_undef.hpp
 #usr/include/boost/variant/detail/cast_storage.hpp
 #usr/include/boost/variant/detail/config.hpp
+#usr/include/boost/variant/detail/element_index.hpp
 #usr/include/boost/variant/detail/enable_recursive.hpp
 #usr/include/boost/variant/detail/enable_recursive_fwd.hpp
 #usr/include/boost/variant/detail/forced_return.hpp
 #usr/include/boost/variant/detail/generic_result_type.hpp
+#usr/include/boost/variant/detail/has_result_type.hpp
 #usr/include/boost/variant/detail/hash_variant.hpp
 #usr/include/boost/variant/detail/initializer.hpp
 #usr/include/boost/variant/detail/make_variant_list.hpp
 #usr/include/boost/variant/detail/move.hpp
+#usr/include/boost/variant/detail/multivisitors_cpp11_based.hpp
+#usr/include/boost/variant/detail/multivisitors_cpp14_based.hpp
+#usr/include/boost/variant/detail/multivisitors_preprocessor_based.hpp
 #usr/include/boost/variant/detail/over_sequence.hpp
 #usr/include/boost/variant/detail/substitute.hpp
 #usr/include/boost/variant/detail/substitute_fwd.hpp
 #usr/include/boost/variant/detail/visitation_impl.hpp
 #usr/include/boost/variant/get.hpp
 #usr/include/boost/variant/multivisitors.hpp
+#usr/include/boost/variant/polymorphic_get.hpp
 #usr/include/boost/variant/recursive_variant.hpp
 #usr/include/boost/variant/recursive_wrapper.hpp
 #usr/include/boost/variant/recursive_wrapper_fwd.hpp
 #usr/include/boost/variant/visitor_ptr.hpp
 #usr/include/boost/version.hpp
 #usr/include/boost/visit_each.hpp
+#usr/include/boost/vmd
+#usr/include/boost/vmd/array
+#usr/include/boost/vmd/array.hpp
+#usr/include/boost/vmd/array/to_seq.hpp
+#usr/include/boost/vmd/array/to_tuple.hpp
+#usr/include/boost/vmd/assert.hpp
+#usr/include/boost/vmd/assert_is_array.hpp
+#usr/include/boost/vmd/assert_is_empty.hpp
+#usr/include/boost/vmd/assert_is_identifier.hpp
+#usr/include/boost/vmd/assert_is_list.hpp
+#usr/include/boost/vmd/assert_is_number.hpp
+#usr/include/boost/vmd/assert_is_seq.hpp
+#usr/include/boost/vmd/assert_is_tuple.hpp
+#usr/include/boost/vmd/assert_is_type.hpp
+#usr/include/boost/vmd/detail
+#usr/include/boost/vmd/detail/adjust_tuple_type.hpp
+#usr/include/boost/vmd/detail/array.hpp
+#usr/include/boost/vmd/detail/assert.hpp
+#usr/include/boost/vmd/detail/data_equal.hpp
+#usr/include/boost/vmd/detail/data_equal_common.hpp
+#usr/include/boost/vmd/detail/empty_result.hpp
+#usr/include/boost/vmd/detail/equal.hpp
+#usr/include/boost/vmd/detail/equal_common.hpp
+#usr/include/boost/vmd/detail/equal_type.hpp
+#usr/include/boost/vmd/detail/identifier.hpp
+#usr/include/boost/vmd/detail/identifier_concat.hpp
+#usr/include/boost/vmd/detail/identifier_type.hpp
+#usr/include/boost/vmd/detail/idprefix.hpp
+#usr/include/boost/vmd/detail/is_array.hpp
+#usr/include/boost/vmd/detail/is_array_common.hpp
+#usr/include/boost/vmd/detail/is_empty.hpp
+#usr/include/boost/vmd/detail/is_empty_array.hpp
+#usr/include/boost/vmd/detail/is_empty_tuple.hpp
+#usr/include/boost/vmd/detail/is_entire.hpp
+#usr/include/boost/vmd/detail/is_identifier.hpp
+#usr/include/boost/vmd/detail/is_list.hpp
+#usr/include/boost/vmd/detail/is_number.hpp
+#usr/include/boost/vmd/detail/is_seq.hpp
+#usr/include/boost/vmd/detail/is_tuple.hpp
+#usr/include/boost/vmd/detail/is_type.hpp
+#usr/include/boost/vmd/detail/is_type_type.hpp
+#usr/include/boost/vmd/detail/list.hpp
+#usr/include/boost/vmd/detail/match_identifier.hpp
+#usr/include/boost/vmd/detail/match_identifier_common.hpp
+#usr/include/boost/vmd/detail/match_single_identifier.hpp
+#usr/include/boost/vmd/detail/modifiers.hpp
+#usr/include/boost/vmd/detail/mods.hpp
+#usr/include/boost/vmd/detail/nil_registration.hpp
+#usr/include/boost/vmd/detail/not_empty.hpp
+#usr/include/boost/vmd/detail/number_registration.hpp
+#usr/include/boost/vmd/detail/only_after.hpp
+#usr/include/boost/vmd/detail/parens.hpp
+#usr/include/boost/vmd/detail/parens_common.hpp
+#usr/include/boost/vmd/detail/parens_split.hpp
+#usr/include/boost/vmd/detail/recurse
+#usr/include/boost/vmd/detail/recurse/data_equal
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_1.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_10.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_11.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_12.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_13.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_14.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_15.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_16.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_2.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_3.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_4.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_5.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_6.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_7.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_8.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_9.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_headers.hpp
+#usr/include/boost/vmd/detail/recurse/data_equal/data_equal_specific.hpp
+#usr/include/boost/vmd/detail/recurse/equal
+#usr/include/boost/vmd/detail/recurse/equal/equal_1.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_10.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_11.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_12.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_13.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_14.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_15.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_16.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_2.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_3.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_4.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_5.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_6.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_7.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_8.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_9.hpp
+#usr/include/boost/vmd/detail/recurse/equal/equal_headers.hpp
+#usr/include/boost/vmd/detail/seq.hpp
+#usr/include/boost/vmd/detail/sequence_arity.hpp
+#usr/include/boost/vmd/detail/sequence_common.hpp
+#usr/include/boost/vmd/detail/sequence_elem.hpp
+#usr/include/boost/vmd/detail/sequence_enum.hpp
+#usr/include/boost/vmd/detail/sequence_size.hpp
+#usr/include/boost/vmd/detail/sequence_to_array.hpp
+#usr/include/boost/vmd/detail/sequence_to_list.hpp
+#usr/include/boost/vmd/detail/sequence_to_seq.hpp
+#usr/include/boost/vmd/detail/sequence_to_tuple.hpp
+#usr/include/boost/vmd/detail/sequence_type.hpp
+#usr/include/boost/vmd/detail/setup.hpp
+#usr/include/boost/vmd/detail/tuple.hpp
+#usr/include/boost/vmd/detail/type_registration.hpp
+#usr/include/boost/vmd/detail/variadic_pop_front.hpp
+#usr/include/boost/vmd/elem.hpp
+#usr/include/boost/vmd/empty.hpp
+#usr/include/boost/vmd/enum.hpp
+#usr/include/boost/vmd/equal.hpp
+#usr/include/boost/vmd/get_type.hpp
+#usr/include/boost/vmd/identity.hpp
+#usr/include/boost/vmd/is_array.hpp
+#usr/include/boost/vmd/is_empty.hpp
+#usr/include/boost/vmd/is_empty_array.hpp
+#usr/include/boost/vmd/is_empty_list.hpp
+#usr/include/boost/vmd/is_identifier.hpp
+#usr/include/boost/vmd/is_list.hpp
+#usr/include/boost/vmd/is_multi.hpp
+#usr/include/boost/vmd/is_number.hpp
+#usr/include/boost/vmd/is_parens_empty.hpp
+#usr/include/boost/vmd/is_seq.hpp
+#usr/include/boost/vmd/is_tuple.hpp
+#usr/include/boost/vmd/is_type.hpp
+#usr/include/boost/vmd/is_unary.hpp
+#usr/include/boost/vmd/list
+#usr/include/boost/vmd/list.hpp
+#usr/include/boost/vmd/list/to_seq.hpp
+#usr/include/boost/vmd/list/to_tuple.hpp
+#usr/include/boost/vmd/not_equal.hpp
+#usr/include/boost/vmd/seq
+#usr/include/boost/vmd/seq.hpp
+#usr/include/boost/vmd/seq/is_vmd_seq.hpp
+#usr/include/boost/vmd/seq/pop_back.hpp
+#usr/include/boost/vmd/seq/pop_front.hpp
+#usr/include/boost/vmd/seq/push_back.hpp
+#usr/include/boost/vmd/seq/push_front.hpp
+#usr/include/boost/vmd/seq/remove.hpp
+#usr/include/boost/vmd/seq/size.hpp
+#usr/include/boost/vmd/seq/to_array.hpp
+#usr/include/boost/vmd/seq/to_list.hpp
+#usr/include/boost/vmd/seq/to_tuple.hpp
+#usr/include/boost/vmd/size.hpp
+#usr/include/boost/vmd/to_array.hpp
+#usr/include/boost/vmd/to_list.hpp
+#usr/include/boost/vmd/to_seq.hpp
+#usr/include/boost/vmd/to_tuple.hpp
+#usr/include/boost/vmd/tuple
+#usr/include/boost/vmd/tuple.hpp
+#usr/include/boost/vmd/tuple/is_vmd_tuple.hpp
+#usr/include/boost/vmd/tuple/pop_back.hpp
+#usr/include/boost/vmd/tuple/pop_front.hpp
+#usr/include/boost/vmd/tuple/push_back.hpp
+#usr/include/boost/vmd/tuple/push_front.hpp
+#usr/include/boost/vmd/tuple/remove.hpp
+#usr/include/boost/vmd/tuple/size.hpp
+#usr/include/boost/vmd/tuple/to_array.hpp
+#usr/include/boost/vmd/tuple/to_list.hpp
+#usr/include/boost/vmd/tuple/to_seq.hpp
+#usr/include/boost/vmd/vmd.hpp
 #usr/include/boost/wave
 #usr/include/boost/wave.hpp
 #usr/include/boost/wave/cpp_context.hpp
 #usr/include/boost/xpressive/xpressive_typeof.hpp
 #usr/lib/libboost_atomic-mt.a
 #usr/lib/libboost_atomic-mt.so
-usr/lib/libboost_atomic-mt.so.1.55.0
+usr/lib/libboost_atomic-mt.so.1.64.0
 #usr/lib/libboost_chrono-mt.a
 #usr/lib/libboost_chrono-mt.so
-usr/lib/libboost_chrono-mt.so.1.55.0
+usr/lib/libboost_chrono-mt.so.1.64.0
 #usr/lib/libboost_chrono.a
 #usr/lib/libboost_chrono.so
-usr/lib/libboost_chrono.so.1.55.0
-#usr/lib/libboost_context-mt.a
-#usr/lib/libboost_context-mt.so
-usr/lib/libboost_context-mt.so.1.55.0
-#usr/lib/libboost_context.a
-#usr/lib/libboost_context.so
-usr/lib/libboost_context.so.1.55.0
-#usr/lib/libboost_coroutine-mt.a
-#usr/lib/libboost_coroutine-mt.so
-usr/lib/libboost_coroutine-mt.so.1.55.0
-#usr/lib/libboost_coroutine.a
-#usr/lib/libboost_coroutine.so
-usr/lib/libboost_coroutine.so.1.55.0
+usr/lib/libboost_chrono.so.1.64.0
+#usr/lib/libboost_container-mt.a
+#usr/lib/libboost_container-mt.so
+usr/lib/libboost_container-mt.so.1.64.0
+#usr/lib/libboost_container.a
+#usr/lib/libboost_container.so
+usr/lib/libboost_container.so.1.64.0
 #usr/lib/libboost_date_time-mt.a
 #usr/lib/libboost_date_time-mt.so
-usr/lib/libboost_date_time-mt.so.1.55.0
+usr/lib/libboost_date_time-mt.so.1.64.0
 #usr/lib/libboost_date_time.a
 #usr/lib/libboost_date_time.so
-usr/lib/libboost_date_time.so.1.55.0
+usr/lib/libboost_date_time.so.1.64.0
 #usr/lib/libboost_exception-mt.a
 #usr/lib/libboost_exception.a
 #usr/lib/libboost_filesystem-mt.a
 #usr/lib/libboost_filesystem-mt.so
-usr/lib/libboost_filesystem-mt.so.1.55.0
+usr/lib/libboost_filesystem-mt.so.1.64.0
 #usr/lib/libboost_filesystem.a
 #usr/lib/libboost_filesystem.so
-usr/lib/libboost_filesystem.so.1.55.0
+usr/lib/libboost_filesystem.so.1.64.0
 #usr/lib/libboost_graph-mt.a
 #usr/lib/libboost_graph-mt.so
-usr/lib/libboost_graph-mt.so.1.55.0
+usr/lib/libboost_graph-mt.so.1.64.0
 #usr/lib/libboost_graph.a
 #usr/lib/libboost_graph.so
-usr/lib/libboost_graph.so.1.55.0
+usr/lib/libboost_graph.so.1.64.0
 #usr/lib/libboost_iostreams-mt.a
 #usr/lib/libboost_iostreams-mt.so
-usr/lib/libboost_iostreams-mt.so.1.55.0
+usr/lib/libboost_iostreams-mt.so.1.64.0
 #usr/lib/libboost_iostreams.a
 #usr/lib/libboost_iostreams.so
-usr/lib/libboost_iostreams.so.1.55.0
+usr/lib/libboost_iostreams.so.1.64.0
 #usr/lib/libboost_locale-mt.a
 #usr/lib/libboost_locale-mt.so
-usr/lib/libboost_locale-mt.so.1.55.0
+usr/lib/libboost_locale-mt.so.1.64.0
 #usr/lib/libboost_log-mt.a
 #usr/lib/libboost_log-mt.so
-usr/lib/libboost_log-mt.so.1.55.0
+usr/lib/libboost_log-mt.so.1.64.0
 #usr/lib/libboost_log.a
 #usr/lib/libboost_log.so
-usr/lib/libboost_log.so.1.55.0
+usr/lib/libboost_log.so.1.64.0
 #usr/lib/libboost_log_setup-mt.a
 #usr/lib/libboost_log_setup-mt.so
-usr/lib/libboost_log_setup-mt.so.1.55.0
+usr/lib/libboost_log_setup-mt.so.1.64.0
 #usr/lib/libboost_log_setup.a
 #usr/lib/libboost_log_setup.so
-usr/lib/libboost_log_setup.so.1.55.0
+usr/lib/libboost_log_setup.so.1.64.0
 #usr/lib/libboost_math_c99-mt.a
 #usr/lib/libboost_math_c99-mt.so
-usr/lib/libboost_math_c99-mt.so.1.55.0
+usr/lib/libboost_math_c99-mt.so.1.64.0
 #usr/lib/libboost_math_c99.a
 #usr/lib/libboost_math_c99.so
-usr/lib/libboost_math_c99.so.1.55.0
+usr/lib/libboost_math_c99.so.1.64.0
 #usr/lib/libboost_math_c99f-mt.a
 #usr/lib/libboost_math_c99f-mt.so
-usr/lib/libboost_math_c99f-mt.so.1.55.0
+usr/lib/libboost_math_c99f-mt.so.1.64.0
 #usr/lib/libboost_math_c99f.a
 #usr/lib/libboost_math_c99f.so
-usr/lib/libboost_math_c99f.so.1.55.0
+usr/lib/libboost_math_c99f.so.1.64.0
 #usr/lib/libboost_math_c99l-mt.a
 #usr/lib/libboost_math_c99l-mt.so
-usr/lib/libboost_math_c99l-mt.so.1.55.0
+usr/lib/libboost_math_c99l-mt.so.1.64.0
 #usr/lib/libboost_math_c99l.a
 #usr/lib/libboost_math_c99l.so
-#usr/lib/libboost_math_c99l.so.1.55.0
+usr/lib/libboost_math_c99l.so.1.64.0
 #usr/lib/libboost_math_tr1-mt.a
 #usr/lib/libboost_math_tr1-mt.so
-usr/lib/libboost_math_tr1-mt.so.1.55.0
+usr/lib/libboost_math_tr1-mt.so.1.64.0
 #usr/lib/libboost_math_tr1.a
 #usr/lib/libboost_math_tr1.so
-usr/lib/libboost_math_tr1.so.1.55.0
+usr/lib/libboost_math_tr1.so.1.64.0
 #usr/lib/libboost_math_tr1f-mt.a
 #usr/lib/libboost_math_tr1f-mt.so
-usr/lib/libboost_math_tr1f-mt.so.1.55.0
+usr/lib/libboost_math_tr1f-mt.so.1.64.0
 #usr/lib/libboost_math_tr1f.a
 #usr/lib/libboost_math_tr1f.so
-usr/lib/libboost_math_tr1f.so.1.55.0
+usr/lib/libboost_math_tr1f.so.1.64.0
 #usr/lib/libboost_math_tr1l-mt.a
 #usr/lib/libboost_math_tr1l-mt.so
-usr/lib/libboost_math_tr1l-mt.so.1.55.0
+usr/lib/libboost_math_tr1l-mt.so.1.64.0
 #usr/lib/libboost_math_tr1l.a
 #usr/lib/libboost_math_tr1l.so
-usr/lib/libboost_math_tr1l.so.1.55.0
+usr/lib/libboost_math_tr1l.so.1.64.0
 #usr/lib/libboost_prg_exec_monitor-mt.a
 #usr/lib/libboost_prg_exec_monitor-mt.so
-usr/lib/libboost_prg_exec_monitor-mt.so.1.55.0
+usr/lib/libboost_prg_exec_monitor-mt.so.1.64.0
 #usr/lib/libboost_prg_exec_monitor.a
 #usr/lib/libboost_prg_exec_monitor.so
-usr/lib/libboost_prg_exec_monitor.so.1.55.0
-#usr/lib/libboost_program_options-mt.a
-#usr/lib/libboost_program_options-mt.so
-usr/lib/libboost_program_options-mt.so.1.55.0
-#usr/lib/libboost_program_options.a
-#usr/lib/libboost_program_options.so
-usr/lib/libboost_program_options.so.1.55.0
+usr/lib/libboost_prg_exec_monitor.so.1.64.0
 #usr/lib/libboost_random-mt.a
 #usr/lib/libboost_random-mt.so
-usr/lib/libboost_random-mt.so.1.55.0
+usr/lib/libboost_random-mt.so.1.64.0
 #usr/lib/libboost_random.a
 #usr/lib/libboost_random.so
-usr/lib/libboost_random.so.1.55.0
+usr/lib/libboost_random.so.1.64.0
 #usr/lib/libboost_regex-mt.a
 #usr/lib/libboost_regex-mt.so
-usr/lib/libboost_regex-mt.so.1.55.0
+usr/lib/libboost_regex-mt.so.1.64.0
 #usr/lib/libboost_regex.a
 #usr/lib/libboost_regex.so
-usr/lib/libboost_regex.so.1.55.0
+usr/lib/libboost_regex.so.1.64.0
 #usr/lib/libboost_serialization-mt.a
 #usr/lib/libboost_serialization-mt.so
-usr/lib/libboost_serialization-mt.so.1.55.0
+usr/lib/libboost_serialization-mt.so.1.64.0
 #usr/lib/libboost_serialization.a
 #usr/lib/libboost_serialization.so
-usr/lib/libboost_serialization.so.1.55.0
+usr/lib/libboost_serialization.so.1.64.0
 #usr/lib/libboost_signals-mt.a
 #usr/lib/libboost_signals-mt.so
-usr/lib/libboost_signals-mt.so.1.55.0
+usr/lib/libboost_signals-mt.so.1.64.0
 #usr/lib/libboost_signals.a
 #usr/lib/libboost_signals.so
-usr/lib/libboost_signals.so.1.55.0
+usr/lib/libboost_signals.so.1.64.0
 #usr/lib/libboost_system-mt.a
 #usr/lib/libboost_system-mt.so
-usr/lib/libboost_system-mt.so.1.55.0
+usr/lib/libboost_system-mt.so.1.64.0
 #usr/lib/libboost_system.a
 #usr/lib/libboost_system.so
-usr/lib/libboost_system.so.1.55.0
+usr/lib/libboost_system.so.1.64.0
 #usr/lib/libboost_test_exec_monitor-mt.a
 #usr/lib/libboost_test_exec_monitor.a
 #usr/lib/libboost_thread-mt.a
 #usr/lib/libboost_thread-mt.so
-usr/lib/libboost_thread-mt.so.1.55.0
+usr/lib/libboost_thread-mt.so.1.64.0
 #usr/lib/libboost_timer-mt.a
 #usr/lib/libboost_timer-mt.so
-usr/lib/libboost_timer-mt.so.1.55.0
+usr/lib/libboost_timer-mt.so.1.64.0
 #usr/lib/libboost_timer.a
 #usr/lib/libboost_timer.so
-usr/lib/libboost_timer.so.1.55.0
+usr/lib/libboost_timer.so.1.64.0
+#usr/lib/libboost_type_erasure-mt.a
+#usr/lib/libboost_type_erasure-mt.so
+usr/lib/libboost_type_erasure-mt.so.1.64.0
+#usr/lib/libboost_type_erasure.a
+#usr/lib/libboost_type_erasure.so
+usr/lib/libboost_type_erasure.so.1.64.0
 #usr/lib/libboost_unit_test_framework-mt.a
 #usr/lib/libboost_unit_test_framework-mt.so
-usr/lib/libboost_unit_test_framework-mt.so.1.55.0
+usr/lib/libboost_unit_test_framework-mt.so.1.64.0
 #usr/lib/libboost_unit_test_framework.a
 #usr/lib/libboost_unit_test_framework.so
-usr/lib/libboost_unit_test_framework.so.1.55.0
+usr/lib/libboost_unit_test_framework.so.1.64.0
 #usr/lib/libboost_wave-mt.a
 #usr/lib/libboost_wave-mt.so
-usr/lib/libboost_wave-mt.so.1.55.0
-#usr/lib/libboost_wave.a
-#usr/lib/libboost_wave.so
-usr/lib/libboost_wave.so.1.55.0
+usr/lib/libboost_wave-mt.so.1.64.0
 #usr/lib/libboost_wserialization-mt.a
 #usr/lib/libboost_wserialization-mt.so
-usr/lib/libboost_wserialization-mt.so.1.55.0
+usr/lib/libboost_wserialization-mt.so.1.64.0
 #usr/lib/libboost_wserialization.a
 #usr/lib/libboost_wserialization.so
-usr/lib/libboost_wserialization.so.1.55.0
+usr/lib/libboost_wserialization.so.1.64.0
index ca09099eb313f385d3350f6a873152c2d19f54b8..12934cead75a4ccd147d42a8fcf594ce77a8c15d 100644 (file)
@@ -7,36 +7,38 @@
 #usr/include/cairo/cairo-pdf.h
 #usr/include/cairo/cairo-ps.h
 #usr/include/cairo/cairo-script-interpreter.h
+#usr/include/cairo/cairo-script.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
 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
 usr/lib/libcairo-gobject.so.2
-usr/lib/libcairo-gobject.so.2.11000.2
+usr/lib/libcairo-gobject.so.2.11400.8
 #usr/lib/libcairo-script-interpreter.a
 #usr/lib/libcairo-script-interpreter.la
-usr/lib/libcairo-script-interpreter.so
+#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-script-interpreter.so.2.11400.8
 #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/libcairo.so.2.11400.8
 #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-script.pc
 #usr/lib/pkgconfig/cairo-svg.pc
 #usr/lib/pkgconfig/cairo.pc
 #usr/share/gtk-doc/html/cairo
@@ -58,16 +60,20 @@ usr/lib/libcairo.so.2.11000.2
 #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-Raster-Sources.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-Script-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-XCB-Surfaces.html
 #usr/share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-XLib-XRender-Backend.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
@@ -81,10 +87,11 @@ usr/lib/libcairo.so.2.11000.2
 #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.12.html
+#usr/share/gtk-doc/html/cairo/index-1.14.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
@@ -93,7 +100,10 @@ usr/lib/libcairo.so.2.11000.2
 #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-insensitive.png
 #usr/share/gtk-doc/html/cairo/left.png
+#usr/share/gtk-doc/html/cairo/right-insensitive.png
 #usr/share/gtk-doc/html/cairo/right.png
 #usr/share/gtk-doc/html/cairo/style.css
+#usr/share/gtk-doc/html/cairo/up-insensitive.png
 #usr/share/gtk-doc/html/cairo/up.png
index a0ae9423f63daf9d1518f829d082b617750ecc5c..f8658d9ce357c6b3c1be38bbae775bc921e6a7ea 100644 (file)
 #usr/bin/cpack
 #usr/bin/ctest
 #usr/share/aclocal/cmake.m4
-#usr/share/cmake-3.2
-#usr/share/cmake-3.2/Help
-#usr/share/cmake-3.2/Help/command
-#usr/share/cmake-3.2/Help/command/FIND_XXX.txt
-#usr/share/cmake-3.2/Help/command/FIND_XXX_MAC.txt
-#usr/share/cmake-3.2/Help/command/FIND_XXX_ORDER.txt
-#usr/share/cmake-3.2/Help/command/FIND_XXX_ROOT.txt
-#usr/share/cmake-3.2/Help/command/add_compile_options.rst
-#usr/share/cmake-3.2/Help/command/add_custom_command.rst
-#usr/share/cmake-3.2/Help/command/add_custom_target.rst
-#usr/share/cmake-3.2/Help/command/add_definitions.rst
-#usr/share/cmake-3.2/Help/command/add_dependencies.rst
-#usr/share/cmake-3.2/Help/command/add_executable.rst
-#usr/share/cmake-3.2/Help/command/add_library.rst
-#usr/share/cmake-3.2/Help/command/add_subdirectory.rst
-#usr/share/cmake-3.2/Help/command/add_test.rst
-#usr/share/cmake-3.2/Help/command/aux_source_directory.rst
-#usr/share/cmake-3.2/Help/command/break.rst
-#usr/share/cmake-3.2/Help/command/build_command.rst
-#usr/share/cmake-3.2/Help/command/build_name.rst
-#usr/share/cmake-3.2/Help/command/cmake_host_system_information.rst
-#usr/share/cmake-3.2/Help/command/cmake_minimum_required.rst
-#usr/share/cmake-3.2/Help/command/cmake_policy.rst
-#usr/share/cmake-3.2/Help/command/configure_file.rst
-#usr/share/cmake-3.2/Help/command/continue.rst
-#usr/share/cmake-3.2/Help/command/create_test_sourcelist.rst
-#usr/share/cmake-3.2/Help/command/ctest_build.rst
-#usr/share/cmake-3.2/Help/command/ctest_configure.rst
-#usr/share/cmake-3.2/Help/command/ctest_coverage.rst
-#usr/share/cmake-3.2/Help/command/ctest_empty_binary_directory.rst
-#usr/share/cmake-3.2/Help/command/ctest_memcheck.rst
-#usr/share/cmake-3.2/Help/command/ctest_read_custom_files.rst
-#usr/share/cmake-3.2/Help/command/ctest_run_script.rst
-#usr/share/cmake-3.2/Help/command/ctest_sleep.rst
-#usr/share/cmake-3.2/Help/command/ctest_start.rst
-#usr/share/cmake-3.2/Help/command/ctest_submit.rst
-#usr/share/cmake-3.2/Help/command/ctest_test.rst
-#usr/share/cmake-3.2/Help/command/ctest_update.rst
-#usr/share/cmake-3.2/Help/command/ctest_upload.rst
-#usr/share/cmake-3.2/Help/command/define_property.rst
-#usr/share/cmake-3.2/Help/command/else.rst
-#usr/share/cmake-3.2/Help/command/elseif.rst
-#usr/share/cmake-3.2/Help/command/enable_language.rst
-#usr/share/cmake-3.2/Help/command/enable_testing.rst
-#usr/share/cmake-3.2/Help/command/endforeach.rst
-#usr/share/cmake-3.2/Help/command/endfunction.rst
-#usr/share/cmake-3.2/Help/command/endif.rst
-#usr/share/cmake-3.2/Help/command/endmacro.rst
-#usr/share/cmake-3.2/Help/command/endwhile.rst
-#usr/share/cmake-3.2/Help/command/exec_program.rst
-#usr/share/cmake-3.2/Help/command/execute_process.rst
-#usr/share/cmake-3.2/Help/command/export.rst
-#usr/share/cmake-3.2/Help/command/export_library_dependencies.rst
-#usr/share/cmake-3.2/Help/command/file.rst
-#usr/share/cmake-3.2/Help/command/find_file.rst
-#usr/share/cmake-3.2/Help/command/find_library.rst
-#usr/share/cmake-3.2/Help/command/find_package.rst
-#usr/share/cmake-3.2/Help/command/find_path.rst
-#usr/share/cmake-3.2/Help/command/find_program.rst
-#usr/share/cmake-3.2/Help/command/fltk_wrap_ui.rst
-#usr/share/cmake-3.2/Help/command/foreach.rst
-#usr/share/cmake-3.2/Help/command/function.rst
-#usr/share/cmake-3.2/Help/command/get_cmake_property.rst
-#usr/share/cmake-3.2/Help/command/get_directory_property.rst
-#usr/share/cmake-3.2/Help/command/get_filename_component.rst
-#usr/share/cmake-3.2/Help/command/get_property.rst
-#usr/share/cmake-3.2/Help/command/get_source_file_property.rst
-#usr/share/cmake-3.2/Help/command/get_target_property.rst
-#usr/share/cmake-3.2/Help/command/get_test_property.rst
-#usr/share/cmake-3.2/Help/command/if.rst
-#usr/share/cmake-3.2/Help/command/include.rst
-#usr/share/cmake-3.2/Help/command/include_directories.rst
-#usr/share/cmake-3.2/Help/command/include_external_msproject.rst
-#usr/share/cmake-3.2/Help/command/include_regular_expression.rst
-#usr/share/cmake-3.2/Help/command/install.rst
-#usr/share/cmake-3.2/Help/command/install_files.rst
-#usr/share/cmake-3.2/Help/command/install_programs.rst
-#usr/share/cmake-3.2/Help/command/install_targets.rst
-#usr/share/cmake-3.2/Help/command/link_directories.rst
-#usr/share/cmake-3.2/Help/command/link_libraries.rst
-#usr/share/cmake-3.2/Help/command/list.rst
-#usr/share/cmake-3.2/Help/command/load_cache.rst
-#usr/share/cmake-3.2/Help/command/load_command.rst
-#usr/share/cmake-3.2/Help/command/macro.rst
-#usr/share/cmake-3.2/Help/command/make_directory.rst
-#usr/share/cmake-3.2/Help/command/mark_as_advanced.rst
-#usr/share/cmake-3.2/Help/command/math.rst
-#usr/share/cmake-3.2/Help/command/message.rst
-#usr/share/cmake-3.2/Help/command/option.rst
-#usr/share/cmake-3.2/Help/command/output_required_files.rst
-#usr/share/cmake-3.2/Help/command/project.rst
-#usr/share/cmake-3.2/Help/command/qt_wrap_cpp.rst
-#usr/share/cmake-3.2/Help/command/qt_wrap_ui.rst
-#usr/share/cmake-3.2/Help/command/remove.rst
-#usr/share/cmake-3.2/Help/command/remove_definitions.rst
-#usr/share/cmake-3.2/Help/command/return.rst
-#usr/share/cmake-3.2/Help/command/separate_arguments.rst
-#usr/share/cmake-3.2/Help/command/set.rst
-#usr/share/cmake-3.2/Help/command/set_directory_properties.rst
-#usr/share/cmake-3.2/Help/command/set_property.rst
-#usr/share/cmake-3.2/Help/command/set_source_files_properties.rst
-#usr/share/cmake-3.2/Help/command/set_target_properties.rst
-#usr/share/cmake-3.2/Help/command/set_tests_properties.rst
-#usr/share/cmake-3.2/Help/command/site_name.rst
-#usr/share/cmake-3.2/Help/command/source_group.rst
-#usr/share/cmake-3.2/Help/command/string.rst
-#usr/share/cmake-3.2/Help/command/subdir_depends.rst
-#usr/share/cmake-3.2/Help/command/subdirs.rst
-#usr/share/cmake-3.2/Help/command/target_compile_definitions.rst
-#usr/share/cmake-3.2/Help/command/target_compile_features.rst
-#usr/share/cmake-3.2/Help/command/target_compile_options.rst
-#usr/share/cmake-3.2/Help/command/target_include_directories.rst
-#usr/share/cmake-3.2/Help/command/target_link_libraries.rst
-#usr/share/cmake-3.2/Help/command/target_sources.rst
-#usr/share/cmake-3.2/Help/command/try_compile.rst
-#usr/share/cmake-3.2/Help/command/try_run.rst
-#usr/share/cmake-3.2/Help/command/unset.rst
-#usr/share/cmake-3.2/Help/command/use_mangled_mesa.rst
-#usr/share/cmake-3.2/Help/command/utility_source.rst
-#usr/share/cmake-3.2/Help/command/variable_requires.rst
-#usr/share/cmake-3.2/Help/command/variable_watch.rst
-#usr/share/cmake-3.2/Help/command/while.rst
-#usr/share/cmake-3.2/Help/command/write_file.rst
-#usr/share/cmake-3.2/Help/generator
-#usr/share/cmake-3.2/Help/generator/Borland
+#usr/share/cmake-3.8
+#usr/share/cmake-3.8/Help
+#usr/share/cmake-3.8/Help/command
+#usr/share/cmake-3.8/Help/command/FIND_XXX.txt
+#usr/share/cmake-3.8/Help/command/FIND_XXX_ORDER.txt
+#usr/share/cmake-3.8/Help/command/FIND_XXX_ROOT.txt
+#usr/share/cmake-3.8/Help/command/add_compile_options.rst
+#usr/share/cmake-3.8/Help/command/add_custom_command.rst
+#usr/share/cmake-3.8/Help/command/add_custom_target.rst
+#usr/share/cmake-3.8/Help/command/add_definitions.rst
+#usr/share/cmake-3.8/Help/command/add_dependencies.rst
+#usr/share/cmake-3.8/Help/command/add_executable.rst
+#usr/share/cmake-3.8/Help/command/add_library.rst
+#usr/share/cmake-3.8/Help/command/add_subdirectory.rst
+#usr/share/cmake-3.8/Help/command/add_test.rst
+#usr/share/cmake-3.8/Help/command/aux_source_directory.rst
+#usr/share/cmake-3.8/Help/command/break.rst
+#usr/share/cmake-3.8/Help/command/build_command.rst
+#usr/share/cmake-3.8/Help/command/build_name.rst
+#usr/share/cmake-3.8/Help/command/cmake_host_system_information.rst
+#usr/share/cmake-3.8/Help/command/cmake_minimum_required.rst
+#usr/share/cmake-3.8/Help/command/cmake_parse_arguments.rst
+#usr/share/cmake-3.8/Help/command/cmake_policy.rst
+#usr/share/cmake-3.8/Help/command/configure_file.rst
+#usr/share/cmake-3.8/Help/command/continue.rst
+#usr/share/cmake-3.8/Help/command/create_test_sourcelist.rst
+#usr/share/cmake-3.8/Help/command/ctest_build.rst
+#usr/share/cmake-3.8/Help/command/ctest_configure.rst
+#usr/share/cmake-3.8/Help/command/ctest_coverage.rst
+#usr/share/cmake-3.8/Help/command/ctest_empty_binary_directory.rst
+#usr/share/cmake-3.8/Help/command/ctest_memcheck.rst
+#usr/share/cmake-3.8/Help/command/ctest_read_custom_files.rst
+#usr/share/cmake-3.8/Help/command/ctest_run_script.rst
+#usr/share/cmake-3.8/Help/command/ctest_sleep.rst
+#usr/share/cmake-3.8/Help/command/ctest_start.rst
+#usr/share/cmake-3.8/Help/command/ctest_submit.rst
+#usr/share/cmake-3.8/Help/command/ctest_test.rst
+#usr/share/cmake-3.8/Help/command/ctest_update.rst
+#usr/share/cmake-3.8/Help/command/ctest_upload.rst
+#usr/share/cmake-3.8/Help/command/define_property.rst
+#usr/share/cmake-3.8/Help/command/else.rst
+#usr/share/cmake-3.8/Help/command/elseif.rst
+#usr/share/cmake-3.8/Help/command/enable_language.rst
+#usr/share/cmake-3.8/Help/command/enable_testing.rst
+#usr/share/cmake-3.8/Help/command/endforeach.rst
+#usr/share/cmake-3.8/Help/command/endfunction.rst
+#usr/share/cmake-3.8/Help/command/endif.rst
+#usr/share/cmake-3.8/Help/command/endmacro.rst
+#usr/share/cmake-3.8/Help/command/endwhile.rst
+#usr/share/cmake-3.8/Help/command/exec_program.rst
+#usr/share/cmake-3.8/Help/command/execute_process.rst
+#usr/share/cmake-3.8/Help/command/export.rst
+#usr/share/cmake-3.8/Help/command/export_library_dependencies.rst
+#usr/share/cmake-3.8/Help/command/file.rst
+#usr/share/cmake-3.8/Help/command/find_file.rst
+#usr/share/cmake-3.8/Help/command/find_library.rst
+#usr/share/cmake-3.8/Help/command/find_package.rst
+#usr/share/cmake-3.8/Help/command/find_path.rst
+#usr/share/cmake-3.8/Help/command/find_program.rst
+#usr/share/cmake-3.8/Help/command/fltk_wrap_ui.rst
+#usr/share/cmake-3.8/Help/command/foreach.rst
+#usr/share/cmake-3.8/Help/command/function.rst
+#usr/share/cmake-3.8/Help/command/get_cmake_property.rst
+#usr/share/cmake-3.8/Help/command/get_directory_property.rst
+#usr/share/cmake-3.8/Help/command/get_filename_component.rst
+#usr/share/cmake-3.8/Help/command/get_property.rst
+#usr/share/cmake-3.8/Help/command/get_source_file_property.rst
+#usr/share/cmake-3.8/Help/command/get_target_property.rst
+#usr/share/cmake-3.8/Help/command/get_test_property.rst
+#usr/share/cmake-3.8/Help/command/if.rst
+#usr/share/cmake-3.8/Help/command/include.rst
+#usr/share/cmake-3.8/Help/command/include_directories.rst
+#usr/share/cmake-3.8/Help/command/include_external_msproject.rst
+#usr/share/cmake-3.8/Help/command/include_regular_expression.rst
+#usr/share/cmake-3.8/Help/command/install.rst
+#usr/share/cmake-3.8/Help/command/install_files.rst
+#usr/share/cmake-3.8/Help/command/install_programs.rst
+#usr/share/cmake-3.8/Help/command/install_targets.rst
+#usr/share/cmake-3.8/Help/command/link_directories.rst
+#usr/share/cmake-3.8/Help/command/link_libraries.rst
+#usr/share/cmake-3.8/Help/command/list.rst
+#usr/share/cmake-3.8/Help/command/load_cache.rst
+#usr/share/cmake-3.8/Help/command/load_command.rst
+#usr/share/cmake-3.8/Help/command/macro.rst
+#usr/share/cmake-3.8/Help/command/make_directory.rst
+#usr/share/cmake-3.8/Help/command/mark_as_advanced.rst
+#usr/share/cmake-3.8/Help/command/math.rst
+#usr/share/cmake-3.8/Help/command/message.rst
+#usr/share/cmake-3.8/Help/command/option.rst
+#usr/share/cmake-3.8/Help/command/output_required_files.rst
+#usr/share/cmake-3.8/Help/command/project.rst
+#usr/share/cmake-3.8/Help/command/qt_wrap_cpp.rst
+#usr/share/cmake-3.8/Help/command/qt_wrap_ui.rst
+#usr/share/cmake-3.8/Help/command/remove.rst
+#usr/share/cmake-3.8/Help/command/remove_definitions.rst
+#usr/share/cmake-3.8/Help/command/return.rst
+#usr/share/cmake-3.8/Help/command/separate_arguments.rst
+#usr/share/cmake-3.8/Help/command/set.rst
+#usr/share/cmake-3.8/Help/command/set_directory_properties.rst
+#usr/share/cmake-3.8/Help/command/set_property.rst
+#usr/share/cmake-3.8/Help/command/set_source_files_properties.rst
+#usr/share/cmake-3.8/Help/command/set_target_properties.rst
+#usr/share/cmake-3.8/Help/command/set_tests_properties.rst
+#usr/share/cmake-3.8/Help/command/site_name.rst
+#usr/share/cmake-3.8/Help/command/source_group.rst
+#usr/share/cmake-3.8/Help/command/string.rst
+#usr/share/cmake-3.8/Help/command/subdir_depends.rst
+#usr/share/cmake-3.8/Help/command/subdirs.rst
+#usr/share/cmake-3.8/Help/command/target_compile_definitions.rst
+#usr/share/cmake-3.8/Help/command/target_compile_features.rst
+#usr/share/cmake-3.8/Help/command/target_compile_options.rst
+#usr/share/cmake-3.8/Help/command/target_include_directories.rst
+#usr/share/cmake-3.8/Help/command/target_link_libraries.rst
+#usr/share/cmake-3.8/Help/command/target_sources.rst
+#usr/share/cmake-3.8/Help/command/try_compile.rst
+#usr/share/cmake-3.8/Help/command/try_run.rst
+#usr/share/cmake-3.8/Help/command/unset.rst
+#usr/share/cmake-3.8/Help/command/use_mangled_mesa.rst
+#usr/share/cmake-3.8/Help/command/utility_source.rst
+#usr/share/cmake-3.8/Help/command/variable_requires.rst
+#usr/share/cmake-3.8/Help/command/variable_watch.rst
+#usr/share/cmake-3.8/Help/command/while.rst
+#usr/share/cmake-3.8/Help/command/write_file.rst
+#usr/share/cmake-3.8/Help/generator
+#usr/share/cmake-3.8/Help/generator/Borland
 #Makefiles.rst
-#usr/share/cmake-3.2/Help/generator/CodeBlocks.rst
-#usr/share/cmake-3.2/Help/generator/CodeLite.rst
-#usr/share/cmake-3.2/Help/generator/Eclipse
+#usr/share/cmake-3.8/Help/generator/CodeBlocks.rst
+#usr/share/cmake-3.8/Help/generator/CodeLite.rst
+#usr/share/cmake-3.8/Help/generator/Eclipse
 #CDT4.rst
-#usr/share/cmake-3.2/Help/generator/KDevelop3.rst
-#usr/share/cmake-3.2/Help/generator/Kate.rst
-#usr/share/cmake-3.2/Help/generator/MSYS
+#usr/share/cmake-3.8/Help/generator/Green
+#Hills
+#MULTI.rst
+#usr/share/cmake-3.8/Help/generator/KDevelop3.rst
+#usr/share/cmake-3.8/Help/generator/Kate.rst
+#usr/share/cmake-3.8/Help/generator/MSYS
 #Makefiles.rst
-#usr/share/cmake-3.2/Help/generator/MinGW
+#usr/share/cmake-3.8/Help/generator/MinGW
 #Makefiles.rst
-#usr/share/cmake-3.2/Help/generator/NMake
+#usr/share/cmake-3.8/Help/generator/NMake
 #Makefiles
 #JOM.rst
-#usr/share/cmake-3.2/Help/generator/NMake
+#usr/share/cmake-3.8/Help/generator/NMake
 #Makefiles.rst
-#usr/share/cmake-3.2/Help/generator/Ninja.rst
-#usr/share/cmake-3.2/Help/generator/Sublime
+#usr/share/cmake-3.8/Help/generator/Ninja.rst
+#usr/share/cmake-3.8/Help/generator/Sublime
 #Text
 #2.rst
-#usr/share/cmake-3.2/Help/generator/Unix
+#usr/share/cmake-3.8/Help/generator/Unix
 #Makefiles.rst
-#usr/share/cmake-3.2/Help/generator/Visual
+#usr/share/cmake-3.8/Help/generator/VS_TOOLSET_HOST_ARCH.txt
+#usr/share/cmake-3.8/Help/generator/Visual
 #Studio
 #10
 #2010.rst
-#usr/share/cmake-3.2/Help/generator/Visual
+#usr/share/cmake-3.8/Help/generator/Visual
 #Studio
 #11
 #2012.rst
-#usr/share/cmake-3.2/Help/generator/Visual
+#usr/share/cmake-3.8/Help/generator/Visual
 #Studio
 #12
 #2013.rst
-#usr/share/cmake-3.2/Help/generator/Visual
+#usr/share/cmake-3.8/Help/generator/Visual
 #Studio
 #14
 #2015.rst
-#usr/share/cmake-3.2/Help/generator/Visual
+#usr/share/cmake-3.8/Help/generator/Visual
+#Studio
+#15
+#2017.rst
+#usr/share/cmake-3.8/Help/generator/Visual
 #Studio
 #6.rst
-#usr/share/cmake-3.2/Help/generator/Visual
+#usr/share/cmake-3.8/Help/generator/Visual
 #Studio
 #7
 #.NET
 #2003.rst
-#usr/share/cmake-3.2/Help/generator/Visual
+#usr/share/cmake-3.8/Help/generator/Visual
 #Studio
 #7.rst
-#usr/share/cmake-3.2/Help/generator/Visual
+#usr/share/cmake-3.8/Help/generator/Visual
 #Studio
 #8
 #2005.rst
-#usr/share/cmake-3.2/Help/generator/Visual
+#usr/share/cmake-3.8/Help/generator/Visual
 #Studio
 #9
 #2008.rst
-#usr/share/cmake-3.2/Help/generator/Watcom
+#usr/share/cmake-3.8/Help/generator/Watcom
 #WMake.rst
-#usr/share/cmake-3.2/Help/generator/Xcode.rst
-#usr/share/cmake-3.2/Help/include
-#usr/share/cmake-3.2/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
-#usr/share/cmake-3.2/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
-#usr/share/cmake-3.2/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
-#usr/share/cmake-3.2/Help/index.rst
-#usr/share/cmake-3.2/Help/manual
-#usr/share/cmake-3.2/Help/manual/LINKS.txt
-#usr/share/cmake-3.2/Help/manual/OPTIONS_BUILD.txt
-#usr/share/cmake-3.2/Help/manual/OPTIONS_HELP.txt
-#usr/share/cmake-3.2/Help/manual/ccmake.1.rst
-#usr/share/cmake-3.2/Help/manual/cmake-buildsystem.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-commands.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-compile-features.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-developer.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-generator-expressions.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-generators.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-gui.1.rst
-#usr/share/cmake-3.2/Help/manual/cmake-language.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-modules.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-packages.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-policies.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-properties.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-qt.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-toolchains.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake-variables.7.rst
-#usr/share/cmake-3.2/Help/manual/cmake.1.rst
-#usr/share/cmake-3.2/Help/manual/cpack.1.rst
-#usr/share/cmake-3.2/Help/manual/ctest.1.rst
-#usr/share/cmake-3.2/Help/module
-#usr/share/cmake-3.2/Help/module/AddFileDependencies.rst
-#usr/share/cmake-3.2/Help/module/BundleUtilities.rst
-#usr/share/cmake-3.2/Help/module/CMakeAddFortranSubdirectory.rst
-#usr/share/cmake-3.2/Help/module/CMakeBackwardCompatibilityCXX.rst
-#usr/share/cmake-3.2/Help/module/CMakeDependentOption.rst
-#usr/share/cmake-3.2/Help/module/CMakeDetermineVSServicePack.rst
-#usr/share/cmake-3.2/Help/module/CMakeExpandImportedTargets.rst
-#usr/share/cmake-3.2/Help/module/CMakeFindDependencyMacro.rst
-#usr/share/cmake-3.2/Help/module/CMakeFindFrameworks.rst
-#usr/share/cmake-3.2/Help/module/CMakeFindPackageMode.rst
-#usr/share/cmake-3.2/Help/module/CMakeForceCompiler.rst
-#usr/share/cmake-3.2/Help/module/CMakeGraphVizOptions.rst
-#usr/share/cmake-3.2/Help/module/CMakePackageConfigHelpers.rst
-#usr/share/cmake-3.2/Help/module/CMakeParseArguments.rst
-#usr/share/cmake-3.2/Help/module/CMakePrintHelpers.rst
-#usr/share/cmake-3.2/Help/module/CMakePrintSystemInformation.rst
-#usr/share/cmake-3.2/Help/module/CMakePushCheckState.rst
-#usr/share/cmake-3.2/Help/module/CMakeVerifyManifest.rst
-#usr/share/cmake-3.2/Help/module/CPack.rst
-#usr/share/cmake-3.2/Help/module/CPackBundle.rst
-#usr/share/cmake-3.2/Help/module/CPackComponent.rst
-#usr/share/cmake-3.2/Help/module/CPackCygwin.rst
-#usr/share/cmake-3.2/Help/module/CPackDMG.rst
-#usr/share/cmake-3.2/Help/module/CPackDeb.rst
-#usr/share/cmake-3.2/Help/module/CPackIFW.rst
-#usr/share/cmake-3.2/Help/module/CPackNSIS.rst
-#usr/share/cmake-3.2/Help/module/CPackPackageMaker.rst
-#usr/share/cmake-3.2/Help/module/CPackRPM.rst
-#usr/share/cmake-3.2/Help/module/CPackWIX.rst
-#usr/share/cmake-3.2/Help/module/CTest.rst
-#usr/share/cmake-3.2/Help/module/CTestCoverageCollectGCOV.rst
-#usr/share/cmake-3.2/Help/module/CTestScriptMode.rst
-#usr/share/cmake-3.2/Help/module/CTestUseLaunchers.rst
-#usr/share/cmake-3.2/Help/module/CheckCCompilerFlag.rst
-#usr/share/cmake-3.2/Help/module/CheckCSourceCompiles.rst
-#usr/share/cmake-3.2/Help/module/CheckCSourceRuns.rst
-#usr/share/cmake-3.2/Help/module/CheckCXXCompilerFlag.rst
-#usr/share/cmake-3.2/Help/module/CheckCXXSourceCompiles.rst
-#usr/share/cmake-3.2/Help/module/CheckCXXSourceRuns.rst
-#usr/share/cmake-3.2/Help/module/CheckCXXSymbolExists.rst
-#usr/share/cmake-3.2/Help/module/CheckFortranFunctionExists.rst
-#usr/share/cmake-3.2/Help/module/CheckFortranSourceCompiles.rst
-#usr/share/cmake-3.2/Help/module/CheckFunctionExists.rst
-#usr/share/cmake-3.2/Help/module/CheckIncludeFile.rst
-#usr/share/cmake-3.2/Help/module/CheckIncludeFileCXX.rst
-#usr/share/cmake-3.2/Help/module/CheckIncludeFiles.rst
-#usr/share/cmake-3.2/Help/module/CheckLanguage.rst
-#usr/share/cmake-3.2/Help/module/CheckLibraryExists.rst
-#usr/share/cmake-3.2/Help/module/CheckPrototypeDefinition.rst
-#usr/share/cmake-3.2/Help/module/CheckStructHasMember.rst
-#usr/share/cmake-3.2/Help/module/CheckSymbolExists.rst
-#usr/share/cmake-3.2/Help/module/CheckTypeSize.rst
-#usr/share/cmake-3.2/Help/module/CheckVariableExists.rst
-#usr/share/cmake-3.2/Help/module/Dart.rst
-#usr/share/cmake-3.2/Help/module/DeployQt4.rst
-#usr/share/cmake-3.2/Help/module/Documentation.rst
-#usr/share/cmake-3.2/Help/module/ExternalData.rst
-#usr/share/cmake-3.2/Help/module/ExternalProject.rst
-#usr/share/cmake-3.2/Help/module/FeatureSummary.rst
-#usr/share/cmake-3.2/Help/module/FindALSA.rst
-#usr/share/cmake-3.2/Help/module/FindASPELL.rst
-#usr/share/cmake-3.2/Help/module/FindAVIFile.rst
-#usr/share/cmake-3.2/Help/module/FindArmadillo.rst
-#usr/share/cmake-3.2/Help/module/FindBISON.rst
-#usr/share/cmake-3.2/Help/module/FindBLAS.rst
-#usr/share/cmake-3.2/Help/module/FindBZip2.rst
-#usr/share/cmake-3.2/Help/module/FindBacktrace.rst
-#usr/share/cmake-3.2/Help/module/FindBoost.rst
-#usr/share/cmake-3.2/Help/module/FindBullet.rst
-#usr/share/cmake-3.2/Help/module/FindCABLE.rst
-#usr/share/cmake-3.2/Help/module/FindCUDA.rst
-#usr/share/cmake-3.2/Help/module/FindCURL.rst
-#usr/share/cmake-3.2/Help/module/FindCVS.rst
-#usr/share/cmake-3.2/Help/module/FindCoin3D.rst
-#usr/share/cmake-3.2/Help/module/FindCups.rst
-#usr/share/cmake-3.2/Help/module/FindCurses.rst
-#usr/share/cmake-3.2/Help/module/FindCxxTest.rst
-#usr/share/cmake-3.2/Help/module/FindCygwin.rst
-#usr/share/cmake-3.2/Help/module/FindDCMTK.rst
-#usr/share/cmake-3.2/Help/module/FindDart.rst
-#usr/share/cmake-3.2/Help/module/FindDevIL.rst
-#usr/share/cmake-3.2/Help/module/FindDoxygen.rst
-#usr/share/cmake-3.2/Help/module/FindEXPAT.rst
-#usr/share/cmake-3.2/Help/module/FindFLEX.rst
-#usr/share/cmake-3.2/Help/module/FindFLTK.rst
-#usr/share/cmake-3.2/Help/module/FindFLTK2.rst
-#usr/share/cmake-3.2/Help/module/FindFreetype.rst
-#usr/share/cmake-3.2/Help/module/FindGCCXML.rst
-#usr/share/cmake-3.2/Help/module/FindGDAL.rst
-#usr/share/cmake-3.2/Help/module/FindGIF.rst
-#usr/share/cmake-3.2/Help/module/FindGLEW.rst
-#usr/share/cmake-3.2/Help/module/FindGLUT.rst
-#usr/share/cmake-3.2/Help/module/FindGSL.rst
-#usr/share/cmake-3.2/Help/module/FindGTK.rst
-#usr/share/cmake-3.2/Help/module/FindGTK2.rst
-#usr/share/cmake-3.2/Help/module/FindGTest.rst
-#usr/share/cmake-3.2/Help/module/FindGettext.rst
-#usr/share/cmake-3.2/Help/module/FindGit.rst
-#usr/share/cmake-3.2/Help/module/FindGnuTLS.rst
-#usr/share/cmake-3.2/Help/module/FindGnuplot.rst
-#usr/share/cmake-3.2/Help/module/FindHDF5.rst
-#usr/share/cmake-3.2/Help/module/FindHSPELL.rst
-#usr/share/cmake-3.2/Help/module/FindHTMLHelp.rst
-#usr/share/cmake-3.2/Help/module/FindHg.rst
-#usr/share/cmake-3.2/Help/module/FindITK.rst
-#usr/share/cmake-3.2/Help/module/FindIce.rst
-#usr/share/cmake-3.2/Help/module/FindIcotool.rst
-#usr/share/cmake-3.2/Help/module/FindImageMagick.rst
-#usr/share/cmake-3.2/Help/module/FindIntl.rst
-#usr/share/cmake-3.2/Help/module/FindJNI.rst
-#usr/share/cmake-3.2/Help/module/FindJPEG.rst
-#usr/share/cmake-3.2/Help/module/FindJasper.rst
-#usr/share/cmake-3.2/Help/module/FindJava.rst
-#usr/share/cmake-3.2/Help/module/FindKDE3.rst
-#usr/share/cmake-3.2/Help/module/FindKDE4.rst
-#usr/share/cmake-3.2/Help/module/FindLAPACK.rst
-#usr/share/cmake-3.2/Help/module/FindLATEX.rst
-#usr/share/cmake-3.2/Help/module/FindLibArchive.rst
-#usr/share/cmake-3.2/Help/module/FindLibLZMA.rst
-#usr/share/cmake-3.2/Help/module/FindLibXml2.rst
-#usr/share/cmake-3.2/Help/module/FindLibXslt.rst
-#usr/share/cmake-3.2/Help/module/FindLua.rst
-#usr/share/cmake-3.2/Help/module/FindLua50.rst
-#usr/share/cmake-3.2/Help/module/FindLua51.rst
-#usr/share/cmake-3.2/Help/module/FindMFC.rst
-#usr/share/cmake-3.2/Help/module/FindMPEG.rst
-#usr/share/cmake-3.2/Help/module/FindMPEG2.rst
-#usr/share/cmake-3.2/Help/module/FindMPI.rst
-#usr/share/cmake-3.2/Help/module/FindMatlab.rst
-#usr/share/cmake-3.2/Help/module/FindMotif.rst
-#usr/share/cmake-3.2/Help/module/FindOpenAL.rst
-#usr/share/cmake-3.2/Help/module/FindOpenCL.rst
-#usr/share/cmake-3.2/Help/module/FindOpenGL.rst
-#usr/share/cmake-3.2/Help/module/FindOpenMP.rst
-#usr/share/cmake-3.2/Help/module/FindOpenSSL.rst
-#usr/share/cmake-3.2/Help/module/FindOpenSceneGraph.rst
-#usr/share/cmake-3.2/Help/module/FindOpenThreads.rst
-#usr/share/cmake-3.2/Help/module/FindPHP4.rst
-#usr/share/cmake-3.2/Help/module/FindPNG.rst
-#usr/share/cmake-3.2/Help/module/FindPackageHandleStandardArgs.rst
-#usr/share/cmake-3.2/Help/module/FindPackageMessage.rst
-#usr/share/cmake-3.2/Help/module/FindPerl.rst
-#usr/share/cmake-3.2/Help/module/FindPerlLibs.rst
-#usr/share/cmake-3.2/Help/module/FindPhysFS.rst
-#usr/share/cmake-3.2/Help/module/FindPike.rst
-#usr/share/cmake-3.2/Help/module/FindPkgConfig.rst
-#usr/share/cmake-3.2/Help/module/FindPostgreSQL.rst
-#usr/share/cmake-3.2/Help/module/FindProducer.rst
-#usr/share/cmake-3.2/Help/module/FindProtobuf.rst
-#usr/share/cmake-3.2/Help/module/FindPythonInterp.rst
-#usr/share/cmake-3.2/Help/module/FindPythonLibs.rst
-#usr/share/cmake-3.2/Help/module/FindQt.rst
-#usr/share/cmake-3.2/Help/module/FindQt3.rst
-#usr/share/cmake-3.2/Help/module/FindQt4.rst
-#usr/share/cmake-3.2/Help/module/FindQuickTime.rst
-#usr/share/cmake-3.2/Help/module/FindRTI.rst
-#usr/share/cmake-3.2/Help/module/FindRuby.rst
-#usr/share/cmake-3.2/Help/module/FindSDL.rst
-#usr/share/cmake-3.2/Help/module/FindSDL_image.rst
-#usr/share/cmake-3.2/Help/module/FindSDL_mixer.rst
-#usr/share/cmake-3.2/Help/module/FindSDL_net.rst
-#usr/share/cmake-3.2/Help/module/FindSDL_sound.rst
-#usr/share/cmake-3.2/Help/module/FindSDL_ttf.rst
-#usr/share/cmake-3.2/Help/module/FindSWIG.rst
-#usr/share/cmake-3.2/Help/module/FindSelfPackers.rst
-#usr/share/cmake-3.2/Help/module/FindSquish.rst
-#usr/share/cmake-3.2/Help/module/FindSubversion.rst
-#usr/share/cmake-3.2/Help/module/FindTCL.rst
-#usr/share/cmake-3.2/Help/module/FindTIFF.rst
-#usr/share/cmake-3.2/Help/module/FindTclStub.rst
-#usr/share/cmake-3.2/Help/module/FindTclsh.rst
-#usr/share/cmake-3.2/Help/module/FindThreads.rst
-#usr/share/cmake-3.2/Help/module/FindUnixCommands.rst
-#usr/share/cmake-3.2/Help/module/FindVTK.rst
-#usr/share/cmake-3.2/Help/module/FindWget.rst
-#usr/share/cmake-3.2/Help/module/FindWish.rst
-#usr/share/cmake-3.2/Help/module/FindX11.rst
-#usr/share/cmake-3.2/Help/module/FindXMLRPC.rst
-#usr/share/cmake-3.2/Help/module/FindXercesC.rst
-#usr/share/cmake-3.2/Help/module/FindZLIB.rst
-#usr/share/cmake-3.2/Help/module/Findosg.rst
-#usr/share/cmake-3.2/Help/module/FindosgAnimation.rst
-#usr/share/cmake-3.2/Help/module/FindosgDB.rst
-#usr/share/cmake-3.2/Help/module/FindosgFX.rst
-#usr/share/cmake-3.2/Help/module/FindosgGA.rst
-#usr/share/cmake-3.2/Help/module/FindosgIntrospection.rst
-#usr/share/cmake-3.2/Help/module/FindosgManipulator.rst
-#usr/share/cmake-3.2/Help/module/FindosgParticle.rst
-#usr/share/cmake-3.2/Help/module/FindosgPresentation.rst
-#usr/share/cmake-3.2/Help/module/FindosgProducer.rst
-#usr/share/cmake-3.2/Help/module/FindosgQt.rst
-#usr/share/cmake-3.2/Help/module/FindosgShadow.rst
-#usr/share/cmake-3.2/Help/module/FindosgSim.rst
-#usr/share/cmake-3.2/Help/module/FindosgTerrain.rst
-#usr/share/cmake-3.2/Help/module/FindosgText.rst
-#usr/share/cmake-3.2/Help/module/FindosgUtil.rst
-#usr/share/cmake-3.2/Help/module/FindosgViewer.rst
-#usr/share/cmake-3.2/Help/module/FindosgVolume.rst
-#usr/share/cmake-3.2/Help/module/FindosgWidget.rst
-#usr/share/cmake-3.2/Help/module/Findosg_functions.rst
-#usr/share/cmake-3.2/Help/module/FindwxWidgets.rst
-#usr/share/cmake-3.2/Help/module/FindwxWindows.rst
-#usr/share/cmake-3.2/Help/module/FortranCInterface.rst
-#usr/share/cmake-3.2/Help/module/GNUInstallDirs.rst
-#usr/share/cmake-3.2/Help/module/GenerateExportHeader.rst
-#usr/share/cmake-3.2/Help/module/GetPrerequisites.rst
-#usr/share/cmake-3.2/Help/module/InstallRequiredSystemLibraries.rst
-#usr/share/cmake-3.2/Help/module/MacroAddFileDependencies.rst
-#usr/share/cmake-3.2/Help/module/ProcessorCount.rst
-#usr/share/cmake-3.2/Help/module/SelectLibraryConfigurations.rst
-#usr/share/cmake-3.2/Help/module/SquishTestScript.rst
-#usr/share/cmake-3.2/Help/module/TestBigEndian.rst
-#usr/share/cmake-3.2/Help/module/TestCXXAcceptsFlag.rst
-#usr/share/cmake-3.2/Help/module/TestForANSIForScope.rst
-#usr/share/cmake-3.2/Help/module/TestForANSIStreamHeaders.rst
-#usr/share/cmake-3.2/Help/module/TestForSSTREAM.rst
-#usr/share/cmake-3.2/Help/module/TestForSTDNamespace.rst
-#usr/share/cmake-3.2/Help/module/UseEcos.rst
-#usr/share/cmake-3.2/Help/module/UseJava.rst
-#usr/share/cmake-3.2/Help/module/UseJavaClassFilelist.rst
-#usr/share/cmake-3.2/Help/module/UseJavaSymlinks.rst
-#usr/share/cmake-3.2/Help/module/UsePkgConfig.rst
-#usr/share/cmake-3.2/Help/module/UseSWIG.rst
-#usr/share/cmake-3.2/Help/module/Use_wxWindows.rst
-#usr/share/cmake-3.2/Help/module/UsewxWidgets.rst
-#usr/share/cmake-3.2/Help/module/WriteBasicConfigVersionFile.rst
-#usr/share/cmake-3.2/Help/module/WriteCompilerDetectionHeader.rst
-#usr/share/cmake-3.2/Help/policy
-#usr/share/cmake-3.2/Help/policy/CMP0000.rst
-#usr/share/cmake-3.2/Help/policy/CMP0001.rst
-#usr/share/cmake-3.2/Help/policy/CMP0002.rst
-#usr/share/cmake-3.2/Help/policy/CMP0003.rst
-#usr/share/cmake-3.2/Help/policy/CMP0004.rst
-#usr/share/cmake-3.2/Help/policy/CMP0005.rst
-#usr/share/cmake-3.2/Help/policy/CMP0006.rst
-#usr/share/cmake-3.2/Help/policy/CMP0007.rst
-#usr/share/cmake-3.2/Help/policy/CMP0008.rst
-#usr/share/cmake-3.2/Help/policy/CMP0009.rst
-#usr/share/cmake-3.2/Help/policy/CMP0010.rst
-#usr/share/cmake-3.2/Help/policy/CMP0011.rst
-#usr/share/cmake-3.2/Help/policy/CMP0012.rst
-#usr/share/cmake-3.2/Help/policy/CMP0013.rst
-#usr/share/cmake-3.2/Help/policy/CMP0014.rst
-#usr/share/cmake-3.2/Help/policy/CMP0015.rst
-#usr/share/cmake-3.2/Help/policy/CMP0016.rst
-#usr/share/cmake-3.2/Help/policy/CMP0017.rst
-#usr/share/cmake-3.2/Help/policy/CMP0018.rst
-#usr/share/cmake-3.2/Help/policy/CMP0019.rst
-#usr/share/cmake-3.2/Help/policy/CMP0020.rst
-#usr/share/cmake-3.2/Help/policy/CMP0021.rst
-#usr/share/cmake-3.2/Help/policy/CMP0022.rst
-#usr/share/cmake-3.2/Help/policy/CMP0023.rst
-#usr/share/cmake-3.2/Help/policy/CMP0024.rst
-#usr/share/cmake-3.2/Help/policy/CMP0025.rst
-#usr/share/cmake-3.2/Help/policy/CMP0026.rst
-#usr/share/cmake-3.2/Help/policy/CMP0027.rst
-#usr/share/cmake-3.2/Help/policy/CMP0028.rst
-#usr/share/cmake-3.2/Help/policy/CMP0029.rst
-#usr/share/cmake-3.2/Help/policy/CMP0030.rst
-#usr/share/cmake-3.2/Help/policy/CMP0031.rst
-#usr/share/cmake-3.2/Help/policy/CMP0032.rst
-#usr/share/cmake-3.2/Help/policy/CMP0033.rst
-#usr/share/cmake-3.2/Help/policy/CMP0034.rst
-#usr/share/cmake-3.2/Help/policy/CMP0035.rst
-#usr/share/cmake-3.2/Help/policy/CMP0036.rst
-#usr/share/cmake-3.2/Help/policy/CMP0037.rst
-#usr/share/cmake-3.2/Help/policy/CMP0038.rst
-#usr/share/cmake-3.2/Help/policy/CMP0039.rst
-#usr/share/cmake-3.2/Help/policy/CMP0040.rst
-#usr/share/cmake-3.2/Help/policy/CMP0041.rst
-#usr/share/cmake-3.2/Help/policy/CMP0042.rst
-#usr/share/cmake-3.2/Help/policy/CMP0043.rst
-#usr/share/cmake-3.2/Help/policy/CMP0044.rst
-#usr/share/cmake-3.2/Help/policy/CMP0045.rst
-#usr/share/cmake-3.2/Help/policy/CMP0046.rst
-#usr/share/cmake-3.2/Help/policy/CMP0047.rst
-#usr/share/cmake-3.2/Help/policy/CMP0048.rst
-#usr/share/cmake-3.2/Help/policy/CMP0049.rst
-#usr/share/cmake-3.2/Help/policy/CMP0050.rst
-#usr/share/cmake-3.2/Help/policy/CMP0051.rst
-#usr/share/cmake-3.2/Help/policy/CMP0052.rst
-#usr/share/cmake-3.2/Help/policy/CMP0053.rst
-#usr/share/cmake-3.2/Help/policy/CMP0054.rst
-#usr/share/cmake-3.2/Help/policy/CMP0055.rst
-#usr/share/cmake-3.2/Help/policy/CMP0056.rst
-#usr/share/cmake-3.2/Help/policy/DISALLOWED_COMMAND.txt
-#usr/share/cmake-3.2/Help/prop_cache
-#usr/share/cmake-3.2/Help/prop_cache/ADVANCED.rst
-#usr/share/cmake-3.2/Help/prop_cache/HELPSTRING.rst
-#usr/share/cmake-3.2/Help/prop_cache/MODIFIED.rst
-#usr/share/cmake-3.2/Help/prop_cache/STRINGS.rst
-#usr/share/cmake-3.2/Help/prop_cache/TYPE.rst
-#usr/share/cmake-3.2/Help/prop_cache/VALUE.rst
-#usr/share/cmake-3.2/Help/prop_dir
-#usr/share/cmake-3.2/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
-#usr/share/cmake-3.2/Help/prop_dir/CACHE_VARIABLES.rst
-#usr/share/cmake-3.2/Help/prop_dir/CLEAN_NO_CUSTOM.rst
-#usr/share/cmake-3.2/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
-#usr/share/cmake-3.2/Help/prop_dir/COMPILE_DEFINITIONS.rst
-#usr/share/cmake-3.2/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_dir/COMPILE_OPTIONS.rst
-#usr/share/cmake-3.2/Help/prop_dir/DEFINITIONS.rst
-#usr/share/cmake-3.2/Help/prop_dir/EXCLUDE_FROM_ALL.rst
-#usr/share/cmake-3.2/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
-#usr/share/cmake-3.2/Help/prop_dir/INCLUDE_DIRECTORIES.rst
-#usr/share/cmake-3.2/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
-#usr/share/cmake-3.2/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
-#usr/share/cmake-3.2/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_dir/LINK_DIRECTORIES.rst
-#usr/share/cmake-3.2/Help/prop_dir/LISTFILE_STACK.rst
-#usr/share/cmake-3.2/Help/prop_dir/MACROS.rst
-#usr/share/cmake-3.2/Help/prop_dir/PARENT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
-#usr/share/cmake-3.2/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
-#usr/share/cmake-3.2/Help/prop_dir/RULE_LAUNCH_LINK.rst
-#usr/share/cmake-3.2/Help/prop_dir/TEST_INCLUDE_FILE.rst
-#usr/share/cmake-3.2/Help/prop_dir/VARIABLES.rst
-#usr/share/cmake-3.2/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
-#usr/share/cmake-3.2/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
-#usr/share/cmake-3.2/Help/prop_gbl
-#usr/share/cmake-3.2/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
-#usr/share/cmake-3.2/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
-#usr/share/cmake-3.2/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
-#usr/share/cmake-3.2/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
-#usr/share/cmake-3.2/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
-#usr/share/cmake-3.2/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
-#usr/share/cmake-3.2/Help/prop_gbl/DISABLED_FEATURES.rst
-#usr/share/cmake-3.2/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
-#usr/share/cmake-3.2/Help/prop_gbl/ENABLED_FEATURES.rst
-#usr/share/cmake-3.2/Help/prop_gbl/ENABLED_LANGUAGES.rst
-#usr/share/cmake-3.2/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
-#usr/share/cmake-3.2/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
-#usr/share/cmake-3.2/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
-#usr/share/cmake-3.2/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
-#usr/share/cmake-3.2/Help/prop_gbl/IN_TRY_COMPILE.rst
-#usr/share/cmake-3.2/Help/prop_gbl/JOB_POOLS.rst
-#usr/share/cmake-3.2/Help/prop_gbl/PACKAGES_FOUND.rst
-#usr/share/cmake-3.2/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
-#usr/share/cmake-3.2/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
-#usr/share/cmake-3.2/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
-#usr/share/cmake-3.2/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
-#usr/share/cmake-3.2/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
-#usr/share/cmake-3.2/Help/prop_gbl/RULE_LAUNCH_LINK.rst
-#usr/share/cmake-3.2/Help/prop_gbl/RULE_MESSAGES.rst
-#usr/share/cmake-3.2/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
-#usr/share/cmake-3.2/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
-#usr/share/cmake-3.2/Help/prop_gbl/USE_FOLDERS.rst
-#usr/share/cmake-3.2/Help/prop_inst
-#usr/share/cmake-3.2/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
-#usr/share/cmake-3.2/Help/prop_inst/CPACK_PERMANENT.rst
-#usr/share/cmake-3.2/Help/prop_inst/CPACK_WIX_ACL.rst
-#usr/share/cmake-3.2/Help/prop_sf
-#usr/share/cmake-3.2/Help/prop_sf/ABSTRACT.rst
-#usr/share/cmake-3.2/Help/prop_sf/AUTORCC_OPTIONS.rst
-#usr/share/cmake-3.2/Help/prop_sf/AUTOUIC_OPTIONS.rst
-#usr/share/cmake-3.2/Help/prop_sf/COMPILE_DEFINITIONS.rst
-#usr/share/cmake-3.2/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_sf/COMPILE_FLAGS.rst
-#usr/share/cmake-3.2/Help/prop_sf/EXTERNAL_OBJECT.rst
-#usr/share/cmake-3.2/Help/prop_sf/Fortran_FORMAT.rst
-#usr/share/cmake-3.2/Help/prop_sf/GENERATED.rst
-#usr/share/cmake-3.2/Help/prop_sf/HEADER_FILE_ONLY.rst
-#usr/share/cmake-3.2/Help/prop_sf/KEEP_EXTENSION.rst
-#usr/share/cmake-3.2/Help/prop_sf/LABELS.rst
-#usr/share/cmake-3.2/Help/prop_sf/LANGUAGE.rst
-#usr/share/cmake-3.2/Help/prop_sf/LOCATION.rst
-#usr/share/cmake-3.2/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
-#usr/share/cmake-3.2/Help/prop_sf/OBJECT_DEPENDS.rst
-#usr/share/cmake-3.2/Help/prop_sf/OBJECT_OUTPUTS.rst
-#usr/share/cmake-3.2/Help/prop_sf/SYMBOLIC.rst
-#usr/share/cmake-3.2/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
-#usr/share/cmake-3.2/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
-#usr/share/cmake-3.2/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
-#usr/share/cmake-3.2/Help/prop_sf/VS_SHADER_FLAGS.rst
-#usr/share/cmake-3.2/Help/prop_sf/VS_SHADER_MODEL.rst
-#usr/share/cmake-3.2/Help/prop_sf/VS_SHADER_TYPE.rst
-#usr/share/cmake-3.2/Help/prop_sf/WRAP_EXCLUDE.rst
-#usr/share/cmake-3.2/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
-#usr/share/cmake-3.2/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
-#usr/share/cmake-3.2/Help/prop_test
-#usr/share/cmake-3.2/Help/prop_test/ATTACHED_FILES.rst
-#usr/share/cmake-3.2/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
-#usr/share/cmake-3.2/Help/prop_test/COST.rst
-#usr/share/cmake-3.2/Help/prop_test/DEPENDS.rst
-#usr/share/cmake-3.2/Help/prop_test/ENVIRONMENT.rst
-#usr/share/cmake-3.2/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
-#usr/share/cmake-3.2/Help/prop_test/LABELS.rst
-#usr/share/cmake-3.2/Help/prop_test/MEASUREMENT.rst
-#usr/share/cmake-3.2/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
-#usr/share/cmake-3.2/Help/prop_test/PROCESSORS.rst
-#usr/share/cmake-3.2/Help/prop_test/REQUIRED_FILES.rst
-#usr/share/cmake-3.2/Help/prop_test/RESOURCE_LOCK.rst
-#usr/share/cmake-3.2/Help/prop_test/RUN_SERIAL.rst
-#usr/share/cmake-3.2/Help/prop_test/SKIP_RETURN_CODE.rst
-#usr/share/cmake-3.2/Help/prop_test/TIMEOUT.rst
-#usr/share/cmake-3.2/Help/prop_test/WILL_FAIL.rst
-#usr/share/cmake-3.2/Help/prop_test/WORKING_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/prop_tgt
-#usr/share/cmake-3.2/Help/prop_tgt/ALIASED_TARGET.rst
-#usr/share/cmake-3.2/Help/prop_tgt/ANDROID_API.rst
-#usr/share/cmake-3.2/Help/prop_tgt/ANDROID_API_MIN.rst
-#usr/share/cmake-3.2/Help/prop_tgt/ANDROID_GUI.rst
-#usr/share/cmake-3.2/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/AUTOMOC.rst
-#usr/share/cmake-3.2/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/AUTORCC.rst
-#usr/share/cmake-3.2/Help/prop_tgt/AUTORCC_OPTIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/AUTOUIC.rst
-#usr/share/cmake-3.2/Help/prop_tgt/AUTOUIC_OPTIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
-#usr/share/cmake-3.2/Help/prop_tgt/BUNDLE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/BUNDLE_EXTENSION.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPILE_DEFINITIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPILE_FEATURES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPILE_FLAGS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPILE_OPTIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPILE_PDB_NAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPILE_PDB_NOTE.txt
-#usr/share/cmake-3.2/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/CONFIG_POSTFIX.rst
-#usr/share/cmake-3.2/Help/prop_tgt/CXX_EXTENSIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/CXX_STANDARD.rst
-#usr/share/cmake-3.2/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
-#usr/share/cmake-3.2/Help/prop_tgt/C_EXTENSIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/C_STANDARD.rst
-#usr/share/cmake-3.2/Help/prop_tgt/C_STANDARD_REQUIRED.rst
-#usr/share/cmake-3.2/Help/prop_tgt/DEBUG_POSTFIX.rst
-#usr/share/cmake-3.2/Help/prop_tgt/DEFINE_SYMBOL.rst
-#usr/share/cmake-3.2/Help/prop_tgt/ENABLE_EXPORTS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
-#usr/share/cmake-3.2/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
-#usr/share/cmake-3.2/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/EXPORT_NAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/EchoString.rst
-#usr/share/cmake-3.2/Help/prop_tgt/FOLDER.rst
-#usr/share/cmake-3.2/Help/prop_tgt/FRAMEWORK.rst
-#usr/share/cmake-3.2/Help/prop_tgt/Fortran_FORMAT.rst
-#usr/share/cmake-3.2/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/prop_tgt/GENERATOR_FILE_NAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/GNUtoMS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/HAS_CXX.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_IMPLIB.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_LOCATION.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_NO_SONAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_SONAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORT_PREFIX.rst
-#usr/share/cmake-3.2/Help/prop_tgt/IMPORT_SUFFIX.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INSTALL_NAME_DIR.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INSTALL_RPATH.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
-#usr/share/cmake-3.2/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERFACE_SOURCES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
-#usr/share/cmake-3.2/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/JOB_POOL_COMPILE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/JOB_POOL_LINK.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LABELS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINKER_LANGUAGE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_DEPENDS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_FLAGS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_LIBRARIES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LOCATION.rst
-#usr/share/cmake-3.2/Help/prop_tgt/LOCATION_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/MACOSX_BUNDLE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
-#usr/share/cmake-3.2/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
-#usr/share/cmake-3.2/Help/prop_tgt/MACOSX_RPATH.rst
-#usr/share/cmake-3.2/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/NAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/NO_SONAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
-#usr/share/cmake-3.2/Help/prop_tgt/OSX_ARCHITECTURES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/OUTPUT_NAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/PDB_NAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/PDB_NAME_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/PDB_NOTE.txt
-#usr/share/cmake-3.2/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
-#usr/share/cmake-3.2/Help/prop_tgt/PREFIX.rst
-#usr/share/cmake-3.2/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
-#usr/share/cmake-3.2/Help/prop_tgt/PRIVATE_HEADER.rst
-#usr/share/cmake-3.2/Help/prop_tgt/PROJECT_LABEL.rst
-#usr/share/cmake-3.2/Help/prop_tgt/PUBLIC_HEADER.rst
-#usr/share/cmake-3.2/Help/prop_tgt/RESOURCE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
-#usr/share/cmake-3.2/Help/prop_tgt/RULE_LAUNCH_LINK.rst
-#usr/share/cmake-3.2/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/SKIP_BUILD_RPATH.rst
-#usr/share/cmake-3.2/Help/prop_tgt/SOURCES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/SOVERSION.rst
-#usr/share/cmake-3.2/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
-#usr/share/cmake-3.2/Help/prop_tgt/SUFFIX.rst
-#usr/share/cmake-3.2/Help/prop_tgt/TARGET_FILE_TYPES.txt
-#usr/share/cmake-3.2/Help/prop_tgt/TYPE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VERSION.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_GLOBAL_variable.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_KEYWORD.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_SCC_AUXPATH.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_SCC_LOCALPATH.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_SCC_PROVIDER.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_WINRT_COMPONENT.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
-#usr/share/cmake-3.2/Help/prop_tgt/VS_WINRT_REFERENCES.rst
-#usr/share/cmake-3.2/Help/prop_tgt/WIN32_EXECUTABLE.rst
-#usr/share/cmake-3.2/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
-#usr/share/cmake-3.2/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
-#usr/share/cmake-3.2/Help/prop_tgt/XXX_OUTPUT_NAME.txt
-#usr/share/cmake-3.2/Help/release
-#usr/share/cmake-3.2/Help/release/3.0.rst
-#usr/share/cmake-3.2/Help/release/3.1.rst
-#usr/share/cmake-3.2/Help/release/3.2.rst
-#usr/share/cmake-3.2/Help/release/dev.txt
-#usr/share/cmake-3.2/Help/release/index.rst
-#usr/share/cmake-3.2/Help/variable
-#usr/share/cmake-3.2/Help/variable/APPLE.rst
-#usr/share/cmake-3.2/Help/variable/BORLAND.rst
-#usr/share/cmake-3.2/Help/variable/BUILD_SHARED_LIBS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_ANDROID_API.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_ANDROID_API_MIN.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_ANDROID_GUI.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_APPBUNDLE_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_AR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_ARGC.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_ARGV0.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_AUTOMOC.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_AUTORCC.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_AUTOUIC.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_BINARY_DIR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_BUILD_TOOL.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_BUILD_TYPE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CACHEFILE_DIR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CFG_INTDIR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CL_64.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_COLOR_MAKEFILE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_COMPILER_2005.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_COMPILER_IS_GNULANG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CONFIG_POSTFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CROSSCOMPILING.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CTEST_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CXX_EXTENSIONS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CXX_STANDARD.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_C_EXTENSIONS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_C_STANDARD.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_DEBUG_POSTFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_DL_LIBS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_EDIT_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_ERROR_DEPRECATED.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_EXTRA_GENERATOR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_ROOT_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
-#usr/share/cmake-3.2/Help/variable/CMAKE_FRAMEWORK_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_Fortran_FORMAT.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_GENERATOR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_GNUtoMS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_HOME_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_HOST_APPLE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_HOST_SYSTEM.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_HOST_UNIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_HOST_WIN32.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_IGNORE_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INCLUDE_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INSTALL_MESSAGE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INSTALL_PREFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INSTALL_RPATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_JOB_POOL_LINK.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_COMPILER.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_COMPILER_ID.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_FLAGS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LIBRARY_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MACOSX_BUNDLE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MACOSX_RPATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MAJOR_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MAKE_PROGRAM.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MATCH_COUNT.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MFC_FLAG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MINOR_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_MODULE_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_OSX_SYSROOT.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_OSX_VARIABLE.txt
-#usr/share/cmake-3.2/Help/variable/CMAKE_PARENT_LIST_FILE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_PATCH_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_PREFIX_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_PROGRAM_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_PROJECT_NAME.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_RANLIB.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_ROOT.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SIZEOF_VOID_P.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SKIP_RPATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SOURCE_DIR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_STAGING_PREFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_STANDARD_LIBRARIES.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SYSROOT.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SYSTEM.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SYSTEM_NAME.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_SYSTEM_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_TWEAK_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_VS_MSDEV_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_WARN_DEPRECATED.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
-#usr/share/cmake-3.2/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
-#usr/share/cmake-3.2/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
-#usr/share/cmake-3.2/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
-#usr/share/cmake-3.2/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CPACK_INSTALL_SCRIPT.rst
-#usr/share/cmake-3.2/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
-#usr/share/cmake-3.2/Help/variable/CPACK_SET_DESTDIR.rst
-#usr/share/cmake-3.2/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_BINARY_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_BUILD_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_BUILD_NAME.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_BZR_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_CHECKOUT_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_CONFIGURATION_TYPE.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_CONFIGURE_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_COVERAGE_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_CURL_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_CVS_CHECKOUT.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_CVS_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_DROP_LOCATION.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_DROP_METHOD.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_DROP_SITE.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_DROP_SITE_CDASH.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_DROP_SITE_USER.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_GIT_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_HG_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_NIGHTLY_START_TIME.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_P4_CLIENT.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_P4_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_P4_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_SCP_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_SITE.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_SOURCE_DIRECTORY.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_SVN_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_SVN_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_TEST_TIMEOUT.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_TRIGGER_SITE.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_UPDATE_COMMAND.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_UPDATE_OPTIONS.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
-#usr/share/cmake-3.2/Help/variable/CTEST_USE_LAUNCHERS.rst
-#usr/share/cmake-3.2/Help/variable/CYGWIN.rst
-#usr/share/cmake-3.2/Help/variable/ENV.rst
-#usr/share/cmake-3.2/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
-#usr/share/cmake-3.2/Help/variable/LIBRARY_OUTPUT_PATH.rst
-#usr/share/cmake-3.2/Help/variable/MINGW.rst
-#usr/share/cmake-3.2/Help/variable/MSVC.rst
-#usr/share/cmake-3.2/Help/variable/MSVC10.rst
-#usr/share/cmake-3.2/Help/variable/MSVC11.rst
-#usr/share/cmake-3.2/Help/variable/MSVC12.rst
-#usr/share/cmake-3.2/Help/variable/MSVC14.rst
-#usr/share/cmake-3.2/Help/variable/MSVC60.rst
-#usr/share/cmake-3.2/Help/variable/MSVC70.rst
-#usr/share/cmake-3.2/Help/variable/MSVC71.rst
-#usr/share/cmake-3.2/Help/variable/MSVC80.rst
-#usr/share/cmake-3.2/Help/variable/MSVC90.rst
-#usr/share/cmake-3.2/Help/variable/MSVC_IDE.rst
-#usr/share/cmake-3.2/Help/variable/MSVC_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT-NAME_BINARY_DIR.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT-NAME_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT_BINARY_DIR.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT_NAME.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT_SOURCE_DIR.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT_VERSION.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT_VERSION_MAJOR.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT_VERSION_MINOR.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT_VERSION_PATCH.rst
-#usr/share/cmake-3.2/Help/variable/PROJECT_VERSION_TWEAK.rst
-#usr/share/cmake-3.2/Help/variable/UNIX.rst
-#usr/share/cmake-3.2/Help/variable/WIN32.rst
-#usr/share/cmake-3.2/Help/variable/WINCE.rst
-#usr/share/cmake-3.2/Help/variable/WINDOWS_PHONE.rst
-#usr/share/cmake-3.2/Help/variable/WINDOWS_STORE.rst
-#usr/share/cmake-3.2/Help/variable/XCODE_VERSION.rst
-#usr/share/cmake-3.2/Modules
-#usr/share/cmake-3.2/Modules/.NoDartCoverage
-#usr/share/cmake-3.2/Modules/AddFileDependencies.cmake
-#usr/share/cmake-3.2/Modules/AutogenInfo.cmake.in
-#usr/share/cmake-3.2/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
-#usr/share/cmake-3.2/Modules/BasicConfigVersion-ExactVersion.cmake.in
-#usr/share/cmake-3.2/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
-#usr/share/cmake-3.2/Modules/BundleUtilities.cmake
-#usr/share/cmake-3.2/Modules/CMake.cmake
-#usr/share/cmake-3.2/Modules/CMakeASM-ATTInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakeASMCompiler.cmake.in
-#usr/share/cmake-3.2/Modules/CMakeASMInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakeASM_MASMInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakeASM_NASMInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakeAddFortranSubdirectory
-#usr/share/cmake-3.2/Modules/CMakeAddFortranSubdirectory.cmake
-#usr/share/cmake-3.2/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
-#usr/share/cmake-3.2/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
-#usr/share/cmake-3.2/Modules/CMakeAddNewLanguage.txt
-#usr/share/cmake-3.2/Modules/CMakeBackwardCompatibilityC.cmake
-#usr/share/cmake-3.2/Modules/CMakeBackwardCompatibilityCXX.cmake
-#usr/share/cmake-3.2/Modules/CMakeBorlandFindMake.cmake
-#usr/share/cmake-3.2/Modules/CMakeBuildSettings.cmake.in
-#usr/share/cmake-3.2/Modules/CMakeCCompiler.cmake.in
-#usr/share/cmake-3.2/Modules/CMakeCCompilerABI.c
-#usr/share/cmake-3.2/Modules/CMakeCCompilerId.c.in
-#usr/share/cmake-3.2/Modules/CMakeCInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakeCXXCompiler.cmake.in
-#usr/share/cmake-3.2/Modules/CMakeCXXCompilerABI.cpp
-#usr/share/cmake-3.2/Modules/CMakeCXXCompilerId.cpp.in
-#usr/share/cmake-3.2/Modules/CMakeCXXInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
-#usr/share/cmake-3.2/Modules/CMakeClDeps.cmake
-#usr/share/cmake-3.2/Modules/CMakeCommonLanguageInclude.cmake
-#usr/share/cmake-3.2/Modules/CMakeCompilerABI.h
-#usr/share/cmake-3.2/Modules/CMakeCompilerIdDetection.cmake
-#usr/share/cmake-3.2/Modules/CMakeConfigurableFile.in
-#usr/share/cmake-3.2/Modules/CMakeDependentOption.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineASM-ATTCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineASMCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineASM_MASMCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineASM_NASMCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineCCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineCXXCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineCompileFeatures.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineCompilerABI.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineCompilerId.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineFortranCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineJavaCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineRCCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineSystem.cmake
-#usr/share/cmake-3.2/Modules/CMakeDetermineVSServicePack.cmake
-#usr/share/cmake-3.2/Modules/CMakeExpandImportedTargets.cmake
-#usr/share/cmake-3.2/Modules/CMakeExportBuildSettings.cmake
-#usr/share/cmake-3.2/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindBinUtils.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindCodeBlocks.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindDependencyMacro.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindEclipseCDT4.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindFrameworks.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindJavaCommon.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindKDevelop3.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindKate.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindPackageMode.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindWMake.cmake
-#usr/share/cmake-3.2/Modules/CMakeFindXCode.cmake
-#usr/share/cmake-3.2/Modules/CMakeForceCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeFortranCompiler.cmake.in
-#usr/share/cmake-3.2/Modules/CMakeFortranCompilerABI.F
-#usr/share/cmake-3.2/Modules/CMakeFortranCompilerId.F.in
-#usr/share/cmake-3.2/Modules/CMakeFortranInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakeGenericSystem.cmake
-#usr/share/cmake-3.2/Modules/CMakeGraphVizOptions.cmake
-#usr/share/cmake-3.2/Modules/CMakeImportBuildSettings.cmake
-#usr/share/cmake-3.2/Modules/CMakeJOMFindMake.cmake
-#usr/share/cmake-3.2/Modules/CMakeJavaCompiler.cmake.in
-#usr/share/cmake-3.2/Modules/CMakeJavaInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakeMSYSFindMake.cmake
-#usr/share/cmake-3.2/Modules/CMakeMinGWFindMake.cmake
-#usr/share/cmake-3.2/Modules/CMakeNMakeFindMake.cmake
-#usr/share/cmake-3.2/Modules/CMakeNinjaFindMake.cmake
-#usr/share/cmake-3.2/Modules/CMakePackageConfigHelpers.cmake
-#usr/share/cmake-3.2/Modules/CMakeParseArguments.cmake
-#usr/share/cmake-3.2/Modules/CMakeParseImplicitLinkInfo.cmake
-#usr/share/cmake-3.2/Modules/CMakePlatformId.h.in
-#usr/share/cmake-3.2/Modules/CMakePrintHelpers.cmake
-#usr/share/cmake-3.2/Modules/CMakePrintSystemInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakePushCheckState.cmake
-#usr/share/cmake-3.2/Modules/CMakeRCCompiler.cmake.in
-#usr/share/cmake-3.2/Modules/CMakeRCInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakeSystem.cmake.in
-#usr/share/cmake-3.2/Modules/CMakeSystemSpecificInformation.cmake
-#usr/share/cmake-3.2/Modules/CMakeSystemSpecificInitialize.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestASM-ATTCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestASMCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestASM_MASMCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestASM_NASMCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestCCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestCXXCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestCompilerCommon.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestFortranCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestGNU.c
-#usr/share/cmake-3.2/Modules/CMakeTestJavaCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestRCCompiler.cmake
-#usr/share/cmake-3.2/Modules/CMakeTestWatcomVersion.c
-#usr/share/cmake-3.2/Modules/CMakeUnixFindMake.cmake
-#usr/share/cmake-3.2/Modules/CMakeVS6BackwardCompatibility.cmake
-#usr/share/cmake-3.2/Modules/CMakeVS7BackwardCompatibility.cmake
-#usr/share/cmake-3.2/Modules/CMakeVerifyManifest.cmake
-#usr/share/cmake-3.2/Modules/CPack.DS_Store.in
-#usr/share/cmake-3.2/Modules/CPack.Description.plist.in
-#usr/share/cmake-3.2/Modules/CPack.Info.plist.in
-#usr/share/cmake-3.2/Modules/CPack.OSXScriptLauncher.in
-#usr/share/cmake-3.2/Modules/CPack.OSXScriptLauncher.rsrc.in
-#usr/share/cmake-3.2/Modules/CPack.OSXX11.Info.plist.in
-#usr/share/cmake-3.2/Modules/CPack.OSXX11.main.scpt.in
-#usr/share/cmake-3.2/Modules/CPack.RuntimeScript.in
-#usr/share/cmake-3.2/Modules/CPack.STGZ_Header.sh.in
-#usr/share/cmake-3.2/Modules/CPack.VolumeIcon.icns.in
-#usr/share/cmake-3.2/Modules/CPack.background.png.in
-#usr/share/cmake-3.2/Modules/CPack.cmake
-#usr/share/cmake-3.2/Modules/CPack.distribution.dist.in
-#usr/share/cmake-3.2/Modules/CPackBundle.cmake
-#usr/share/cmake-3.2/Modules/CPackComponent.cmake
-#usr/share/cmake-3.2/Modules/CPackCygwin.cmake
-#usr/share/cmake-3.2/Modules/CPackDMG.cmake
-#usr/share/cmake-3.2/Modules/CPackDeb.cmake
-#usr/share/cmake-3.2/Modules/CPackIFW.cmake
-#usr/share/cmake-3.2/Modules/CPackNSIS.cmake
-#usr/share/cmake-3.2/Modules/CPackPackageMaker.cmake
-#usr/share/cmake-3.2/Modules/CPackRPM.cmake
-#usr/share/cmake-3.2/Modules/CPackWIX.cmake
-#usr/share/cmake-3.2/Modules/CPackZIP.cmake
-#usr/share/cmake-3.2/Modules/CTest.cmake
-#usr/share/cmake-3.2/Modules/CTestCoverageCollectGCOV.cmake
-#usr/share/cmake-3.2/Modules/CTestScriptMode.cmake
-#usr/share/cmake-3.2/Modules/CTestTargets.cmake
-#usr/share/cmake-3.2/Modules/CTestUseLaunchers.cmake
-#usr/share/cmake-3.2/Modules/CheckCCompilerFlag.cmake
-#usr/share/cmake-3.2/Modules/CheckCSourceCompiles.cmake
-#usr/share/cmake-3.2/Modules/CheckCSourceRuns.cmake
-#usr/share/cmake-3.2/Modules/CheckCXXCompilerFlag.cmake
-#usr/share/cmake-3.2/Modules/CheckCXXSourceCompiles.cmake
-#usr/share/cmake-3.2/Modules/CheckCXXSourceRuns.cmake
-#usr/share/cmake-3.2/Modules/CheckCXXSymbolExists.cmake
-#usr/share/cmake-3.2/Modules/CheckForPthreads.c
-#usr/share/cmake-3.2/Modules/CheckFortranFunctionExists.cmake
-#usr/share/cmake-3.2/Modules/CheckFortranSourceCompiles.cmake
-#usr/share/cmake-3.2/Modules/CheckFunctionExists.c
-#usr/share/cmake-3.2/Modules/CheckFunctionExists.cmake
-#usr/share/cmake-3.2/Modules/CheckIncludeFile.c.in
-#usr/share/cmake-3.2/Modules/CheckIncludeFile.cmake
-#usr/share/cmake-3.2/Modules/CheckIncludeFile.cxx.in
-#usr/share/cmake-3.2/Modules/CheckIncludeFileCXX.cmake
-#usr/share/cmake-3.2/Modules/CheckIncludeFiles.cmake
-#usr/share/cmake-3.2/Modules/CheckLanguage.cmake
-#usr/share/cmake-3.2/Modules/CheckLibraryExists.cmake
-#usr/share/cmake-3.2/Modules/CheckLibraryExists.lists.in
-#usr/share/cmake-3.2/Modules/CheckPrototypeDefinition.c.in
-#usr/share/cmake-3.2/Modules/CheckPrototypeDefinition.cmake
-#usr/share/cmake-3.2/Modules/CheckSizeOf.cmake
-#usr/share/cmake-3.2/Modules/CheckStructHasMember.cmake
-#usr/share/cmake-3.2/Modules/CheckSymbolExists.cmake
-#usr/share/cmake-3.2/Modules/CheckTypeSize.c.in
-#usr/share/cmake-3.2/Modules/CheckTypeSize.cmake
-#usr/share/cmake-3.2/Modules/CheckTypeSizeMap.cmake.in
-#usr/share/cmake-3.2/Modules/CheckVariableExists.c
-#usr/share/cmake-3.2/Modules/CheckVariableExists.cmake
-#usr/share/cmake-3.2/Modules/Compiler
-#usr/share/cmake-3.2/Modules/Compiler/ADSP-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Absoft-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/AppleClang-ASM.cmake
-#usr/share/cmake-3.2/Modules/Compiler/AppleClang-C-FeatureTests.cmake
-#usr/share/cmake-3.2/Modules/Compiler/AppleClang-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
-#usr/share/cmake-3.2/Modules/Compiler/AppleClang-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/AppleClang-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Borland-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Clang-ASM.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Clang-C-FeatureTests.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Clang-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Clang-CXX-FeatureTests.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Clang-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Clang-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Clang.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Cray-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Cray-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Cray-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Cray-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/G95-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/GNU-ASM.cmake
-#usr/share/cmake-3.2/Modules/Compiler/GNU-C-FeatureTests.cmake
-#usr/share/cmake-3.2/Modules/Compiler/GNU-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/GNU-CXX-FeatureTests.cmake
-#usr/share/cmake-3.2/Modules/Compiler/GNU-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/GNU-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/GNU-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/GNU.cmake
-#usr/share/cmake-3.2/Modules/Compiler/HP-ASM.cmake
-#usr/share/cmake-3.2/Modules/Compiler/HP-C-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/HP-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/HP-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/HP-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/IAR-ASM.cmake
-#usr/share/cmake-3.2/Modules/Compiler/IAR-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/IAR-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/IAR-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/IAR.cmake
-#usr/share/cmake-3.2/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
-#usr/share/cmake-3.2/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Intel-ASM.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Intel-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Intel-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Intel-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Intel-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/MIPSpro-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/MIPSpro-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/MIPSpro-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/MIPSpro-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
-#usr/share/cmake-3.2/Modules/Compiler/MSVC-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/MSVC-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/NAG-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/PGI-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/PGI-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/PGI-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/PGI-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/PGI.cmake
-#usr/share/cmake-3.2/Modules/Compiler/PathScale-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/PathScale-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/PathScale-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/PathScale-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/PathScale.cmake
-#usr/share/cmake-3.2/Modules/Compiler/QCC-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/QCC-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/QCC.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SCO-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SCO-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SCO-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SCO.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SunPro-ASM.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SunPro-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SunPro-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/SunPro-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/TI-ASM.cmake
-#usr/share/cmake-3.2/Modules/Compiler/TI-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/TI-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/TI-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/TinyCC-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/VisualAge-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/VisualAge-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/VisualAge-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/Watcom-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/XL-ASM.cmake
-#usr/share/cmake-3.2/Modules/Compiler/XL-C-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/XL-C.cmake
-#usr/share/cmake-3.2/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/XL-CXX.cmake
-#usr/share/cmake-3.2/Modules/Compiler/XL-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Compiler/XL.cmake
-#usr/share/cmake-3.2/Modules/Compiler/zOS-C-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
-#usr/share/cmake-3.2/Modules/CompilerId
-#usr/share/cmake-3.2/Modules/CompilerId/VS-10.vcxproj.in
-#usr/share/cmake-3.2/Modules/CompilerId/VS-6.dsp.in
-#usr/share/cmake-3.2/Modules/CompilerId/VS-7.vcproj.in
-#usr/share/cmake-3.2/Modules/CompilerId/VS-Intel.vfproj.in
-#usr/share/cmake-3.2/Modules/CompilerId/VS-NsightTegra.vcxproj.in
-#usr/share/cmake-3.2/Modules/CompilerId/Xcode-1.pbxproj.in
-#usr/share/cmake-3.2/Modules/CompilerId/Xcode-2.pbxproj.in
-#usr/share/cmake-3.2/Modules/CompilerId/Xcode-3.pbxproj.in
-#usr/share/cmake-3.2/Modules/Dart.cmake
-#usr/share/cmake-3.2/Modules/DartConfiguration.tcl.in
-#usr/share/cmake-3.2/Modules/DeployQt4.cmake
-#usr/share/cmake-3.2/Modules/Documentation.cmake
-#usr/share/cmake-3.2/Modules/DummyCXXFile.cxx
-#usr/share/cmake-3.2/Modules/ExternalData.cmake
-#usr/share/cmake-3.2/Modules/ExternalData_config.cmake.in
-#usr/share/cmake-3.2/Modules/ExternalProject.cmake
-#usr/share/cmake-3.2/Modules/FLTKCompatibility.cmake
-#usr/share/cmake-3.2/Modules/FeatureSummary.cmake
-#usr/share/cmake-3.2/Modules/FindALSA.cmake
-#usr/share/cmake-3.2/Modules/FindASPELL.cmake
-#usr/share/cmake-3.2/Modules/FindAVIFile.cmake
-#usr/share/cmake-3.2/Modules/FindArmadillo.cmake
-#usr/share/cmake-3.2/Modules/FindBISON.cmake
-#usr/share/cmake-3.2/Modules/FindBLAS.cmake
-#usr/share/cmake-3.2/Modules/FindBZip2.cmake
-#usr/share/cmake-3.2/Modules/FindBacktrace.cmake
-#usr/share/cmake-3.2/Modules/FindBoost.cmake
-#usr/share/cmake-3.2/Modules/FindBullet.cmake
-#usr/share/cmake-3.2/Modules/FindCABLE.cmake
-#usr/share/cmake-3.2/Modules/FindCUDA
-#usr/share/cmake-3.2/Modules/FindCUDA.cmake
-#usr/share/cmake-3.2/Modules/FindCUDA/make2cmake.cmake
-#usr/share/cmake-3.2/Modules/FindCUDA/parse_cubin.cmake
-#usr/share/cmake-3.2/Modules/FindCUDA/run_nvcc.cmake
-#usr/share/cmake-3.2/Modules/FindCURL.cmake
-#usr/share/cmake-3.2/Modules/FindCVS.cmake
-#usr/share/cmake-3.2/Modules/FindCoin3D.cmake
-#usr/share/cmake-3.2/Modules/FindCups.cmake
-#usr/share/cmake-3.2/Modules/FindCurses.cmake
-#usr/share/cmake-3.2/Modules/FindCxxTest.cmake
-#usr/share/cmake-3.2/Modules/FindCygwin.cmake
-#usr/share/cmake-3.2/Modules/FindDCMTK.cmake
-#usr/share/cmake-3.2/Modules/FindDart.cmake
-#usr/share/cmake-3.2/Modules/FindDevIL.cmake
-#usr/share/cmake-3.2/Modules/FindDoxygen.cmake
-#usr/share/cmake-3.2/Modules/FindEXPAT.cmake
-#usr/share/cmake-3.2/Modules/FindFLEX.cmake
-#usr/share/cmake-3.2/Modules/FindFLTK.cmake
-#usr/share/cmake-3.2/Modules/FindFLTK2.cmake
-#usr/share/cmake-3.2/Modules/FindFreetype.cmake
-#usr/share/cmake-3.2/Modules/FindGCCXML.cmake
-#usr/share/cmake-3.2/Modules/FindGDAL.cmake
-#usr/share/cmake-3.2/Modules/FindGIF.cmake
-#usr/share/cmake-3.2/Modules/FindGLEW.cmake
-#usr/share/cmake-3.2/Modules/FindGLU.cmake
-#usr/share/cmake-3.2/Modules/FindGLUT.cmake
-#usr/share/cmake-3.2/Modules/FindGSL.cmake
-#usr/share/cmake-3.2/Modules/FindGTK.cmake
-#usr/share/cmake-3.2/Modules/FindGTK2.cmake
-#usr/share/cmake-3.2/Modules/FindGTest.cmake
-#usr/share/cmake-3.2/Modules/FindGettext.cmake
-#usr/share/cmake-3.2/Modules/FindGit.cmake
-#usr/share/cmake-3.2/Modules/FindGnuTLS.cmake
-#usr/share/cmake-3.2/Modules/FindGnuplot.cmake
-#usr/share/cmake-3.2/Modules/FindHDF5.cmake
-#usr/share/cmake-3.2/Modules/FindHSPELL.cmake
-#usr/share/cmake-3.2/Modules/FindHTMLHelp.cmake
-#usr/share/cmake-3.2/Modules/FindHg.cmake
-#usr/share/cmake-3.2/Modules/FindIce.cmake
-#usr/share/cmake-3.2/Modules/FindIcotool.cmake
-#usr/share/cmake-3.2/Modules/FindImageMagick.cmake
-#usr/share/cmake-3.2/Modules/FindIntl.cmake
-#usr/share/cmake-3.2/Modules/FindJNI.cmake
-#usr/share/cmake-3.2/Modules/FindJPEG.cmake
-#usr/share/cmake-3.2/Modules/FindJasper.cmake
-#usr/share/cmake-3.2/Modules/FindJava.cmake
-#usr/share/cmake-3.2/Modules/FindKDE3.cmake
-#usr/share/cmake-3.2/Modules/FindKDE4.cmake
-#usr/share/cmake-3.2/Modules/FindLAPACK.cmake
-#usr/share/cmake-3.2/Modules/FindLATEX.cmake
-#usr/share/cmake-3.2/Modules/FindLibArchive.cmake
-#usr/share/cmake-3.2/Modules/FindLibLZMA.cmake
-#usr/share/cmake-3.2/Modules/FindLibXml2.cmake
-#usr/share/cmake-3.2/Modules/FindLibXslt.cmake
-#usr/share/cmake-3.2/Modules/FindLua.cmake
-#usr/share/cmake-3.2/Modules/FindLua50.cmake
-#usr/share/cmake-3.2/Modules/FindLua51.cmake
-#usr/share/cmake-3.2/Modules/FindMFC.cmake
-#usr/share/cmake-3.2/Modules/FindMPEG.cmake
-#usr/share/cmake-3.2/Modules/FindMPEG2.cmake
-#usr/share/cmake-3.2/Modules/FindMPI.cmake
-#usr/share/cmake-3.2/Modules/FindMatlab.cmake
-#usr/share/cmake-3.2/Modules/FindMotif.cmake
-#usr/share/cmake-3.2/Modules/FindOpenAL.cmake
-#usr/share/cmake-3.2/Modules/FindOpenCL.cmake
-#usr/share/cmake-3.2/Modules/FindOpenGL.cmake
-#usr/share/cmake-3.2/Modules/FindOpenMP.cmake
-#usr/share/cmake-3.2/Modules/FindOpenSSL.cmake
-#usr/share/cmake-3.2/Modules/FindOpenSceneGraph.cmake
-#usr/share/cmake-3.2/Modules/FindOpenThreads.cmake
-#usr/share/cmake-3.2/Modules/FindPHP4.cmake
-#usr/share/cmake-3.2/Modules/FindPNG.cmake
-#usr/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake
-#usr/share/cmake-3.2/Modules/FindPackageMessage.cmake
-#usr/share/cmake-3.2/Modules/FindPerl.cmake
-#usr/share/cmake-3.2/Modules/FindPerlLibs.cmake
-#usr/share/cmake-3.2/Modules/FindPhysFS.cmake
-#usr/share/cmake-3.2/Modules/FindPike.cmake
-#usr/share/cmake-3.2/Modules/FindPkgConfig.cmake
-#usr/share/cmake-3.2/Modules/FindPostgreSQL.cmake
-#usr/share/cmake-3.2/Modules/FindProducer.cmake
-#usr/share/cmake-3.2/Modules/FindProtobuf.cmake
-#usr/share/cmake-3.2/Modules/FindPythonInterp.cmake
-#usr/share/cmake-3.2/Modules/FindPythonLibs.cmake
-#usr/share/cmake-3.2/Modules/FindQt.cmake
-#usr/share/cmake-3.2/Modules/FindQt3.cmake
-#usr/share/cmake-3.2/Modules/FindQt4.cmake
-#usr/share/cmake-3.2/Modules/FindQuickTime.cmake
-#usr/share/cmake-3.2/Modules/FindRTI.cmake
-#usr/share/cmake-3.2/Modules/FindRuby.cmake
-#usr/share/cmake-3.2/Modules/FindSDL.cmake
-#usr/share/cmake-3.2/Modules/FindSDL_image.cmake
-#usr/share/cmake-3.2/Modules/FindSDL_mixer.cmake
-#usr/share/cmake-3.2/Modules/FindSDL_net.cmake
-#usr/share/cmake-3.2/Modules/FindSDL_sound.cmake
-#usr/share/cmake-3.2/Modules/FindSDL_ttf.cmake
-#usr/share/cmake-3.2/Modules/FindSWIG.cmake
-#usr/share/cmake-3.2/Modules/FindSelfPackers.cmake
-#usr/share/cmake-3.2/Modules/FindSquish.cmake
-#usr/share/cmake-3.2/Modules/FindSubversion.cmake
-#usr/share/cmake-3.2/Modules/FindTCL.cmake
-#usr/share/cmake-3.2/Modules/FindTIFF.cmake
-#usr/share/cmake-3.2/Modules/FindTclStub.cmake
-#usr/share/cmake-3.2/Modules/FindTclsh.cmake
-#usr/share/cmake-3.2/Modules/FindThreads.cmake
-#usr/share/cmake-3.2/Modules/FindUnixCommands.cmake
-#usr/share/cmake-3.2/Modules/FindWget.cmake
-#usr/share/cmake-3.2/Modules/FindWish.cmake
-#usr/share/cmake-3.2/Modules/FindX11.cmake
-#usr/share/cmake-3.2/Modules/FindXMLRPC.cmake
-#usr/share/cmake-3.2/Modules/FindXercesC.cmake
-#usr/share/cmake-3.2/Modules/FindZLIB.cmake
-#usr/share/cmake-3.2/Modules/Findosg.cmake
-#usr/share/cmake-3.2/Modules/FindosgAnimation.cmake
-#usr/share/cmake-3.2/Modules/FindosgDB.cmake
-#usr/share/cmake-3.2/Modules/FindosgFX.cmake
-#usr/share/cmake-3.2/Modules/FindosgGA.cmake
-#usr/share/cmake-3.2/Modules/FindosgIntrospection.cmake
-#usr/share/cmake-3.2/Modules/FindosgManipulator.cmake
-#usr/share/cmake-3.2/Modules/FindosgParticle.cmake
-#usr/share/cmake-3.2/Modules/FindosgPresentation.cmake
-#usr/share/cmake-3.2/Modules/FindosgProducer.cmake
-#usr/share/cmake-3.2/Modules/FindosgQt.cmake
-#usr/share/cmake-3.2/Modules/FindosgShadow.cmake
-#usr/share/cmake-3.2/Modules/FindosgSim.cmake
-#usr/share/cmake-3.2/Modules/FindosgTerrain.cmake
-#usr/share/cmake-3.2/Modules/FindosgText.cmake
-#usr/share/cmake-3.2/Modules/FindosgUtil.cmake
-#usr/share/cmake-3.2/Modules/FindosgViewer.cmake
-#usr/share/cmake-3.2/Modules/FindosgVolume.cmake
-#usr/share/cmake-3.2/Modules/FindosgWidget.cmake
-#usr/share/cmake-3.2/Modules/Findosg_functions.cmake
-#usr/share/cmake-3.2/Modules/FindwxWidgets.cmake
-#usr/share/cmake-3.2/Modules/FindwxWindows.cmake
-#usr/share/cmake-3.2/Modules/FortranCInterface
-#usr/share/cmake-3.2/Modules/FortranCInterface.cmake
-#usr/share/cmake-3.2/Modules/FortranCInterface/CMakeLists.txt
-#usr/share/cmake-3.2/Modules/FortranCInterface/Detect.cmake
-#usr/share/cmake-3.2/Modules/FortranCInterface/Input.cmake.in
-#usr/share/cmake-3.2/Modules/FortranCInterface/Macro.h.in
-#usr/share/cmake-3.2/Modules/FortranCInterface/Output.cmake.in
-#usr/share/cmake-3.2/Modules/FortranCInterface/Verify
-#usr/share/cmake-3.2/Modules/FortranCInterface/Verify/CMakeLists.txt
-#usr/share/cmake-3.2/Modules/FortranCInterface/Verify/VerifyC.c
-#usr/share/cmake-3.2/Modules/FortranCInterface/Verify/VerifyCXX.cxx
-#usr/share/cmake-3.2/Modules/FortranCInterface/Verify/VerifyFortran.f
-#usr/share/cmake-3.2/Modules/FortranCInterface/Verify/main.c
-#usr/share/cmake-3.2/Modules/FortranCInterface/call_mod.f90
-#usr/share/cmake-3.2/Modules/FortranCInterface/call_sub.f
-#usr/share/cmake-3.2/Modules/FortranCInterface/main.F
-#usr/share/cmake-3.2/Modules/FortranCInterface/my_module.f90
-#usr/share/cmake-3.2/Modules/FortranCInterface/my_module_.c
-#usr/share/cmake-3.2/Modules/FortranCInterface/my_sub.f
-#usr/share/cmake-3.2/Modules/FortranCInterface/mymodule.f90
-#usr/share/cmake-3.2/Modules/FortranCInterface/mymodule_.c
-#usr/share/cmake-3.2/Modules/FortranCInterface/mysub.f
-#usr/share/cmake-3.2/Modules/FortranCInterface/symbol.c.in
-#usr/share/cmake-3.2/Modules/GNUInstallDirs.cmake
-#usr/share/cmake-3.2/Modules/GenerateExportHeader.cmake
-#usr/share/cmake-3.2/Modules/GetPrerequisites.cmake
-#usr/share/cmake-3.2/Modules/ITKCompatibility.cmake
-#usr/share/cmake-3.2/Modules/InstallRequiredSystemLibraries.cmake
-#usr/share/cmake-3.2/Modules/IntelVSImplicitPath
-#usr/share/cmake-3.2/Modules/IntelVSImplicitPath/CMakeLists.txt
-#usr/share/cmake-3.2/Modules/IntelVSImplicitPath/detect.cmake
-#usr/share/cmake-3.2/Modules/IntelVSImplicitPath/hello.f
-#usr/share/cmake-3.2/Modules/Internal
-#usr/share/cmake-3.2/Modules/Internal/FeatureTesting.cmake
-#usr/share/cmake-3.2/Modules/KDE3Macros.cmake
-#usr/share/cmake-3.2/Modules/MacOSXBundleInfo.plist.in
-#usr/share/cmake-3.2/Modules/MacOSXFrameworkInfo.plist.in
-#usr/share/cmake-3.2/Modules/MacroAddFileDependencies.cmake
-#usr/share/cmake-3.2/Modules/NSIS.InstallOptions.ini.in
-#usr/share/cmake-3.2/Modules/NSIS.template.in
-#usr/share/cmake-3.2/Modules/Platform
-#usr/share/cmake-3.2/Modules/Platform/AIX-GNU-ASM.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-GNU-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-GNU-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-GNU-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-GNU.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-VisualAge-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-VisualAge-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-VisualAge-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-XL-ASM.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-XL-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-XL-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-XL-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX-XL.cmake
-#usr/share/cmake-3.2/Modules/Platform/AIX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Android.cmake
-#usr/share/cmake-3.2/Modules/Platform/BSDOS.cmake
-#usr/share/cmake-3.2/Modules/Platform/BeOS.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneL.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-base.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-dynamic.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-static-GNU-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-static-XL-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/BlueGeneP-static.cmake
-#usr/share/cmake-3.2/Modules/Platform/CYGWIN-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/CYGWIN-GNU-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/CYGWIN-GNU-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/CYGWIN-GNU-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/CYGWIN-GNU.cmake
-#usr/share/cmake-3.2/Modules/Platform/CYGWIN-windres.cmake
-#usr/share/cmake-3.2/Modules/Platform/CYGWIN.cmake
-#usr/share/cmake-3.2/Modules/Platform/Catamount.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-Absoft-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-AppleClang-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-AppleClang-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-Clang-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-Clang-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-Clang.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-GNU-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-GNU-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-GNU-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-GNU.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-Initialize.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-Intel-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-Intel-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-Intel-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-Intel.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-NAG-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-VisualAge-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-VisualAge-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-XL-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin-XL-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Darwin.cmake
-#usr/share/cmake-3.2/Modules/Platform/DragonFly.cmake
-#usr/share/cmake-3.2/Modules/Platform/FreeBSD.cmake
-#usr/share/cmake-3.2/Modules/Platform/GNU.cmake
-#usr/share/cmake-3.2/Modules/Platform/GNUtoMS_lib.bat.in
-#usr/share/cmake-3.2/Modules/Platform/GNUtoMS_lib.cmake
-#usr/share/cmake-3.2/Modules/Platform/Generic-ADSP-ASM.cmake
-#usr/share/cmake-3.2/Modules/Platform/Generic-ADSP-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Generic-ADSP-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Generic-ADSP-Common.cmake
-#usr/share/cmake-3.2/Modules/Platform/Generic-SDCC-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Generic.cmake
-#usr/share/cmake-3.2/Modules/Platform/HP-UX-GNU-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/HP-UX-GNU-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/HP-UX-GNU-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/HP-UX-GNU.cmake
-#usr/share/cmake-3.2/Modules/Platform/HP-UX-HP-ASM.cmake
-#usr/share/cmake-3.2/Modules/Platform/HP-UX-HP-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/HP-UX-HP-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/HP-UX-HP-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/HP-UX-HP.cmake
-#usr/share/cmake-3.2/Modules/Platform/HP-UX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Haiku.cmake
-#usr/share/cmake-3.2/Modules/Platform/IRIX.cmake
-#usr/share/cmake-3.2/Modules/Platform/IRIX64.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-Absoft-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-Clang-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-Clang-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-GNU-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-GNU-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-GNU-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-GNU.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-Intel-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-Intel-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-Intel-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-Intel.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-NAG-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-PGI-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-PGI-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-PGI-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-PGI.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-PathScale-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-PathScale-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-PathScale-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-PathScale.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-SunPro-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-TinyCC-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-VisualAge-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-VisualAge-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-VisualAge-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-XL-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-XL-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-XL-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux-como.cmake
-#usr/share/cmake-3.2/Modules/Platform/Linux.cmake
-#usr/share/cmake-3.2/Modules/Platform/MP-RAS.cmake
-#usr/share/cmake-3.2/Modules/Platform/MirBSD.cmake
-#usr/share/cmake-3.2/Modules/Platform/NetBSD.cmake
-#usr/share/cmake-3.2/Modules/Platform/OSF1.cmake
-#usr/share/cmake-3.2/Modules/Platform/OpenBSD.cmake
-#usr/share/cmake-3.2/Modules/Platform/OpenVMS.cmake
-#usr/share/cmake-3.2/Modules/Platform/QNX.cmake
-#usr/share/cmake-3.2/Modules/Platform/RISCos.cmake
-#usr/share/cmake-3.2/Modules/Platform/SCO_SV.cmake
-#usr/share/cmake-3.2/Modules/Platform/SINIX.cmake
-#usr/share/cmake-3.2/Modules/Platform/SunOS-GNU-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/SunOS-GNU-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/SunOS-GNU-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/SunOS-GNU.cmake
-#usr/share/cmake-3.2/Modules/Platform/SunOS.cmake
-#usr/share/cmake-3.2/Modules/Platform/Tru64.cmake
-#usr/share/cmake-3.2/Modules/Platform/ULTRIX.cmake
-#usr/share/cmake-3.2/Modules/Platform/UNIX_SV.cmake
-#usr/share/cmake-3.2/Modules/Platform/UnixPaths.cmake
-#usr/share/cmake-3.2/Modules/Platform/UnixWare.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Borland-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Borland-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Clang-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Clang-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Clang.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Embarcadero-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Embarcadero-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Embarcadero.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-G95-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-GNU-C-ABI.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-GNU-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-GNU-CXX-ABI.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-GNU-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-GNU-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-GNU.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Intel-ASM.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Intel-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Intel-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Intel-Fortran.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-Intel.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-MSVC-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-MSVC-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-MSVC.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-NMcl.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-df.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-wcl386.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows-windres.cmake
-#usr/share/cmake-3.2/Modules/Platform/Windows.cmake
-#usr/share/cmake-3.2/Modules/Platform/WindowsCE-MSVC-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/WindowsCE-MSVC-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/WindowsCE.cmake
-#usr/share/cmake-3.2/Modules/Platform/WindowsPaths.cmake
-#usr/share/cmake-3.2/Modules/Platform/WindowsPhone-MSVC-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/WindowsPhone.cmake
-#usr/share/cmake-3.2/Modules/Platform/WindowsStore-MSVC-C.cmake
-#usr/share/cmake-3.2/Modules/Platform/WindowsStore-MSVC-CXX.cmake
-#usr/share/cmake-3.2/Modules/Platform/WindowsStore.cmake
-#usr/share/cmake-3.2/Modules/Platform/Xenix.cmake
-#usr/share/cmake-3.2/Modules/Platform/eCos.cmake
-#usr/share/cmake-3.2/Modules/Platform/gas.cmake
-#usr/share/cmake-3.2/Modules/Platform/kFreeBSD.cmake
-#usr/share/cmake-3.2/Modules/Platform/syllable.cmake
-#usr/share/cmake-3.2/Modules/ProcessorCount.cmake
-#usr/share/cmake-3.2/Modules/Qt4ConfigDependentSettings.cmake
-#usr/share/cmake-3.2/Modules/Qt4Macros.cmake
-#usr/share/cmake-3.2/Modules/RepositoryInfo.txt.in
-#usr/share/cmake-3.2/Modules/SelectLibraryConfigurations.cmake
-#usr/share/cmake-3.2/Modules/Squish4RunTestCase.bat
-#usr/share/cmake-3.2/Modules/Squish4RunTestCase.sh
-#usr/share/cmake-3.2/Modules/SquishRunTestCase.bat
-#usr/share/cmake-3.2/Modules/SquishRunTestCase.sh
-#usr/share/cmake-3.2/Modules/SquishTestScript.cmake
-#usr/share/cmake-3.2/Modules/SystemInformation.cmake
-#usr/share/cmake-3.2/Modules/SystemInformation.in
-#usr/share/cmake-3.2/Modules/TestBigEndian.cmake
-#usr/share/cmake-3.2/Modules/TestCXXAcceptsFlag.cmake
-#usr/share/cmake-3.2/Modules/TestEndianess.c.in
-#usr/share/cmake-3.2/Modules/TestForANSIForScope.cmake
-#usr/share/cmake-3.2/Modules/TestForANSIStreamHeaders.cmake
-#usr/share/cmake-3.2/Modules/TestForANSIStreamHeaders.cxx
-#usr/share/cmake-3.2/Modules/TestForAnsiForScope.cxx
-#usr/share/cmake-3.2/Modules/TestForSSTREAM.cmake
-#usr/share/cmake-3.2/Modules/TestForSSTREAM.cxx
-#usr/share/cmake-3.2/Modules/TestForSTDNamespace.cmake
-#usr/share/cmake-3.2/Modules/TestForSTDNamespace.cxx
-#usr/share/cmake-3.2/Modules/UseEcos.cmake
-#usr/share/cmake-3.2/Modules/UseJava.cmake
-#usr/share/cmake-3.2/Modules/UseJavaClassFilelist.cmake
-#usr/share/cmake-3.2/Modules/UseJavaSymlinks.cmake
-#usr/share/cmake-3.2/Modules/UsePkgConfig.cmake
-#usr/share/cmake-3.2/Modules/UseQt4.cmake
-#usr/share/cmake-3.2/Modules/UseSWIG.cmake
-#usr/share/cmake-3.2/Modules/UseVTK40.cmake
-#usr/share/cmake-3.2/Modules/UseVTKBuildSettings40.cmake
-#usr/share/cmake-3.2/Modules/UseVTKConfig40.cmake
-#usr/share/cmake-3.2/Modules/Use_wxWindows.cmake
-#usr/share/cmake-3.2/Modules/UsewxWidgets.cmake
-#usr/share/cmake-3.2/Modules/VTKCompatibility.cmake
-#usr/share/cmake-3.2/Modules/WIX.template.in
-#usr/share/cmake-3.2/Modules/WriteBasicConfigVersionFile.cmake
-#usr/share/cmake-3.2/Modules/WriteCompilerDetectionHeader.cmake
-#usr/share/cmake-3.2/Modules/ecos_clean.cmake
-#usr/share/cmake-3.2/Modules/exportheader.cmake.in
-#usr/share/cmake-3.2/Modules/kde3init_dummy.cpp.in
-#usr/share/cmake-3.2/Modules/kde3uic.cmake
-#usr/share/cmake-3.2/Modules/readme.txt
-#usr/share/cmake-3.2/Templates
-#usr/share/cmake-3.2/Templates/AppleInfo.plist
-#usr/share/cmake-3.2/Templates/CMakeVSMacros1.vsmacros
-#usr/share/cmake-3.2/Templates/CMakeVSMacros2.vsmacros
-#usr/share/cmake-3.2/Templates/CMakeVisualStudio6Configurations.cmake
-#usr/share/cmake-3.2/Templates/CPack.GenericDescription.txt
-#usr/share/cmake-3.2/Templates/CPack.GenericLicense.txt
-#usr/share/cmake-3.2/Templates/CPack.GenericWelcome.txt
-#usr/share/cmake-3.2/Templates/CPackConfig.cmake.in
-#usr/share/cmake-3.2/Templates/CTestScript.cmake.in
-#usr/share/cmake-3.2/Templates/DLLFooter.dsptemplate
-#usr/share/cmake-3.2/Templates/DLLHeader.dsptemplate
-#usr/share/cmake-3.2/Templates/EXEFooter.dsptemplate
-#usr/share/cmake-3.2/Templates/EXEHeader.dsptemplate
-#usr/share/cmake-3.2/Templates/EXEWinHeader.dsptemplate
-#usr/share/cmake-3.2/Templates/TestDriver.cxx.in
-#usr/share/cmake-3.2/Templates/UtilityFooter.dsptemplate
-#usr/share/cmake-3.2/Templates/UtilityHeader.dsptemplate
-#usr/share/cmake-3.2/Templates/Windows
-#usr/share/cmake-3.2/Templates/Windows/ApplicationIcon.png
-#usr/share/cmake-3.2/Templates/Windows/Logo.png
-#usr/share/cmake-3.2/Templates/Windows/SmallLogo.png
-#usr/share/cmake-3.2/Templates/Windows/SplashScreen.png
-#usr/share/cmake-3.2/Templates/Windows/StoreLogo.png
-#usr/share/cmake-3.2/Templates/Windows/Windows_TemporaryKey.pfx
-#usr/share/cmake-3.2/Templates/cygwin-package.sh.in
-#usr/share/cmake-3.2/Templates/staticLibFooter.dsptemplate
-#usr/share/cmake-3.2/Templates/staticLibHeader.dsptemplate
-#usr/share/cmake-3.2/completions
-#usr/share/cmake-3.2/completions/cmake
-#usr/share/cmake-3.2/completions/cpack
-#usr/share/cmake-3.2/completions/ctest
-#usr/share/cmake-3.2/editors
-#usr/share/cmake-3.2/editors/emacs
-#usr/share/cmake-3.2/editors/emacs/cmake-mode.el
-#usr/share/cmake-3.2/editors/vim
-#usr/share/cmake-3.2/editors/vim/cmake-help.vim
-#usr/share/cmake-3.2/editors/vim/cmake-indent.vim
-#usr/share/cmake-3.2/editors/vim/cmake-syntax.vim
-#usr/share/cmake-3.2/include
-#usr/share/cmake-3.2/include/cmCPluginAPI.h
-#usr/share/doc/cmake-2.8.12.2
-#usr/share/doc/cmake-2.8.12.2/Copyright.txt
-#usr/share/doc/cmake-2.8.12.2/cmcompress
-#usr/share/doc/cmake-2.8.12.2/cmcompress/Copyright.txt
-#usr/share/doc/cmake-2.8.12.2/cmsys
-#usr/share/doc/cmake-2.8.12.2/cmsys/Copyright.txt
+#usr/share/cmake-3.8/Help/generator/Xcode.rst
+#usr/share/cmake-3.8/Help/include
+#usr/share/cmake-3.8/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
+#usr/share/cmake-3.8/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
+#usr/share/cmake-3.8/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
+#usr/share/cmake-3.8/Help/index.rst
+#usr/share/cmake-3.8/Help/manual
+#usr/share/cmake-3.8/Help/manual/LINKS.txt
+#usr/share/cmake-3.8/Help/manual/OPTIONS_BUILD.txt
+#usr/share/cmake-3.8/Help/manual/OPTIONS_HELP.txt
+#usr/share/cmake-3.8/Help/manual/ccmake.1.rst
+#usr/share/cmake-3.8/Help/manual/cmake-buildsystem.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-commands.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-compile-features.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-developer.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-generator-expressions.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-generators.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-gui.1.rst
+#usr/share/cmake-3.8/Help/manual/cmake-language.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-modules.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-packages.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-policies.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-properties.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-qt.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-server.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-toolchains.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake-variables.7.rst
+#usr/share/cmake-3.8/Help/manual/cmake.1.rst
+#usr/share/cmake-3.8/Help/manual/cpack.1.rst
+#usr/share/cmake-3.8/Help/manual/ctest.1.rst
+#usr/share/cmake-3.8/Help/module
+#usr/share/cmake-3.8/Help/module/AddFileDependencies.rst
+#usr/share/cmake-3.8/Help/module/AndroidTestUtilities.rst
+#usr/share/cmake-3.8/Help/module/BundleUtilities.rst
+#usr/share/cmake-3.8/Help/module/CMakeAddFortranSubdirectory.rst
+#usr/share/cmake-3.8/Help/module/CMakeBackwardCompatibilityCXX.rst
+#usr/share/cmake-3.8/Help/module/CMakeDependentOption.rst
+#usr/share/cmake-3.8/Help/module/CMakeDetermineVSServicePack.rst
+#usr/share/cmake-3.8/Help/module/CMakeExpandImportedTargets.rst
+#usr/share/cmake-3.8/Help/module/CMakeFindDependencyMacro.rst
+#usr/share/cmake-3.8/Help/module/CMakeFindFrameworks.rst
+#usr/share/cmake-3.8/Help/module/CMakeFindPackageMode.rst
+#usr/share/cmake-3.8/Help/module/CMakeForceCompiler.rst
+#usr/share/cmake-3.8/Help/module/CMakeGraphVizOptions.rst
+#usr/share/cmake-3.8/Help/module/CMakePackageConfigHelpers.rst
+#usr/share/cmake-3.8/Help/module/CMakeParseArguments.rst
+#usr/share/cmake-3.8/Help/module/CMakePrintHelpers.rst
+#usr/share/cmake-3.8/Help/module/CMakePrintSystemInformation.rst
+#usr/share/cmake-3.8/Help/module/CMakePushCheckState.rst
+#usr/share/cmake-3.8/Help/module/CMakeVerifyManifest.rst
+#usr/share/cmake-3.8/Help/module/CPack.rst
+#usr/share/cmake-3.8/Help/module/CPackBundle.rst
+#usr/share/cmake-3.8/Help/module/CPackComponent.rst
+#usr/share/cmake-3.8/Help/module/CPackCygwin.rst
+#usr/share/cmake-3.8/Help/module/CPackDMG.rst
+#usr/share/cmake-3.8/Help/module/CPackDeb.rst
+#usr/share/cmake-3.8/Help/module/CPackIFW.rst
+#usr/share/cmake-3.8/Help/module/CPackIFWConfigureFile.rst
+#usr/share/cmake-3.8/Help/module/CPackNSIS.rst
+#usr/share/cmake-3.8/Help/module/CPackPackageMaker.rst
+#usr/share/cmake-3.8/Help/module/CPackProductBuild.rst
+#usr/share/cmake-3.8/Help/module/CPackRPM.rst
+#usr/share/cmake-3.8/Help/module/CPackWIX.rst
+#usr/share/cmake-3.8/Help/module/CSharpUtilities.rst
+#usr/share/cmake-3.8/Help/module/CTest.rst
+#usr/share/cmake-3.8/Help/module/CTestCoverageCollectGCOV.rst
+#usr/share/cmake-3.8/Help/module/CTestScriptMode.rst
+#usr/share/cmake-3.8/Help/module/CTestUseLaunchers.rst
+#usr/share/cmake-3.8/Help/module/CheckCCompilerFlag.rst
+#usr/share/cmake-3.8/Help/module/CheckCSourceCompiles.rst
+#usr/share/cmake-3.8/Help/module/CheckCSourceRuns.rst
+#usr/share/cmake-3.8/Help/module/CheckCXXCompilerFlag.rst
+#usr/share/cmake-3.8/Help/module/CheckCXXSourceCompiles.rst
+#usr/share/cmake-3.8/Help/module/CheckCXXSourceRuns.rst
+#usr/share/cmake-3.8/Help/module/CheckCXXSymbolExists.rst
+#usr/share/cmake-3.8/Help/module/CheckFortranCompilerFlag.rst
+#usr/share/cmake-3.8/Help/module/CheckFortranFunctionExists.rst
+#usr/share/cmake-3.8/Help/module/CheckFortranSourceCompiles.rst
+#usr/share/cmake-3.8/Help/module/CheckFunctionExists.rst
+#usr/share/cmake-3.8/Help/module/CheckIncludeFile.rst
+#usr/share/cmake-3.8/Help/module/CheckIncludeFileCXX.rst
+#usr/share/cmake-3.8/Help/module/CheckIncludeFiles.rst
+#usr/share/cmake-3.8/Help/module/CheckLanguage.rst
+#usr/share/cmake-3.8/Help/module/CheckLibraryExists.rst
+#usr/share/cmake-3.8/Help/module/CheckPrototypeDefinition.rst
+#usr/share/cmake-3.8/Help/module/CheckStructHasMember.rst
+#usr/share/cmake-3.8/Help/module/CheckSymbolExists.rst
+#usr/share/cmake-3.8/Help/module/CheckTypeSize.rst
+#usr/share/cmake-3.8/Help/module/CheckVariableExists.rst
+#usr/share/cmake-3.8/Help/module/Dart.rst
+#usr/share/cmake-3.8/Help/module/DeployQt4.rst
+#usr/share/cmake-3.8/Help/module/Documentation.rst
+#usr/share/cmake-3.8/Help/module/ExternalData.rst
+#usr/share/cmake-3.8/Help/module/ExternalProject.rst
+#usr/share/cmake-3.8/Help/module/FeatureSummary.rst
+#usr/share/cmake-3.8/Help/module/FindALSA.rst
+#usr/share/cmake-3.8/Help/module/FindASPELL.rst
+#usr/share/cmake-3.8/Help/module/FindAVIFile.rst
+#usr/share/cmake-3.8/Help/module/FindArmadillo.rst
+#usr/share/cmake-3.8/Help/module/FindBISON.rst
+#usr/share/cmake-3.8/Help/module/FindBLAS.rst
+#usr/share/cmake-3.8/Help/module/FindBZip2.rst
+#usr/share/cmake-3.8/Help/module/FindBacktrace.rst
+#usr/share/cmake-3.8/Help/module/FindBoost.rst
+#usr/share/cmake-3.8/Help/module/FindBullet.rst
+#usr/share/cmake-3.8/Help/module/FindCABLE.rst
+#usr/share/cmake-3.8/Help/module/FindCUDA.rst
+#usr/share/cmake-3.8/Help/module/FindCURL.rst
+#usr/share/cmake-3.8/Help/module/FindCVS.rst
+#usr/share/cmake-3.8/Help/module/FindCoin3D.rst
+#usr/share/cmake-3.8/Help/module/FindCups.rst
+#usr/share/cmake-3.8/Help/module/FindCurses.rst
+#usr/share/cmake-3.8/Help/module/FindCxxTest.rst
+#usr/share/cmake-3.8/Help/module/FindCygwin.rst
+#usr/share/cmake-3.8/Help/module/FindDCMTK.rst
+#usr/share/cmake-3.8/Help/module/FindDart.rst
+#usr/share/cmake-3.8/Help/module/FindDevIL.rst
+#usr/share/cmake-3.8/Help/module/FindDoxygen.rst
+#usr/share/cmake-3.8/Help/module/FindEXPAT.rst
+#usr/share/cmake-3.8/Help/module/FindFLEX.rst
+#usr/share/cmake-3.8/Help/module/FindFLTK.rst
+#usr/share/cmake-3.8/Help/module/FindFLTK2.rst
+#usr/share/cmake-3.8/Help/module/FindFreetype.rst
+#usr/share/cmake-3.8/Help/module/FindGCCXML.rst
+#usr/share/cmake-3.8/Help/module/FindGDAL.rst
+#usr/share/cmake-3.8/Help/module/FindGIF.rst
+#usr/share/cmake-3.8/Help/module/FindGLEW.rst
+#usr/share/cmake-3.8/Help/module/FindGLUT.rst
+#usr/share/cmake-3.8/Help/module/FindGSL.rst
+#usr/share/cmake-3.8/Help/module/FindGTK.rst
+#usr/share/cmake-3.8/Help/module/FindGTK2.rst
+#usr/share/cmake-3.8/Help/module/FindGTest.rst
+#usr/share/cmake-3.8/Help/module/FindGettext.rst
+#usr/share/cmake-3.8/Help/module/FindGit.rst
+#usr/share/cmake-3.8/Help/module/FindGnuTLS.rst
+#usr/share/cmake-3.8/Help/module/FindGnuplot.rst
+#usr/share/cmake-3.8/Help/module/FindHDF5.rst
+#usr/share/cmake-3.8/Help/module/FindHSPELL.rst
+#usr/share/cmake-3.8/Help/module/FindHTMLHelp.rst
+#usr/share/cmake-3.8/Help/module/FindHg.rst
+#usr/share/cmake-3.8/Help/module/FindICU.rst
+#usr/share/cmake-3.8/Help/module/FindITK.rst
+#usr/share/cmake-3.8/Help/module/FindIce.rst
+#usr/share/cmake-3.8/Help/module/FindIcotool.rst
+#usr/share/cmake-3.8/Help/module/FindImageMagick.rst
+#usr/share/cmake-3.8/Help/module/FindIntl.rst
+#usr/share/cmake-3.8/Help/module/FindJNI.rst
+#usr/share/cmake-3.8/Help/module/FindJPEG.rst
+#usr/share/cmake-3.8/Help/module/FindJasper.rst
+#usr/share/cmake-3.8/Help/module/FindJava.rst
+#usr/share/cmake-3.8/Help/module/FindKDE3.rst
+#usr/share/cmake-3.8/Help/module/FindKDE4.rst
+#usr/share/cmake-3.8/Help/module/FindLAPACK.rst
+#usr/share/cmake-3.8/Help/module/FindLATEX.rst
+#usr/share/cmake-3.8/Help/module/FindLTTngUST.rst
+#usr/share/cmake-3.8/Help/module/FindLibArchive.rst
+#usr/share/cmake-3.8/Help/module/FindLibLZMA.rst
+#usr/share/cmake-3.8/Help/module/FindLibXml2.rst
+#usr/share/cmake-3.8/Help/module/FindLibXslt.rst
+#usr/share/cmake-3.8/Help/module/FindLua.rst
+#usr/share/cmake-3.8/Help/module/FindLua50.rst
+#usr/share/cmake-3.8/Help/module/FindLua51.rst
+#usr/share/cmake-3.8/Help/module/FindMFC.rst
+#usr/share/cmake-3.8/Help/module/FindMPEG.rst
+#usr/share/cmake-3.8/Help/module/FindMPEG2.rst
+#usr/share/cmake-3.8/Help/module/FindMPI.rst
+#usr/share/cmake-3.8/Help/module/FindMatlab.rst
+#usr/share/cmake-3.8/Help/module/FindMotif.rst
+#usr/share/cmake-3.8/Help/module/FindOpenAL.rst
+#usr/share/cmake-3.8/Help/module/FindOpenCL.rst
+#usr/share/cmake-3.8/Help/module/FindOpenGL.rst
+#usr/share/cmake-3.8/Help/module/FindOpenMP.rst
+#usr/share/cmake-3.8/Help/module/FindOpenSSL.rst
+#usr/share/cmake-3.8/Help/module/FindOpenSceneGraph.rst
+#usr/share/cmake-3.8/Help/module/FindOpenThreads.rst
+#usr/share/cmake-3.8/Help/module/FindPHP4.rst
+#usr/share/cmake-3.8/Help/module/FindPNG.rst
+#usr/share/cmake-3.8/Help/module/FindPackageHandleStandardArgs.rst
+#usr/share/cmake-3.8/Help/module/FindPackageMessage.rst
+#usr/share/cmake-3.8/Help/module/FindPerl.rst
+#usr/share/cmake-3.8/Help/module/FindPerlLibs.rst
+#usr/share/cmake-3.8/Help/module/FindPhysFS.rst
+#usr/share/cmake-3.8/Help/module/FindPike.rst
+#usr/share/cmake-3.8/Help/module/FindPkgConfig.rst
+#usr/share/cmake-3.8/Help/module/FindPostgreSQL.rst
+#usr/share/cmake-3.8/Help/module/FindProducer.rst
+#usr/share/cmake-3.8/Help/module/FindProtobuf.rst
+#usr/share/cmake-3.8/Help/module/FindPythonInterp.rst
+#usr/share/cmake-3.8/Help/module/FindPythonLibs.rst
+#usr/share/cmake-3.8/Help/module/FindQt.rst
+#usr/share/cmake-3.8/Help/module/FindQt3.rst
+#usr/share/cmake-3.8/Help/module/FindQt4.rst
+#usr/share/cmake-3.8/Help/module/FindQuickTime.rst
+#usr/share/cmake-3.8/Help/module/FindRTI.rst
+#usr/share/cmake-3.8/Help/module/FindRuby.rst
+#usr/share/cmake-3.8/Help/module/FindSDL.rst
+#usr/share/cmake-3.8/Help/module/FindSDL_image.rst
+#usr/share/cmake-3.8/Help/module/FindSDL_mixer.rst
+#usr/share/cmake-3.8/Help/module/FindSDL_net.rst
+#usr/share/cmake-3.8/Help/module/FindSDL_sound.rst
+#usr/share/cmake-3.8/Help/module/FindSDL_ttf.rst
+#usr/share/cmake-3.8/Help/module/FindSWIG.rst
+#usr/share/cmake-3.8/Help/module/FindSelfPackers.rst
+#usr/share/cmake-3.8/Help/module/FindSquish.rst
+#usr/share/cmake-3.8/Help/module/FindSubversion.rst
+#usr/share/cmake-3.8/Help/module/FindTCL.rst
+#usr/share/cmake-3.8/Help/module/FindTIFF.rst
+#usr/share/cmake-3.8/Help/module/FindTclStub.rst
+#usr/share/cmake-3.8/Help/module/FindTclsh.rst
+#usr/share/cmake-3.8/Help/module/FindThreads.rst
+#usr/share/cmake-3.8/Help/module/FindUnixCommands.rst
+#usr/share/cmake-3.8/Help/module/FindVTK.rst
+#usr/share/cmake-3.8/Help/module/FindVulkan.rst
+#usr/share/cmake-3.8/Help/module/FindWget.rst
+#usr/share/cmake-3.8/Help/module/FindWish.rst
+#usr/share/cmake-3.8/Help/module/FindX11.rst
+#usr/share/cmake-3.8/Help/module/FindXCTest.rst
+#usr/share/cmake-3.8/Help/module/FindXMLRPC.rst
+#usr/share/cmake-3.8/Help/module/FindXalanC.rst
+#usr/share/cmake-3.8/Help/module/FindXercesC.rst
+#usr/share/cmake-3.8/Help/module/FindZLIB.rst
+#usr/share/cmake-3.8/Help/module/Findosg.rst
+#usr/share/cmake-3.8/Help/module/FindosgAnimation.rst
+#usr/share/cmake-3.8/Help/module/FindosgDB.rst
+#usr/share/cmake-3.8/Help/module/FindosgFX.rst
+#usr/share/cmake-3.8/Help/module/FindosgGA.rst
+#usr/share/cmake-3.8/Help/module/FindosgIntrospection.rst
+#usr/share/cmake-3.8/Help/module/FindosgManipulator.rst
+#usr/share/cmake-3.8/Help/module/FindosgParticle.rst
+#usr/share/cmake-3.8/Help/module/FindosgPresentation.rst
+#usr/share/cmake-3.8/Help/module/FindosgProducer.rst
+#usr/share/cmake-3.8/Help/module/FindosgQt.rst
+#usr/share/cmake-3.8/Help/module/FindosgShadow.rst
+#usr/share/cmake-3.8/Help/module/FindosgSim.rst
+#usr/share/cmake-3.8/Help/module/FindosgTerrain.rst
+#usr/share/cmake-3.8/Help/module/FindosgText.rst
+#usr/share/cmake-3.8/Help/module/FindosgUtil.rst
+#usr/share/cmake-3.8/Help/module/FindosgViewer.rst
+#usr/share/cmake-3.8/Help/module/FindosgVolume.rst
+#usr/share/cmake-3.8/Help/module/FindosgWidget.rst
+#usr/share/cmake-3.8/Help/module/Findosg_functions.rst
+#usr/share/cmake-3.8/Help/module/FindwxWidgets.rst
+#usr/share/cmake-3.8/Help/module/FindwxWindows.rst
+#usr/share/cmake-3.8/Help/module/FortranCInterface.rst
+#usr/share/cmake-3.8/Help/module/GNUInstallDirs.rst
+#usr/share/cmake-3.8/Help/module/GenerateExportHeader.rst
+#usr/share/cmake-3.8/Help/module/GetPrerequisites.rst
+#usr/share/cmake-3.8/Help/module/InstallRequiredSystemLibraries.rst
+#usr/share/cmake-3.8/Help/module/MacroAddFileDependencies.rst
+#usr/share/cmake-3.8/Help/module/ProcessorCount.rst
+#usr/share/cmake-3.8/Help/module/SelectLibraryConfigurations.rst
+#usr/share/cmake-3.8/Help/module/SquishTestScript.rst
+#usr/share/cmake-3.8/Help/module/TestBigEndian.rst
+#usr/share/cmake-3.8/Help/module/TestCXXAcceptsFlag.rst
+#usr/share/cmake-3.8/Help/module/TestForANSIForScope.rst
+#usr/share/cmake-3.8/Help/module/TestForANSIStreamHeaders.rst
+#usr/share/cmake-3.8/Help/module/TestForSSTREAM.rst
+#usr/share/cmake-3.8/Help/module/TestForSTDNamespace.rst
+#usr/share/cmake-3.8/Help/module/UseEcos.rst
+#usr/share/cmake-3.8/Help/module/UseJava.rst
+#usr/share/cmake-3.8/Help/module/UseJavaClassFilelist.rst
+#usr/share/cmake-3.8/Help/module/UseJavaSymlinks.rst
+#usr/share/cmake-3.8/Help/module/UsePkgConfig.rst
+#usr/share/cmake-3.8/Help/module/UseSWIG.rst
+#usr/share/cmake-3.8/Help/module/Use_wxWindows.rst
+#usr/share/cmake-3.8/Help/module/UsewxWidgets.rst
+#usr/share/cmake-3.8/Help/module/WriteBasicConfigVersionFile.rst
+#usr/share/cmake-3.8/Help/module/WriteCompilerDetectionHeader.rst
+#usr/share/cmake-3.8/Help/policy
+#usr/share/cmake-3.8/Help/policy/CMP0000.rst
+#usr/share/cmake-3.8/Help/policy/CMP0001.rst
+#usr/share/cmake-3.8/Help/policy/CMP0002.rst
+#usr/share/cmake-3.8/Help/policy/CMP0003.rst
+#usr/share/cmake-3.8/Help/policy/CMP0004.rst
+#usr/share/cmake-3.8/Help/policy/CMP0005.rst
+#usr/share/cmake-3.8/Help/policy/CMP0006.rst
+#usr/share/cmake-3.8/Help/policy/CMP0007.rst
+#usr/share/cmake-3.8/Help/policy/CMP0008.rst
+#usr/share/cmake-3.8/Help/policy/CMP0009.rst
+#usr/share/cmake-3.8/Help/policy/CMP0010.rst
+#usr/share/cmake-3.8/Help/policy/CMP0011.rst
+#usr/share/cmake-3.8/Help/policy/CMP0012.rst
+#usr/share/cmake-3.8/Help/policy/CMP0013.rst
+#usr/share/cmake-3.8/Help/policy/CMP0014.rst
+#usr/share/cmake-3.8/Help/policy/CMP0015.rst
+#usr/share/cmake-3.8/Help/policy/CMP0016.rst
+#usr/share/cmake-3.8/Help/policy/CMP0017.rst
+#usr/share/cmake-3.8/Help/policy/CMP0018.rst
+#usr/share/cmake-3.8/Help/policy/CMP0019.rst
+#usr/share/cmake-3.8/Help/policy/CMP0020.rst
+#usr/share/cmake-3.8/Help/policy/CMP0021.rst
+#usr/share/cmake-3.8/Help/policy/CMP0022.rst
+#usr/share/cmake-3.8/Help/policy/CMP0023.rst
+#usr/share/cmake-3.8/Help/policy/CMP0024.rst
+#usr/share/cmake-3.8/Help/policy/CMP0025.rst
+#usr/share/cmake-3.8/Help/policy/CMP0026.rst
+#usr/share/cmake-3.8/Help/policy/CMP0027.rst
+#usr/share/cmake-3.8/Help/policy/CMP0028.rst
+#usr/share/cmake-3.8/Help/policy/CMP0029.rst
+#usr/share/cmake-3.8/Help/policy/CMP0030.rst
+#usr/share/cmake-3.8/Help/policy/CMP0031.rst
+#usr/share/cmake-3.8/Help/policy/CMP0032.rst
+#usr/share/cmake-3.8/Help/policy/CMP0033.rst
+#usr/share/cmake-3.8/Help/policy/CMP0034.rst
+#usr/share/cmake-3.8/Help/policy/CMP0035.rst
+#usr/share/cmake-3.8/Help/policy/CMP0036.rst
+#usr/share/cmake-3.8/Help/policy/CMP0037.rst
+#usr/share/cmake-3.8/Help/policy/CMP0038.rst
+#usr/share/cmake-3.8/Help/policy/CMP0039.rst
+#usr/share/cmake-3.8/Help/policy/CMP0040.rst
+#usr/share/cmake-3.8/Help/policy/CMP0041.rst
+#usr/share/cmake-3.8/Help/policy/CMP0042.rst
+#usr/share/cmake-3.8/Help/policy/CMP0043.rst
+#usr/share/cmake-3.8/Help/policy/CMP0044.rst
+#usr/share/cmake-3.8/Help/policy/CMP0045.rst
+#usr/share/cmake-3.8/Help/policy/CMP0046.rst
+#usr/share/cmake-3.8/Help/policy/CMP0047.rst
+#usr/share/cmake-3.8/Help/policy/CMP0048.rst
+#usr/share/cmake-3.8/Help/policy/CMP0049.rst
+#usr/share/cmake-3.8/Help/policy/CMP0050.rst
+#usr/share/cmake-3.8/Help/policy/CMP0051.rst
+#usr/share/cmake-3.8/Help/policy/CMP0052.rst
+#usr/share/cmake-3.8/Help/policy/CMP0053.rst
+#usr/share/cmake-3.8/Help/policy/CMP0054.rst
+#usr/share/cmake-3.8/Help/policy/CMP0055.rst
+#usr/share/cmake-3.8/Help/policy/CMP0056.rst
+#usr/share/cmake-3.8/Help/policy/CMP0057.rst
+#usr/share/cmake-3.8/Help/policy/CMP0058.rst
+#usr/share/cmake-3.8/Help/policy/CMP0059.rst
+#usr/share/cmake-3.8/Help/policy/CMP0060.rst
+#usr/share/cmake-3.8/Help/policy/CMP0061.rst
+#usr/share/cmake-3.8/Help/policy/CMP0062.rst
+#usr/share/cmake-3.8/Help/policy/CMP0063.rst
+#usr/share/cmake-3.8/Help/policy/CMP0064.rst
+#usr/share/cmake-3.8/Help/policy/CMP0065.rst
+#usr/share/cmake-3.8/Help/policy/CMP0066.rst
+#usr/share/cmake-3.8/Help/policy/CMP0067.rst
+#usr/share/cmake-3.8/Help/policy/DEPRECATED.txt
+#usr/share/cmake-3.8/Help/policy/DISALLOWED_COMMAND.txt
+#usr/share/cmake-3.8/Help/prop_cache
+#usr/share/cmake-3.8/Help/prop_cache/ADVANCED.rst
+#usr/share/cmake-3.8/Help/prop_cache/HELPSTRING.rst
+#usr/share/cmake-3.8/Help/prop_cache/MODIFIED.rst
+#usr/share/cmake-3.8/Help/prop_cache/STRINGS.rst
+#usr/share/cmake-3.8/Help/prop_cache/TYPE.rst
+#usr/share/cmake-3.8/Help/prop_cache/VALUE.rst
+#usr/share/cmake-3.8/Help/prop_dir
+#usr/share/cmake-3.8/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
+#usr/share/cmake-3.8/Help/prop_dir/BINARY_DIR.rst
+#usr/share/cmake-3.8/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
+#usr/share/cmake-3.8/Help/prop_dir/CACHE_VARIABLES.rst
+#usr/share/cmake-3.8/Help/prop_dir/CLEAN_NO_CUSTOM.rst
+#usr/share/cmake-3.8/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
+#usr/share/cmake-3.8/Help/prop_dir/COMPILE_DEFINITIONS.rst
+#usr/share/cmake-3.8/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_dir/COMPILE_OPTIONS.rst
+#usr/share/cmake-3.8/Help/prop_dir/DEFINITIONS.rst
+#usr/share/cmake-3.8/Help/prop_dir/EXCLUDE_FROM_ALL.rst
+#usr/share/cmake-3.8/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
+#usr/share/cmake-3.8/Help/prop_dir/INCLUDE_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
+#usr/share/cmake-3.8/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
+#usr/share/cmake-3.8/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_dir/LINK_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/prop_dir/LISTFILE_STACK.rst
+#usr/share/cmake-3.8/Help/prop_dir/MACROS.rst
+#usr/share/cmake-3.8/Help/prop_dir/PARENT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
+#usr/share/cmake-3.8/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
+#usr/share/cmake-3.8/Help/prop_dir/RULE_LAUNCH_LINK.rst
+#usr/share/cmake-3.8/Help/prop_dir/SOURCE_DIR.rst
+#usr/share/cmake-3.8/Help/prop_dir/SUBDIRECTORIES.rst
+#usr/share/cmake-3.8/Help/prop_dir/TEST_INCLUDE_FILE.rst
+#usr/share/cmake-3.8/Help/prop_dir/VARIABLES.rst
+#usr/share/cmake-3.8/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
+#usr/share/cmake-3.8/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
+#usr/share/cmake-3.8/Help/prop_dir/VS_STARTUP_PROJECT.rst
+#usr/share/cmake-3.8/Help/prop_gbl
+#usr/share/cmake-3.8/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
+#usr/share/cmake-3.8/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
+#usr/share/cmake-3.8/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
+#usr/share/cmake-3.8/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
+#usr/share/cmake-3.8/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
+#usr/share/cmake-3.8/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
+#usr/share/cmake-3.8/Help/prop_gbl/DISABLED_FEATURES.rst
+#usr/share/cmake-3.8/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
+#usr/share/cmake-3.8/Help/prop_gbl/ENABLED_FEATURES.rst
+#usr/share/cmake-3.8/Help/prop_gbl/ENABLED_LANGUAGES.rst
+#usr/share/cmake-3.8/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst
+#usr/share/cmake-3.8/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
+#usr/share/cmake-3.8/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
+#usr/share/cmake-3.8/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
+#usr/share/cmake-3.8/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
+#usr/share/cmake-3.8/Help/prop_gbl/IN_TRY_COMPILE.rst
+#usr/share/cmake-3.8/Help/prop_gbl/JOB_POOLS.rst
+#usr/share/cmake-3.8/Help/prop_gbl/PACKAGES_FOUND.rst
+#usr/share/cmake-3.8/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
+#usr/share/cmake-3.8/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
+#usr/share/cmake-3.8/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
+#usr/share/cmake-3.8/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
+#usr/share/cmake-3.8/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
+#usr/share/cmake-3.8/Help/prop_gbl/RULE_LAUNCH_LINK.rst
+#usr/share/cmake-3.8/Help/prop_gbl/RULE_MESSAGES.rst
+#usr/share/cmake-3.8/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
+#usr/share/cmake-3.8/Help/prop_gbl/TARGET_MESSAGES.rst
+#usr/share/cmake-3.8/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
+#usr/share/cmake-3.8/Help/prop_gbl/USE_FOLDERS.rst
+#usr/share/cmake-3.8/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
+#usr/share/cmake-3.8/Help/prop_inst
+#usr/share/cmake-3.8/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
+#usr/share/cmake-3.8/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
+#usr/share/cmake-3.8/Help/prop_inst/CPACK_PERMANENT.rst
+#usr/share/cmake-3.8/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst
+#usr/share/cmake-3.8/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst
+#usr/share/cmake-3.8/Help/prop_inst/CPACK_WIX_ACL.rst
+#usr/share/cmake-3.8/Help/prop_sf
+#usr/share/cmake-3.8/Help/prop_sf/ABSTRACT.rst
+#usr/share/cmake-3.8/Help/prop_sf/AUTORCC_OPTIONS.rst
+#usr/share/cmake-3.8/Help/prop_sf/AUTOUIC_OPTIONS.rst
+#usr/share/cmake-3.8/Help/prop_sf/COMPILE_DEFINITIONS.rst
+#usr/share/cmake-3.8/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_sf/COMPILE_FLAGS.rst
+#usr/share/cmake-3.8/Help/prop_sf/EXTERNAL_OBJECT.rst
+#usr/share/cmake-3.8/Help/prop_sf/Fortran_FORMAT.rst
+#usr/share/cmake-3.8/Help/prop_sf/GENERATED.rst
+#usr/share/cmake-3.8/Help/prop_sf/HEADER_FILE_ONLY.rst
+#usr/share/cmake-3.8/Help/prop_sf/KEEP_EXTENSION.rst
+#usr/share/cmake-3.8/Help/prop_sf/LABELS.rst
+#usr/share/cmake-3.8/Help/prop_sf/LANGUAGE.rst
+#usr/share/cmake-3.8/Help/prop_sf/LOCATION.rst
+#usr/share/cmake-3.8/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
+#usr/share/cmake-3.8/Help/prop_sf/OBJECT_DEPENDS.rst
+#usr/share/cmake-3.8/Help/prop_sf/OBJECT_OUTPUTS.rst
+#usr/share/cmake-3.8/Help/prop_sf/SKIP_AUTOGEN.rst
+#usr/share/cmake-3.8/Help/prop_sf/SKIP_AUTOMOC.rst
+#usr/share/cmake-3.8/Help/prop_sf/SKIP_AUTORCC.rst
+#usr/share/cmake-3.8/Help/prop_sf/SKIP_AUTOUIC.rst
+#usr/share/cmake-3.8/Help/prop_sf/SYMBOLIC.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_CSHARP_tagname.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_RESOURCE_GENERATOR.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_SHADER_FLAGS.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_SHADER_MODEL.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_SHADER_TYPE.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_TOOL_OVERRIDE.rst
+#usr/share/cmake-3.8/Help/prop_sf/VS_XAML_TYPE.rst
+#usr/share/cmake-3.8/Help/prop_sf/WRAP_EXCLUDE.rst
+#usr/share/cmake-3.8/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
+#usr/share/cmake-3.8/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst
+#usr/share/cmake-3.8/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
+#usr/share/cmake-3.8/Help/prop_test
+#usr/share/cmake-3.8/Help/prop_test/ATTACHED_FILES.rst
+#usr/share/cmake-3.8/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
+#usr/share/cmake-3.8/Help/prop_test/COST.rst
+#usr/share/cmake-3.8/Help/prop_test/DEPENDS.rst
+#usr/share/cmake-3.8/Help/prop_test/ENVIRONMENT.rst
+#usr/share/cmake-3.8/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
+#usr/share/cmake-3.8/Help/prop_test/FIXTURES_CLEANUP.rst
+#usr/share/cmake-3.8/Help/prop_test/FIXTURES_REQUIRED.rst
+#usr/share/cmake-3.8/Help/prop_test/FIXTURES_SETUP.rst
+#usr/share/cmake-3.8/Help/prop_test/LABELS.rst
+#usr/share/cmake-3.8/Help/prop_test/MEASUREMENT.rst
+#usr/share/cmake-3.8/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
+#usr/share/cmake-3.8/Help/prop_test/PROCESSORS.rst
+#usr/share/cmake-3.8/Help/prop_test/REQUIRED_FILES.rst
+#usr/share/cmake-3.8/Help/prop_test/RESOURCE_LOCK.rst
+#usr/share/cmake-3.8/Help/prop_test/RUN_SERIAL.rst
+#usr/share/cmake-3.8/Help/prop_test/SKIP_RETURN_CODE.rst
+#usr/share/cmake-3.8/Help/prop_test/TIMEOUT.rst
+#usr/share/cmake-3.8/Help/prop_test/TIMEOUT_AFTER_MATCH.rst
+#usr/share/cmake-3.8/Help/prop_test/WILL_FAIL.rst
+#usr/share/cmake-3.8/Help/prop_test/WORKING_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/prop_tgt
+#usr/share/cmake-3.8/Help/prop_tgt/ALIASED_TARGET.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_API.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_API_MIN.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_ARCH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_GUI.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_PROCESS_MAX.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_PROGUARD.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ANDROID_STL_TYPE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/AUTOMOC.rst
+#usr/share/cmake-3.8/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/AUTORCC.rst
+#usr/share/cmake-3.8/Help/prop_tgt/AUTORCC_OPTIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/AUTOUIC.rst
+#usr/share/cmake-3.8/Help/prop_tgt/AUTOUIC_OPTIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/BINARY_DIR.rst
+#usr/share/cmake-3.8/Help/prop_tgt/BUILD_RPATH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/BUNDLE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/BUNDLE_EXTENSION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPILE_DEFINITIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPILE_FEATURES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPILE_FLAGS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPILE_OPTIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPILE_PDB_NAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPILE_PDB_NOTE.txt
+#usr/share/cmake-3.8/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/CONFIG_POSTFIX.rst
+#usr/share/cmake-3.8/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst
+#usr/share/cmake-3.8/Help/prop_tgt/CUDA_EXTENSIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/CUDA_STANDARD.rst
+#usr/share/cmake-3.8/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
+#usr/share/cmake-3.8/Help/prop_tgt/CXX_EXTENSIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/CXX_STANDARD.rst
+#usr/share/cmake-3.8/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
+#usr/share/cmake-3.8/Help/prop_tgt/C_EXTENSIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/C_STANDARD.rst
+#usr/share/cmake-3.8/Help/prop_tgt/C_STANDARD_REQUIRED.rst
+#usr/share/cmake-3.8/Help/prop_tgt/DEBUG_POSTFIX.rst
+#usr/share/cmake-3.8/Help/prop_tgt/DEFINE_SYMBOL.rst
+#usr/share/cmake-3.8/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/ENABLE_EXPORTS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
+#usr/share/cmake-3.8/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
+#usr/share/cmake-3.8/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/EXPORT_NAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/EchoString.rst
+#usr/share/cmake-3.8/Help/prop_tgt/FOLDER.rst
+#usr/share/cmake-3.8/Help/prop_tgt/FRAMEWORK.rst
+#usr/share/cmake-3.8/Help/prop_tgt/FRAMEWORK_VERSION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/Fortran_FORMAT.rst
+#usr/share/cmake-3.8/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/GENERATOR_FILE_NAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/GNUtoMS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/HAS_CXX.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_IMPLIB.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LIBNAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LOCATION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_NO_SONAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_SONAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORT_PREFIX.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IMPORT_SUFFIX.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INSTALL_NAME_DIR.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INSTALL_RPATH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
+#usr/share/cmake-3.8/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERFACE_SOURCES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/IOS_INSTALL_COMBINED.rst
+#usr/share/cmake-3.8/Help/prop_tgt/JOB_POOL_COMPILE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/JOB_POOL_LINK.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LABELS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LANG_CLANG_TIDY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LANG_CPPLINT.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINKER_LANGUAGE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_DEPENDS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_FLAGS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_LIBRARIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LINK_WHAT_YOU_USE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LOCATION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/LOCATION_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/MACOSX_BUNDLE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
+#usr/share/cmake-3.8/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
+#usr/share/cmake-3.8/Help/prop_tgt/MACOSX_RPATH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/NAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/NO_SONAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
+#usr/share/cmake-3.8/Help/prop_tgt/OSX_ARCHITECTURES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/OUTPUT_NAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/PDB_NAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/PDB_NAME_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/PDB_NOTE.txt
+#usr/share/cmake-3.8/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
+#usr/share/cmake-3.8/Help/prop_tgt/PREFIX.rst
+#usr/share/cmake-3.8/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
+#usr/share/cmake-3.8/Help/prop_tgt/PRIVATE_HEADER.rst
+#usr/share/cmake-3.8/Help/prop_tgt/PROJECT_LABEL.rst
+#usr/share/cmake-3.8/Help/prop_tgt/PUBLIC_HEADER.rst
+#usr/share/cmake-3.8/Help/prop_tgt/RESOURCE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
+#usr/share/cmake-3.8/Help/prop_tgt/RULE_LAUNCH_LINK.rst
+#usr/share/cmake-3.8/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/SKIP_BUILD_RPATH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/SOURCES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/SOURCE_DIR.rst
+#usr/share/cmake-3.8/Help/prop_tgt/SOVERSION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
+#usr/share/cmake-3.8/Help/prop_tgt/SUFFIX.rst
+#usr/share/cmake-3.8/Help/prop_tgt/TYPE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VERSION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_GLOBAL_variable.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_KEYWORD.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_SCC_AUXPATH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_SCC_LOCALPATH.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_SCC_PROVIDER.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_SDK_REFERENCES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_USER_PROPS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_WINRT_COMPONENT.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/VS_WINRT_REFERENCES.rst
+#usr/share/cmake-3.8/Help/prop_tgt/WIN32_EXECUTABLE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
+#usr/share/cmake-3.8/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
+#usr/share/cmake-3.8/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
+#usr/share/cmake-3.8/Help/prop_tgt/XCTEST.rst
+#usr/share/cmake-3.8/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
+#usr/share/cmake-3.8/Help/prop_tgt/XXX_OUTPUT_NAME.txt
+#usr/share/cmake-3.8/Help/release
+#usr/share/cmake-3.8/Help/release/3.0.rst
+#usr/share/cmake-3.8/Help/release/3.1.rst
+#usr/share/cmake-3.8/Help/release/3.2.rst
+#usr/share/cmake-3.8/Help/release/3.3.rst
+#usr/share/cmake-3.8/Help/release/3.4.rst
+#usr/share/cmake-3.8/Help/release/3.5.rst
+#usr/share/cmake-3.8/Help/release/3.6.rst
+#usr/share/cmake-3.8/Help/release/3.7.rst
+#usr/share/cmake-3.8/Help/release/3.8.rst
+#usr/share/cmake-3.8/Help/release/dev.txt
+#usr/share/cmake-3.8/Help/release/index.rst
+#usr/share/cmake-3.8/Help/variable
+#usr/share/cmake-3.8/Help/variable/ANDROID.rst
+#usr/share/cmake-3.8/Help/variable/APPLE.rst
+#usr/share/cmake-3.8/Help/variable/BORLAND.rst
+#usr/share/cmake-3.8/Help/variable/BUILD_SHARED_LIBS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_API.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_API_MIN.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_ARCH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_ARM_MODE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_ARM_NEON.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_GUI.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_NDK.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_PROGUARD.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ANDROID_STL_TYPE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_APPBUNDLE_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_AR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ARGC.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ARGV0.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_AUTOMOC.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_AUTORCC.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_AUTOUIC.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_BINARY_DIR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_BUILD_RPATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_BUILD_TOOL.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_BUILD_TYPE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CACHEFILE_DIR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CFG_INTDIR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CL_64.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_COLOR_MAKEFILE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_COMPILER_2005.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CONFIG_POSTFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CROSSCOMPILING.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CTEST_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CUDA_EXTENSIONS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CUDA_STANDARD.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CXX_EXTENSIONS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CXX_STANDARD.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_C_EXTENSIONS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_C_STANDARD.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_DEBUG_POSTFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_DL_LIBS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ECLIPSE_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_EDIT_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ENABLE_EXPORTS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ERROR_DEPRECATED.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_EXTRA_GENERATOR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_APPBUNDLE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_FRAMEWORK.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_ROOT_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
+#usr/share/cmake-3.8/Help/variable/CMAKE_FRAMEWORK_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_Fortran_FORMAT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_GENERATOR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_GNUtoMS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_HOME_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_HOST_APPLE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_HOST_SOLARIS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_HOST_SYSTEM.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_HOST_UNIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_HOST_WIN32.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_IGNORE_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INCLUDE_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INSTALL_MESSAGE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INSTALL_PREFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INSTALL_RPATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_JOB_POOL_LINK.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_CLANG_TIDY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_COMPILER.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_COMPILER_ID.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_CPPLINT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_FLAGS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_GHS_KERNEL_FLAGS_DEBUG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_GHS_KERNEL_FLAGS_MINSIZEREL.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_GHS_KERNEL_FLAGS_RELEASE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_GHS_KERNEL_FLAGS_RELWITHDEBINFO.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LIBRARY_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MACOSX_BUNDLE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MACOSX_RPATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MAJOR_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MAKE_PROGRAM.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MATCH_COUNT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MFC_FLAG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MINOR_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_MODULE_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_OSX_SYSROOT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_OSX_VARIABLE.txt
+#usr/share/cmake-3.8/Help/variable/CMAKE_PARENT_LIST_FILE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_PATCH_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_PREFIX_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_PROGRAM_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_PROJECT_NAME.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_RANLIB.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_ROOT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SIZEOF_VOID_P.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SKIP_RPATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SOURCE_DIR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_STAGING_PREFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSROOT.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM_NAME.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_SYSTEM_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_TWEAK_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_WARN_DEPRECATED.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
+#usr/share/cmake-3.8/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
+#usr/share/cmake-3.8/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
+#usr/share/cmake-3.8/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+#usr/share/cmake-3.8/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CPACK_INSTALL_SCRIPT.rst
+#usr/share/cmake-3.8/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
+#usr/share/cmake-3.8/Help/variable/CPACK_SET_DESTDIR.rst
+#usr/share/cmake-3.8/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_BINARY_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_BUILD_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_BUILD_NAME.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_BZR_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CHANGE_ID.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CHECKOUT_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CONFIGURATION_TYPE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CONFIGURE_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_COVERAGE_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CURL_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_POST_TEST.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_PRE_TEST.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_TEST_IGNORE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CUSTOM_XXX.txt
+#usr/share/cmake-3.8/Help/variable/CTEST_CVS_CHECKOUT.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CVS_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_DROP_LOCATION.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_DROP_METHOD.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_DROP_SITE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_DROP_SITE_CDASH.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_DROP_SITE_USER.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_GIT_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_HG_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_NIGHTLY_START_TIME.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_P4_CLIENT.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_P4_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_P4_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_SCP_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_SITE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_SOURCE_DIRECTORY.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_SVN_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_SVN_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_TEST_LOAD.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_TEST_TIMEOUT.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_TRIGGER_SITE.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_UPDATE_COMMAND.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_UPDATE_OPTIONS.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
+#usr/share/cmake-3.8/Help/variable/CTEST_USE_LAUNCHERS.rst
+#usr/share/cmake-3.8/Help/variable/CYGWIN.rst
+#usr/share/cmake-3.8/Help/variable/ENV.rst
+#usr/share/cmake-3.8/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
+#usr/share/cmake-3.8/Help/variable/GHS-MULTI.rst
+#usr/share/cmake-3.8/Help/variable/LIBRARY_OUTPUT_PATH.rst
+#usr/share/cmake-3.8/Help/variable/MINGW.rst
+#usr/share/cmake-3.8/Help/variable/MSVC.rst
+#usr/share/cmake-3.8/Help/variable/MSVC10.rst
+#usr/share/cmake-3.8/Help/variable/MSVC11.rst
+#usr/share/cmake-3.8/Help/variable/MSVC12.rst
+#usr/share/cmake-3.8/Help/variable/MSVC14.rst
+#usr/share/cmake-3.8/Help/variable/MSVC60.rst
+#usr/share/cmake-3.8/Help/variable/MSVC70.rst
+#usr/share/cmake-3.8/Help/variable/MSVC71.rst
+#usr/share/cmake-3.8/Help/variable/MSVC80.rst
+#usr/share/cmake-3.8/Help/variable/MSVC90.rst
+#usr/share/cmake-3.8/Help/variable/MSVC_IDE.rst
+#usr/share/cmake-3.8/Help/variable/MSVC_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT-NAME_BINARY_DIR.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT-NAME_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT_BINARY_DIR.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT_NAME.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT_SOURCE_DIR.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT_VERSION.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT_VERSION_MAJOR.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT_VERSION_MINOR.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT_VERSION_PATCH.rst
+#usr/share/cmake-3.8/Help/variable/PROJECT_VERSION_TWEAK.rst
+#usr/share/cmake-3.8/Help/variable/UNIX.rst
+#usr/share/cmake-3.8/Help/variable/WIN32.rst
+#usr/share/cmake-3.8/Help/variable/WINCE.rst
+#usr/share/cmake-3.8/Help/variable/WINDOWS_PHONE.rst
+#usr/share/cmake-3.8/Help/variable/WINDOWS_STORE.rst
+#usr/share/cmake-3.8/Help/variable/XCODE.rst
+#usr/share/cmake-3.8/Help/variable/XCODE_VERSION.rst
+#usr/share/cmake-3.8/Modules
+#usr/share/cmake-3.8/Modules/.NoDartCoverage
+#usr/share/cmake-3.8/Modules/AddFileDependencies.cmake
+#usr/share/cmake-3.8/Modules/AndroidTestUtilities
+#usr/share/cmake-3.8/Modules/AndroidTestUtilities.cmake
+#usr/share/cmake-3.8/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
+#usr/share/cmake-3.8/Modules/AutogenInfo.cmake.in
+#usr/share/cmake-3.8/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
+#usr/share/cmake-3.8/Modules/BasicConfigVersion-ExactVersion.cmake.in
+#usr/share/cmake-3.8/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
+#usr/share/cmake-3.8/Modules/BundleUtilities.cmake
+#usr/share/cmake-3.8/Modules/CMake.cmake
+#usr/share/cmake-3.8/Modules/CMakeASM-ATTInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeASMCompiler.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeASMInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeASM_MASMInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeASM_NASMInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeAddFortranSubdirectory
+#usr/share/cmake-3.8/Modules/CMakeAddFortranSubdirectory.cmake
+#usr/share/cmake-3.8/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeAddNewLanguage.txt
+#usr/share/cmake-3.8/Modules/CMakeBackwardCompatibilityC.cmake
+#usr/share/cmake-3.8/Modules/CMakeBackwardCompatibilityCXX.cmake
+#usr/share/cmake-3.8/Modules/CMakeBorlandFindMake.cmake
+#usr/share/cmake-3.8/Modules/CMakeBuildSettings.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeCCompiler.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeCCompilerABI.c
+#usr/share/cmake-3.8/Modules/CMakeCCompilerId.c.in
+#usr/share/cmake-3.8/Modules/CMakeCInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeCSharpCompiler.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeCSharpCompilerId.cs.in
+#usr/share/cmake-3.8/Modules/CMakeCSharpInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeCUDACompiler.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeCUDACompilerABI.cu
+#usr/share/cmake-3.8/Modules/CMakeCUDACompilerId.cu.in
+#usr/share/cmake-3.8/Modules/CMakeCUDAInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeCXXCompiler.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeCXXCompilerABI.cpp
+#usr/share/cmake-3.8/Modules/CMakeCXXCompilerId.cpp.in
+#usr/share/cmake-3.8/Modules/CMakeCXXInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
+#usr/share/cmake-3.8/Modules/CMakeCommonLanguageInclude.cmake
+#usr/share/cmake-3.8/Modules/CMakeCompilerABI.h
+#usr/share/cmake-3.8/Modules/CMakeCompilerIdDetection.cmake
+#usr/share/cmake-3.8/Modules/CMakeConfigurableFile.in
+#usr/share/cmake-3.8/Modules/CMakeDependentOption.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineASM-ATTCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineASMCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineASM_MASMCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineASM_NASMCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineCCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineCSharpCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineCUDACompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineCXXCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineCompileFeatures.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineCompilerABI.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineCompilerId.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineFortranCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineJavaCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineRCCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineSwiftCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineSystem.cmake
+#usr/share/cmake-3.8/Modules/CMakeDetermineVSServicePack.cmake
+#usr/share/cmake-3.8/Modules/CMakeExpandImportedTargets.cmake
+#usr/share/cmake-3.8/Modules/CMakeExportBuildSettings.cmake
+#usr/share/cmake-3.8/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindBinUtils.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindCodeBlocks.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindDependencyMacro.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindEclipseCDT4.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindFrameworks.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindJavaCommon.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindKDevelop3.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindKate.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindPackageMode.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindWMake.cmake
+#usr/share/cmake-3.8/Modules/CMakeFindXCode.cmake
+#usr/share/cmake-3.8/Modules/CMakeForceCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeFortranCompiler.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeFortranCompilerABI.F
+#usr/share/cmake-3.8/Modules/CMakeFortranCompilerId.F.in
+#usr/share/cmake-3.8/Modules/CMakeFortranInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeGenericSystem.cmake
+#usr/share/cmake-3.8/Modules/CMakeGraphVizOptions.cmake
+#usr/share/cmake-3.8/Modules/CMakeIOSInstallCombined.cmake
+#usr/share/cmake-3.8/Modules/CMakeImportBuildSettings.cmake
+#usr/share/cmake-3.8/Modules/CMakeJOMFindMake.cmake
+#usr/share/cmake-3.8/Modules/CMakeJavaCompiler.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeJavaInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeLanguageInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeMSYSFindMake.cmake
+#usr/share/cmake-3.8/Modules/CMakeMinGWFindMake.cmake
+#usr/share/cmake-3.8/Modules/CMakeNMakeFindMake.cmake
+#usr/share/cmake-3.8/Modules/CMakeNinjaFindMake.cmake
+#usr/share/cmake-3.8/Modules/CMakePackageConfigHelpers.cmake
+#usr/share/cmake-3.8/Modules/CMakeParseArguments.cmake
+#usr/share/cmake-3.8/Modules/CMakeParseImplicitLinkInfo.cmake
+#usr/share/cmake-3.8/Modules/CMakePlatformId.h.in
+#usr/share/cmake-3.8/Modules/CMakePrintHelpers.cmake
+#usr/share/cmake-3.8/Modules/CMakePrintSystemInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakePushCheckState.cmake
+#usr/share/cmake-3.8/Modules/CMakeRCCompiler.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeRCInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeSwiftCompiler.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeSwiftInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeSystem.cmake.in
+#usr/share/cmake-3.8/Modules/CMakeSystemSpecificInformation.cmake
+#usr/share/cmake-3.8/Modules/CMakeSystemSpecificInitialize.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestASM-ATTCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestASMCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestASM_MASMCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestASM_NASMCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestCCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestCSharpCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestCUDACompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestCXXCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestCompilerCommon.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestFortranCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestGNU.c
+#usr/share/cmake-3.8/Modules/CMakeTestJavaCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestRCCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeTestSwiftCompiler.cmake
+#usr/share/cmake-3.8/Modules/CMakeUnixFindMake.cmake
+#usr/share/cmake-3.8/Modules/CMakeVS7BackwardCompatibility.cmake
+#usr/share/cmake-3.8/Modules/CMakeVerifyManifest.cmake
+#usr/share/cmake-3.8/Modules/CPack.DS_Store.in
+#usr/share/cmake-3.8/Modules/CPack.Description.plist.in
+#usr/share/cmake-3.8/Modules/CPack.Info.plist.in
+#usr/share/cmake-3.8/Modules/CPack.OSXScriptLauncher.in
+#usr/share/cmake-3.8/Modules/CPack.OSXScriptLauncher.rsrc.in
+#usr/share/cmake-3.8/Modules/CPack.OSXX11.Info.plist.in
+#usr/share/cmake-3.8/Modules/CPack.OSXX11.main.scpt.in
+#usr/share/cmake-3.8/Modules/CPack.RuntimeScript.in
+#usr/share/cmake-3.8/Modules/CPack.STGZ_Header.sh.in
+#usr/share/cmake-3.8/Modules/CPack.VolumeIcon.icns.in
+#usr/share/cmake-3.8/Modules/CPack.background.png.in
+#usr/share/cmake-3.8/Modules/CPack.cmake
+#usr/share/cmake-3.8/Modules/CPack.distribution.dist.in
+#usr/share/cmake-3.8/Modules/CPackBundle.cmake
+#usr/share/cmake-3.8/Modules/CPackComponent.cmake
+#usr/share/cmake-3.8/Modules/CPackCygwin.cmake
+#usr/share/cmake-3.8/Modules/CPackDMG.cmake
+#usr/share/cmake-3.8/Modules/CPackDeb.cmake
+#usr/share/cmake-3.8/Modules/CPackIFW.cmake
+#usr/share/cmake-3.8/Modules/CPackIFWConfigureFile.cmake
+#usr/share/cmake-3.8/Modules/CPackNSIS.cmake
+#usr/share/cmake-3.8/Modules/CPackPackageMaker.cmake
+#usr/share/cmake-3.8/Modules/CPackProductBuild.cmake
+#usr/share/cmake-3.8/Modules/CPackRPM.cmake
+#usr/share/cmake-3.8/Modules/CPackWIX.cmake
+#usr/share/cmake-3.8/Modules/CPackZIP.cmake
+#usr/share/cmake-3.8/Modules/CSharpUtilities.cmake
+#usr/share/cmake-3.8/Modules/CTest.cmake
+#usr/share/cmake-3.8/Modules/CTestCoverageCollectGCOV.cmake
+#usr/share/cmake-3.8/Modules/CTestScriptMode.cmake
+#usr/share/cmake-3.8/Modules/CTestTargets.cmake
+#usr/share/cmake-3.8/Modules/CTestUseLaunchers.cmake
+#usr/share/cmake-3.8/Modules/CheckCCompilerFlag.cmake
+#usr/share/cmake-3.8/Modules/CheckCSourceCompiles.cmake
+#usr/share/cmake-3.8/Modules/CheckCSourceRuns.cmake
+#usr/share/cmake-3.8/Modules/CheckCXXCompilerFlag.cmake
+#usr/share/cmake-3.8/Modules/CheckCXXSourceCompiles.cmake
+#usr/share/cmake-3.8/Modules/CheckCXXSourceRuns.cmake
+#usr/share/cmake-3.8/Modules/CheckCXXSymbolExists.cmake
+#usr/share/cmake-3.8/Modules/CheckForPthreads.c
+#usr/share/cmake-3.8/Modules/CheckFortranCompilerFlag.cmake
+#usr/share/cmake-3.8/Modules/CheckFortranFunctionExists.cmake
+#usr/share/cmake-3.8/Modules/CheckFortranSourceCompiles.cmake
+#usr/share/cmake-3.8/Modules/CheckFunctionExists.c
+#usr/share/cmake-3.8/Modules/CheckFunctionExists.cmake
+#usr/share/cmake-3.8/Modules/CheckIncludeFile.c.in
+#usr/share/cmake-3.8/Modules/CheckIncludeFile.cmake
+#usr/share/cmake-3.8/Modules/CheckIncludeFile.cxx.in
+#usr/share/cmake-3.8/Modules/CheckIncludeFileCXX.cmake
+#usr/share/cmake-3.8/Modules/CheckIncludeFiles.cmake
+#usr/share/cmake-3.8/Modules/CheckLanguage.cmake
+#usr/share/cmake-3.8/Modules/CheckLibraryExists.cmake
+#usr/share/cmake-3.8/Modules/CheckLibraryExists.lists.in
+#usr/share/cmake-3.8/Modules/CheckPrototypeDefinition.c.in
+#usr/share/cmake-3.8/Modules/CheckPrototypeDefinition.cmake
+#usr/share/cmake-3.8/Modules/CheckSizeOf.cmake
+#usr/share/cmake-3.8/Modules/CheckStructHasMember.cmake
+#usr/share/cmake-3.8/Modules/CheckSymbolExists.cmake
+#usr/share/cmake-3.8/Modules/CheckTypeSize.c.in
+#usr/share/cmake-3.8/Modules/CheckTypeSize.cmake
+#usr/share/cmake-3.8/Modules/CheckTypeSizeMap.cmake.in
+#usr/share/cmake-3.8/Modules/CheckVariableExists.c
+#usr/share/cmake-3.8/Modules/CheckVariableExists.cmake
+#usr/share/cmake-3.8/Modules/Compiler
+#usr/share/cmake-3.8/Modules/Compiler/ADSP-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/ARMCC-ASM.cmake
+#usr/share/cmake-3.8/Modules/Compiler/ARMCC-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/ARMCC-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/ARMCC-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/ARMCC.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Absoft-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/AppleClang-ASM.cmake
+#usr/share/cmake-3.8/Modules/Compiler/AppleClang-C-FeatureTests.cmake
+#usr/share/cmake-3.8/Modules/Compiler/AppleClang-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
+#usr/share/cmake-3.8/Modules/Compiler/AppleClang-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/AppleClang-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Borland-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Bruce-C-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Bruce-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CCur-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Clang-ASM.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Clang-C-FeatureTests.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Clang-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Clang-CXX-FeatureTests.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Clang-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Clang-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Clang.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Cray-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Cray-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Cray-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Cray-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-Cray-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-Cray-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-Cray-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-Intel-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-Intel-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-Intel-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-PGI-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-PGI-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv-PGI-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/CrayPrgEnv.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/G95-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GHS-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GHS-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GHS-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GHS.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GNU-ASM.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GNU-C-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GNU-C-FeatureTests.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/GNU.cmake
+#usr/share/cmake-3.8/Modules/Compiler/HP-ASM.cmake
+#usr/share/cmake-3.8/Modules/Compiler/HP-C-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/HP-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/HP-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/HP-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/IAR-ASM.cmake
+#usr/share/cmake-3.8/Modules/Compiler/IAR-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/IAR-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/IAR-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/IAR.cmake
+#usr/share/cmake-3.8/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
+#usr/share/cmake-3.8/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Intel-ASM.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Intel-C-FeatureTests.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Intel-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Intel-CXX-FeatureTests.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Intel-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Intel-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Intel-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Intel.cmake
+#usr/share/cmake-3.8/Modules/Compiler/MIPSpro-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/MIPSpro-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/MIPSpro-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/MIPSpro-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
+#usr/share/cmake-3.8/Modules/Compiler/MSVC-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/MSVC-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/NAG-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/NVIDIA-CUDA.cmake
+#usr/share/cmake-3.8/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/PGI-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/PGI-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/PGI-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/PGI-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/PGI.cmake
+#usr/share/cmake-3.8/Modules/Compiler/PathScale-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/PathScale-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/PathScale-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/PathScale-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/PathScale.cmake
+#usr/share/cmake-3.8/Modules/Compiler/QCC-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/QCC-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/QCC.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SCO-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SCO-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SCO-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SCO.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SunPro-ASM.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SunPro-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SunPro-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/SunPro-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/TI-ASM.cmake
+#usr/share/cmake-3.8/Modules/Compiler/TI-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/TI-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/TI-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/TinyCC-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/VisualAge-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/VisualAge-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/VisualAge-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/Watcom-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/XL-ASM.cmake
+#usr/share/cmake-3.8/Modules/Compiler/XL-C-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/XL-C.cmake
+#usr/share/cmake-3.8/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/XL-CXX.cmake
+#usr/share/cmake-3.8/Modules/Compiler/XL-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Compiler/XL.cmake
+#usr/share/cmake-3.8/Modules/Compiler/zOS-C-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
+#usr/share/cmake-3.8/Modules/CompilerId
+#usr/share/cmake-3.8/Modules/CompilerId/VS-10.csproj.in
+#usr/share/cmake-3.8/Modules/CompilerId/VS-10.vcxproj.in
+#usr/share/cmake-3.8/Modules/CompilerId/VS-7.vcproj.in
+#usr/share/cmake-3.8/Modules/CompilerId/VS-Intel.vfproj.in
+#usr/share/cmake-3.8/Modules/CompilerId/VS-NsightTegra.vcxproj.in
+#usr/share/cmake-3.8/Modules/CompilerId/Xcode-1.pbxproj.in
+#usr/share/cmake-3.8/Modules/CompilerId/Xcode-2.pbxproj.in
+#usr/share/cmake-3.8/Modules/CompilerId/Xcode-3.pbxproj.in
+#usr/share/cmake-3.8/Modules/CompilerId/main.swift.in
+#usr/share/cmake-3.8/Modules/Dart.cmake
+#usr/share/cmake-3.8/Modules/DartConfiguration.tcl.in
+#usr/share/cmake-3.8/Modules/DeployQt4.cmake
+#usr/share/cmake-3.8/Modules/Documentation.cmake
+#usr/share/cmake-3.8/Modules/DummyCXXFile.cxx
+#usr/share/cmake-3.8/Modules/ExternalData.cmake
+#usr/share/cmake-3.8/Modules/ExternalData_config.cmake.in
+#usr/share/cmake-3.8/Modules/ExternalProject-download.cmake.in
+#usr/share/cmake-3.8/Modules/ExternalProject-verify.cmake.in
+#usr/share/cmake-3.8/Modules/ExternalProject.cmake
+#usr/share/cmake-3.8/Modules/FLTKCompatibility.cmake
+#usr/share/cmake-3.8/Modules/FeatureSummary.cmake
+#usr/share/cmake-3.8/Modules/FindALSA.cmake
+#usr/share/cmake-3.8/Modules/FindASPELL.cmake
+#usr/share/cmake-3.8/Modules/FindAVIFile.cmake
+#usr/share/cmake-3.8/Modules/FindArmadillo.cmake
+#usr/share/cmake-3.8/Modules/FindBISON.cmake
+#usr/share/cmake-3.8/Modules/FindBLAS.cmake
+#usr/share/cmake-3.8/Modules/FindBZip2.cmake
+#usr/share/cmake-3.8/Modules/FindBacktrace.cmake
+#usr/share/cmake-3.8/Modules/FindBoost.cmake
+#usr/share/cmake-3.8/Modules/FindBullet.cmake
+#usr/share/cmake-3.8/Modules/FindCABLE.cmake
+#usr/share/cmake-3.8/Modules/FindCUDA
+#usr/share/cmake-3.8/Modules/FindCUDA.cmake
+#usr/share/cmake-3.8/Modules/FindCUDA/make2cmake.cmake
+#usr/share/cmake-3.8/Modules/FindCUDA/parse_cubin.cmake
+#usr/share/cmake-3.8/Modules/FindCUDA/run_nvcc.cmake
+#usr/share/cmake-3.8/Modules/FindCUDA/select_compute_arch.cmake
+#usr/share/cmake-3.8/Modules/FindCURL.cmake
+#usr/share/cmake-3.8/Modules/FindCVS.cmake
+#usr/share/cmake-3.8/Modules/FindCoin3D.cmake
+#usr/share/cmake-3.8/Modules/FindCups.cmake
+#usr/share/cmake-3.8/Modules/FindCurses.cmake
+#usr/share/cmake-3.8/Modules/FindCxxTest.cmake
+#usr/share/cmake-3.8/Modules/FindCygwin.cmake
+#usr/share/cmake-3.8/Modules/FindDCMTK.cmake
+#usr/share/cmake-3.8/Modules/FindDart.cmake
+#usr/share/cmake-3.8/Modules/FindDevIL.cmake
+#usr/share/cmake-3.8/Modules/FindDoxygen.cmake
+#usr/share/cmake-3.8/Modules/FindEXPAT.cmake
+#usr/share/cmake-3.8/Modules/FindFLEX.cmake
+#usr/share/cmake-3.8/Modules/FindFLTK.cmake
+#usr/share/cmake-3.8/Modules/FindFLTK2.cmake
+#usr/share/cmake-3.8/Modules/FindFreetype.cmake
+#usr/share/cmake-3.8/Modules/FindGCCXML.cmake
+#usr/share/cmake-3.8/Modules/FindGDAL.cmake
+#usr/share/cmake-3.8/Modules/FindGIF.cmake
+#usr/share/cmake-3.8/Modules/FindGLEW.cmake
+#usr/share/cmake-3.8/Modules/FindGLU.cmake
+#usr/share/cmake-3.8/Modules/FindGLUT.cmake
+#usr/share/cmake-3.8/Modules/FindGSL.cmake
+#usr/share/cmake-3.8/Modules/FindGTK.cmake
+#usr/share/cmake-3.8/Modules/FindGTK2.cmake
+#usr/share/cmake-3.8/Modules/FindGTest.cmake
+#usr/share/cmake-3.8/Modules/FindGettext.cmake
+#usr/share/cmake-3.8/Modules/FindGit.cmake
+#usr/share/cmake-3.8/Modules/FindGnuTLS.cmake
+#usr/share/cmake-3.8/Modules/FindGnuplot.cmake
+#usr/share/cmake-3.8/Modules/FindHDF5.cmake
+#usr/share/cmake-3.8/Modules/FindHSPELL.cmake
+#usr/share/cmake-3.8/Modules/FindHTMLHelp.cmake
+#usr/share/cmake-3.8/Modules/FindHg.cmake
+#usr/share/cmake-3.8/Modules/FindICU.cmake
+#usr/share/cmake-3.8/Modules/FindIce.cmake
+#usr/share/cmake-3.8/Modules/FindIcotool.cmake
+#usr/share/cmake-3.8/Modules/FindImageMagick.cmake
+#usr/share/cmake-3.8/Modules/FindIntl.cmake
+#usr/share/cmake-3.8/Modules/FindJNI.cmake
+#usr/share/cmake-3.8/Modules/FindJPEG.cmake
+#usr/share/cmake-3.8/Modules/FindJasper.cmake
+#usr/share/cmake-3.8/Modules/FindJava.cmake
+#usr/share/cmake-3.8/Modules/FindKDE3.cmake
+#usr/share/cmake-3.8/Modules/FindKDE4.cmake
+#usr/share/cmake-3.8/Modules/FindLAPACK.cmake
+#usr/share/cmake-3.8/Modules/FindLATEX.cmake
+#usr/share/cmake-3.8/Modules/FindLTTngUST.cmake
+#usr/share/cmake-3.8/Modules/FindLibArchive.cmake
+#usr/share/cmake-3.8/Modules/FindLibLZMA.cmake
+#usr/share/cmake-3.8/Modules/FindLibXml2.cmake
+#usr/share/cmake-3.8/Modules/FindLibXslt.cmake
+#usr/share/cmake-3.8/Modules/FindLua.cmake
+#usr/share/cmake-3.8/Modules/FindLua50.cmake
+#usr/share/cmake-3.8/Modules/FindLua51.cmake
+#usr/share/cmake-3.8/Modules/FindMFC.cmake
+#usr/share/cmake-3.8/Modules/FindMPEG.cmake
+#usr/share/cmake-3.8/Modules/FindMPEG2.cmake
+#usr/share/cmake-3.8/Modules/FindMPI.cmake
+#usr/share/cmake-3.8/Modules/FindMatlab.cmake
+#usr/share/cmake-3.8/Modules/FindMotif.cmake
+#usr/share/cmake-3.8/Modules/FindOpenAL.cmake
+#usr/share/cmake-3.8/Modules/FindOpenCL.cmake
+#usr/share/cmake-3.8/Modules/FindOpenGL.cmake
+#usr/share/cmake-3.8/Modules/FindOpenMP.cmake
+#usr/share/cmake-3.8/Modules/FindOpenSSL.cmake
+#usr/share/cmake-3.8/Modules/FindOpenSceneGraph.cmake
+#usr/share/cmake-3.8/Modules/FindOpenThreads.cmake
+#usr/share/cmake-3.8/Modules/FindPHP4.cmake
+#usr/share/cmake-3.8/Modules/FindPNG.cmake
+#usr/share/cmake-3.8/Modules/FindPackageHandleStandardArgs.cmake
+#usr/share/cmake-3.8/Modules/FindPackageMessage.cmake
+#usr/share/cmake-3.8/Modules/FindPerl.cmake
+#usr/share/cmake-3.8/Modules/FindPerlLibs.cmake
+#usr/share/cmake-3.8/Modules/FindPhysFS.cmake
+#usr/share/cmake-3.8/Modules/FindPike.cmake
+#usr/share/cmake-3.8/Modules/FindPkgConfig.cmake
+#usr/share/cmake-3.8/Modules/FindPostgreSQL.cmake
+#usr/share/cmake-3.8/Modules/FindProducer.cmake
+#usr/share/cmake-3.8/Modules/FindProtobuf.cmake
+#usr/share/cmake-3.8/Modules/FindPythonInterp.cmake
+#usr/share/cmake-3.8/Modules/FindPythonLibs.cmake
+#usr/share/cmake-3.8/Modules/FindQt.cmake
+#usr/share/cmake-3.8/Modules/FindQt3.cmake
+#usr/share/cmake-3.8/Modules/FindQt4.cmake
+#usr/share/cmake-3.8/Modules/FindQuickTime.cmake
+#usr/share/cmake-3.8/Modules/FindRTI.cmake
+#usr/share/cmake-3.8/Modules/FindRuby.cmake
+#usr/share/cmake-3.8/Modules/FindSDL.cmake
+#usr/share/cmake-3.8/Modules/FindSDL_image.cmake
+#usr/share/cmake-3.8/Modules/FindSDL_mixer.cmake
+#usr/share/cmake-3.8/Modules/FindSDL_net.cmake
+#usr/share/cmake-3.8/Modules/FindSDL_sound.cmake
+#usr/share/cmake-3.8/Modules/FindSDL_ttf.cmake
+#usr/share/cmake-3.8/Modules/FindSWIG.cmake
+#usr/share/cmake-3.8/Modules/FindSelfPackers.cmake
+#usr/share/cmake-3.8/Modules/FindSquish.cmake
+#usr/share/cmake-3.8/Modules/FindSubversion.cmake
+#usr/share/cmake-3.8/Modules/FindTCL.cmake
+#usr/share/cmake-3.8/Modules/FindTIFF.cmake
+#usr/share/cmake-3.8/Modules/FindTclStub.cmake
+#usr/share/cmake-3.8/Modules/FindTclsh.cmake
+#usr/share/cmake-3.8/Modules/FindThreads.cmake
+#usr/share/cmake-3.8/Modules/FindUnixCommands.cmake
+#usr/share/cmake-3.8/Modules/FindVulkan.cmake
+#usr/share/cmake-3.8/Modules/FindWget.cmake
+#usr/share/cmake-3.8/Modules/FindWish.cmake
+#usr/share/cmake-3.8/Modules/FindX11.cmake
+#usr/share/cmake-3.8/Modules/FindXCTest.cmake
+#usr/share/cmake-3.8/Modules/FindXMLRPC.cmake
+#usr/share/cmake-3.8/Modules/FindXalanC.cmake
+#usr/share/cmake-3.8/Modules/FindXercesC.cmake
+#usr/share/cmake-3.8/Modules/FindZLIB.cmake
+#usr/share/cmake-3.8/Modules/Findosg.cmake
+#usr/share/cmake-3.8/Modules/FindosgAnimation.cmake
+#usr/share/cmake-3.8/Modules/FindosgDB.cmake
+#usr/share/cmake-3.8/Modules/FindosgFX.cmake
+#usr/share/cmake-3.8/Modules/FindosgGA.cmake
+#usr/share/cmake-3.8/Modules/FindosgIntrospection.cmake
+#usr/share/cmake-3.8/Modules/FindosgManipulator.cmake
+#usr/share/cmake-3.8/Modules/FindosgParticle.cmake
+#usr/share/cmake-3.8/Modules/FindosgPresentation.cmake
+#usr/share/cmake-3.8/Modules/FindosgProducer.cmake
+#usr/share/cmake-3.8/Modules/FindosgQt.cmake
+#usr/share/cmake-3.8/Modules/FindosgShadow.cmake
+#usr/share/cmake-3.8/Modules/FindosgSim.cmake
+#usr/share/cmake-3.8/Modules/FindosgTerrain.cmake
+#usr/share/cmake-3.8/Modules/FindosgText.cmake
+#usr/share/cmake-3.8/Modules/FindosgUtil.cmake
+#usr/share/cmake-3.8/Modules/FindosgViewer.cmake
+#usr/share/cmake-3.8/Modules/FindosgVolume.cmake
+#usr/share/cmake-3.8/Modules/FindosgWidget.cmake
+#usr/share/cmake-3.8/Modules/Findosg_functions.cmake
+#usr/share/cmake-3.8/Modules/FindwxWidgets.cmake
+#usr/share/cmake-3.8/Modules/FindwxWindows.cmake
+#usr/share/cmake-3.8/Modules/FortranCInterface
+#usr/share/cmake-3.8/Modules/FortranCInterface.cmake
+#usr/share/cmake-3.8/Modules/FortranCInterface/CMakeLists.txt
+#usr/share/cmake-3.8/Modules/FortranCInterface/Detect.cmake
+#usr/share/cmake-3.8/Modules/FortranCInterface/Input.cmake.in
+#usr/share/cmake-3.8/Modules/FortranCInterface/Macro.h.in
+#usr/share/cmake-3.8/Modules/FortranCInterface/Output.cmake.in
+#usr/share/cmake-3.8/Modules/FortranCInterface/Verify
+#usr/share/cmake-3.8/Modules/FortranCInterface/Verify/CMakeLists.txt
+#usr/share/cmake-3.8/Modules/FortranCInterface/Verify/VerifyC.c
+#usr/share/cmake-3.8/Modules/FortranCInterface/Verify/VerifyCXX.cxx
+#usr/share/cmake-3.8/Modules/FortranCInterface/Verify/VerifyFortran.f
+#usr/share/cmake-3.8/Modules/FortranCInterface/Verify/main.c
+#usr/share/cmake-3.8/Modules/FortranCInterface/call_mod.f90
+#usr/share/cmake-3.8/Modules/FortranCInterface/call_sub.f
+#usr/share/cmake-3.8/Modules/FortranCInterface/main.F
+#usr/share/cmake-3.8/Modules/FortranCInterface/my_module.f90
+#usr/share/cmake-3.8/Modules/FortranCInterface/my_module_.c
+#usr/share/cmake-3.8/Modules/FortranCInterface/my_sub.f
+#usr/share/cmake-3.8/Modules/FortranCInterface/mymodule.f90
+#usr/share/cmake-3.8/Modules/FortranCInterface/mymodule_.c
+#usr/share/cmake-3.8/Modules/FortranCInterface/mysub.f
+#usr/share/cmake-3.8/Modules/FortranCInterface/symbol.c.in
+#usr/share/cmake-3.8/Modules/GNUInstallDirs.cmake
+#usr/share/cmake-3.8/Modules/GenerateExportHeader.cmake
+#usr/share/cmake-3.8/Modules/GetPrerequisites.cmake
+#usr/share/cmake-3.8/Modules/ITKCompatibility.cmake
+#usr/share/cmake-3.8/Modules/InstallRequiredSystemLibraries.cmake
+#usr/share/cmake-3.8/Modules/IntelVSImplicitPath
+#usr/share/cmake-3.8/Modules/IntelVSImplicitPath/CMakeLists.txt
+#usr/share/cmake-3.8/Modules/IntelVSImplicitPath/detect.cmake
+#usr/share/cmake-3.8/Modules/IntelVSImplicitPath/hello.f
+#usr/share/cmake-3.8/Modules/Internal
+#usr/share/cmake-3.8/Modules/Internal/FeatureTesting.cmake
+#usr/share/cmake-3.8/Modules/KDE3Macros.cmake
+#usr/share/cmake-3.8/Modules/MacOSXBundleInfo.plist.in
+#usr/share/cmake-3.8/Modules/MacOSXFrameworkInfo.plist.in
+#usr/share/cmake-3.8/Modules/MacroAddFileDependencies.cmake
+#usr/share/cmake-3.8/Modules/MatlabTestsRedirect.cmake
+#usr/share/cmake-3.8/Modules/NSIS.InstallOptions.ini.in
+#usr/share/cmake-3.8/Modules/NSIS.template.in
+#usr/share/cmake-3.8/Modules/Platform
+#usr/share/cmake-3.8/Modules/Platform/AIX-Clang-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-Clang-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-GNU-ASM.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-VisualAge-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-VisualAge-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-VisualAge-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-XL-ASM.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-XL-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-XL-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-XL-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX-XL.cmake
+#usr/share/cmake-3.8/Modules/Platform/AIX.cmake
+#usr/share/cmake-3.8/Modules/Platform/ARTOS-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/ARTOS.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android
+#usr/share/cmake-3.8/Modules/Platform/Android-Clang-ASM.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-Clang-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-Clang-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-Common.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-Determine-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-Determine-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-Determine.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android-Initialize.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/Determine-Compiler-NDK.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/Determine-Compiler-Standalone.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/Determine-Compiler.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-armeabi-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-armeabi-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-common-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-common-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-common.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-mips-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-mips-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-mips64-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-mips64-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-x86-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-x86-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-x86_64-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/abi-x86_64-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-c++.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-c++_shared.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-c++_static.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-gabi++.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-gabi++_static.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-gnustl.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-gnustl_static.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-none.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-stlport.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-stlport_shared.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-stlport_static.cmake
+#usr/share/cmake-3.8/Modules/Platform/Android/ndk-stl-system.cmake
+#usr/share/cmake-3.8/Modules/Platform/BSDOS.cmake
+#usr/share/cmake-3.8/Modules/Platform/BeOS.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneL.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-base.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-dynamic.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-static-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-static-XL-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneP-static.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-base.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-dynamic.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-static-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-static-XL-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/BlueGeneQ-static.cmake
+#usr/share/cmake-3.8/Modules/Platform/CYGWIN-Clang-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/CYGWIN-Clang-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/CYGWIN-Determine-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/CYGWIN-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/CYGWIN-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/CYGWIN-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/CYGWIN-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/CYGWIN-windres.cmake
+#usr/share/cmake-3.8/Modules/Platform/CYGWIN.cmake
+#usr/share/cmake-3.8/Modules/Platform/Catamount.cmake
+#usr/share/cmake-3.8/Modules/Platform/CrayLinuxEnvironment.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-Absoft-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-AppleClang-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-AppleClang-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-Clang-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-Clang-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-Determine-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-Initialize.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-Intel-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-Intel-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-Intel-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-Intel.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-NAG-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-PGI-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-PGI-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-PGI-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-PGI.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-VisualAge-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-VisualAge-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-XL-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin-XL-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Darwin.cmake
+#usr/share/cmake-3.8/Modules/Platform/DragonFly.cmake
+#usr/share/cmake-3.8/Modules/Platform/Euros.cmake
+#usr/share/cmake-3.8/Modules/Platform/FreeBSD.cmake
+#usr/share/cmake-3.8/Modules/Platform/Fuchsia.cmake
+#usr/share/cmake-3.8/Modules/Platform/GHS-MULTI-Initialize.cmake
+#usr/share/cmake-3.8/Modules/Platform/GHS-MULTI.cmake
+#usr/share/cmake-3.8/Modules/Platform/GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/GNUtoMS_lib.bat.in
+#usr/share/cmake-3.8/Modules/Platform/GNUtoMS_lib.cmake
+#usr/share/cmake-3.8/Modules/Platform/Generic-ADSP-ASM.cmake
+#usr/share/cmake-3.8/Modules/Platform/Generic-ADSP-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Generic-ADSP-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Generic-ADSP-Common.cmake
+#usr/share/cmake-3.8/Modules/Platform/Generic-SDCC-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Generic.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX-GNU-ASM.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX-HP-ASM.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX-HP-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX-HP-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX-HP-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX-HP.cmake
+#usr/share/cmake-3.8/Modules/Platform/HP-UX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Haiku.cmake
+#usr/share/cmake-3.8/Modules/Platform/IRIX.cmake
+#usr/share/cmake-3.8/Modules/Platform/IRIX64.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-Absoft-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-CCur-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-Clang-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-Clang-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-Determine-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-Intel-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-Intel-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-Intel-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-Intel.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-NAG-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-PGI-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-PGI-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-PGI-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-PGI.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-PathScale-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-PathScale-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-PathScale-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-PathScale.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-SunPro-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-TinyCC-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-VisualAge-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-VisualAge-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-VisualAge-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-XL-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-XL-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-XL-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux-como.cmake
+#usr/share/cmake-3.8/Modules/Platform/Linux.cmake
+#usr/share/cmake-3.8/Modules/Platform/MP-RAS.cmake
+#usr/share/cmake-3.8/Modules/Platform/MirBSD.cmake
+#usr/share/cmake-3.8/Modules/Platform/NetBSD.cmake
+#usr/share/cmake-3.8/Modules/Platform/OSF1.cmake
+#usr/share/cmake-3.8/Modules/Platform/OpenBSD.cmake
+#usr/share/cmake-3.8/Modules/Platform/OpenVMS.cmake
+#usr/share/cmake-3.8/Modules/Platform/QNX.cmake
+#usr/share/cmake-3.8/Modules/Platform/RISCos.cmake
+#usr/share/cmake-3.8/Modules/Platform/SCO_SV.cmake
+#usr/share/cmake-3.8/Modules/Platform/SINIX.cmake
+#usr/share/cmake-3.8/Modules/Platform/SunOS-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/SunOS-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/SunOS-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/SunOS-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/SunOS-PathScale-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/SunOS-PathScale-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/SunOS-PathScale-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/SunOS-PathScale.cmake
+#usr/share/cmake-3.8/Modules/Platform/SunOS.cmake
+#usr/share/cmake-3.8/Modules/Platform/Tru64.cmake
+#usr/share/cmake-3.8/Modules/Platform/ULTRIX.cmake
+#usr/share/cmake-3.8/Modules/Platform/UNIX_SV.cmake
+#usr/share/cmake-3.8/Modules/Platform/UnixPaths.cmake
+#usr/share/cmake-3.8/Modules/Platform/UnixWare.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Borland-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Borland-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Clang-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Clang-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Clang.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Determine-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Embarcadero-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Embarcadero-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Embarcadero.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-G95-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-GNU-C-ABI.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-GNU-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-GNU-CXX-ABI.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-GNU-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-GNU-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-GNU.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Intel-ASM.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Intel-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Intel-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Intel-Fortran.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Intel.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-MSVC-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-MSVC-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-MSVC.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-NMcl.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-NVIDIA-CUDA.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-OpenWatcom-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-OpenWatcom-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-OpenWatcom.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Watcom-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-Watcom-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-df.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows-windres.cmake
+#usr/share/cmake-3.8/Modules/Platform/Windows.cmake
+#usr/share/cmake-3.8/Modules/Platform/WindowsCE-MSVC-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/WindowsCE-MSVC-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/WindowsCE.cmake
+#usr/share/cmake-3.8/Modules/Platform/WindowsPaths.cmake
+#usr/share/cmake-3.8/Modules/Platform/WindowsPhone-MSVC-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/WindowsPhone.cmake
+#usr/share/cmake-3.8/Modules/Platform/WindowsStore-MSVC-C.cmake
+#usr/share/cmake-3.8/Modules/Platform/WindowsStore-MSVC-CXX.cmake
+#usr/share/cmake-3.8/Modules/Platform/WindowsStore.cmake
+#usr/share/cmake-3.8/Modules/Platform/Xenix.cmake
+#usr/share/cmake-3.8/Modules/Platform/eCos.cmake
+#usr/share/cmake-3.8/Modules/Platform/gas.cmake
+#usr/share/cmake-3.8/Modules/Platform/kFreeBSD.cmake
+#usr/share/cmake-3.8/Modules/Platform/syllable.cmake
+#usr/share/cmake-3.8/Modules/ProcessorCount.cmake
+#usr/share/cmake-3.8/Modules/Qt4ConfigDependentSettings.cmake
+#usr/share/cmake-3.8/Modules/Qt4Macros.cmake
+#usr/share/cmake-3.8/Modules/RepositoryInfo.txt.in
+#usr/share/cmake-3.8/Modules/SelectLibraryConfigurations.cmake
+#usr/share/cmake-3.8/Modules/Squish4RunTestCase.bat
+#usr/share/cmake-3.8/Modules/Squish4RunTestCase.sh
+#usr/share/cmake-3.8/Modules/SquishRunTestCase.bat
+#usr/share/cmake-3.8/Modules/SquishRunTestCase.sh
+#usr/share/cmake-3.8/Modules/SquishTestScript.cmake
+#usr/share/cmake-3.8/Modules/SystemInformation.cmake
+#usr/share/cmake-3.8/Modules/SystemInformation.in
+#usr/share/cmake-3.8/Modules/TestBigEndian.cmake
+#usr/share/cmake-3.8/Modules/TestCXXAcceptsFlag.cmake
+#usr/share/cmake-3.8/Modules/TestEndianess.c.in
+#usr/share/cmake-3.8/Modules/TestForANSIForScope.cmake
+#usr/share/cmake-3.8/Modules/TestForANSIStreamHeaders.cmake
+#usr/share/cmake-3.8/Modules/TestForANSIStreamHeaders.cxx
+#usr/share/cmake-3.8/Modules/TestForAnsiForScope.cxx
+#usr/share/cmake-3.8/Modules/TestForSSTREAM.cmake
+#usr/share/cmake-3.8/Modules/TestForSSTREAM.cxx
+#usr/share/cmake-3.8/Modules/TestForSTDNamespace.cmake
+#usr/share/cmake-3.8/Modules/TestForSTDNamespace.cxx
+#usr/share/cmake-3.8/Modules/UseEcos.cmake
+#usr/share/cmake-3.8/Modules/UseJava.cmake
+#usr/share/cmake-3.8/Modules/UseJavaClassFilelist.cmake
+#usr/share/cmake-3.8/Modules/UseJavaSymlinks.cmake
+#usr/share/cmake-3.8/Modules/UsePkgConfig.cmake
+#usr/share/cmake-3.8/Modules/UseQt4.cmake
+#usr/share/cmake-3.8/Modules/UseSWIG.cmake
+#usr/share/cmake-3.8/Modules/Use_wxWindows.cmake
+#usr/share/cmake-3.8/Modules/UsewxWidgets.cmake
+#usr/share/cmake-3.8/Modules/VTKCompatibility.cmake
+#usr/share/cmake-3.8/Modules/WIX.template.in
+#usr/share/cmake-3.8/Modules/WriteBasicConfigVersionFile.cmake
+#usr/share/cmake-3.8/Modules/WriteCompilerDetectionHeader.cmake
+#usr/share/cmake-3.8/Modules/ecos_clean.cmake
+#usr/share/cmake-3.8/Modules/exportheader.cmake.in
+#usr/share/cmake-3.8/Modules/javaTargets.cmake.in
+#usr/share/cmake-3.8/Modules/kde3init_dummy.cpp.in
+#usr/share/cmake-3.8/Modules/kde3uic.cmake
+#usr/share/cmake-3.8/Modules/readme.txt
+#usr/share/cmake-3.8/Templates
+#usr/share/cmake-3.8/Templates/AppleInfo.plist
+#usr/share/cmake-3.8/Templates/CMakeVSMacros1.vsmacros
+#usr/share/cmake-3.8/Templates/CMakeVSMacros2.vsmacros
+#usr/share/cmake-3.8/Templates/CPack.GenericDescription.txt
+#usr/share/cmake-3.8/Templates/CPack.GenericLicense.txt
+#usr/share/cmake-3.8/Templates/CPack.GenericWelcome.txt
+#usr/share/cmake-3.8/Templates/CPackConfig.cmake.in
+#usr/share/cmake-3.8/Templates/CTestScript.cmake.in
+#usr/share/cmake-3.8/Templates/TestDriver.cxx.in
+#usr/share/cmake-3.8/Templates/Windows
+#usr/share/cmake-3.8/Templates/Windows/ApplicationIcon.png
+#usr/share/cmake-3.8/Templates/Windows/Logo.png
+#usr/share/cmake-3.8/Templates/Windows/SmallLogo.png
+#usr/share/cmake-3.8/Templates/Windows/SmallLogo44x44.png
+#usr/share/cmake-3.8/Templates/Windows/SplashScreen.png
+#usr/share/cmake-3.8/Templates/Windows/StoreLogo.png
+#usr/share/cmake-3.8/Templates/Windows/Windows_TemporaryKey.pfx
+#usr/share/cmake-3.8/completions
+#usr/share/cmake-3.8/completions/cmake
+#usr/share/cmake-3.8/completions/cpack
+#usr/share/cmake-3.8/completions/ctest
+#usr/share/cmake-3.8/editors
+#usr/share/cmake-3.8/editors/emacs
+#usr/share/cmake-3.8/editors/emacs/cmake-mode.el
+#usr/share/cmake-3.8/editors/vim
+#usr/share/cmake-3.8/editors/vim/indent
+#usr/share/cmake-3.8/editors/vim/indent/cmake.vim
+#usr/share/cmake-3.8/editors/vim/syntax
+#usr/share/cmake-3.8/editors/vim/syntax/cmake.vim
+#usr/share/cmake-3.8/include
+#usr/share/cmake-3.8/include/cmCPluginAPI.h
+#usr/share/doc/cmake
+#usr/share/doc/cmake/Copyright.txt
+#usr/share/doc/cmake/cmcompress
+#usr/share/doc/cmake/cmcompress/Copyright.txt
+#usr/share/doc/cmake/cmlibrhash
+#usr/share/doc/cmake/cmlibrhash/COPYING
+#usr/share/doc/cmake/cmlibrhash/README
+#usr/share/doc/cmake/cmsys
+#usr/share/doc/cmake/cmsys/Copyright.txt
index 8b5d9f43df830920a0495a5f0b87e8023823facb..911a780ecc36a3c0b825399972d9a30034d777a5 100644 (file)
@@ -111,7 +111,6 @@ var/ipfire/menu.d/70-log.menu
 #var/ipfire/menu.d/EX-asterisk.menu
 #var/ipfire/menu.d/EX-bluetooth.menu
 #var/ipfire/menu.d/EX-guardian.menu
-#var/ipfire/menu.d/EX-imspector.menu
 #var/ipfire/menu.d/EX-mpfire.menu
 #var/ipfire/menu.d/EX-samba.menu
 #var/ipfire/menu.d/EX-tor.menu
index 53bb1e0aa2bba46f04596d5da2c711d6e809bda6..26ca6f376f2b8b3f0826036cdcfa3412f448b01f 100644 (file)
@@ -1,32 +1,28 @@
 bin/cpio
-bin/mt
 #usr/share/info/cpio.info
 #usr/share/locale/da/LC_MESSAGES/cpio.mo
 #usr/share/locale/de/LC_MESSAGES/cpio.mo
 #usr/share/locale/es/LC_MESSAGES/cpio.mo
 #usr/share/locale/fi/LC_MESSAGES/cpio.mo
 #usr/share/locale/fr/LC_MESSAGES/cpio.mo
-#usr/share/locale/ga
-#usr/share/locale/ga/LC_MESSAGES
 #usr/share/locale/ga/LC_MESSAGES/cpio.mo
 #usr/share/locale/gl/LC_MESSAGES/cpio.mo
+#usr/share/locale/hr/LC_MESSAGES/cpio.mo
 #usr/share/locale/hu/LC_MESSAGES/cpio.mo
-#usr/share/locale/id
-#usr/share/locale/id/LC_MESSAGES
 #usr/share/locale/id/LC_MESSAGES/cpio.mo
+#usr/share/locale/it/LC_MESSAGES/cpio.mo
+#usr/share/locale/ja/LC_MESSAGES/cpio.mo
 #usr/share/locale/ko/LC_MESSAGES/cpio.mo
 #usr/share/locale/nl/LC_MESSAGES/cpio.mo
 #usr/share/locale/pl/LC_MESSAGES/cpio.mo
 #usr/share/locale/pt_BR/LC_MESSAGES/cpio.mo
 #usr/share/locale/ro/LC_MESSAGES/cpio.mo
 #usr/share/locale/ru/LC_MESSAGES/cpio.mo
+#usr/share/locale/sr/LC_MESSAGES/cpio.mo
 #usr/share/locale/sv/LC_MESSAGES/cpio.mo
 #usr/share/locale/tr/LC_MESSAGES/cpio.mo
 #usr/share/locale/uk/LC_MESSAGES/cpio.mo
-#usr/share/locale/vi
-#usr/share/locale/vi/LC_MESSAGES
 #usr/share/locale/vi/LC_MESSAGES/cpio.mo
 #usr/share/locale/zh_CN/LC_MESSAGES/cpio.mo
 #usr/share/locale/zh_TW/LC_MESSAGES/cpio.mo
 #usr/share/man/man1/cpio.1
-#usr/share/man/man1/mt.1
index bb02f1b8be652b491c5655e7265fd4a165086327..f43effe956a0bd9bfee15baa792cc823386b3730 100644 (file)
@@ -4,5 +4,6 @@ usr/bin/diff
 #usr/bin/sdiff
 #usr/share/info/diffutils.info
 #usr/share/man/man1/cmp.1
+#usr/share/man/man1/diff.1
 #usr/share/man/man1/diff3.1
 #usr/share/man/man1/sdiff.1
index 65b558834ccd8417b81b551da50ce7b471e3d30a..2cb3286575fc1b7e7edb7c3442299ffc9c5a200b 100644 (file)
@@ -7,18 +7,13 @@
 #usr/lib/libfl.so
 usr/lib/libfl.so.2
 usr/lib/libfl.so.2.0.0
-#usr/lib/libfl_pic.a
-#usr/lib/libfl_pic.la
-#usr/lib/libfl_pic.so
-usr/lib/libfl_pic.so.2
-usr/lib/libfl_pic.so.2.0.0
 #usr/lib/libl.a
 #usr/share/doc/flex
 #usr/share/doc/flex/AUTHORS
 #usr/share/doc/flex/COPYING
 #usr/share/doc/flex/NEWS
 #usr/share/doc/flex/ONEWS
-#usr/share/doc/flex/README
+#usr/share/doc/flex/README.md
 #usr/share/info/flex.info
 #usr/share/info/flex.info-1
 #usr/share/info/flex.info-2
index ade611e11d65fdc1c6afdaf16d5207bff7c9246b..e567d6df39dfb206dc054eef8093e03f4f87ac14 100644 (file)
@@ -1,33 +1,7 @@
 #etc/fonts
-#etc/fonts/conf.avail
-etc/fonts/conf.avail/10-autohint.conf
-etc/fonts/conf.avail/10-no-sub-pixel.conf
-etc/fonts/conf.avail/10-sub-pixel-bgr.conf
-etc/fonts/conf.avail/10-sub-pixel-rgb.conf
-etc/fonts/conf.avail/10-sub-pixel-vbgr.conf
-etc/fonts/conf.avail/10-sub-pixel-vrgb.conf
-etc/fonts/conf.avail/10-unhinted.conf
-etc/fonts/conf.avail/20-fix-globaladvance.conf
-etc/fonts/conf.avail/20-unhint-small-vera.conf
-etc/fonts/conf.avail/25-unhint-nonlatin.conf
-etc/fonts/conf.avail/30-metric-aliases.conf
-etc/fonts/conf.avail/30-urw-aliases.conf
-etc/fonts/conf.avail/40-nonlatin.conf
-etc/fonts/conf.avail/45-latin.conf
-etc/fonts/conf.avail/49-sansserif.conf
-etc/fonts/conf.avail/50-user.conf
-etc/fonts/conf.avail/51-local.conf
-etc/fonts/conf.avail/60-latin.conf
-etc/fonts/conf.avail/65-fonts-persian.conf
-etc/fonts/conf.avail/65-khmer.conf
-etc/fonts/conf.avail/65-nonlatin.conf
-etc/fonts/conf.avail/69-unifont.conf
-etc/fonts/conf.avail/70-no-bitmaps.conf
-etc/fonts/conf.avail/70-yes-bitmaps.conf
-etc/fonts/conf.avail/80-delicious.conf
-etc/fonts/conf.avail/90-synthetic.conf
 #etc/fonts/conf.d
-etc/fonts/conf.d/20-fix-globaladvance.conf
+etc/fonts/conf.d/10-hinting-slight.conf
+etc/fonts/conf.d/10-scale-bitmap-fonts.conf
 etc/fonts/conf.d/20-unhint-small-vera.conf
 etc/fonts/conf.d/30-metric-aliases.conf
 etc/fonts/conf.d/30-urw-aliases.conf
@@ -44,208 +18,275 @@ etc/fonts/conf.d/80-delicious.conf
 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/bin/fc-pattern
+usr/bin/fc-query
+usr/bin/fc-scan
+usr/bin/fc-validate
 #usr/include/fontconfig
 #usr/include/fontconfig/fcfreetype.h
 #usr/include/fontconfig/fcprivate.h
 #usr/include/fontconfig/fontconfig.h
-#usr/lib/libfontconfig.a
 #usr/lib/libfontconfig.la
-usr/lib/libfontconfig.so
+#usr/lib/libfontconfig.so
 usr/lib/libfontconfig.so.1
-usr/lib/libfontconfig.so.1.3.0
-usr/lib/pkgconfig/fontconfig.pc
+usr/lib/libfontconfig.so.1.9.2
+#usr/lib/pkgconfig/fontconfig.pc
 #usr/share/doc/fontconfig
 #usr/share/doc/fontconfig/fontconfig-devel
 #usr/share/doc/fontconfig/fontconfig-devel.pdf
 #usr/share/doc/fontconfig/fontconfig-devel.txt
-#usr/share/doc/fontconfig/fontconfig-devel/index.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1034.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1056.html
-#usr/share/doc/fontconfig/fontconfig-devel/r108.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1099.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1127.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1148.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1171.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1192.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1237.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1260.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1283.html
-#usr/share/doc/fontconfig/fontconfig-devel/r129.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1309.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1336.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1367.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1389.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1412.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1434.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1460.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1482.html
-#usr/share/doc/fontconfig/fontconfig-devel/r150.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1505.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1529.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1552.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1577.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1602.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1627.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1652.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1677.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1699.html
-#usr/share/doc/fontconfig/fontconfig-devel/r171.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1724.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1749.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1774.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1801.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1829.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1858.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1883.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1905.html
-#usr/share/doc/fontconfig/fontconfig-devel/r192.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1927.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1950.html
-#usr/share/doc/fontconfig/fontconfig-devel/r1976.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2002.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2032.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2057.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2081.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2110.html
-#usr/share/doc/fontconfig/fontconfig-devel/r213.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2131.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2155.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2178.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2201.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2227.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2256.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2286.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2316.html
-#usr/share/doc/fontconfig/fontconfig-devel/r234.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2349.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2370.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2391.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2413.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2434.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2456.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2478.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2501.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2522.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2544.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2566.html
-#usr/share/doc/fontconfig/fontconfig-devel/r258.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2588.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2609.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2631.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2655.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2676.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2698.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2721.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2744.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2767.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2788.html
-#usr/share/doc/fontconfig/fontconfig-devel/r279.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2817.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2842.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2873.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2911.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2942.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2969.html
-#usr/share/doc/fontconfig/fontconfig-devel/r2993.html
-#usr/share/doc/fontconfig/fontconfig-devel/r301.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3021.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3045.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3069.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3094.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3118.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3142.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3164.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3192.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3213.html
-#usr/share/doc/fontconfig/fontconfig-devel/r323.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3234.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3257.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3283.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3305.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3327.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3349.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3371.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3393.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3414.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3435.html
-#usr/share/doc/fontconfig/fontconfig-devel/r344.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3460.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3496.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3518.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3553.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3581.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3607.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3629.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3656.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3683.html
-#usr/share/doc/fontconfig/fontconfig-devel/r369.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3708.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3733.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3755.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3778.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3805.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3827.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3852.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3873.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3898.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3923.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3948.html
-#usr/share/doc/fontconfig/fontconfig-devel/r397.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3973.html
-#usr/share/doc/fontconfig/fontconfig-devel/r3999.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4021.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4043.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4065.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4090.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4119.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4144.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4176.html
-#usr/share/doc/fontconfig/fontconfig-devel/r418.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4209.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4245.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4267.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4289.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4311.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4334.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4356.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4380.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4405.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4430.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4457.html
-#usr/share/doc/fontconfig/fontconfig-devel/r446.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4484.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4509.html
-#usr/share/doc/fontconfig/fontconfig-devel/r4530.html
-#usr/share/doc/fontconfig/fontconfig-devel/r475.html
-#usr/share/doc/fontconfig/fontconfig-devel/r570.html
-#usr/share/doc/fontconfig/fontconfig-devel/r600.html
-#usr/share/doc/fontconfig/fontconfig-devel/r707.html
-#usr/share/doc/fontconfig/fontconfig-devel/r759.html
-#usr/share/doc/fontconfig/fontconfig-devel/r782.html
-#usr/share/doc/fontconfig/fontconfig-devel/r807.html
-#usr/share/doc/fontconfig/fontconfig-devel/r828.html
-#usr/share/doc/fontconfig/fontconfig-devel/r856.html
-#usr/share/doc/fontconfig/fontconfig-devel/r878.html
-#usr/share/doc/fontconfig/fontconfig-devel/r902.html
-#usr/share/doc/fontconfig/fontconfig-devel/r923.html
-#usr/share/doc/fontconfig/fontconfig-devel/r944.html
-#usr/share/doc/fontconfig/fontconfig-devel/r967.html
-#usr/share/doc/fontconfig/fontconfig-devel/r999.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcatomiccreate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcatomicdeletenew.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcatomicdestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcatomiclock.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcatomicnewfile.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcatomicorigfile.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcatomicreplaceorig.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcatomicunlock.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcblanksadd.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcblankscreate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcblanksdestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcblanksismember.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccachecopyset.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccachecreatetagfile.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccachedir.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccachenumfont.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccachenumsubdir.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccachesubdir.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetaddchar.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetcopy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetcount.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetcoverage.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetcreate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetdelchar.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetdestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetequal.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetfirstpage.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsethaschar.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetintersect.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetintersectcount.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetissubset.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetmerge.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetnew.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetnextpage.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetsubtract.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetsubtractcount.html
+#usr/share/doc/fontconfig/fontconfig-devel/fccharsetunion.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigappfontadddir.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigappfontaddfile.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigappfontclear.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigbuildfonts.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigcreate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigdestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigenablehome.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigfilename.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiggetblanks.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiggetcache.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiggetcachedirs.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiggetconfigdirs.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiggetconfigfiles.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiggetcurrent.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiggetfontdirs.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiggetfonts.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiggetrescaninterval.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiggetsysroot.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfighome.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigparseandload.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigreference.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigsetcurrent.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigsetrescaninterval.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigsetsysroot.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigsubstitute.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfigsubstitutewithpat.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcconfiguptodate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdefaultsubstitute.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdircacheclean.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdircacheload.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdircacheloadfile.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdircacheread.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdircacherescan.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdircacheunlink.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdircacheunload.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdircachevalid.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdirsave.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcdirscan.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfileisdir.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfilescan.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfini.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontlist.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontmatch.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontrenderprepare.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontsetadd.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontsetcreate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontsetdestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontsetlist.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontsetmatch.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontsetprint.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontsetsort.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontsetsortdestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfontsort.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfreetypecharindex.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfreetypecharset.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfreetypecharsetandspacing.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfreetypequery.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcfreetypequeryface.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcgetdefaultlangs.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcgetlangs.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcgetversion.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcinit.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcinitbringuptodate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcinitloadconfig.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcinitloadconfigandfonts.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcinitreinitialize.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcislower.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcisupper.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclanggetcharset.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangnormalize.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetadd.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetcompare.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetcontains.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetcopy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetcreate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetdel.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetdestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetequal.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetgetlangs.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsethash.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsethaslang.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetsubtract.html
+#usr/share/doc/fontconfig/fontconfig-devel/fclangsetunion.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcmatrixcopy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcmatrixequal.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcmatrixinit.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcmatrixmultiply.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcmatrixrotate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcmatrixscale.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcmatrixshear.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcnameconstant.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcnamegetconstant.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcnamegetobjecttype.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcnameparse.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcnameregisterconstants.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcnameregisterobjecttypes.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcnameunparse.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcnameunregisterconstants.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcnameunregisterobjecttypes.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcobjectsetadd.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcobjectsetbuild.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcobjectsetcreate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcobjectsetdestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternadd-type.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternadd.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternaddweak.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternbuild.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatterncreate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatterndel.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatterndestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternduplicate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternequal.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternequalsubset.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternfilter.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternformat.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternget-type.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternget.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternhash.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternprint.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternreference.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcpatternremove.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcrangecopy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcrangecreatedouble.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcrangecreateinteger.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcrangedestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcrangegetdouble.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrbasename.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrcmp.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrcmpignorecase.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrcopy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrcopyfilename.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrdirname.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrdowncase.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrfree.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrlistcreate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrlistdone.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrlistfirst.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrlistnext.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrplus.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrsetadd.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrsetaddfilename.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrsetcreate.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrsetdel.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrsetdestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrsetequal.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrsetmember.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrstr.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcstrstrignorecase.html
+#usr/share/doc/fontconfig/fontconfig-devel/fctolower.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcucs4toutf8.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcutf16len.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcutf16toucs4.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcutf8len.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcutf8toucs4.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcvaluedestroy.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcvalueequal.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcvalueprint.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcvaluesave.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcweightfromopentype.html
+#usr/share/doc/fontconfig/fontconfig-devel/fcweighttoopentype.html
+#usr/share/doc/fontconfig/fontconfig-devel/ln12.html
+#usr/share/doc/fontconfig/fontconfig-devel/t1.html
 #usr/share/doc/fontconfig/fontconfig-devel/x102.html
 #usr/share/doc/fontconfig/fontconfig-devel/x19.html
 #usr/share/doc/fontconfig/fontconfig-devel/x31.html
 #usr/share/doc/fontconfig/fontconfig-user.html
 #usr/share/doc/fontconfig/fontconfig-user.pdf
 #usr/share/doc/fontconfig/fontconfig-user.txt
+#usr/share/fontconfig
+#usr/share/fontconfig/conf.avail
+#usr/share/fontconfig/conf.avail/10-autohint.conf
+#usr/share/fontconfig/conf.avail/10-hinting-full.conf
+#usr/share/fontconfig/conf.avail/10-hinting-medium.conf
+#usr/share/fontconfig/conf.avail/10-hinting-none.conf
+#usr/share/fontconfig/conf.avail/10-hinting-slight.conf
+#usr/share/fontconfig/conf.avail/10-no-sub-pixel.conf
+#usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf
+#usr/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf
+#usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf
+#usr/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf
+#usr/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf
+#usr/share/fontconfig/conf.avail/10-unhinted.conf
+#usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf
+#usr/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf
+#usr/share/fontconfig/conf.avail/11-lcdfilter-light.conf
+#usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf
+#usr/share/fontconfig/conf.avail/25-unhint-nonlatin.conf
+#usr/share/fontconfig/conf.avail/30-metric-aliases.conf
+#usr/share/fontconfig/conf.avail/30-urw-aliases.conf
+#usr/share/fontconfig/conf.avail/40-nonlatin.conf
+#usr/share/fontconfig/conf.avail/45-latin.conf
+#usr/share/fontconfig/conf.avail/49-sansserif.conf
+#usr/share/fontconfig/conf.avail/50-user.conf
+#usr/share/fontconfig/conf.avail/51-local.conf
+#usr/share/fontconfig/conf.avail/60-latin.conf
+#usr/share/fontconfig/conf.avail/65-fonts-persian.conf
+#usr/share/fontconfig/conf.avail/65-khmer.conf
+#usr/share/fontconfig/conf.avail/65-nonlatin.conf
+#usr/share/fontconfig/conf.avail/69-unifont.conf
+#usr/share/fontconfig/conf.avail/70-no-bitmaps.conf
+#usr/share/fontconfig/conf.avail/70-yes-bitmaps.conf
+#usr/share/fontconfig/conf.avail/80-delicious.conf
+#usr/share/fontconfig/conf.avail/90-synthetic.conf
 #usr/share/man/man1/fc-cache.1
 #usr/share/man/man1/fc-cat.1
 #usr/share/man/man1/fc-list.1
 #usr/share/man/man1/fc-match.1
+#usr/share/man/man1/fc-pattern.1
+#usr/share/man/man1/fc-query.1
+#usr/share/man/man1/fc-scan.1
+#usr/share/man/man1/fc-validate.1
 #usr/share/man/man3/FcAtomicCreate.3
 #usr/share/man/man3/FcAtomicDeleteNew.3
 #usr/share/man/man3/FcAtomicDestroy.3
@@ -259,6 +300,7 @@ usr/lib/pkgconfig/fontconfig.pc
 #usr/share/man/man3/FcBlanksDestroy.3
 #usr/share/man/man3/FcBlanksIsMember.3
 #usr/share/man/man3/FcCacheCopySet.3
+#usr/share/man/man3/FcCacheCreateTagFile.3
 #usr/share/man/man3/FcCacheDir.3
 #usr/share/man/man3/FcCacheNumFont.3
 #usr/share/man/man3/FcCacheNumSubdir.3
@@ -268,6 +310,7 @@ usr/lib/pkgconfig/fontconfig.pc
 #usr/share/man/man3/FcCharSetCount.3
 #usr/share/man/man3/FcCharSetCoverage.3
 #usr/share/man/man3/FcCharSetCreate.3
+#usr/share/man/man3/FcCharSetDelChar.3
 #usr/share/man/man3/FcCharSetDestroy.3
 #usr/share/man/man3/FcCharSetEqual.3
 #usr/share/man/man3/FcCharSetFirstPage.3
@@ -275,6 +318,7 @@ usr/lib/pkgconfig/fontconfig.pc
 #usr/share/man/man3/FcCharSetIntersect.3
 #usr/share/man/man3/FcCharSetIntersectCount.3
 #usr/share/man/man3/FcCharSetIsSubset.3
+#usr/share/man/man3/FcCharSetMerge.3
 #usr/share/man/man3/FcCharSetNew.3
 #usr/share/man/man3/FcCharSetNextPage.3
 #usr/share/man/man3/FcCharSetSubtract.3
@@ -297,17 +341,22 @@ usr/lib/pkgconfig/fontconfig.pc
 #usr/share/man/man3/FcConfigGetFontDirs.3
 #usr/share/man/man3/FcConfigGetFonts.3
 #usr/share/man/man3/FcConfigGetRescanInterval.3
+#usr/share/man/man3/FcConfigGetSysRoot.3
 #usr/share/man/man3/FcConfigHome.3
 #usr/share/man/man3/FcConfigParseAndLoad.3
+#usr/share/man/man3/FcConfigReference.3
 #usr/share/man/man3/FcConfigSetCurrent.3
 #usr/share/man/man3/FcConfigSetRescanInterval.3
+#usr/share/man/man3/FcConfigSetSysRoot.3
 #usr/share/man/man3/FcConfigSubstitute.3
 #usr/share/man/man3/FcConfigSubstituteWithPat.3
 #usr/share/man/man3/FcConfigUptoDate.3
 #usr/share/man/man3/FcDefaultSubstitute.3
+#usr/share/man/man3/FcDirCacheClean.3
 #usr/share/man/man3/FcDirCacheLoad.3
 #usr/share/man/man3/FcDirCacheLoadFile.3
 #usr/share/man/man3/FcDirCacheRead.3
+#usr/share/man/man3/FcDirCacheRescan.3
 #usr/share/man/man3/FcDirCacheUnlink.3
 #usr/share/man/man3/FcDirCacheUnload.3
 #usr/share/man/man3/FcDirCacheValid.3
@@ -333,6 +382,7 @@ usr/lib/pkgconfig/fontconfig.pc
 #usr/share/man/man3/FcFreeTypeCharSetAndSpacing.3
 #usr/share/man/man3/FcFreeTypeQuery.3
 #usr/share/man/man3/FcFreeTypeQueryFace.3
+#usr/share/man/man3/FcGetDefaultLangs.3
 #usr/share/man/man3/FcGetLangs.3
 #usr/share/man/man3/FcGetVersion.3
 #usr/share/man/man3/FcInit.3
@@ -343,15 +393,20 @@ usr/lib/pkgconfig/fontconfig.pc
 #usr/share/man/man3/FcIsLower.3
 #usr/share/man/man3/FcIsUpper.3
 #usr/share/man/man3/FcLangGetCharSet.3
+#usr/share/man/man3/FcLangNormalize.3
 #usr/share/man/man3/FcLangSetAdd.3
 #usr/share/man/man3/FcLangSetCompare.3
 #usr/share/man/man3/FcLangSetContains.3
 #usr/share/man/man3/FcLangSetCopy.3
 #usr/share/man/man3/FcLangSetCreate.3
+#usr/share/man/man3/FcLangSetDel.3
 #usr/share/man/man3/FcLangSetDestroy.3
 #usr/share/man/man3/FcLangSetEqual.3
+#usr/share/man/man3/FcLangSetGetLangs.3
 #usr/share/man/man3/FcLangSetHasLang.3
 #usr/share/man/man3/FcLangSetHash.3
+#usr/share/man/man3/FcLangSetSubtract.3
+#usr/share/man/man3/FcLangSetUnion.3
 #usr/share/man/man3/FcMatrixCopy.3
 #usr/share/man/man3/FcMatrixEqual.3
 #usr/share/man/man3/FcMatrixInit.3
@@ -382,21 +437,30 @@ usr/lib/pkgconfig/fontconfig.pc
 #usr/share/man/man3/FcPatternDuplicate.3
 #usr/share/man/man3/FcPatternEqual.3
 #usr/share/man/man3/FcPatternEqualSubset.3
+#usr/share/man/man3/FcPatternFilter.3
+#usr/share/man/man3/FcPatternFormat.3
 #usr/share/man/man3/FcPatternGet-Type.3
 #usr/share/man/man3/FcPatternGet.3
 #usr/share/man/man3/FcPatternHash.3
 #usr/share/man/man3/FcPatternPrint.3
 #usr/share/man/man3/FcPatternReference.3
 #usr/share/man/man3/FcPatternRemove.3
+#usr/share/man/man3/FcRangeCopy.3
+#usr/share/man/man3/FcRangeCreateDouble.3
+#usr/share/man/man3/FcRangeCreateInteger.3
+#usr/share/man/man3/FcRangeDestroy.3
+#usr/share/man/man3/FcRangeGetDouble.3
 #usr/share/man/man3/FcStrBasename.3
 #usr/share/man/man3/FcStrCmp.3
 #usr/share/man/man3/FcStrCmpIgnoreCase.3
 #usr/share/man/man3/FcStrCopy.3
 #usr/share/man/man3/FcStrCopyFilename.3
+#usr/share/man/man3/FcStrDirname.3
 #usr/share/man/man3/FcStrDowncase.3
 #usr/share/man/man3/FcStrFree.3
 #usr/share/man/man3/FcStrListCreate.3
 #usr/share/man/man3/FcStrListDone.3
+#usr/share/man/man3/FcStrListFirst.3
 #usr/share/man/man3/FcStrListNext.3
 #usr/share/man/man3/FcStrPlus.3
 #usr/share/man/man3/FcStrSetAdd.3
@@ -418,7 +482,11 @@ usr/lib/pkgconfig/fontconfig.pc
 #usr/share/man/man3/FcValueEqual.3
 #usr/share/man/man3/FcValuePrint.3
 #usr/share/man/man3/FcValueSave.3
+#usr/share/man/man3/FcWeightFromOpenType.3
+#usr/share/man/man3/FcWeightToOpenType.3
 #usr/share/man/man5/fonts-conf.5
-#usr/var
-#usr/var/cache
-usr/var/cache/fontconfig
+#usr/share/xml
+#usr/share/xml/fontconfig
+usr/share/xml/fontconfig/fonts.dtd
+var/cache/fontconfig
+var/cache/fontconfig/CACHEDIR.TAG
index 9731f287bd50714874e7537c800fda07c190b6e1..38bff842de27ef867dec7e5d4253d5dd3ed5b27e 100644 (file)
@@ -1,14 +1,6 @@
 #usr/bin/freetype-config
 #usr/include/freetype2
 #usr/include/freetype2/freetype
-#usr/include/freetype2/freetype/cache
-#usr/include/freetype2/freetype/cache/ftccache.h
-#usr/include/freetype2/freetype/cache/ftccmap.h
-#usr/include/freetype2/freetype/cache/ftcglyph.h
-#usr/include/freetype2/freetype/cache/ftcimage.h
-#usr/include/freetype2/freetype/cache/ftcmanag.h
-#usr/include/freetype2/freetype/cache/ftcmru.h
-#usr/include/freetype2/freetype/cache/ftcsbits.h
 #usr/include/freetype2/freetype/config
 #usr/include/freetype2/freetype/config/ftconfig.h
 #usr/include/freetype2/freetype/config/ftheader.h
 #usr/include/freetype2/freetype/config/ftoption.h
 #usr/include/freetype2/freetype/config/ftstdlib.h
 #usr/include/freetype2/freetype/freetype.h
+#usr/include/freetype2/freetype/ftadvanc.h
+#usr/include/freetype2/freetype/ftautoh.h
 #usr/include/freetype2/freetype/ftbbox.h
 #usr/include/freetype2/freetype/ftbdf.h
 #usr/include/freetype2/freetype/ftbitmap.h
+#usr/include/freetype2/freetype/ftbzip2.h
 #usr/include/freetype2/freetype/ftcache.h
+#usr/include/freetype2/freetype/ftcffdrv.h
 #usr/include/freetype2/freetype/ftchapters.h
+#usr/include/freetype2/freetype/ftcid.h
 #usr/include/freetype2/freetype/fterrdef.h
 #usr/include/freetype2/freetype/fterrors.h
+#usr/include/freetype2/freetype/ftfntfmt.h
+#usr/include/freetype2/freetype/ftgasp.h
 #usr/include/freetype2/freetype/ftglyph.h
+#usr/include/freetype2/freetype/ftgxval.h
 #usr/include/freetype2/freetype/ftgzip.h
 #usr/include/freetype2/freetype/ftimage.h
 #usr/include/freetype2/freetype/ftincrem.h
+#usr/include/freetype2/freetype/ftlcdfil.h
 #usr/include/freetype2/freetype/ftlist.h
 #usr/include/freetype2/freetype/ftlzw.h
 #usr/include/freetype2/freetype/ftmac.h
 #usr/include/freetype2/freetype/ftsnames.h
 #usr/include/freetype2/freetype/ftstroke.h
 #usr/include/freetype2/freetype/ftsynth.h
-#usr/include/freetype2/freetype/ftsysio.h
-#usr/include/freetype2/freetype/ftsysmem.h
 #usr/include/freetype2/freetype/ftsystem.h
 #usr/include/freetype2/freetype/fttrigon.h
+#usr/include/freetype2/freetype/ftttdrv.h
 #usr/include/freetype2/freetype/fttypes.h
 #usr/include/freetype2/freetype/ftwinfnt.h
-#usr/include/freetype2/freetype/ftxf86.h
-#usr/include/freetype2/freetype/internal
-#usr/include/freetype2/freetype/internal/autohint.h
-#usr/include/freetype2/freetype/internal/ftcalc.h
-#usr/include/freetype2/freetype/internal/ftdebug.h
-#usr/include/freetype2/freetype/internal/ftdriver.h
-#usr/include/freetype2/freetype/internal/ftgloadr.h
-#usr/include/freetype2/freetype/internal/ftmemory.h
-#usr/include/freetype2/freetype/internal/ftobjs.h
-#usr/include/freetype2/freetype/internal/ftrfork.h
-#usr/include/freetype2/freetype/internal/ftserv.h
-#usr/include/freetype2/freetype/internal/ftstream.h
-#usr/include/freetype2/freetype/internal/fttrace.h
-#usr/include/freetype2/freetype/internal/ftvalid.h
-#usr/include/freetype2/freetype/internal/internal.h
-#usr/include/freetype2/freetype/internal/pcftypes.h
-#usr/include/freetype2/freetype/internal/psaux.h
-#usr/include/freetype2/freetype/internal/pshints.h
-#usr/include/freetype2/freetype/internal/sfnt.h
-#usr/include/freetype2/freetype/internal/svbdf.h
-#usr/include/freetype2/freetype/internal/svgldict.h
-#usr/include/freetype2/freetype/internal/svmm.h
-#usr/include/freetype2/freetype/internal/svotval.h
-#usr/include/freetype2/freetype/internal/svpfr.h
-#usr/include/freetype2/freetype/internal/svpostnm.h
-#usr/include/freetype2/freetype/internal/svpscmap.h
-#usr/include/freetype2/freetype/internal/svpsinfo.h
-#usr/include/freetype2/freetype/internal/svsfnt.h
-#usr/include/freetype2/freetype/internal/svttcmap.h
-#usr/include/freetype2/freetype/internal/svwinfnt.h
-#usr/include/freetype2/freetype/internal/svxf86nm.h
-#usr/include/freetype2/freetype/internal/t1types.h
-#usr/include/freetype2/freetype/internal/tttypes.h
 #usr/include/freetype2/freetype/t1tables.h
 #usr/include/freetype2/freetype/ttnameid.h
 #usr/include/freetype2/freetype/tttables.h
 #usr/include/freetype2/freetype/tttags.h
 #usr/include/freetype2/freetype/ttunpat.h
-#usr/include/ft2build.h
+#usr/include/freetype2/ft2build.h
 #usr/lib/libfreetype.a
 #usr/lib/libfreetype.la
-usr/lib/libfreetype.so
+#usr/lib/libfreetype.so
 usr/lib/libfreetype.so.6
-usr/lib/libfreetype.so.6.3.8
+usr/lib/libfreetype.so.6.13.0
 #usr/lib/pkgconfig/freetype2.pc
 #usr/share/aclocal/freetype2.m4
+#usr/share/man/man1/freetype-config.1
index 1ab1d4810ac5e9a814b39a7813e68defe16310d8..2cd91cb0c580b8b9c89583403b229c6a67c5a6e9 100644 (file)
@@ -1,5 +1,3 @@
-#etc/init.d
-#etc/init.d/fuse
 #etc/rc.d/init.d/fuse
 etc/udev/rules.d/99-fuse.rules
 sbin/mount.fuse
@@ -20,7 +18,7 @@ usr/bin/ulockmgr_server
 #usr/lib/libfuse.la
 usr/lib/libfuse.so
 usr/lib/libfuse.so.2
-usr/lib/libfuse.so.2.9.3
+usr/lib/libfuse.so.2.9.7
 #usr/lib/libulockmgr.a
 #usr/lib/libulockmgr.la
 usr/lib/libulockmgr.so
diff --git a/config/rootfiles/common/fwhits b/config/rootfiles/common/fwhits
deleted file mode 100644 (file)
index b87292e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-usr/local/bin/logtailfwhits
index 2a39be65d2a164ee662002a81a3b18f7bf8a200f..f9e1e8ae4029c8d39265310bfb1da27d03add14f 100644 (file)
@@ -1,18 +1,24 @@
 usr/bin/awk
 usr/bin/gawk
-#usr/bin/gawk-3.1.5
+#usr/bin/gawk-4.1.4
 #usr/bin/igawk
-#usr/bin/pgawk
-#usr/bin/pgawk-3.1.5
-#usr/info/dir
-#usr/info/gawk.info
-#usr/info/gawkinet.info
+#usr/include/gawkapi.h
 #usr/lib/awk
 #usr/lib/awk/grcat
 #usr/lib/awk/pwcat
-#usr/man/man1/gawk.1
-#usr/man/man1/igawk.1
-#usr/man/man1/pgawk.1
+#usr/lib/gawk
+usr/lib/gawk/filefuncs.so
+usr/lib/gawk/fnmatch.so
+usr/lib/gawk/fork.so
+usr/lib/gawk/inplace.so
+usr/lib/gawk/ordchr.so
+usr/lib/gawk/readdir.so
+usr/lib/gawk/readfile.so
+usr/lib/gawk/revoutput.so
+usr/lib/gawk/revtwoway.so
+usr/lib/gawk/rwarray.so
+usr/lib/gawk/testext.so
+usr/lib/gawk/time.so
 #usr/share/awk
 #usr/share/awk/assert.awk
 #usr/share/awk/bits2str.awk
@@ -22,14 +28,34 @@ usr/bin/gawk
 #usr/share/awk/getopt.awk
 #usr/share/awk/gettime.awk
 #usr/share/awk/group.awk
+#usr/share/awk/inplace.awk
 #usr/share/awk/join.awk
 #usr/share/awk/libintl.awk
-#usr/share/awk/nextfile.awk
 #usr/share/awk/noassign.awk
 #usr/share/awk/ord.awk
 #usr/share/awk/passwd.awk
+#usr/share/awk/processarray.awk
+#usr/share/awk/quicksort.awk
 #usr/share/awk/readable.awk
+#usr/share/awk/readfile.awk
 #usr/share/awk/rewind.awk
 #usr/share/awk/round.awk
+#usr/share/awk/shellquote.awk
 #usr/share/awk/strtonum.awk
+#usr/share/awk/walkarray.awk
 #usr/share/awk/zerofile.awk
+#usr/share/info/gawk.info
+#usr/share/info/gawkinet.info
+#usr/share/man/man1/gawk.1
+#usr/share/man/man1/igawk.1
+#usr/share/man/man3/filefuncs.3am
+#usr/share/man/man3/fnmatch.3am
+#usr/share/man/man3/fork.3am
+#usr/share/man/man3/inplace.3am
+#usr/share/man/man3/ordchr.3am
+#usr/share/man/man3/readdir.3am
+#usr/share/man/man3/readfile.3am
+#usr/share/man/man3/revoutput.3am
+#usr/share/man/man3/revtwoway.3am
+#usr/share/man/man3/rwarray.3am
+#usr/share/man/man3/time.3am
diff --git a/config/rootfiles/common/gnutls b/config/rootfiles/common/gnutls
new file mode 100644 (file)
index 0000000..009289b
--- /dev/null
@@ -0,0 +1,1126 @@
+usr/bin/certtool
+usr/bin/danetool
+usr/bin/gnutls-cli
+usr/bin/gnutls-cli-debug
+usr/bin/gnutls-serv
+usr/bin/ocsptool
+usr/bin/psktool
+usr/bin/srptool
+#usr/include/gnutls
+#usr/include/gnutls/abstract.h
+#usr/include/gnutls/compat.h
+#usr/include/gnutls/crypto.h
+#usr/include/gnutls/dane.h
+#usr/include/gnutls/dtls.h
+#usr/include/gnutls/gnutls.h
+#usr/include/gnutls/gnutlsxx.h
+#usr/include/gnutls/ocsp.h
+#usr/include/gnutls/openpgp.h
+#usr/include/gnutls/pkcs11.h
+#usr/include/gnutls/pkcs12.h
+#usr/include/gnutls/pkcs7.h
+#usr/include/gnutls/self-test.h
+#usr/include/gnutls/socket.h
+#usr/include/gnutls/system-keys.h
+#usr/include/gnutls/tpm.h
+#usr/include/gnutls/urls.h
+#usr/include/gnutls/x509-ext.h
+#usr/include/gnutls/x509.h
+#usr/lib/libgnutls-dane.la
+#usr/lib/libgnutls-dane.so
+usr/lib/libgnutls-dane.so.0
+usr/lib/libgnutls-dane.so.0.4.1
+#usr/lib/libgnutls.la
+#usr/lib/libgnutls.so
+usr/lib/libgnutls.so.30
+usr/lib/libgnutls.so.30.14.2
+#usr/lib/libgnutlsxx.la
+#usr/lib/libgnutlsxx.so
+usr/lib/libgnutlsxx.so.28
+usr/lib/libgnutlsxx.so.28.1.0
+#usr/lib/pkgconfig/gnutls-dane.pc
+#usr/lib/pkgconfig/gnutls.pc
+#usr/share/doc/gnutls
+#usr/share/doc/gnutls/gnutls-client-server-use-case.png
+#usr/share/doc/gnutls/gnutls-handshake-sequence.png
+#usr/share/doc/gnutls/gnutls-handshake-state.png
+#usr/share/doc/gnutls/gnutls-internals.png
+#usr/share/doc/gnutls/gnutls-layers.png
+#usr/share/doc/gnutls/gnutls-logo.png
+#usr/share/doc/gnutls/gnutls-modauth.png
+#usr/share/doc/gnutls/gnutls-x509.png
+#usr/share/doc/gnutls/pkcs11-vision.png
+#usr/share/info/gnutls-client-server-use-case.png
+#usr/share/info/gnutls-guile.info
+#usr/share/info/gnutls-handshake-sequence.png
+#usr/share/info/gnutls-handshake-state.png
+#usr/share/info/gnutls-internals.png
+#usr/share/info/gnutls-layers.png
+#usr/share/info/gnutls-logo.png
+#usr/share/info/gnutls-modauth.png
+#usr/share/info/gnutls-x509.png
+#usr/share/info/gnutls.info
+#usr/share/info/gnutls.info-1
+#usr/share/info/gnutls.info-2
+#usr/share/info/gnutls.info-3
+#usr/share/info/gnutls.info-4
+#usr/share/info/gnutls.info-5
+#usr/share/info/gnutls.info-6
+#usr/share/info/pkcs11-vision.png
+#usr/share/locale/cs/LC_MESSAGES/gnutls.mo
+#usr/share/locale/de/LC_MESSAGES/gnutls.mo
+#usr/share/locale/en@boldquot/LC_MESSAGES/gnutls.mo
+#usr/share/locale/en@quot/LC_MESSAGES/gnutls.mo
+#usr/share/locale/eo/LC_MESSAGES/gnutls.mo
+#usr/share/locale/fi/LC_MESSAGES/gnutls.mo
+#usr/share/locale/fr/LC_MESSAGES/gnutls.mo
+#usr/share/locale/it/LC_MESSAGES/gnutls.mo
+#usr/share/locale/ms/LC_MESSAGES/gnutls.mo
+#usr/share/locale/nl/LC_MESSAGES/gnutls.mo
+#usr/share/locale/pl/LC_MESSAGES/gnutls.mo
+#usr/share/locale/sv/LC_MESSAGES/gnutls.mo
+#usr/share/locale/uk/LC_MESSAGES/gnutls.mo
+#usr/share/locale/vi/LC_MESSAGES/gnutls.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/gnutls.mo
+#usr/share/man/man1/certtool.1
+#usr/share/man/man1/danetool.1
+#usr/share/man/man1/gnutls-cli-debug.1
+#usr/share/man/man1/gnutls-cli.1
+#usr/share/man/man1/gnutls-serv.1
+#usr/share/man/man1/ocsptool.1
+#usr/share/man/man1/p11tool.1
+#usr/share/man/man1/psktool.1
+#usr/share/man/man1/srptool.1
+#usr/share/man/man1/tpmtool.1
+#usr/share/man/man3/dane_cert_type_name.3
+#usr/share/man/man3/dane_cert_usage_name.3
+#usr/share/man/man3/dane_match_type_name.3
+#usr/share/man/man3/dane_query_data.3
+#usr/share/man/man3/dane_query_deinit.3
+#usr/share/man/man3/dane_query_entries.3
+#usr/share/man/man3/dane_query_status.3
+#usr/share/man/man3/dane_query_tlsa.3
+#usr/share/man/man3/dane_query_to_raw_tlsa.3
+#usr/share/man/man3/dane_raw_tlsa.3
+#usr/share/man/man3/dane_state_deinit.3
+#usr/share/man/man3/dane_state_init.3
+#usr/share/man/man3/dane_state_set_dlv_file.3
+#usr/share/man/man3/dane_strerror.3
+#usr/share/man/man3/dane_verification_status_print.3
+#usr/share/man/man3/dane_verify_crt.3
+#usr/share/man/man3/dane_verify_crt_raw.3
+#usr/share/man/man3/dane_verify_session_crt.3
+#usr/share/man/man3/gnutls_aead_cipher_decrypt.3
+#usr/share/man/man3/gnutls_aead_cipher_deinit.3
+#usr/share/man/man3/gnutls_aead_cipher_encrypt.3
+#usr/share/man/man3/gnutls_aead_cipher_init.3
+#usr/share/man/man3/gnutls_alert_get.3
+#usr/share/man/man3/gnutls_alert_get_name.3
+#usr/share/man/man3/gnutls_alert_get_strname.3
+#usr/share/man/man3/gnutls_alert_send.3
+#usr/share/man/man3/gnutls_alert_send_appropriate.3
+#usr/share/man/man3/gnutls_alpn_get_selected_protocol.3
+#usr/share/man/man3/gnutls_alpn_set_protocols.3
+#usr/share/man/man3/gnutls_anon_allocate_client_credentials.3
+#usr/share/man/man3/gnutls_anon_allocate_server_credentials.3
+#usr/share/man/man3/gnutls_anon_free_client_credentials.3
+#usr/share/man/man3/gnutls_anon_free_server_credentials.3
+#usr/share/man/man3/gnutls_anon_set_params_function.3
+#usr/share/man/man3/gnutls_anon_set_server_dh_params.3
+#usr/share/man/man3/gnutls_anon_set_server_known_dh_params.3
+#usr/share/man/man3/gnutls_anon_set_server_params_function.3
+#usr/share/man/man3/gnutls_auth_client_get_type.3
+#usr/share/man/man3/gnutls_auth_get_type.3
+#usr/share/man/man3/gnutls_auth_server_get_type.3
+#usr/share/man/man3/gnutls_buffer_append_data.3
+#usr/share/man/man3/gnutls_bye.3
+#usr/share/man/man3/gnutls_certificate_activation_time_peers.3
+#usr/share/man/man3/gnutls_certificate_allocate_credentials.3
+#usr/share/man/man3/gnutls_certificate_client_get_request_status.3
+#usr/share/man/man3/gnutls_certificate_expiration_time_peers.3
+#usr/share/man/man3/gnutls_certificate_free_ca_names.3
+#usr/share/man/man3/gnutls_certificate_free_cas.3
+#usr/share/man/man3/gnutls_certificate_free_credentials.3
+#usr/share/man/man3/gnutls_certificate_free_crls.3
+#usr/share/man/man3/gnutls_certificate_free_keys.3
+#usr/share/man/man3/gnutls_certificate_get_crt_raw.3
+#usr/share/man/man3/gnutls_certificate_get_issuer.3
+#usr/share/man/man3/gnutls_certificate_get_ours.3
+#usr/share/man/man3/gnutls_certificate_get_peers.3
+#usr/share/man/man3/gnutls_certificate_get_peers_subkey_id.3
+#usr/share/man/man3/gnutls_certificate_get_trust_list.3
+#usr/share/man/man3/gnutls_certificate_get_verify_flags.3
+#usr/share/man/man3/gnutls_certificate_get_x509_crt.3
+#usr/share/man/man3/gnutls_certificate_get_x509_key.3
+#usr/share/man/man3/gnutls_certificate_send_x509_rdn_sequence.3
+#usr/share/man/man3/gnutls_certificate_server_set_request.3
+#usr/share/man/man3/gnutls_certificate_set_dh_params.3
+#usr/share/man/man3/gnutls_certificate_set_flags.3
+#usr/share/man/man3/gnutls_certificate_set_key.3
+#usr/share/man/man3/gnutls_certificate_set_known_dh_params.3
+#usr/share/man/man3/gnutls_certificate_set_ocsp_status_request_file.3
+#usr/share/man/man3/gnutls_certificate_set_ocsp_status_request_function.3
+#usr/share/man/man3/gnutls_certificate_set_ocsp_status_request_function2.3
+#usr/share/man/man3/gnutls_certificate_set_params_function.3
+#usr/share/man/man3/gnutls_certificate_set_pin_function.3
+#usr/share/man/man3/gnutls_certificate_set_retrieve_function.3
+#usr/share/man/man3/gnutls_certificate_set_retrieve_function2.3
+#usr/share/man/man3/gnutls_certificate_set_trust_list.3
+#usr/share/man/man3/gnutls_certificate_set_verify_flags.3
+#usr/share/man/man3/gnutls_certificate_set_verify_function.3
+#usr/share/man/man3/gnutls_certificate_set_verify_limits.3
+#usr/share/man/man3/gnutls_certificate_set_x509_crl.3
+#usr/share/man/man3/gnutls_certificate_set_x509_crl_file.3
+#usr/share/man/man3/gnutls_certificate_set_x509_crl_mem.3
+#usr/share/man/man3/gnutls_certificate_set_x509_key.3
+#usr/share/man/man3/gnutls_certificate_set_x509_key_file.3
+#usr/share/man/man3/gnutls_certificate_set_x509_key_file2.3
+#usr/share/man/man3/gnutls_certificate_set_x509_key_mem.3
+#usr/share/man/man3/gnutls_certificate_set_x509_key_mem2.3
+#usr/share/man/man3/gnutls_certificate_set_x509_simple_pkcs12_file.3
+#usr/share/man/man3/gnutls_certificate_set_x509_simple_pkcs12_mem.3
+#usr/share/man/man3/gnutls_certificate_set_x509_system_trust.3
+#usr/share/man/man3/gnutls_certificate_set_x509_trust.3
+#usr/share/man/man3/gnutls_certificate_set_x509_trust_dir.3
+#usr/share/man/man3/gnutls_certificate_set_x509_trust_file.3
+#usr/share/man/man3/gnutls_certificate_set_x509_trust_mem.3
+#usr/share/man/man3/gnutls_certificate_type_get.3
+#usr/share/man/man3/gnutls_certificate_type_get_id.3
+#usr/share/man/man3/gnutls_certificate_type_get_name.3
+#usr/share/man/man3/gnutls_certificate_type_list.3
+#usr/share/man/man3/gnutls_certificate_verification_status_print.3
+#usr/share/man/man3/gnutls_certificate_verify_peers.3
+#usr/share/man/man3/gnutls_certificate_verify_peers2.3
+#usr/share/man/man3/gnutls_certificate_verify_peers3.3
+#usr/share/man/man3/gnutls_check_version.3
+#usr/share/man/man3/gnutls_cipher_add_auth.3
+#usr/share/man/man3/gnutls_cipher_decrypt.3
+#usr/share/man/man3/gnutls_cipher_decrypt2.3
+#usr/share/man/man3/gnutls_cipher_deinit.3
+#usr/share/man/man3/gnutls_cipher_encrypt.3
+#usr/share/man/man3/gnutls_cipher_encrypt2.3
+#usr/share/man/man3/gnutls_cipher_get.3
+#usr/share/man/man3/gnutls_cipher_get_block_size.3
+#usr/share/man/man3/gnutls_cipher_get_id.3
+#usr/share/man/man3/gnutls_cipher_get_iv_size.3
+#usr/share/man/man3/gnutls_cipher_get_key_size.3
+#usr/share/man/man3/gnutls_cipher_get_name.3
+#usr/share/man/man3/gnutls_cipher_get_tag_size.3
+#usr/share/man/man3/gnutls_cipher_init.3
+#usr/share/man/man3/gnutls_cipher_list.3
+#usr/share/man/man3/gnutls_cipher_set_iv.3
+#usr/share/man/man3/gnutls_cipher_suite_get_name.3
+#usr/share/man/man3/gnutls_cipher_suite_info.3
+#usr/share/man/man3/gnutls_cipher_tag.3
+#usr/share/man/man3/gnutls_compression_get.3
+#usr/share/man/man3/gnutls_compression_get_id.3
+#usr/share/man/man3/gnutls_compression_get_name.3
+#usr/share/man/man3/gnutls_compression_list.3
+#usr/share/man/man3/gnutls_credentials_clear.3
+#usr/share/man/man3/gnutls_credentials_get.3
+#usr/share/man/man3/gnutls_credentials_set.3
+#usr/share/man/man3/gnutls_crypto_register_aead_cipher.3
+#usr/share/man/man3/gnutls_crypto_register_cipher.3
+#usr/share/man/man3/gnutls_crypto_register_digest.3
+#usr/share/man/man3/gnutls_crypto_register_mac.3
+#usr/share/man/man3/gnutls_db_check_entry.3
+#usr/share/man/man3/gnutls_db_check_entry_time.3
+#usr/share/man/man3/gnutls_db_get_default_cache_expiration.3
+#usr/share/man/man3/gnutls_db_get_ptr.3
+#usr/share/man/man3/gnutls_db_remove_session.3
+#usr/share/man/man3/gnutls_db_set_cache_expiration.3
+#usr/share/man/man3/gnutls_db_set_ptr.3
+#usr/share/man/man3/gnutls_db_set_remove_function.3
+#usr/share/man/man3/gnutls_db_set_retrieve_function.3
+#usr/share/man/man3/gnutls_db_set_store_function.3
+#usr/share/man/man3/gnutls_decode_ber_digest_info.3
+#usr/share/man/man3/gnutls_deinit.3
+#usr/share/man/man3/gnutls_dh_get_group.3
+#usr/share/man/man3/gnutls_dh_get_peers_public_bits.3
+#usr/share/man/man3/gnutls_dh_get_prime_bits.3
+#usr/share/man/man3/gnutls_dh_get_pubkey.3
+#usr/share/man/man3/gnutls_dh_get_secret_bits.3
+#usr/share/man/man3/gnutls_dh_params_cpy.3
+#usr/share/man/man3/gnutls_dh_params_deinit.3
+#usr/share/man/man3/gnutls_dh_params_export2_pkcs3.3
+#usr/share/man/man3/gnutls_dh_params_export_pkcs3.3
+#usr/share/man/man3/gnutls_dh_params_export_raw.3
+#usr/share/man/man3/gnutls_dh_params_generate2.3
+#usr/share/man/man3/gnutls_dh_params_import_dsa.3
+#usr/share/man/man3/gnutls_dh_params_import_pkcs3.3
+#usr/share/man/man3/gnutls_dh_params_import_raw.3
+#usr/share/man/man3/gnutls_dh_params_import_raw2.3
+#usr/share/man/man3/gnutls_dh_params_init.3
+#usr/share/man/man3/gnutls_dh_set_prime_bits.3
+#usr/share/man/man3/gnutls_digest_get_id.3
+#usr/share/man/man3/gnutls_digest_get_name.3
+#usr/share/man/man3/gnutls_digest_get_oid.3
+#usr/share/man/man3/gnutls_digest_list.3
+#usr/share/man/man3/gnutls_dtls_cookie_send.3
+#usr/share/man/man3/gnutls_dtls_cookie_verify.3
+#usr/share/man/man3/gnutls_dtls_get_data_mtu.3
+#usr/share/man/man3/gnutls_dtls_get_mtu.3
+#usr/share/man/man3/gnutls_dtls_get_timeout.3
+#usr/share/man/man3/gnutls_dtls_prestate_set.3
+#usr/share/man/man3/gnutls_dtls_set_data_mtu.3
+#usr/share/man/man3/gnutls_dtls_set_mtu.3
+#usr/share/man/man3/gnutls_dtls_set_timeouts.3
+#usr/share/man/man3/gnutls_ecc_curve_get.3
+#usr/share/man/man3/gnutls_ecc_curve_get_id.3
+#usr/share/man/man3/gnutls_ecc_curve_get_name.3
+#usr/share/man/man3/gnutls_ecc_curve_get_oid.3
+#usr/share/man/man3/gnutls_ecc_curve_get_pk.3
+#usr/share/man/man3/gnutls_ecc_curve_get_size.3
+#usr/share/man/man3/gnutls_ecc_curve_list.3
+#usr/share/man/man3/gnutls_encode_ber_digest_info.3
+#usr/share/man/man3/gnutls_error_is_fatal.3
+#usr/share/man/man3/gnutls_error_to_alert.3
+#usr/share/man/man3/gnutls_est_record_overhead_size.3
+#usr/share/man/man3/gnutls_ext_get_data.3
+#usr/share/man/man3/gnutls_ext_get_name.3
+#usr/share/man/man3/gnutls_ext_register.3
+#usr/share/man/man3/gnutls_ext_set_data.3
+#usr/share/man/man3/gnutls_fingerprint.3
+#usr/share/man/man3/gnutls_fips140_mode_enabled.3
+#usr/share/man/man3/gnutls_global_deinit.3
+#usr/share/man/man3/gnutls_global_init.3
+#usr/share/man/man3/gnutls_global_set_audit_log_function.3
+#usr/share/man/man3/gnutls_global_set_log_function.3
+#usr/share/man/man3/gnutls_global_set_log_level.3
+#usr/share/man/man3/gnutls_global_set_mem_functions.3
+#usr/share/man/man3/gnutls_global_set_mutex.3
+#usr/share/man/man3/gnutls_global_set_time_function.3
+#usr/share/man/man3/gnutls_handshake.3
+#usr/share/man/man3/gnutls_handshake_description_get_name.3
+#usr/share/man/man3/gnutls_handshake_get_last_in.3
+#usr/share/man/man3/gnutls_handshake_get_last_out.3
+#usr/share/man/man3/gnutls_handshake_set_hook_function.3
+#usr/share/man/man3/gnutls_handshake_set_max_packet_length.3
+#usr/share/man/man3/gnutls_handshake_set_post_client_hello_function.3
+#usr/share/man/man3/gnutls_handshake_set_private_extensions.3
+#usr/share/man/man3/gnutls_handshake_set_random.3
+#usr/share/man/man3/gnutls_handshake_set_timeout.3
+#usr/share/man/man3/gnutls_hash.3
+#usr/share/man/man3/gnutls_hash_deinit.3
+#usr/share/man/man3/gnutls_hash_fast.3
+#usr/share/man/man3/gnutls_hash_get_len.3
+#usr/share/man/man3/gnutls_hash_init.3
+#usr/share/man/man3/gnutls_hash_output.3
+#usr/share/man/man3/gnutls_heartbeat_allowed.3
+#usr/share/man/man3/gnutls_heartbeat_enable.3
+#usr/share/man/man3/gnutls_heartbeat_get_timeout.3
+#usr/share/man/man3/gnutls_heartbeat_ping.3
+#usr/share/man/man3/gnutls_heartbeat_pong.3
+#usr/share/man/man3/gnutls_heartbeat_set_timeouts.3
+#usr/share/man/man3/gnutls_hex2bin.3
+#usr/share/man/man3/gnutls_hex_decode.3
+#usr/share/man/man3/gnutls_hex_decode2.3
+#usr/share/man/man3/gnutls_hex_encode.3
+#usr/share/man/man3/gnutls_hex_encode2.3
+#usr/share/man/man3/gnutls_hmac.3
+#usr/share/man/man3/gnutls_hmac_deinit.3
+#usr/share/man/man3/gnutls_hmac_fast.3
+#usr/share/man/man3/gnutls_hmac_get_len.3
+#usr/share/man/man3/gnutls_hmac_init.3
+#usr/share/man/man3/gnutls_hmac_output.3
+#usr/share/man/man3/gnutls_hmac_set_nonce.3
+#usr/share/man/man3/gnutls_idna_map.3
+#usr/share/man/man3/gnutls_idna_reverse_map.3
+#usr/share/man/man3/gnutls_init.3
+#usr/share/man/man3/gnutls_key_generate.3
+#usr/share/man/man3/gnutls_kx_get.3
+#usr/share/man/man3/gnutls_kx_get_id.3
+#usr/share/man/man3/gnutls_kx_get_name.3
+#usr/share/man/man3/gnutls_kx_list.3
+#usr/share/man/man3/gnutls_load_file.3
+#usr/share/man/man3/gnutls_mac_get.3
+#usr/share/man/man3/gnutls_mac_get_id.3
+#usr/share/man/man3/gnutls_mac_get_key_size.3
+#usr/share/man/man3/gnutls_mac_get_name.3
+#usr/share/man/man3/gnutls_mac_get_nonce_size.3
+#usr/share/man/man3/gnutls_mac_list.3
+#usr/share/man/man3/gnutls_memcmp.3
+#usr/share/man/man3/gnutls_memset.3
+#usr/share/man/man3/gnutls_ocsp_req_add_cert.3
+#usr/share/man/man3/gnutls_ocsp_req_add_cert_id.3
+#usr/share/man/man3/gnutls_ocsp_req_deinit.3
+#usr/share/man/man3/gnutls_ocsp_req_export.3
+#usr/share/man/man3/gnutls_ocsp_req_get_cert_id.3
+#usr/share/man/man3/gnutls_ocsp_req_get_extension.3
+#usr/share/man/man3/gnutls_ocsp_req_get_nonce.3
+#usr/share/man/man3/gnutls_ocsp_req_get_version.3
+#usr/share/man/man3/gnutls_ocsp_req_import.3
+#usr/share/man/man3/gnutls_ocsp_req_init.3
+#usr/share/man/man3/gnutls_ocsp_req_print.3
+#usr/share/man/man3/gnutls_ocsp_req_randomize_nonce.3
+#usr/share/man/man3/gnutls_ocsp_req_set_extension.3
+#usr/share/man/man3/gnutls_ocsp_req_set_nonce.3
+#usr/share/man/man3/gnutls_ocsp_resp_check_crt.3
+#usr/share/man/man3/gnutls_ocsp_resp_deinit.3
+#usr/share/man/man3/gnutls_ocsp_resp_export.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_certs.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_extension.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_nonce.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_produced.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_responder.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_responder2.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_responder_raw_id.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_response.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_signature.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_signature_algorithm.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_single.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_status.3
+#usr/share/man/man3/gnutls_ocsp_resp_get_version.3
+#usr/share/man/man3/gnutls_ocsp_resp_import.3
+#usr/share/man/man3/gnutls_ocsp_resp_init.3
+#usr/share/man/man3/gnutls_ocsp_resp_print.3
+#usr/share/man/man3/gnutls_ocsp_resp_verify.3
+#usr/share/man/man3/gnutls_ocsp_resp_verify_direct.3
+#usr/share/man/man3/gnutls_ocsp_status_request_enable_client.3
+#usr/share/man/man3/gnutls_ocsp_status_request_get.3
+#usr/share/man/man3/gnutls_ocsp_status_request_is_checked.3
+#usr/share/man/man3/gnutls_oid_to_digest.3
+#usr/share/man/man3/gnutls_oid_to_ecc_curve.3
+#usr/share/man/man3/gnutls_oid_to_mac.3
+#usr/share/man/man3/gnutls_oid_to_pk.3
+#usr/share/man/man3/gnutls_oid_to_sign.3
+#usr/share/man/man3/gnutls_openpgp_privkey_sign_hash.3
+#usr/share/man/man3/gnutls_openpgp_send_cert.3
+#usr/share/man/man3/gnutls_packet_deinit.3
+#usr/share/man/man3/gnutls_packet_get.3
+#usr/share/man/man3/gnutls_pcert_deinit.3
+#usr/share/man/man3/gnutls_pcert_export_openpgp.3
+#usr/share/man/man3/gnutls_pcert_export_x509.3
+#usr/share/man/man3/gnutls_pcert_import_openpgp.3
+#usr/share/man/man3/gnutls_pcert_import_openpgp_raw.3
+#usr/share/man/man3/gnutls_pcert_import_x509.3
+#usr/share/man/man3/gnutls_pcert_import_x509_list.3
+#usr/share/man/man3/gnutls_pcert_import_x509_raw.3
+#usr/share/man/man3/gnutls_pcert_list_import_x509_raw.3
+#usr/share/man/man3/gnutls_pem_base64_decode.3
+#usr/share/man/man3/gnutls_pem_base64_decode2.3
+#usr/share/man/man3/gnutls_pem_base64_encode.3
+#usr/share/man/man3/gnutls_pem_base64_encode2.3
+#usr/share/man/man3/gnutls_perror.3
+#usr/share/man/man3/gnutls_pk_algorithm_get_name.3
+#usr/share/man/man3/gnutls_pk_bits_to_sec_param.3
+#usr/share/man/man3/gnutls_pk_get_id.3
+#usr/share/man/man3/gnutls_pk_get_name.3
+#usr/share/man/man3/gnutls_pk_get_oid.3
+#usr/share/man/man3/gnutls_pk_list.3
+#usr/share/man/man3/gnutls_pk_to_sign.3
+#usr/share/man/man3/gnutls_pkcs11_add_provider.3
+#usr/share/man/man3/gnutls_pkcs11_copy_attached_extension.3
+#usr/share/man/man3/gnutls_pkcs11_copy_pubkey.3
+#usr/share/man/man3/gnutls_pkcs11_copy_secret_key.3
+#usr/share/man/man3/gnutls_pkcs11_copy_x509_crt.3
+#usr/share/man/man3/gnutls_pkcs11_copy_x509_crt2.3
+#usr/share/man/man3/gnutls_pkcs11_copy_x509_privkey.3
+#usr/share/man/man3/gnutls_pkcs11_copy_x509_privkey2.3
+#usr/share/man/man3/gnutls_pkcs11_crt_is_known.3
+#usr/share/man/man3/gnutls_pkcs11_deinit.3
+#usr/share/man/man3/gnutls_pkcs11_delete_url.3
+#usr/share/man/man3/gnutls_pkcs11_get_pin_function.3
+#usr/share/man/man3/gnutls_pkcs11_get_raw_issuer.3
+#usr/share/man/man3/gnutls_pkcs11_get_raw_issuer_by_dn.3
+#usr/share/man/man3/gnutls_pkcs11_get_raw_issuer_by_subject_key_id.3
+#usr/share/man/man3/gnutls_pkcs11_init.3
+#usr/share/man/man3/gnutls_pkcs11_obj_deinit.3
+#usr/share/man/man3/gnutls_pkcs11_obj_export.3
+#usr/share/man/man3/gnutls_pkcs11_obj_export2.3
+#usr/share/man/man3/gnutls_pkcs11_obj_export3.3
+#usr/share/man/man3/gnutls_pkcs11_obj_export_url.3
+#usr/share/man/man3/gnutls_pkcs11_obj_flags_get_str.3
+#usr/share/man/man3/gnutls_pkcs11_obj_get_exts.3
+#usr/share/man/man3/gnutls_pkcs11_obj_get_flags.3
+#usr/share/man/man3/gnutls_pkcs11_obj_get_info.3
+#usr/share/man/man3/gnutls_pkcs11_obj_get_type.3
+#usr/share/man/man3/gnutls_pkcs11_obj_import_url.3
+#usr/share/man/man3/gnutls_pkcs11_obj_init.3
+#usr/share/man/man3/gnutls_pkcs11_obj_list_import_url3.3
+#usr/share/man/man3/gnutls_pkcs11_obj_list_import_url4.3
+#usr/share/man/man3/gnutls_pkcs11_obj_set_info.3
+#usr/share/man/man3/gnutls_pkcs11_obj_set_pin_function.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_cpy.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_deinit.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_export_pubkey.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_export_url.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_generate.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_generate2.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_generate3.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_get_info.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_get_pk_algorithm.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_import_url.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_init.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_set_pin_function.3
+#usr/share/man/man3/gnutls_pkcs11_privkey_status.3
+#usr/share/man/man3/gnutls_pkcs11_reinit.3
+#usr/share/man/man3/gnutls_pkcs11_set_pin_function.3
+#usr/share/man/man3/gnutls_pkcs11_set_token_function.3
+#usr/share/man/man3/gnutls_pkcs11_token_get_flags.3
+#usr/share/man/man3/gnutls_pkcs11_token_get_info.3
+#usr/share/man/man3/gnutls_pkcs11_token_get_mechanism.3
+#usr/share/man/man3/gnutls_pkcs11_token_get_random.3
+#usr/share/man/man3/gnutls_pkcs11_token_get_url.3
+#usr/share/man/man3/gnutls_pkcs11_token_init.3
+#usr/share/man/man3/gnutls_pkcs11_token_set_pin.3
+#usr/share/man/man3/gnutls_pkcs11_type_get_name.3
+#usr/share/man/man3/gnutls_pkcs12_bag_decrypt.3
+#usr/share/man/man3/gnutls_pkcs12_bag_deinit.3
+#usr/share/man/man3/gnutls_pkcs12_bag_enc_info.3
+#usr/share/man/man3/gnutls_pkcs12_bag_encrypt.3
+#usr/share/man/man3/gnutls_pkcs12_bag_get_count.3
+#usr/share/man/man3/gnutls_pkcs12_bag_get_data.3
+#usr/share/man/man3/gnutls_pkcs12_bag_get_friendly_name.3
+#usr/share/man/man3/gnutls_pkcs12_bag_get_key_id.3
+#usr/share/man/man3/gnutls_pkcs12_bag_get_type.3
+#usr/share/man/man3/gnutls_pkcs12_bag_init.3
+#usr/share/man/man3/gnutls_pkcs12_bag_set_crl.3
+#usr/share/man/man3/gnutls_pkcs12_bag_set_crt.3
+#usr/share/man/man3/gnutls_pkcs12_bag_set_data.3
+#usr/share/man/man3/gnutls_pkcs12_bag_set_friendly_name.3
+#usr/share/man/man3/gnutls_pkcs12_bag_set_key_id.3
+#usr/share/man/man3/gnutls_pkcs12_bag_set_privkey.3
+#usr/share/man/man3/gnutls_pkcs12_deinit.3
+#usr/share/man/man3/gnutls_pkcs12_export.3
+#usr/share/man/man3/gnutls_pkcs12_export2.3
+#usr/share/man/man3/gnutls_pkcs12_generate_mac.3
+#usr/share/man/man3/gnutls_pkcs12_generate_mac2.3
+#usr/share/man/man3/gnutls_pkcs12_get_bag.3
+#usr/share/man/man3/gnutls_pkcs12_import.3
+#usr/share/man/man3/gnutls_pkcs12_init.3
+#usr/share/man/man3/gnutls_pkcs12_mac_info.3
+#usr/share/man/man3/gnutls_pkcs12_set_bag.3
+#usr/share/man/man3/gnutls_pkcs12_simple_parse.3
+#usr/share/man/man3/gnutls_pkcs12_verify_mac.3
+#usr/share/man/man3/gnutls_pkcs7_add_attr.3
+#usr/share/man/man3/gnutls_pkcs7_attrs_deinit.3
+#usr/share/man/man3/gnutls_pkcs7_deinit.3
+#usr/share/man/man3/gnutls_pkcs7_delete_crl.3
+#usr/share/man/man3/gnutls_pkcs7_delete_crt.3
+#usr/share/man/man3/gnutls_pkcs7_export.3
+#usr/share/man/man3/gnutls_pkcs7_export2.3
+#usr/share/man/man3/gnutls_pkcs7_get_attr.3
+#usr/share/man/man3/gnutls_pkcs7_get_crl_count.3
+#usr/share/man/man3/gnutls_pkcs7_get_crl_raw.3
+#usr/share/man/man3/gnutls_pkcs7_get_crl_raw2.3
+#usr/share/man/man3/gnutls_pkcs7_get_crt_count.3
+#usr/share/man/man3/gnutls_pkcs7_get_crt_raw.3
+#usr/share/man/man3/gnutls_pkcs7_get_crt_raw2.3
+#usr/share/man/man3/gnutls_pkcs7_get_embedded_data.3
+#usr/share/man/man3/gnutls_pkcs7_get_embedded_data_oid.3
+#usr/share/man/man3/gnutls_pkcs7_get_signature_count.3
+#usr/share/man/man3/gnutls_pkcs7_get_signature_info.3
+#usr/share/man/man3/gnutls_pkcs7_import.3
+#usr/share/man/man3/gnutls_pkcs7_init.3
+#usr/share/man/man3/gnutls_pkcs7_print.3
+#usr/share/man/man3/gnutls_pkcs7_set_crl.3
+#usr/share/man/man3/gnutls_pkcs7_set_crl_raw.3
+#usr/share/man/man3/gnutls_pkcs7_set_crt.3
+#usr/share/man/man3/gnutls_pkcs7_set_crt_raw.3
+#usr/share/man/man3/gnutls_pkcs7_sign.3
+#usr/share/man/man3/gnutls_pkcs7_signature_info_deinit.3
+#usr/share/man/man3/gnutls_pkcs7_verify.3
+#usr/share/man/man3/gnutls_pkcs7_verify_direct.3
+#usr/share/man/man3/gnutls_pkcs8_info.3
+#usr/share/man/man3/gnutls_pkcs_schema_get_name.3
+#usr/share/man/man3/gnutls_pkcs_schema_get_oid.3
+#usr/share/man/man3/gnutls_prf.3
+#usr/share/man/man3/gnutls_prf_raw.3
+#usr/share/man/man3/gnutls_prf_rfc5705.3
+#usr/share/man/man3/gnutls_priority_certificate_type_list.3
+#usr/share/man/man3/gnutls_priority_cipher_list.3
+#usr/share/man/man3/gnutls_priority_compression_list.3
+#usr/share/man/man3/gnutls_priority_deinit.3
+#usr/share/man/man3/gnutls_priority_ecc_curve_list.3
+#usr/share/man/man3/gnutls_priority_get_cipher_suite_index.3
+#usr/share/man/man3/gnutls_priority_init.3
+#usr/share/man/man3/gnutls_priority_kx_list.3
+#usr/share/man/man3/gnutls_priority_mac_list.3
+#usr/share/man/man3/gnutls_priority_protocol_list.3
+#usr/share/man/man3/gnutls_priority_set.3
+#usr/share/man/man3/gnutls_priority_set_direct.3
+#usr/share/man/man3/gnutls_priority_sign_list.3
+#usr/share/man/man3/gnutls_priority_string_list.3
+#usr/share/man/man3/gnutls_privkey_decrypt_data.3
+#usr/share/man/man3/gnutls_privkey_deinit.3
+#usr/share/man/man3/gnutls_privkey_export_dsa_raw.3
+#usr/share/man/man3/gnutls_privkey_export_ecc_raw.3
+#usr/share/man/man3/gnutls_privkey_export_openpgp.3
+#usr/share/man/man3/gnutls_privkey_export_pkcs11.3
+#usr/share/man/man3/gnutls_privkey_export_rsa_raw.3
+#usr/share/man/man3/gnutls_privkey_export_x509.3
+#usr/share/man/man3/gnutls_privkey_generate.3
+#usr/share/man/man3/gnutls_privkey_generate2.3
+#usr/share/man/man3/gnutls_privkey_get_pk_algorithm.3
+#usr/share/man/man3/gnutls_privkey_get_seed.3
+#usr/share/man/man3/gnutls_privkey_get_type.3
+#usr/share/man/man3/gnutls_privkey_import_dsa_raw.3
+#usr/share/man/man3/gnutls_privkey_import_ecc_raw.3
+#usr/share/man/man3/gnutls_privkey_import_ext.3
+#usr/share/man/man3/gnutls_privkey_import_ext2.3
+#usr/share/man/man3/gnutls_privkey_import_ext3.3
+#usr/share/man/man3/gnutls_privkey_import_openpgp.3
+#usr/share/man/man3/gnutls_privkey_import_openpgp_raw.3
+#usr/share/man/man3/gnutls_privkey_import_pkcs11.3
+#usr/share/man/man3/gnutls_privkey_import_pkcs11_url.3
+#usr/share/man/man3/gnutls_privkey_import_rsa_raw.3
+#usr/share/man/man3/gnutls_privkey_import_tpm_raw.3
+#usr/share/man/man3/gnutls_privkey_import_tpm_url.3
+#usr/share/man/man3/gnutls_privkey_import_url.3
+#usr/share/man/man3/gnutls_privkey_import_x509.3
+#usr/share/man/man3/gnutls_privkey_import_x509_raw.3
+#usr/share/man/man3/gnutls_privkey_init.3
+#usr/share/man/man3/gnutls_privkey_set_flags.3
+#usr/share/man/man3/gnutls_privkey_set_pin_function.3
+#usr/share/man/man3/gnutls_privkey_sign_data.3
+#usr/share/man/man3/gnutls_privkey_sign_hash.3
+#usr/share/man/man3/gnutls_privkey_status.3
+#usr/share/man/man3/gnutls_privkey_verify_params.3
+#usr/share/man/man3/gnutls_privkey_verify_seed.3
+#usr/share/man/man3/gnutls_protocol_get_id.3
+#usr/share/man/man3/gnutls_protocol_get_name.3
+#usr/share/man/man3/gnutls_protocol_get_version.3
+#usr/share/man/man3/gnutls_protocol_list.3
+#usr/share/man/man3/gnutls_psk_allocate_client_credentials.3
+#usr/share/man/man3/gnutls_psk_allocate_server_credentials.3
+#usr/share/man/man3/gnutls_psk_client_get_hint.3
+#usr/share/man/man3/gnutls_psk_free_client_credentials.3
+#usr/share/man/man3/gnutls_psk_free_server_credentials.3
+#usr/share/man/man3/gnutls_psk_server_get_username.3
+#usr/share/man/man3/gnutls_psk_set_client_credentials.3
+#usr/share/man/man3/gnutls_psk_set_client_credentials_function.3
+#usr/share/man/man3/gnutls_psk_set_params_function.3
+#usr/share/man/man3/gnutls_psk_set_server_credentials_file.3
+#usr/share/man/man3/gnutls_psk_set_server_credentials_function.3
+#usr/share/man/man3/gnutls_psk_set_server_credentials_hint.3
+#usr/share/man/man3/gnutls_psk_set_server_dh_params.3
+#usr/share/man/man3/gnutls_psk_set_server_known_dh_params.3
+#usr/share/man/man3/gnutls_psk_set_server_params_function.3
+#usr/share/man/man3/gnutls_pubkey_deinit.3
+#usr/share/man/man3/gnutls_pubkey_encrypt_data.3
+#usr/share/man/man3/gnutls_pubkey_export.3
+#usr/share/man/man3/gnutls_pubkey_export2.3
+#usr/share/man/man3/gnutls_pubkey_export_dsa_raw.3
+#usr/share/man/man3/gnutls_pubkey_export_ecc_raw.3
+#usr/share/man/man3/gnutls_pubkey_export_ecc_x962.3
+#usr/share/man/man3/gnutls_pubkey_export_rsa_raw.3
+#usr/share/man/man3/gnutls_pubkey_get_key_id.3
+#usr/share/man/man3/gnutls_pubkey_get_key_usage.3
+#usr/share/man/man3/gnutls_pubkey_get_openpgp_key_id.3
+#usr/share/man/man3/gnutls_pubkey_get_pk_algorithm.3
+#usr/share/man/man3/gnutls_pubkey_get_preferred_hash_algorithm.3
+#usr/share/man/man3/gnutls_pubkey_import.3
+#usr/share/man/man3/gnutls_pubkey_import_dsa_raw.3
+#usr/share/man/man3/gnutls_pubkey_import_ecc_raw.3
+#usr/share/man/man3/gnutls_pubkey_import_ecc_x962.3
+#usr/share/man/man3/gnutls_pubkey_import_openpgp.3
+#usr/share/man/man3/gnutls_pubkey_import_openpgp_raw.3
+#usr/share/man/man3/gnutls_pubkey_import_pkcs11.3
+#usr/share/man/man3/gnutls_pubkey_import_privkey.3
+#usr/share/man/man3/gnutls_pubkey_import_rsa_raw.3
+#usr/share/man/man3/gnutls_pubkey_import_tpm_raw.3
+#usr/share/man/man3/gnutls_pubkey_import_tpm_url.3
+#usr/share/man/man3/gnutls_pubkey_import_url.3
+#usr/share/man/man3/gnutls_pubkey_import_x509.3
+#usr/share/man/man3/gnutls_pubkey_import_x509_crq.3
+#usr/share/man/man3/gnutls_pubkey_import_x509_raw.3
+#usr/share/man/man3/gnutls_pubkey_init.3
+#usr/share/man/man3/gnutls_pubkey_print.3
+#usr/share/man/man3/gnutls_pubkey_set_key_usage.3
+#usr/share/man/man3/gnutls_pubkey_set_pin_function.3
+#usr/share/man/man3/gnutls_pubkey_verify_data2.3
+#usr/share/man/man3/gnutls_pubkey_verify_hash2.3
+#usr/share/man/man3/gnutls_pubkey_verify_params.3
+#usr/share/man/man3/gnutls_random_art.3
+#usr/share/man/man3/gnutls_range_split.3
+#usr/share/man/man3/gnutls_record_can_use_length_hiding.3
+#usr/share/man/man3/gnutls_record_check_corked.3
+#usr/share/man/man3/gnutls_record_check_pending.3
+#usr/share/man/man3/gnutls_record_cork.3
+#usr/share/man/man3/gnutls_record_disable_padding.3
+#usr/share/man/man3/gnutls_record_discard_queued.3
+#usr/share/man/man3/gnutls_record_get_direction.3
+#usr/share/man/man3/gnutls_record_get_discarded.3
+#usr/share/man/man3/gnutls_record_get_max_size.3
+#usr/share/man/man3/gnutls_record_get_state.3
+#usr/share/man/man3/gnutls_record_overhead_size.3
+#usr/share/man/man3/gnutls_record_recv.3
+#usr/share/man/man3/gnutls_record_recv_packet.3
+#usr/share/man/man3/gnutls_record_recv_seq.3
+#usr/share/man/man3/gnutls_record_send.3
+#usr/share/man/man3/gnutls_record_send_range.3
+#usr/share/man/man3/gnutls_record_set_max_size.3
+#usr/share/man/man3/gnutls_record_set_state.3
+#usr/share/man/man3/gnutls_record_set_timeout.3
+#usr/share/man/man3/gnutls_record_uncork.3
+#usr/share/man/man3/gnutls_register_custom_url.3
+#usr/share/man/man3/gnutls_rehandshake.3
+#usr/share/man/man3/gnutls_rnd.3
+#usr/share/man/man3/gnutls_rnd_refresh.3
+#usr/share/man/man3/gnutls_safe_renegotiation_status.3
+#usr/share/man/man3/gnutls_sec_param_get_name.3
+#usr/share/man/man3/gnutls_sec_param_to_pk_bits.3
+#usr/share/man/man3/gnutls_sec_param_to_symmetric_bits.3
+#usr/share/man/man3/gnutls_server_name_get.3
+#usr/share/man/man3/gnutls_server_name_set.3
+#usr/share/man/man3/gnutls_session_channel_binding.3
+#usr/share/man/man3/gnutls_session_enable_compatibility_mode.3
+#usr/share/man/man3/gnutls_session_etm_status.3
+#usr/share/man/man3/gnutls_session_ext_master_secret_status.3
+#usr/share/man/man3/gnutls_session_ext_register.3
+#usr/share/man/man3/gnutls_session_force_valid.3
+#usr/share/man/man3/gnutls_session_get_data.3
+#usr/share/man/man3/gnutls_session_get_data2.3
+#usr/share/man/man3/gnutls_session_get_desc.3
+#usr/share/man/man3/gnutls_session_get_flags.3
+#usr/share/man/man3/gnutls_session_get_id.3
+#usr/share/man/man3/gnutls_session_get_id2.3
+#usr/share/man/man3/gnutls_session_get_master_secret.3
+#usr/share/man/man3/gnutls_session_get_ptr.3
+#usr/share/man/man3/gnutls_session_get_random.3
+#usr/share/man/man3/gnutls_session_get_verify_cert_status.3
+#usr/share/man/man3/gnutls_session_is_resumed.3
+#usr/share/man/man3/gnutls_session_resumption_requested.3
+#usr/share/man/man3/gnutls_session_set_data.3
+#usr/share/man/man3/gnutls_session_set_id.3
+#usr/share/man/man3/gnutls_session_set_premaster.3
+#usr/share/man/man3/gnutls_session_set_ptr.3
+#usr/share/man/man3/gnutls_session_set_verify_cert.3
+#usr/share/man/man3/gnutls_session_set_verify_cert2.3
+#usr/share/man/man3/gnutls_session_set_verify_function.3
+#usr/share/man/man3/gnutls_session_supplemental_register.3
+#usr/share/man/man3/gnutls_session_ticket_enable_client.3
+#usr/share/man/man3/gnutls_session_ticket_enable_server.3
+#usr/share/man/man3/gnutls_session_ticket_key_generate.3
+#usr/share/man/man3/gnutls_set_default_priority.3
+#usr/share/man/man3/gnutls_sign_algorithm_get.3
+#usr/share/man/man3/gnutls_sign_algorithm_get_client.3
+#usr/share/man/man3/gnutls_sign_algorithm_get_requested.3
+#usr/share/man/man3/gnutls_sign_get_hash_algorithm.3
+#usr/share/man/man3/gnutls_sign_get_id.3
+#usr/share/man/man3/gnutls_sign_get_name.3
+#usr/share/man/man3/gnutls_sign_get_oid.3
+#usr/share/man/man3/gnutls_sign_get_pk_algorithm.3
+#usr/share/man/man3/gnutls_sign_is_secure.3
+#usr/share/man/man3/gnutls_sign_list.3
+#usr/share/man/man3/gnutls_srp_allocate_client_credentials.3
+#usr/share/man/man3/gnutls_srp_allocate_server_credentials.3
+#usr/share/man/man3/gnutls_srp_base64_decode.3
+#usr/share/man/man3/gnutls_srp_base64_decode2.3
+#usr/share/man/man3/gnutls_srp_base64_encode.3
+#usr/share/man/man3/gnutls_srp_base64_encode2.3
+#usr/share/man/man3/gnutls_srp_free_client_credentials.3
+#usr/share/man/man3/gnutls_srp_free_server_credentials.3
+#usr/share/man/man3/gnutls_srp_server_get_username.3
+#usr/share/man/man3/gnutls_srp_set_client_credentials.3
+#usr/share/man/man3/gnutls_srp_set_client_credentials_function.3
+#usr/share/man/man3/gnutls_srp_set_prime_bits.3
+#usr/share/man/man3/gnutls_srp_set_server_credentials_file.3
+#usr/share/man/man3/gnutls_srp_set_server_credentials_function.3
+#usr/share/man/man3/gnutls_srp_set_server_fake_salt_seed.3
+#usr/share/man/man3/gnutls_srp_verifier.3
+#usr/share/man/man3/gnutls_srtp_get_keys.3
+#usr/share/man/man3/gnutls_srtp_get_mki.3
+#usr/share/man/man3/gnutls_srtp_get_profile_id.3
+#usr/share/man/man3/gnutls_srtp_get_profile_name.3
+#usr/share/man/man3/gnutls_srtp_get_selected_profile.3
+#usr/share/man/man3/gnutls_srtp_set_mki.3
+#usr/share/man/man3/gnutls_srtp_set_profile.3
+#usr/share/man/man3/gnutls_srtp_set_profile_direct.3
+#usr/share/man/man3/gnutls_store_commitment.3
+#usr/share/man/man3/gnutls_store_pubkey.3
+#usr/share/man/man3/gnutls_strerror.3
+#usr/share/man/man3/gnutls_strerror_name.3
+#usr/share/man/man3/gnutls_subject_alt_names_deinit.3
+#usr/share/man/man3/gnutls_subject_alt_names_get.3
+#usr/share/man/man3/gnutls_subject_alt_names_init.3
+#usr/share/man/man3/gnutls_subject_alt_names_set.3
+#usr/share/man/man3/gnutls_supplemental_get_name.3
+#usr/share/man/man3/gnutls_supplemental_recv.3
+#usr/share/man/man3/gnutls_supplemental_register.3
+#usr/share/man/man3/gnutls_supplemental_send.3
+#usr/share/man/man3/gnutls_system_key_add_x509.3
+#usr/share/man/man3/gnutls_system_key_delete.3
+#usr/share/man/man3/gnutls_system_key_iter_deinit.3
+#usr/share/man/man3/gnutls_system_key_iter_get_info.3
+#usr/share/man/man3/gnutls_system_recv_timeout.3
+#usr/share/man/man3/gnutls_tdb_deinit.3
+#usr/share/man/man3/gnutls_tdb_init.3
+#usr/share/man/man3/gnutls_tdb_set_store_commitment_func.3
+#usr/share/man/man3/gnutls_tdb_set_store_func.3
+#usr/share/man/man3/gnutls_tdb_set_verify_func.3
+#usr/share/man/man3/gnutls_tpm_get_registered.3
+#usr/share/man/man3/gnutls_tpm_key_list_deinit.3
+#usr/share/man/man3/gnutls_tpm_key_list_get_url.3
+#usr/share/man/man3/gnutls_tpm_privkey_delete.3
+#usr/share/man/man3/gnutls_tpm_privkey_generate.3
+#usr/share/man/man3/gnutls_transport_get_int.3
+#usr/share/man/man3/gnutls_transport_get_int2.3
+#usr/share/man/man3/gnutls_transport_get_ptr.3
+#usr/share/man/man3/gnutls_transport_get_ptr2.3
+#usr/share/man/man3/gnutls_transport_set_errno.3
+#usr/share/man/man3/gnutls_transport_set_errno_function.3
+#usr/share/man/man3/gnutls_transport_set_fastopen.3
+#usr/share/man/man3/gnutls_transport_set_int.3
+#usr/share/man/man3/gnutls_transport_set_int2.3
+#usr/share/man/man3/gnutls_transport_set_ptr.3
+#usr/share/man/man3/gnutls_transport_set_ptr2.3
+#usr/share/man/man3/gnutls_transport_set_pull_function.3
+#usr/share/man/man3/gnutls_transport_set_pull_timeout_function.3
+#usr/share/man/man3/gnutls_transport_set_push_function.3
+#usr/share/man/man3/gnutls_transport_set_vec_push_function.3
+#usr/share/man/man3/gnutls_url_is_supported.3
+#usr/share/man/man3/gnutls_utf8_password_normalize.3
+#usr/share/man/man3/gnutls_verify_stored_pubkey.3
+#usr/share/man/man3/gnutls_x509_aia_deinit.3
+#usr/share/man/man3/gnutls_x509_aia_get.3
+#usr/share/man/man3/gnutls_x509_aia_init.3
+#usr/share/man/man3/gnutls_x509_aia_set.3
+#usr/share/man/man3/gnutls_x509_aki_deinit.3
+#usr/share/man/man3/gnutls_x509_aki_get_cert_issuer.3
+#usr/share/man/man3/gnutls_x509_aki_get_id.3
+#usr/share/man/man3/gnutls_x509_aki_init.3
+#usr/share/man/man3/gnutls_x509_aki_set_cert_issuer.3
+#usr/share/man/man3/gnutls_x509_aki_set_id.3
+#usr/share/man/man3/gnutls_x509_cidr_to_rfc5280.3
+#usr/share/man/man3/gnutls_x509_crl_check_issuer.3
+#usr/share/man/man3/gnutls_x509_crl_deinit.3
+#usr/share/man/man3/gnutls_x509_crl_dist_points_deinit.3
+#usr/share/man/man3/gnutls_x509_crl_dist_points_get.3
+#usr/share/man/man3/gnutls_x509_crl_dist_points_init.3
+#usr/share/man/man3/gnutls_x509_crl_dist_points_set.3
+#usr/share/man/man3/gnutls_x509_crl_export.3
+#usr/share/man/man3/gnutls_x509_crl_export2.3
+#usr/share/man/man3/gnutls_x509_crl_get_authority_key_gn_serial.3
+#usr/share/man/man3/gnutls_x509_crl_get_authority_key_id.3
+#usr/share/man/man3/gnutls_x509_crl_get_crt_count.3
+#usr/share/man/man3/gnutls_x509_crl_get_crt_serial.3
+#usr/share/man/man3/gnutls_x509_crl_get_dn_oid.3
+#usr/share/man/man3/gnutls_x509_crl_get_extension_data.3
+#usr/share/man/man3/gnutls_x509_crl_get_extension_data2.3
+#usr/share/man/man3/gnutls_x509_crl_get_extension_info.3
+#usr/share/man/man3/gnutls_x509_crl_get_extension_oid.3
+#usr/share/man/man3/gnutls_x509_crl_get_issuer_dn.3
+#usr/share/man/man3/gnutls_x509_crl_get_issuer_dn2.3
+#usr/share/man/man3/gnutls_x509_crl_get_issuer_dn3.3
+#usr/share/man/man3/gnutls_x509_crl_get_issuer_dn_by_oid.3
+#usr/share/man/man3/gnutls_x509_crl_get_next_update.3
+#usr/share/man/man3/gnutls_x509_crl_get_number.3
+#usr/share/man/man3/gnutls_x509_crl_get_raw_issuer_dn.3
+#usr/share/man/man3/gnutls_x509_crl_get_signature.3
+#usr/share/man/man3/gnutls_x509_crl_get_signature_algorithm.3
+#usr/share/man/man3/gnutls_x509_crl_get_signature_oid.3
+#usr/share/man/man3/gnutls_x509_crl_get_this_update.3
+#usr/share/man/man3/gnutls_x509_crl_get_version.3
+#usr/share/man/man3/gnutls_x509_crl_import.3
+#usr/share/man/man3/gnutls_x509_crl_init.3
+#usr/share/man/man3/gnutls_x509_crl_iter_crt_serial.3
+#usr/share/man/man3/gnutls_x509_crl_iter_deinit.3
+#usr/share/man/man3/gnutls_x509_crl_list_import.3
+#usr/share/man/man3/gnutls_x509_crl_list_import2.3
+#usr/share/man/man3/gnutls_x509_crl_print.3
+#usr/share/man/man3/gnutls_x509_crl_privkey_sign.3
+#usr/share/man/man3/gnutls_x509_crl_set_authority_key_id.3
+#usr/share/man/man3/gnutls_x509_crl_set_crt.3
+#usr/share/man/man3/gnutls_x509_crl_set_crt_serial.3
+#usr/share/man/man3/gnutls_x509_crl_set_next_update.3
+#usr/share/man/man3/gnutls_x509_crl_set_number.3
+#usr/share/man/man3/gnutls_x509_crl_set_this_update.3
+#usr/share/man/man3/gnutls_x509_crl_set_version.3
+#usr/share/man/man3/gnutls_x509_crl_sign.3
+#usr/share/man/man3/gnutls_x509_crl_sign2.3
+#usr/share/man/man3/gnutls_x509_crl_verify.3
+#usr/share/man/man3/gnutls_x509_crq_deinit.3
+#usr/share/man/man3/gnutls_x509_crq_export.3
+#usr/share/man/man3/gnutls_x509_crq_export2.3
+#usr/share/man/man3/gnutls_x509_crq_get_attribute_by_oid.3
+#usr/share/man/man3/gnutls_x509_crq_get_attribute_data.3
+#usr/share/man/man3/gnutls_x509_crq_get_attribute_info.3
+#usr/share/man/man3/gnutls_x509_crq_get_basic_constraints.3
+#usr/share/man/man3/gnutls_x509_crq_get_challenge_password.3
+#usr/share/man/man3/gnutls_x509_crq_get_dn.3
+#usr/share/man/man3/gnutls_x509_crq_get_dn2.3
+#usr/share/man/man3/gnutls_x509_crq_get_dn3.3
+#usr/share/man/man3/gnutls_x509_crq_get_dn_by_oid.3
+#usr/share/man/man3/gnutls_x509_crq_get_dn_oid.3
+#usr/share/man/man3/gnutls_x509_crq_get_extension_by_oid.3
+#usr/share/man/man3/gnutls_x509_crq_get_extension_by_oid2.3
+#usr/share/man/man3/gnutls_x509_crq_get_extension_data.3
+#usr/share/man/man3/gnutls_x509_crq_get_extension_data2.3
+#usr/share/man/man3/gnutls_x509_crq_get_extension_info.3
+#usr/share/man/man3/gnutls_x509_crq_get_key_id.3
+#usr/share/man/man3/gnutls_x509_crq_get_key_purpose_oid.3
+#usr/share/man/man3/gnutls_x509_crq_get_key_rsa_raw.3
+#usr/share/man/man3/gnutls_x509_crq_get_key_usage.3
+#usr/share/man/man3/gnutls_x509_crq_get_pk_algorithm.3
+#usr/share/man/man3/gnutls_x509_crq_get_pk_oid.3
+#usr/share/man/man3/gnutls_x509_crq_get_private_key_usage_period.3
+#usr/share/man/man3/gnutls_x509_crq_get_signature_algorithm.3
+#usr/share/man/man3/gnutls_x509_crq_get_signature_oid.3
+#usr/share/man/man3/gnutls_x509_crq_get_subject_alt_name.3
+#usr/share/man/man3/gnutls_x509_crq_get_subject_alt_othername_oid.3
+#usr/share/man/man3/gnutls_x509_crq_get_tlsfeatures.3
+#usr/share/man/man3/gnutls_x509_crq_get_version.3
+#usr/share/man/man3/gnutls_x509_crq_import.3
+#usr/share/man/man3/gnutls_x509_crq_init.3
+#usr/share/man/man3/gnutls_x509_crq_print.3
+#usr/share/man/man3/gnutls_x509_crq_privkey_sign.3
+#usr/share/man/man3/gnutls_x509_crq_set_attribute_by_oid.3
+#usr/share/man/man3/gnutls_x509_crq_set_basic_constraints.3
+#usr/share/man/man3/gnutls_x509_crq_set_challenge_password.3
+#usr/share/man/man3/gnutls_x509_crq_set_dn.3
+#usr/share/man/man3/gnutls_x509_crq_set_dn_by_oid.3
+#usr/share/man/man3/gnutls_x509_crq_set_extension_by_oid.3
+#usr/share/man/man3/gnutls_x509_crq_set_key.3
+#usr/share/man/man3/gnutls_x509_crq_set_key_purpose_oid.3
+#usr/share/man/man3/gnutls_x509_crq_set_key_rsa_raw.3
+#usr/share/man/man3/gnutls_x509_crq_set_key_usage.3
+#usr/share/man/man3/gnutls_x509_crq_set_private_key_usage_period.3
+#usr/share/man/man3/gnutls_x509_crq_set_pubkey.3
+#usr/share/man/man3/gnutls_x509_crq_set_subject_alt_name.3
+#usr/share/man/man3/gnutls_x509_crq_set_subject_alt_othername.3
+#usr/share/man/man3/gnutls_x509_crq_set_tlsfeatures.3
+#usr/share/man/man3/gnutls_x509_crq_set_version.3
+#usr/share/man/man3/gnutls_x509_crq_sign.3
+#usr/share/man/man3/gnutls_x509_crq_sign2.3
+#usr/share/man/man3/gnutls_x509_crq_verify.3
+#usr/share/man/man3/gnutls_x509_crt_check_email.3
+#usr/share/man/man3/gnutls_x509_crt_check_hostname.3
+#usr/share/man/man3/gnutls_x509_crt_check_hostname2.3
+#usr/share/man/man3/gnutls_x509_crt_check_issuer.3
+#usr/share/man/man3/gnutls_x509_crt_check_key_purpose.3
+#usr/share/man/man3/gnutls_x509_crt_check_revocation.3
+#usr/share/man/man3/gnutls_x509_crt_cpy_crl_dist_points.3
+#usr/share/man/man3/gnutls_x509_crt_deinit.3
+#usr/share/man/man3/gnutls_x509_crt_equals.3
+#usr/share/man/man3/gnutls_x509_crt_equals2.3
+#usr/share/man/man3/gnutls_x509_crt_export.3
+#usr/share/man/man3/gnutls_x509_crt_export2.3
+#usr/share/man/man3/gnutls_x509_crt_get_activation_time.3
+#usr/share/man/man3/gnutls_x509_crt_get_authority_info_access.3
+#usr/share/man/man3/gnutls_x509_crt_get_authority_key_gn_serial.3
+#usr/share/man/man3/gnutls_x509_crt_get_authority_key_id.3
+#usr/share/man/man3/gnutls_x509_crt_get_basic_constraints.3
+#usr/share/man/man3/gnutls_x509_crt_get_ca_status.3
+#usr/share/man/man3/gnutls_x509_crt_get_crl_dist_points.3
+#usr/share/man/man3/gnutls_x509_crt_get_dn.3
+#usr/share/man/man3/gnutls_x509_crt_get_dn2.3
+#usr/share/man/man3/gnutls_x509_crt_get_dn3.3
+#usr/share/man/man3/gnutls_x509_crt_get_dn_by_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_dn_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_expiration_time.3
+#usr/share/man/man3/gnutls_x509_crt_get_extension_by_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_extension_by_oid2.3
+#usr/share/man/man3/gnutls_x509_crt_get_extension_data.3
+#usr/share/man/man3/gnutls_x509_crt_get_extension_data2.3
+#usr/share/man/man3/gnutls_x509_crt_get_extension_info.3
+#usr/share/man/man3/gnutls_x509_crt_get_extension_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_fingerprint.3
+#usr/share/man/man3/gnutls_x509_crt_get_issuer.3
+#usr/share/man/man3/gnutls_x509_crt_get_issuer_alt_name.3
+#usr/share/man/man3/gnutls_x509_crt_get_issuer_alt_name2.3
+#usr/share/man/man3/gnutls_x509_crt_get_issuer_alt_othername_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_issuer_dn.3
+#usr/share/man/man3/gnutls_x509_crt_get_issuer_dn2.3
+#usr/share/man/man3/gnutls_x509_crt_get_issuer_dn3.3
+#usr/share/man/man3/gnutls_x509_crt_get_issuer_dn_by_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_issuer_dn_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_issuer_unique_id.3
+#usr/share/man/man3/gnutls_x509_crt_get_key_id.3
+#usr/share/man/man3/gnutls_x509_crt_get_key_purpose_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_key_usage.3
+#usr/share/man/man3/gnutls_x509_crt_get_name_constraints.3
+#usr/share/man/man3/gnutls_x509_crt_get_pk_algorithm.3
+#usr/share/man/man3/gnutls_x509_crt_get_pk_dsa_raw.3
+#usr/share/man/man3/gnutls_x509_crt_get_pk_ecc_raw.3
+#usr/share/man/man3/gnutls_x509_crt_get_pk_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_pk_rsa_raw.3
+#usr/share/man/man3/gnutls_x509_crt_get_policy.3
+#usr/share/man/man3/gnutls_x509_crt_get_preferred_hash_algorithm.3
+#usr/share/man/man3/gnutls_x509_crt_get_private_key_usage_period.3
+#usr/share/man/man3/gnutls_x509_crt_get_proxy.3
+#usr/share/man/man3/gnutls_x509_crt_get_raw_dn.3
+#usr/share/man/man3/gnutls_x509_crt_get_raw_issuer_dn.3
+#usr/share/man/man3/gnutls_x509_crt_get_serial.3
+#usr/share/man/man3/gnutls_x509_crt_get_signature.3
+#usr/share/man/man3/gnutls_x509_crt_get_signature_algorithm.3
+#usr/share/man/man3/gnutls_x509_crt_get_signature_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_subject.3
+#usr/share/man/man3/gnutls_x509_crt_get_subject_alt_name.3
+#usr/share/man/man3/gnutls_x509_crt_get_subject_alt_name2.3
+#usr/share/man/man3/gnutls_x509_crt_get_subject_alt_othername_oid.3
+#usr/share/man/man3/gnutls_x509_crt_get_subject_key_id.3
+#usr/share/man/man3/gnutls_x509_crt_get_subject_unique_id.3
+#usr/share/man/man3/gnutls_x509_crt_get_tlsfeatures.3
+#usr/share/man/man3/gnutls_x509_crt_get_version.3
+#usr/share/man/man3/gnutls_x509_crt_import.3
+#usr/share/man/man3/gnutls_x509_crt_import_pkcs11.3
+#usr/share/man/man3/gnutls_x509_crt_import_url.3
+#usr/share/man/man3/gnutls_x509_crt_init.3
+#usr/share/man/man3/gnutls_x509_crt_list_import.3
+#usr/share/man/man3/gnutls_x509_crt_list_import2.3
+#usr/share/man/man3/gnutls_x509_crt_list_import_pkcs11.3
+#usr/share/man/man3/gnutls_x509_crt_list_verify.3
+#usr/share/man/man3/gnutls_x509_crt_print.3
+#usr/share/man/man3/gnutls_x509_crt_privkey_sign.3
+#usr/share/man/man3/gnutls_x509_crt_set_activation_time.3
+#usr/share/man/man3/gnutls_x509_crt_set_authority_info_access.3
+#usr/share/man/man3/gnutls_x509_crt_set_authority_key_id.3
+#usr/share/man/man3/gnutls_x509_crt_set_basic_constraints.3
+#usr/share/man/man3/gnutls_x509_crt_set_ca_status.3
+#usr/share/man/man3/gnutls_x509_crt_set_crl_dist_points.3
+#usr/share/man/man3/gnutls_x509_crt_set_crl_dist_points2.3
+#usr/share/man/man3/gnutls_x509_crt_set_crq.3
+#usr/share/man/man3/gnutls_x509_crt_set_crq_extension_by_oid.3
+#usr/share/man/man3/gnutls_x509_crt_set_crq_extensions.3
+#usr/share/man/man3/gnutls_x509_crt_set_dn.3
+#usr/share/man/man3/gnutls_x509_crt_set_dn_by_oid.3
+#usr/share/man/man3/gnutls_x509_crt_set_expiration_time.3
+#usr/share/man/man3/gnutls_x509_crt_set_extension_by_oid.3
+#usr/share/man/man3/gnutls_x509_crt_set_issuer_alt_name.3
+#usr/share/man/man3/gnutls_x509_crt_set_issuer_alt_othername.3
+#usr/share/man/man3/gnutls_x509_crt_set_issuer_dn.3
+#usr/share/man/man3/gnutls_x509_crt_set_issuer_dn_by_oid.3
+#usr/share/man/man3/gnutls_x509_crt_set_issuer_unique_id.3
+#usr/share/man/man3/gnutls_x509_crt_set_key.3
+#usr/share/man/man3/gnutls_x509_crt_set_key_purpose_oid.3
+#usr/share/man/man3/gnutls_x509_crt_set_key_usage.3
+#usr/share/man/man3/gnutls_x509_crt_set_name_constraints.3
+#usr/share/man/man3/gnutls_x509_crt_set_pin_function.3
+#usr/share/man/man3/gnutls_x509_crt_set_policy.3
+#usr/share/man/man3/gnutls_x509_crt_set_private_key_usage_period.3
+#usr/share/man/man3/gnutls_x509_crt_set_proxy.3
+#usr/share/man/man3/gnutls_x509_crt_set_proxy_dn.3
+#usr/share/man/man3/gnutls_x509_crt_set_pubkey.3
+#usr/share/man/man3/gnutls_x509_crt_set_serial.3
+#usr/share/man/man3/gnutls_x509_crt_set_subject_alt_name.3
+#usr/share/man/man3/gnutls_x509_crt_set_subject_alt_othername.3
+#usr/share/man/man3/gnutls_x509_crt_set_subject_alternative_name.3
+#usr/share/man/man3/gnutls_x509_crt_set_subject_key_id.3
+#usr/share/man/man3/gnutls_x509_crt_set_subject_unique_id.3
+#usr/share/man/man3/gnutls_x509_crt_set_tlsfeatures.3
+#usr/share/man/man3/gnutls_x509_crt_set_version.3
+#usr/share/man/man3/gnutls_x509_crt_sign.3
+#usr/share/man/man3/gnutls_x509_crt_sign2.3
+#usr/share/man/man3/gnutls_x509_crt_verify.3
+#usr/share/man/man3/gnutls_x509_crt_verify_data2.3
+#usr/share/man/man3/gnutls_x509_dn_deinit.3
+#usr/share/man/man3/gnutls_x509_dn_export.3
+#usr/share/man/man3/gnutls_x509_dn_export2.3
+#usr/share/man/man3/gnutls_x509_dn_get_rdn_ava.3
+#usr/share/man/man3/gnutls_x509_dn_get_str.3
+#usr/share/man/man3/gnutls_x509_dn_get_str2.3
+#usr/share/man/man3/gnutls_x509_dn_import.3
+#usr/share/man/man3/gnutls_x509_dn_init.3
+#usr/share/man/man3/gnutls_x509_dn_oid_known.3
+#usr/share/man/man3/gnutls_x509_dn_oid_name.3
+#usr/share/man/man3/gnutls_x509_dn_set_str.3
+#usr/share/man/man3/gnutls_x509_ext_deinit.3
+#usr/share/man/man3/gnutls_x509_ext_export_aia.3
+#usr/share/man/man3/gnutls_x509_ext_export_authority_key_id.3
+#usr/share/man/man3/gnutls_x509_ext_export_basic_constraints.3
+#usr/share/man/man3/gnutls_x509_ext_export_crl_dist_points.3
+#usr/share/man/man3/gnutls_x509_ext_export_key_purposes.3
+#usr/share/man/man3/gnutls_x509_ext_export_key_usage.3
+#usr/share/man/man3/gnutls_x509_ext_export_name_constraints.3
+#usr/share/man/man3/gnutls_x509_ext_export_policies.3
+#usr/share/man/man3/gnutls_x509_ext_export_private_key_usage_period.3
+#usr/share/man/man3/gnutls_x509_ext_export_proxy.3
+#usr/share/man/man3/gnutls_x509_ext_export_subject_alt_names.3
+#usr/share/man/man3/gnutls_x509_ext_export_subject_key_id.3
+#usr/share/man/man3/gnutls_x509_ext_export_tlsfeatures.3
+#usr/share/man/man3/gnutls_x509_ext_import_aia.3
+#usr/share/man/man3/gnutls_x509_ext_import_authority_key_id.3
+#usr/share/man/man3/gnutls_x509_ext_import_basic_constraints.3
+#usr/share/man/man3/gnutls_x509_ext_import_crl_dist_points.3
+#usr/share/man/man3/gnutls_x509_ext_import_key_purposes.3
+#usr/share/man/man3/gnutls_x509_ext_import_key_usage.3
+#usr/share/man/man3/gnutls_x509_ext_import_name_constraints.3
+#usr/share/man/man3/gnutls_x509_ext_import_policies.3
+#usr/share/man/man3/gnutls_x509_ext_import_private_key_usage_period.3
+#usr/share/man/man3/gnutls_x509_ext_import_proxy.3
+#usr/share/man/man3/gnutls_x509_ext_import_subject_alt_names.3
+#usr/share/man/man3/gnutls_x509_ext_import_subject_key_id.3
+#usr/share/man/man3/gnutls_x509_ext_import_tlsfeatures.3
+#usr/share/man/man3/gnutls_x509_ext_print.3
+#usr/share/man/man3/gnutls_x509_key_purpose_deinit.3
+#usr/share/man/man3/gnutls_x509_key_purpose_get.3
+#usr/share/man/man3/gnutls_x509_key_purpose_init.3
+#usr/share/man/man3/gnutls_x509_key_purpose_set.3
+#usr/share/man/man3/gnutls_x509_name_constraints_add_excluded.3
+#usr/share/man/man3/gnutls_x509_name_constraints_add_permitted.3
+#usr/share/man/man3/gnutls_x509_name_constraints_check.3
+#usr/share/man/man3/gnutls_x509_name_constraints_check_crt.3
+#usr/share/man/man3/gnutls_x509_name_constraints_deinit.3
+#usr/share/man/man3/gnutls_x509_name_constraints_get_excluded.3
+#usr/share/man/man3/gnutls_x509_name_constraints_get_permitted.3
+#usr/share/man/man3/gnutls_x509_name_constraints_init.3
+#usr/share/man/man3/gnutls_x509_othername_to_virtual.3
+#usr/share/man/man3/gnutls_x509_policies_deinit.3
+#usr/share/man/man3/gnutls_x509_policies_get.3
+#usr/share/man/man3/gnutls_x509_policies_init.3
+#usr/share/man/man3/gnutls_x509_policies_set.3
+#usr/share/man/man3/gnutls_x509_policy_release.3
+#usr/share/man/man3/gnutls_x509_privkey_cpy.3
+#usr/share/man/man3/gnutls_x509_privkey_deinit.3
+#usr/share/man/man3/gnutls_x509_privkey_export.3
+#usr/share/man/man3/gnutls_x509_privkey_export2.3
+#usr/share/man/man3/gnutls_x509_privkey_export2_pkcs8.3
+#usr/share/man/man3/gnutls_x509_privkey_export_dsa_raw.3
+#usr/share/man/man3/gnutls_x509_privkey_export_ecc_raw.3
+#usr/share/man/man3/gnutls_x509_privkey_export_pkcs8.3
+#usr/share/man/man3/gnutls_x509_privkey_export_rsa_raw.3
+#usr/share/man/man3/gnutls_x509_privkey_export_rsa_raw2.3
+#usr/share/man/man3/gnutls_x509_privkey_fix.3
+#usr/share/man/man3/gnutls_x509_privkey_generate.3
+#usr/share/man/man3/gnutls_x509_privkey_generate2.3
+#usr/share/man/man3/gnutls_x509_privkey_get_key_id.3
+#usr/share/man/man3/gnutls_x509_privkey_get_pk_algorithm.3
+#usr/share/man/man3/gnutls_x509_privkey_get_pk_algorithm2.3
+#usr/share/man/man3/gnutls_x509_privkey_get_seed.3
+#usr/share/man/man3/gnutls_x509_privkey_import.3
+#usr/share/man/man3/gnutls_x509_privkey_import2.3
+#usr/share/man/man3/gnutls_x509_privkey_import_dsa_raw.3
+#usr/share/man/man3/gnutls_x509_privkey_import_ecc_raw.3
+#usr/share/man/man3/gnutls_x509_privkey_import_openssl.3
+#usr/share/man/man3/gnutls_x509_privkey_import_pkcs8.3
+#usr/share/man/man3/gnutls_x509_privkey_import_rsa_raw.3
+#usr/share/man/man3/gnutls_x509_privkey_import_rsa_raw2.3
+#usr/share/man/man3/gnutls_x509_privkey_init.3
+#usr/share/man/man3/gnutls_x509_privkey_sec_param.3
+#usr/share/man/man3/gnutls_x509_privkey_set_flags.3
+#usr/share/man/man3/gnutls_x509_privkey_set_pin_function.3
+#usr/share/man/man3/gnutls_x509_privkey_sign_data.3
+#usr/share/man/man3/gnutls_x509_privkey_sign_hash.3
+#usr/share/man/man3/gnutls_x509_privkey_verify_params.3
+#usr/share/man/man3/gnutls_x509_privkey_verify_seed.3
+#usr/share/man/man3/gnutls_x509_rdn_get.3
+#usr/share/man/man3/gnutls_x509_rdn_get2.3
+#usr/share/man/man3/gnutls_x509_rdn_get_by_oid.3
+#usr/share/man/man3/gnutls_x509_rdn_get_oid.3
+#usr/share/man/man3/gnutls_x509_tlsfeatures_add.3
+#usr/share/man/man3/gnutls_x509_tlsfeatures_check_crt.3
+#usr/share/man/man3/gnutls_x509_tlsfeatures_deinit.3
+#usr/share/man/man3/gnutls_x509_tlsfeatures_get.3
+#usr/share/man/man3/gnutls_x509_tlsfeatures_init.3
+#usr/share/man/man3/gnutls_x509_trust_list_add_cas.3
+#usr/share/man/man3/gnutls_x509_trust_list_add_crls.3
+#usr/share/man/man3/gnutls_x509_trust_list_add_named_crt.3
+#usr/share/man/man3/gnutls_x509_trust_list_add_system_trust.3
+#usr/share/man/man3/gnutls_x509_trust_list_add_trust_dir.3
+#usr/share/man/man3/gnutls_x509_trust_list_add_trust_file.3
+#usr/share/man/man3/gnutls_x509_trust_list_add_trust_mem.3
+#usr/share/man/man3/gnutls_x509_trust_list_deinit.3
+#usr/share/man/man3/gnutls_x509_trust_list_get_issuer.3
+#usr/share/man/man3/gnutls_x509_trust_list_get_issuer_by_dn.3
+#usr/share/man/man3/gnutls_x509_trust_list_get_issuer_by_subject_key_id.3
+#usr/share/man/man3/gnutls_x509_trust_list_init.3
+#usr/share/man/man3/gnutls_x509_trust_list_iter_deinit.3
+#usr/share/man/man3/gnutls_x509_trust_list_iter_get_ca.3
+#usr/share/man/man3/gnutls_x509_trust_list_remove_cas.3
+#usr/share/man/man3/gnutls_x509_trust_list_remove_trust_file.3
+#usr/share/man/man3/gnutls_x509_trust_list_remove_trust_mem.3
+#usr/share/man/man3/gnutls_x509_trust_list_verify_crt.3
+#usr/share/man/man3/gnutls_x509_trust_list_verify_crt2.3
+#usr/share/man/man3/gnutls_x509_trust_list_verify_named_crt.3
index f01fb59fd11650d3cb64dec94827bbffd0d78c04..c470a385ca9691dea9c1c288089fa14b56577ed6 100644 (file)
@@ -1,4 +1,3 @@
-#bin/compress
 bin/gunzip
 bin/gzip
 bin/uncompress
@@ -13,15 +12,15 @@ bin/zcat
 #usr/bin/zless
 #usr/bin/zmore
 #usr/bin/znew
-#usr/info/gzip.info
-#usr/man/man1/gunzip.1
-#usr/man/man1/gzexe.1
-#usr/man/man1/gzip.1
-#usr/man/man1/zcat.1
-#usr/man/man1/zcmp.1
-#usr/man/man1/zdiff.1
-#usr/man/man1/zforce.1
-#usr/man/man1/zgrep.1
-#usr/man/man1/zless.1
-#usr/man/man1/zmore.1
-#usr/man/man1/znew.1
+#usr/share/info/gzip.info
+#usr/share/man/man1/gunzip.1
+#usr/share/man/man1/gzexe.1
+#usr/share/man/man1/gzip.1
+#usr/share/man/man1/zcat.1
+#usr/share/man/man1/zcmp.1
+#usr/share/man/man1/zdiff.1
+#usr/share/man/man1/zforce.1
+#usr/share/man/man1/zgrep.1
+#usr/share/man/man1/zless.1
+#usr/share/man/man1/zmore.1
+#usr/share/man/man1/znew.1
index 5f4c1136d24404f5cbfcd3c0fe1ad7be67d542f8..886cdb4bf10de5c2e2beda16196d08c1a323caf1 100644 (file)
@@ -19,6 +19,7 @@
 #usr/include/bfdlink.h
 #usr/include/dis-asm.h
 #usr/include/libiberty.h
+#usr/include/plugin-api.h
 #usr/include/symcat.h
 #usr/lib/ldscripts
 #usr/lib/ldscripts/elf32_x86_64.x
 #usr/lib/ldscripts/elf_i386.xsw
 #usr/lib/ldscripts/elf_i386.xu
 #usr/lib/ldscripts/elf_i386.xw
+#usr/lib/ldscripts/elf_iamcu.x
+#usr/lib/ldscripts/elf_iamcu.xbn
+#usr/lib/ldscripts/elf_iamcu.xc
+#usr/lib/ldscripts/elf_iamcu.xd
+#usr/lib/ldscripts/elf_iamcu.xdc
+#usr/lib/ldscripts/elf_iamcu.xdw
+#usr/lib/ldscripts/elf_iamcu.xn
+#usr/lib/ldscripts/elf_iamcu.xr
+#usr/lib/ldscripts/elf_iamcu.xs
+#usr/lib/ldscripts/elf_iamcu.xsc
+#usr/lib/ldscripts/elf_iamcu.xsw
+#usr/lib/ldscripts/elf_iamcu.xu
+#usr/lib/ldscripts/elf_iamcu.xw
 #usr/lib/ldscripts/elf_k1om.x
 #usr/lib/ldscripts/elf_k1om.xbn
 #usr/lib/ldscripts/elf_k1om.xc
 #usr/lib/ldscripts/i386linux.xn
 #usr/lib/ldscripts/i386linux.xr
 #usr/lib/ldscripts/i386linux.xu
-usr/lib/libbfd-2.24.so
+usr/lib/libbfd-2.28.so
 #usr/lib/libbfd.a
 #usr/lib/libbfd.la
 #usr/lib/libbfd.so
-#usr/lib/libiberty.a
-usr/lib/libopcodes-2.24.so
+usr/lib/libopcodes-2.28.so
 #usr/lib/libopcodes.a
 #usr/lib/libopcodes.la
 #usr/lib/libopcodes.so
 #usr/share/info/as.info
 #usr/share/info/bfd.info
 #usr/share/info/binutils.info
-#usr/share/info/configure.info
-#usr/share/info/dir
 #usr/share/info/gprof.info
 #usr/share/info/ld.info
-#usr/share/info/standards.info
+#usr/share/locale/bg/LC_MESSAGES/binutils.mo
+#usr/share/locale/bg/LC_MESSAGES/gprof.mo
+#usr/share/locale/bg/LC_MESSAGES/ld.mo
+#usr/share/locale/ca/LC_MESSAGES/binutils.mo
+#usr/share/locale/da/LC_MESSAGES/bfd.mo
+#usr/share/locale/da/LC_MESSAGES/binutils.mo
+#usr/share/locale/da/LC_MESSAGES/gprof.mo
+#usr/share/locale/da/LC_MESSAGES/ld.mo
+#usr/share/locale/da/LC_MESSAGES/opcodes.mo
+#usr/share/locale/de/LC_MESSAGES/gprof.mo
+#usr/share/locale/de/LC_MESSAGES/opcodes.mo
+#usr/share/locale/eo/LC_MESSAGES/gprof.mo
+#usr/share/locale/es/LC_MESSAGES/bfd.mo
+#usr/share/locale/es/LC_MESSAGES/binutils.mo
+#usr/share/locale/es/LC_MESSAGES/gas.mo
+#usr/share/locale/es/LC_MESSAGES/gprof.mo
+#usr/share/locale/es/LC_MESSAGES/ld.mo
+#usr/share/locale/es/LC_MESSAGES/opcodes.mo
+#usr/share/locale/fi/LC_MESSAGES/bfd.mo
+#usr/share/locale/fi/LC_MESSAGES/binutils.mo
+#usr/share/locale/fi/LC_MESSAGES/gas.mo
+#usr/share/locale/fi/LC_MESSAGES/gprof.mo
+#usr/share/locale/fi/LC_MESSAGES/ld.mo
+#usr/share/locale/fi/LC_MESSAGES/opcodes.mo
+#usr/share/locale/fr/LC_MESSAGES/bfd.mo
+#usr/share/locale/fr/LC_MESSAGES/binutils.mo
+#usr/share/locale/fr/LC_MESSAGES/gas.mo
+#usr/share/locale/fr/LC_MESSAGES/gprof.mo
+#usr/share/locale/fr/LC_MESSAGES/ld.mo
+#usr/share/locale/fr/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ga
+#usr/share/locale/ga/LC_MESSAGES
+#usr/share/locale/ga/LC_MESSAGES/gprof.mo
+#usr/share/locale/ga/LC_MESSAGES/ld.mo
+#usr/share/locale/ga/LC_MESSAGES/opcodes.mo
+#usr/share/locale/hr/LC_MESSAGES/binutils.mo
+#usr/share/locale/hu/LC_MESSAGES/gprof.mo
+#usr/share/locale/id/LC_MESSAGES/bfd.mo
+#usr/share/locale/id/LC_MESSAGES/binutils.mo
+#usr/share/locale/id/LC_MESSAGES/gas.mo
+#usr/share/locale/id/LC_MESSAGES/gprof.mo
+#usr/share/locale/id/LC_MESSAGES/ld.mo
+#usr/share/locale/id/LC_MESSAGES/opcodes.mo
+#usr/share/locale/it/LC_MESSAGES/binutils.mo
+#usr/share/locale/it/LC_MESSAGES/gprof.mo
+#usr/share/locale/it/LC_MESSAGES/ld.mo
+#usr/share/locale/it/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ja/LC_MESSAGES/bfd.mo
+#usr/share/locale/ja/LC_MESSAGES/binutils.mo
+#usr/share/locale/ja/LC_MESSAGES/gas.mo
+#usr/share/locale/ja/LC_MESSAGES/gprof.mo
+#usr/share/locale/ja/LC_MESSAGES/ld.mo
+#usr/share/locale/ms
+#usr/share/locale/ms/LC_MESSAGES
+#usr/share/locale/ms/LC_MESSAGES/gprof.mo
+#usr/share/locale/nl/LC_MESSAGES/gprof.mo
+#usr/share/locale/nl/LC_MESSAGES/opcodes.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/gprof.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ro
+#usr/share/locale/ro/LC_MESSAGES
+#usr/share/locale/ro/LC_MESSAGES/bfd.mo
+#usr/share/locale/ro/LC_MESSAGES/binutils.mo
+#usr/share/locale/ro/LC_MESSAGES/gprof.mo
+#usr/share/locale/ro/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ru/LC_MESSAGES/bfd.mo
+#usr/share/locale/ru/LC_MESSAGES/binutils.mo
+#usr/share/locale/ru/LC_MESSAGES/gas.mo
+#usr/share/locale/ru/LC_MESSAGES/gprof.mo
+#usr/share/locale/rw/LC_MESSAGES/bfd.mo
+#usr/share/locale/rw/LC_MESSAGES/binutils.mo
+#usr/share/locale/rw/LC_MESSAGES/gas.mo
+#usr/share/locale/rw/LC_MESSAGES/gprof.mo
+#usr/share/locale/sk/LC_MESSAGES/binutils.mo
+#usr/share/locale/sr
+#usr/share/locale/sr/LC_MESSAGES
+#usr/share/locale/sr/LC_MESSAGES/bfd.mo
+#usr/share/locale/sr/LC_MESSAGES/binutils.mo
+#usr/share/locale/sr/LC_MESSAGES/gprof.mo
+#usr/share/locale/sv/LC_MESSAGES/bfd.mo
+#usr/share/locale/sv/LC_MESSAGES/binutils.mo
+#usr/share/locale/sv/LC_MESSAGES/gprof.mo
+#usr/share/locale/sv/LC_MESSAGES/ld.mo
+#usr/share/locale/sv/LC_MESSAGES/opcodes.mo
+#usr/share/locale/tr/LC_MESSAGES/bfd.mo
+#usr/share/locale/tr/LC_MESSAGES/binutils.mo
+#usr/share/locale/tr/LC_MESSAGES/gas.mo
+#usr/share/locale/tr/LC_MESSAGES/gprof.mo
+#usr/share/locale/tr/LC_MESSAGES/ld.mo
+#usr/share/locale/tr/LC_MESSAGES/opcodes.mo
+#usr/share/locale/uk/LC_MESSAGES/bfd.mo
+#usr/share/locale/uk/LC_MESSAGES/binutils.mo
+#usr/share/locale/uk/LC_MESSAGES/gas.mo
+#usr/share/locale/uk/LC_MESSAGES/gprof.mo
+#usr/share/locale/uk/LC_MESSAGES/ld.mo
+#usr/share/locale/uk/LC_MESSAGES/opcodes.mo
+#usr/share/locale/vi/LC_MESSAGES/bfd.mo
+#usr/share/locale/vi/LC_MESSAGES/binutils.mo
+#usr/share/locale/vi/LC_MESSAGES/gprof.mo
+#usr/share/locale/vi/LC_MESSAGES/ld.mo
+#usr/share/locale/vi/LC_MESSAGES/opcodes.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/bfd.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/binutils.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/gas.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/ld.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/opcodes.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/binutils.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/ld.mo
 #usr/share/man/man1/addr2line.1
 #usr/share/man/man1/ar.1
 #usr/share/man/man1/as.1
index 0e4b5c7baa045737fc747d4f7b7053ccdf5dbcdd..043d55a9eb500866f0e680f64c52ba77ca6b1d7e 100644 (file)
 #usr/bin/gcc-nm
 #usr/bin/gcc-ranlib
 #usr/bin/gcov
+#usr/bin/gcov-tool
 #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.9.3
+#usr/bin/i586-pc-linux-gnu-gcc-6.3.0
 #usr/bin/i586-pc-linux-gnu-gcc-ar
 #usr/bin/i586-pc-linux-gnu-gcc-nm
 #usr/bin/i586-pc-linux-gnu-gcc-ranlib
 #usr/include/c++
-#usr/include/c++/4.9.3
-#usr/include/c++/4.9.3/algorithm
-#usr/include/c++/4.9.3/array
-#usr/include/c++/4.9.3/atomic
-#usr/include/c++/4.9.3/backward
-#usr/include/c++/4.9.3/backward/auto_ptr.h
-#usr/include/c++/4.9.3/backward/backward_warning.h
-#usr/include/c++/4.9.3/backward/binders.h
-#usr/include/c++/4.9.3/backward/hash_fun.h
-#usr/include/c++/4.9.3/backward/hash_map
-#usr/include/c++/4.9.3/backward/hash_set
-#usr/include/c++/4.9.3/backward/hashtable.h
-#usr/include/c++/4.9.3/backward/strstream
-#usr/include/c++/4.9.3/bits
-#usr/include/c++/4.9.3/bits/algorithmfwd.h
-#usr/include/c++/4.9.3/bits/alloc_traits.h
-#usr/include/c++/4.9.3/bits/allocator.h
-#usr/include/c++/4.9.3/bits/atomic_base.h
-#usr/include/c++/4.9.3/bits/atomic_lockfree_defines.h
-#usr/include/c++/4.9.3/bits/basic_ios.h
-#usr/include/c++/4.9.3/bits/basic_ios.tcc
-#usr/include/c++/4.9.3/bits/basic_string.h
-#usr/include/c++/4.9.3/bits/basic_string.tcc
-#usr/include/c++/4.9.3/bits/boost_concept_check.h
-#usr/include/c++/4.9.3/bits/c++0x_warning.h
-#usr/include/c++/4.9.3/bits/c++14_warning.h
-#usr/include/c++/4.9.3/bits/char_traits.h
-#usr/include/c++/4.9.3/bits/codecvt.h
-#usr/include/c++/4.9.3/bits/concept_check.h
-#usr/include/c++/4.9.3/bits/cpp_type_traits.h
-#usr/include/c++/4.9.3/bits/cxxabi_forced.h
-#usr/include/c++/4.9.3/bits/deque.tcc
-#usr/include/c++/4.9.3/bits/enable_special_members.h
-#usr/include/c++/4.9.3/bits/exception_defines.h
-#usr/include/c++/4.9.3/bits/exception_ptr.h
-#usr/include/c++/4.9.3/bits/forward_list.h
-#usr/include/c++/4.9.3/bits/forward_list.tcc
-#usr/include/c++/4.9.3/bits/fstream.tcc
-#usr/include/c++/4.9.3/bits/functexcept.h
-#usr/include/c++/4.9.3/bits/functional_hash.h
-#usr/include/c++/4.9.3/bits/gslice.h
-#usr/include/c++/4.9.3/bits/gslice_array.h
-#usr/include/c++/4.9.3/bits/hash_bytes.h
-#usr/include/c++/4.9.3/bits/hashtable.h
-#usr/include/c++/4.9.3/bits/hashtable_policy.h
-#usr/include/c++/4.9.3/bits/indirect_array.h
-#usr/include/c++/4.9.3/bits/ios_base.h
-#usr/include/c++/4.9.3/bits/istream.tcc
-#usr/include/c++/4.9.3/bits/list.tcc
-#usr/include/c++/4.9.3/bits/locale_classes.h
-#usr/include/c++/4.9.3/bits/locale_classes.tcc
-#usr/include/c++/4.9.3/bits/locale_facets.h
-#usr/include/c++/4.9.3/bits/locale_facets.tcc
-#usr/include/c++/4.9.3/bits/locale_facets_nonio.h
-#usr/include/c++/4.9.3/bits/locale_facets_nonio.tcc
-#usr/include/c++/4.9.3/bits/localefwd.h
-#usr/include/c++/4.9.3/bits/mask_array.h
-#usr/include/c++/4.9.3/bits/memoryfwd.h
-#usr/include/c++/4.9.3/bits/move.h
-#usr/include/c++/4.9.3/bits/nested_exception.h
-#usr/include/c++/4.9.3/bits/ostream.tcc
-#usr/include/c++/4.9.3/bits/ostream_insert.h
-#usr/include/c++/4.9.3/bits/parse_numbers.h
-#usr/include/c++/4.9.3/bits/postypes.h
-#usr/include/c++/4.9.3/bits/predefined_ops.h
-#usr/include/c++/4.9.3/bits/ptr_traits.h
-#usr/include/c++/4.9.3/bits/random.h
-#usr/include/c++/4.9.3/bits/random.tcc
-#usr/include/c++/4.9.3/bits/range_access.h
-#usr/include/c++/4.9.3/bits/regex.h
-#usr/include/c++/4.9.3/bits/regex.tcc
-#usr/include/c++/4.9.3/bits/regex_automaton.h
-#usr/include/c++/4.9.3/bits/regex_automaton.tcc
-#usr/include/c++/4.9.3/bits/regex_compiler.h
-#usr/include/c++/4.9.3/bits/regex_compiler.tcc
-#usr/include/c++/4.9.3/bits/regex_constants.h
-#usr/include/c++/4.9.3/bits/regex_error.h
-#usr/include/c++/4.9.3/bits/regex_executor.h
-#usr/include/c++/4.9.3/bits/regex_executor.tcc
-#usr/include/c++/4.9.3/bits/regex_scanner.h
-#usr/include/c++/4.9.3/bits/regex_scanner.tcc
-#usr/include/c++/4.9.3/bits/shared_ptr.h
-#usr/include/c++/4.9.3/bits/shared_ptr_base.h
-#usr/include/c++/4.9.3/bits/slice_array.h
-#usr/include/c++/4.9.3/bits/sstream.tcc
-#usr/include/c++/4.9.3/bits/stl_algo.h
-#usr/include/c++/4.9.3/bits/stl_algobase.h
-#usr/include/c++/4.9.3/bits/stl_bvector.h
-#usr/include/c++/4.9.3/bits/stl_construct.h
-#usr/include/c++/4.9.3/bits/stl_deque.h
-#usr/include/c++/4.9.3/bits/stl_function.h
-#usr/include/c++/4.9.3/bits/stl_heap.h
-#usr/include/c++/4.9.3/bits/stl_iterator.h
-#usr/include/c++/4.9.3/bits/stl_iterator_base_funcs.h
-#usr/include/c++/4.9.3/bits/stl_iterator_base_types.h
-#usr/include/c++/4.9.3/bits/stl_list.h
-#usr/include/c++/4.9.3/bits/stl_map.h
-#usr/include/c++/4.9.3/bits/stl_multimap.h
-#usr/include/c++/4.9.3/bits/stl_multiset.h
-#usr/include/c++/4.9.3/bits/stl_numeric.h
-#usr/include/c++/4.9.3/bits/stl_pair.h
-#usr/include/c++/4.9.3/bits/stl_queue.h
-#usr/include/c++/4.9.3/bits/stl_raw_storage_iter.h
-#usr/include/c++/4.9.3/bits/stl_relops.h
-#usr/include/c++/4.9.3/bits/stl_set.h
-#usr/include/c++/4.9.3/bits/stl_stack.h
-#usr/include/c++/4.9.3/bits/stl_tempbuf.h
-#usr/include/c++/4.9.3/bits/stl_tree.h
-#usr/include/c++/4.9.3/bits/stl_uninitialized.h
-#usr/include/c++/4.9.3/bits/stl_vector.h
-#usr/include/c++/4.9.3/bits/stream_iterator.h
-#usr/include/c++/4.9.3/bits/streambuf.tcc
-#usr/include/c++/4.9.3/bits/streambuf_iterator.h
-#usr/include/c++/4.9.3/bits/stringfwd.h
-#usr/include/c++/4.9.3/bits/unique_ptr.h
-#usr/include/c++/4.9.3/bits/unordered_map.h
-#usr/include/c++/4.9.3/bits/unordered_set.h
-#usr/include/c++/4.9.3/bits/uses_allocator.h
-#usr/include/c++/4.9.3/bits/valarray_after.h
-#usr/include/c++/4.9.3/bits/valarray_array.h
-#usr/include/c++/4.9.3/bits/valarray_array.tcc
-#usr/include/c++/4.9.3/bits/valarray_before.h
-#usr/include/c++/4.9.3/bits/vector.tcc
-#usr/include/c++/4.9.3/bitset
-#usr/include/c++/4.9.3/cassert
-#usr/include/c++/4.9.3/ccomplex
-#usr/include/c++/4.9.3/cctype
-#usr/include/c++/4.9.3/cerrno
-#usr/include/c++/4.9.3/cfenv
-#usr/include/c++/4.9.3/cfloat
-#usr/include/c++/4.9.3/chrono
-#usr/include/c++/4.9.3/cinttypes
-#usr/include/c++/4.9.3/ciso646
-#usr/include/c++/4.9.3/climits
-#usr/include/c++/4.9.3/clocale
-#usr/include/c++/4.9.3/cmath
-#usr/include/c++/4.9.3/complex
-#usr/include/c++/4.9.3/complex.h
-#usr/include/c++/4.9.3/condition_variable
-#usr/include/c++/4.9.3/csetjmp
-#usr/include/c++/4.9.3/csignal
-#usr/include/c++/4.9.3/cstdalign
-#usr/include/c++/4.9.3/cstdarg
-#usr/include/c++/4.9.3/cstdbool
-#usr/include/c++/4.9.3/cstddef
-#usr/include/c++/4.9.3/cstdint
-#usr/include/c++/4.9.3/cstdio
-#usr/include/c++/4.9.3/cstdlib
-#usr/include/c++/4.9.3/cstring
-#usr/include/c++/4.9.3/ctgmath
-#usr/include/c++/4.9.3/ctime
-#usr/include/c++/4.9.3/cwchar
-#usr/include/c++/4.9.3/cwctype
-#usr/include/c++/4.9.3/cxxabi.h
-#usr/include/c++/4.9.3/debug
-#usr/include/c++/4.9.3/debug/array
-#usr/include/c++/4.9.3/debug/bitset
-#usr/include/c++/4.9.3/debug/debug.h
-#usr/include/c++/4.9.3/debug/deque
-#usr/include/c++/4.9.3/debug/formatter.h
-#usr/include/c++/4.9.3/debug/forward_list
-#usr/include/c++/4.9.3/debug/functions.h
-#usr/include/c++/4.9.3/debug/list
-#usr/include/c++/4.9.3/debug/macros.h
-#usr/include/c++/4.9.3/debug/map
-#usr/include/c++/4.9.3/debug/map.h
-#usr/include/c++/4.9.3/debug/multimap.h
-#usr/include/c++/4.9.3/debug/multiset.h
-#usr/include/c++/4.9.3/debug/safe_base.h
-#usr/include/c++/4.9.3/debug/safe_iterator.h
-#usr/include/c++/4.9.3/debug/safe_iterator.tcc
-#usr/include/c++/4.9.3/debug/safe_local_iterator.h
-#usr/include/c++/4.9.3/debug/safe_local_iterator.tcc
-#usr/include/c++/4.9.3/debug/safe_sequence.h
-#usr/include/c++/4.9.3/debug/safe_sequence.tcc
-#usr/include/c++/4.9.3/debug/safe_unordered_base.h
-#usr/include/c++/4.9.3/debug/safe_unordered_container.h
-#usr/include/c++/4.9.3/debug/safe_unordered_container.tcc
-#usr/include/c++/4.9.3/debug/set
-#usr/include/c++/4.9.3/debug/set.h
-#usr/include/c++/4.9.3/debug/string
-#usr/include/c++/4.9.3/debug/unordered_map
-#usr/include/c++/4.9.3/debug/unordered_set
-#usr/include/c++/4.9.3/debug/vector
-#usr/include/c++/4.9.3/decimal
-#usr/include/c++/4.9.3/decimal/decimal
-#usr/include/c++/4.9.3/decimal/decimal.h
-#usr/include/c++/4.9.3/deque
-#usr/include/c++/4.9.3/exception
-#usr/include/c++/4.9.3/experimental
-#usr/include/c++/4.9.3/experimental/optional
-#usr/include/c++/4.9.3/experimental/string_view
-#usr/include/c++/4.9.3/experimental/string_view.tcc
-#usr/include/c++/4.9.3/ext
-#usr/include/c++/4.9.3/ext/algorithm
-#usr/include/c++/4.9.3/ext/aligned_buffer.h
-#usr/include/c++/4.9.3/ext/alloc_traits.h
-#usr/include/c++/4.9.3/ext/array_allocator.h
-#usr/include/c++/4.9.3/ext/atomicity.h
-#usr/include/c++/4.9.3/ext/bitmap_allocator.h
-#usr/include/c++/4.9.3/ext/cast.h
-#usr/include/c++/4.9.3/ext/cmath
-#usr/include/c++/4.9.3/ext/codecvt_specializations.h
-#usr/include/c++/4.9.3/ext/concurrence.h
-#usr/include/c++/4.9.3/ext/debug_allocator.h
-#usr/include/c++/4.9.3/ext/enc_filebuf.h
-#usr/include/c++/4.9.3/ext/extptr_allocator.h
-#usr/include/c++/4.9.3/ext/functional
-#usr/include/c++/4.9.3/ext/hash_map
-#usr/include/c++/4.9.3/ext/hash_set
-#usr/include/c++/4.9.3/ext/iterator
-#usr/include/c++/4.9.3/ext/malloc_allocator.h
-#usr/include/c++/4.9.3/ext/memory
-#usr/include/c++/4.9.3/ext/mt_allocator.h
-#usr/include/c++/4.9.3/ext/new_allocator.h
-#usr/include/c++/4.9.3/ext/numeric
-#usr/include/c++/4.9.3/ext/numeric_traits.h
-#usr/include/c++/4.9.3/ext/pb_ds
-#usr/include/c++/4.9.3/ext/pb_ds/assoc_container.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy/branch_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cond_dealtor.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/container_base_dispatch.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/debug_map_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/eq_fn
-#usr/include/c++/4.9.3/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/node.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/node.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/standard_policies.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_trace_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/type_utils.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/types_traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/exception.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/hash_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/list_update_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/priority_queue.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/tag_and_trait.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/tree_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/trie_policy.hpp
-#usr/include/c++/4.9.3/ext/pod_char_traits.h
-#usr/include/c++/4.9.3/ext/pointer.h
-#usr/include/c++/4.9.3/ext/pool_allocator.h
-#usr/include/c++/4.9.3/ext/random
-#usr/include/c++/4.9.3/ext/random.tcc
-#usr/include/c++/4.9.3/ext/rb_tree
-#usr/include/c++/4.9.3/ext/rc_string_base.h
-#usr/include/c++/4.9.3/ext/rope
-#usr/include/c++/4.9.3/ext/ropeimpl.h
-#usr/include/c++/4.9.3/ext/slist
-#usr/include/c++/4.9.3/ext/sso_string_base.h
-#usr/include/c++/4.9.3/ext/stdio_filebuf.h
-#usr/include/c++/4.9.3/ext/stdio_sync_filebuf.h
-#usr/include/c++/4.9.3/ext/string_conversions.h
-#usr/include/c++/4.9.3/ext/throw_allocator.h
-#usr/include/c++/4.9.3/ext/type_traits.h
-#usr/include/c++/4.9.3/ext/typelist.h
-#usr/include/c++/4.9.3/ext/vstring.h
-#usr/include/c++/4.9.3/ext/vstring.tcc
-#usr/include/c++/4.9.3/ext/vstring_fwd.h
-#usr/include/c++/4.9.3/ext/vstring_util.h
-#usr/include/c++/4.9.3/fenv.h
-#usr/include/c++/4.9.3/forward_list
-#usr/include/c++/4.9.3/fstream
-#usr/include/c++/4.9.3/functional
-#usr/include/c++/4.9.3/future
-#usr/include/c++/4.9.3/i586-pc-linux-gnu
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/atomic_word.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/basic_file.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/c++allocator.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/c++config.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/c++io.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/c++locale.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/cpu_defines.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/ctype_base.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/ctype_inline.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/cxxabi_tweaks.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/error_constants.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/extc++.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/gthr-default.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/gthr-posix.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/gthr-single.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/gthr.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/messages_members.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/opt_random.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/os_defines.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/stdc++.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/stdtr1c++.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/bits/time_members.h
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/ext
-#usr/include/c++/4.9.3/i586-pc-linux-gnu/ext/opt_random.h
-#usr/include/c++/4.9.3/initializer_list
-#usr/include/c++/4.9.3/iomanip
-#usr/include/c++/4.9.3/ios
-#usr/include/c++/4.9.3/iosfwd
-#usr/include/c++/4.9.3/iostream
-#usr/include/c++/4.9.3/istream
-#usr/include/c++/4.9.3/iterator
-#usr/include/c++/4.9.3/limits
-#usr/include/c++/4.9.3/list
-#usr/include/c++/4.9.3/locale
-#usr/include/c++/4.9.3/map
-#usr/include/c++/4.9.3/memory
-#usr/include/c++/4.9.3/mutex
-#usr/include/c++/4.9.3/new
-#usr/include/c++/4.9.3/numeric
-#usr/include/c++/4.9.3/ostream
-#usr/include/c++/4.9.3/parallel
-#usr/include/c++/4.9.3/parallel/algo.h
-#usr/include/c++/4.9.3/parallel/algobase.h
-#usr/include/c++/4.9.3/parallel/algorithm
-#usr/include/c++/4.9.3/parallel/algorithmfwd.h
-#usr/include/c++/4.9.3/parallel/balanced_quicksort.h
-#usr/include/c++/4.9.3/parallel/base.h
-#usr/include/c++/4.9.3/parallel/basic_iterator.h
-#usr/include/c++/4.9.3/parallel/checkers.h
-#usr/include/c++/4.9.3/parallel/compatibility.h
-#usr/include/c++/4.9.3/parallel/compiletime_settings.h
-#usr/include/c++/4.9.3/parallel/equally_split.h
-#usr/include/c++/4.9.3/parallel/features.h
-#usr/include/c++/4.9.3/parallel/find.h
-#usr/include/c++/4.9.3/parallel/find_selectors.h
-#usr/include/c++/4.9.3/parallel/for_each.h
-#usr/include/c++/4.9.3/parallel/for_each_selectors.h
-#usr/include/c++/4.9.3/parallel/iterator.h
-#usr/include/c++/4.9.3/parallel/list_partition.h
-#usr/include/c++/4.9.3/parallel/losertree.h
-#usr/include/c++/4.9.3/parallel/merge.h
-#usr/include/c++/4.9.3/parallel/multiseq_selection.h
-#usr/include/c++/4.9.3/parallel/multiway_merge.h
-#usr/include/c++/4.9.3/parallel/multiway_mergesort.h
-#usr/include/c++/4.9.3/parallel/numeric
-#usr/include/c++/4.9.3/parallel/numericfwd.h
-#usr/include/c++/4.9.3/parallel/omp_loop.h
-#usr/include/c++/4.9.3/parallel/omp_loop_static.h
-#usr/include/c++/4.9.3/parallel/par_loop.h
-#usr/include/c++/4.9.3/parallel/parallel.h
-#usr/include/c++/4.9.3/parallel/partial_sum.h
-#usr/include/c++/4.9.3/parallel/partition.h
-#usr/include/c++/4.9.3/parallel/queue.h
-#usr/include/c++/4.9.3/parallel/quicksort.h
-#usr/include/c++/4.9.3/parallel/random_number.h
-#usr/include/c++/4.9.3/parallel/random_shuffle.h
-#usr/include/c++/4.9.3/parallel/search.h
-#usr/include/c++/4.9.3/parallel/set_operations.h
-#usr/include/c++/4.9.3/parallel/settings.h
-#usr/include/c++/4.9.3/parallel/sort.h
-#usr/include/c++/4.9.3/parallel/tags.h
-#usr/include/c++/4.9.3/parallel/types.h
-#usr/include/c++/4.9.3/parallel/unique_copy.h
-#usr/include/c++/4.9.3/parallel/workstealing.h
-#usr/include/c++/4.9.3/profile
-#usr/include/c++/4.9.3/profile/array
-#usr/include/c++/4.9.3/profile/base.h
-#usr/include/c++/4.9.3/profile/bitset
-#usr/include/c++/4.9.3/profile/deque
-#usr/include/c++/4.9.3/profile/forward_list
-#usr/include/c++/4.9.3/profile/impl
-#usr/include/c++/4.9.3/profile/impl/profiler.h
-#usr/include/c++/4.9.3/profile/impl/profiler_algos.h
-#usr/include/c++/4.9.3/profile/impl/profiler_container_size.h
-#usr/include/c++/4.9.3/profile/impl/profiler_hash_func.h
-#usr/include/c++/4.9.3/profile/impl/profiler_hashtable_size.h
-#usr/include/c++/4.9.3/profile/impl/profiler_list_to_slist.h
-#usr/include/c++/4.9.3/profile/impl/profiler_list_to_vector.h
-#usr/include/c++/4.9.3/profile/impl/profiler_map_to_unordered_map.h
-#usr/include/c++/4.9.3/profile/impl/profiler_node.h
-#usr/include/c++/4.9.3/profile/impl/profiler_state.h
-#usr/include/c++/4.9.3/profile/impl/profiler_trace.h
-#usr/include/c++/4.9.3/profile/impl/profiler_vector_size.h
-#usr/include/c++/4.9.3/profile/impl/profiler_vector_to_list.h
-#usr/include/c++/4.9.3/profile/iterator_tracker.h
-#usr/include/c++/4.9.3/profile/list
-#usr/include/c++/4.9.3/profile/map
-#usr/include/c++/4.9.3/profile/map.h
-#usr/include/c++/4.9.3/profile/multimap.h
-#usr/include/c++/4.9.3/profile/multiset.h
-#usr/include/c++/4.9.3/profile/set
-#usr/include/c++/4.9.3/profile/set.h
-#usr/include/c++/4.9.3/profile/unordered_base.h
-#usr/include/c++/4.9.3/profile/unordered_map
-#usr/include/c++/4.9.3/profile/unordered_set
-#usr/include/c++/4.9.3/profile/vector
-#usr/include/c++/4.9.3/queue
-#usr/include/c++/4.9.3/random
-#usr/include/c++/4.9.3/ratio
-#usr/include/c++/4.9.3/regex
-#usr/include/c++/4.9.3/scoped_allocator
-#usr/include/c++/4.9.3/set
-#usr/include/c++/4.9.3/shared_mutex
-#usr/include/c++/4.9.3/sstream
-#usr/include/c++/4.9.3/stack
-#usr/include/c++/4.9.3/stdexcept
-#usr/include/c++/4.9.3/streambuf
-#usr/include/c++/4.9.3/string
-#usr/include/c++/4.9.3/system_error
-#usr/include/c++/4.9.3/tgmath.h
-#usr/include/c++/4.9.3/thread
-#usr/include/c++/4.9.3/tr1
-#usr/include/c++/4.9.3/tr1/array
-#usr/include/c++/4.9.3/tr1/bessel_function.tcc
-#usr/include/c++/4.9.3/tr1/beta_function.tcc
-#usr/include/c++/4.9.3/tr1/ccomplex
-#usr/include/c++/4.9.3/tr1/cctype
-#usr/include/c++/4.9.3/tr1/cfenv
-#usr/include/c++/4.9.3/tr1/cfloat
-#usr/include/c++/4.9.3/tr1/cinttypes
-#usr/include/c++/4.9.3/tr1/climits
-#usr/include/c++/4.9.3/tr1/cmath
-#usr/include/c++/4.9.3/tr1/complex
-#usr/include/c++/4.9.3/tr1/complex.h
-#usr/include/c++/4.9.3/tr1/cstdarg
-#usr/include/c++/4.9.3/tr1/cstdbool
-#usr/include/c++/4.9.3/tr1/cstdint
-#usr/include/c++/4.9.3/tr1/cstdio
-#usr/include/c++/4.9.3/tr1/cstdlib
-#usr/include/c++/4.9.3/tr1/ctgmath
-#usr/include/c++/4.9.3/tr1/ctime
-#usr/include/c++/4.9.3/tr1/ctype.h
-#usr/include/c++/4.9.3/tr1/cwchar
-#usr/include/c++/4.9.3/tr1/cwctype
-#usr/include/c++/4.9.3/tr1/ell_integral.tcc
-#usr/include/c++/4.9.3/tr1/exp_integral.tcc
-#usr/include/c++/4.9.3/tr1/fenv.h
-#usr/include/c++/4.9.3/tr1/float.h
-#usr/include/c++/4.9.3/tr1/functional
-#usr/include/c++/4.9.3/tr1/functional_hash.h
-#usr/include/c++/4.9.3/tr1/gamma.tcc
-#usr/include/c++/4.9.3/tr1/hashtable.h
-#usr/include/c++/4.9.3/tr1/hashtable_policy.h
-#usr/include/c++/4.9.3/tr1/hypergeometric.tcc
-#usr/include/c++/4.9.3/tr1/inttypes.h
-#usr/include/c++/4.9.3/tr1/legendre_function.tcc
-#usr/include/c++/4.9.3/tr1/limits.h
-#usr/include/c++/4.9.3/tr1/math.h
-#usr/include/c++/4.9.3/tr1/memory
-#usr/include/c++/4.9.3/tr1/modified_bessel_func.tcc
-#usr/include/c++/4.9.3/tr1/poly_hermite.tcc
-#usr/include/c++/4.9.3/tr1/poly_laguerre.tcc
-#usr/include/c++/4.9.3/tr1/random
-#usr/include/c++/4.9.3/tr1/random.h
-#usr/include/c++/4.9.3/tr1/random.tcc
-#usr/include/c++/4.9.3/tr1/regex
-#usr/include/c++/4.9.3/tr1/riemann_zeta.tcc
-#usr/include/c++/4.9.3/tr1/shared_ptr.h
-#usr/include/c++/4.9.3/tr1/special_function_util.h
-#usr/include/c++/4.9.3/tr1/stdarg.h
-#usr/include/c++/4.9.3/tr1/stdbool.h
-#usr/include/c++/4.9.3/tr1/stdint.h
-#usr/include/c++/4.9.3/tr1/stdio.h
-#usr/include/c++/4.9.3/tr1/stdlib.h
-#usr/include/c++/4.9.3/tr1/tgmath.h
-#usr/include/c++/4.9.3/tr1/tuple
-#usr/include/c++/4.9.3/tr1/type_traits
-#usr/include/c++/4.9.3/tr1/unordered_map
-#usr/include/c++/4.9.3/tr1/unordered_map.h
-#usr/include/c++/4.9.3/tr1/unordered_set
-#usr/include/c++/4.9.3/tr1/unordered_set.h
-#usr/include/c++/4.9.3/tr1/utility
-#usr/include/c++/4.9.3/tr1/wchar.h
-#usr/include/c++/4.9.3/tr1/wctype.h
-#usr/include/c++/4.9.3/tr2
-#usr/include/c++/4.9.3/tr2/bool_set
-#usr/include/c++/4.9.3/tr2/bool_set.tcc
-#usr/include/c++/4.9.3/tr2/dynamic_bitset
-#usr/include/c++/4.9.3/tr2/dynamic_bitset.tcc
-#usr/include/c++/4.9.3/tr2/ratio
-#usr/include/c++/4.9.3/tr2/type_traits
-#usr/include/c++/4.9.3/tuple
-#usr/include/c++/4.9.3/type_traits
-#usr/include/c++/4.9.3/typeindex
-#usr/include/c++/4.9.3/typeinfo
-#usr/include/c++/4.9.3/unordered_map
-#usr/include/c++/4.9.3/unordered_set
-#usr/include/c++/4.9.3/utility
-#usr/include/c++/4.9.3/valarray
-#usr/include/c++/4.9.3/vector
+#usr/include/c++/6.3.0
+#usr/include/c++/6.3.0/algorithm
+#usr/include/c++/6.3.0/array
+#usr/include/c++/6.3.0/atomic
+#usr/include/c++/6.3.0/backward
+#usr/include/c++/6.3.0/backward/auto_ptr.h
+#usr/include/c++/6.3.0/backward/backward_warning.h
+#usr/include/c++/6.3.0/backward/binders.h
+#usr/include/c++/6.3.0/backward/hash_fun.h
+#usr/include/c++/6.3.0/backward/hash_map
+#usr/include/c++/6.3.0/backward/hash_set
+#usr/include/c++/6.3.0/backward/hashtable.h
+#usr/include/c++/6.3.0/backward/strstream
+#usr/include/c++/6.3.0/bits
+#usr/include/c++/6.3.0/bits/algorithmfwd.h
+#usr/include/c++/6.3.0/bits/alloc_traits.h
+#usr/include/c++/6.3.0/bits/allocated_ptr.h
+#usr/include/c++/6.3.0/bits/allocator.h
+#usr/include/c++/6.3.0/bits/atomic_base.h
+#usr/include/c++/6.3.0/bits/atomic_futex.h
+#usr/include/c++/6.3.0/bits/atomic_lockfree_defines.h
+#usr/include/c++/6.3.0/bits/basic_ios.h
+#usr/include/c++/6.3.0/bits/basic_ios.tcc
+#usr/include/c++/6.3.0/bits/basic_string.h
+#usr/include/c++/6.3.0/bits/basic_string.tcc
+#usr/include/c++/6.3.0/bits/boost_concept_check.h
+#usr/include/c++/6.3.0/bits/c++0x_warning.h
+#usr/include/c++/6.3.0/bits/c++14_warning.h
+#usr/include/c++/6.3.0/bits/char_traits.h
+#usr/include/c++/6.3.0/bits/codecvt.h
+#usr/include/c++/6.3.0/bits/concept_check.h
+#usr/include/c++/6.3.0/bits/cpp_type_traits.h
+#usr/include/c++/6.3.0/bits/cxxabi_forced.h
+#usr/include/c++/6.3.0/bits/deque.tcc
+#usr/include/c++/6.3.0/bits/enable_special_members.h
+#usr/include/c++/6.3.0/bits/exception_defines.h
+#usr/include/c++/6.3.0/bits/exception_ptr.h
+#usr/include/c++/6.3.0/bits/forward_list.h
+#usr/include/c++/6.3.0/bits/forward_list.tcc
+#usr/include/c++/6.3.0/bits/fstream.tcc
+#usr/include/c++/6.3.0/bits/functexcept.h
+#usr/include/c++/6.3.0/bits/functional_hash.h
+#usr/include/c++/6.3.0/bits/gslice.h
+#usr/include/c++/6.3.0/bits/gslice_array.h
+#usr/include/c++/6.3.0/bits/hash_bytes.h
+#usr/include/c++/6.3.0/bits/hashtable.h
+#usr/include/c++/6.3.0/bits/hashtable_policy.h
+#usr/include/c++/6.3.0/bits/indirect_array.h
+#usr/include/c++/6.3.0/bits/ios_base.h
+#usr/include/c++/6.3.0/bits/istream.tcc
+#usr/include/c++/6.3.0/bits/list.tcc
+#usr/include/c++/6.3.0/bits/locale_classes.h
+#usr/include/c++/6.3.0/bits/locale_classes.tcc
+#usr/include/c++/6.3.0/bits/locale_conv.h
+#usr/include/c++/6.3.0/bits/locale_facets.h
+#usr/include/c++/6.3.0/bits/locale_facets.tcc
+#usr/include/c++/6.3.0/bits/locale_facets_nonio.h
+#usr/include/c++/6.3.0/bits/locale_facets_nonio.tcc
+#usr/include/c++/6.3.0/bits/localefwd.h
+#usr/include/c++/6.3.0/bits/mask_array.h
+#usr/include/c++/6.3.0/bits/memoryfwd.h
+#usr/include/c++/6.3.0/bits/move.h
+#usr/include/c++/6.3.0/bits/nested_exception.h
+#usr/include/c++/6.3.0/bits/ostream.tcc
+#usr/include/c++/6.3.0/bits/ostream_insert.h
+#usr/include/c++/6.3.0/bits/parse_numbers.h
+#usr/include/c++/6.3.0/bits/postypes.h
+#usr/include/c++/6.3.0/bits/predefined_ops.h
+#usr/include/c++/6.3.0/bits/ptr_traits.h
+#usr/include/c++/6.3.0/bits/quoted_string.h
+#usr/include/c++/6.3.0/bits/random.h
+#usr/include/c++/6.3.0/bits/random.tcc
+#usr/include/c++/6.3.0/bits/range_access.h
+#usr/include/c++/6.3.0/bits/regex.h
+#usr/include/c++/6.3.0/bits/regex.tcc
+#usr/include/c++/6.3.0/bits/regex_automaton.h
+#usr/include/c++/6.3.0/bits/regex_automaton.tcc
+#usr/include/c++/6.3.0/bits/regex_compiler.h
+#usr/include/c++/6.3.0/bits/regex_compiler.tcc
+#usr/include/c++/6.3.0/bits/regex_constants.h
+#usr/include/c++/6.3.0/bits/regex_error.h
+#usr/include/c++/6.3.0/bits/regex_executor.h
+#usr/include/c++/6.3.0/bits/regex_executor.tcc
+#usr/include/c++/6.3.0/bits/regex_scanner.h
+#usr/include/c++/6.3.0/bits/regex_scanner.tcc
+#usr/include/c++/6.3.0/bits/shared_ptr.h
+#usr/include/c++/6.3.0/bits/shared_ptr_atomic.h
+#usr/include/c++/6.3.0/bits/shared_ptr_base.h
+#usr/include/c++/6.3.0/bits/slice_array.h
+#usr/include/c++/6.3.0/bits/specfun.h
+#usr/include/c++/6.3.0/bits/sstream.tcc
+#usr/include/c++/6.3.0/bits/std_mutex.h
+#usr/include/c++/6.3.0/bits/stl_algo.h
+#usr/include/c++/6.3.0/bits/stl_algobase.h
+#usr/include/c++/6.3.0/bits/stl_bvector.h
+#usr/include/c++/6.3.0/bits/stl_construct.h
+#usr/include/c++/6.3.0/bits/stl_deque.h
+#usr/include/c++/6.3.0/bits/stl_function.h
+#usr/include/c++/6.3.0/bits/stl_heap.h
+#usr/include/c++/6.3.0/bits/stl_iterator.h
+#usr/include/c++/6.3.0/bits/stl_iterator_base_funcs.h
+#usr/include/c++/6.3.0/bits/stl_iterator_base_types.h
+#usr/include/c++/6.3.0/bits/stl_list.h
+#usr/include/c++/6.3.0/bits/stl_map.h
+#usr/include/c++/6.3.0/bits/stl_multimap.h
+#usr/include/c++/6.3.0/bits/stl_multiset.h
+#usr/include/c++/6.3.0/bits/stl_numeric.h
+#usr/include/c++/6.3.0/bits/stl_pair.h
+#usr/include/c++/6.3.0/bits/stl_queue.h
+#usr/include/c++/6.3.0/bits/stl_raw_storage_iter.h
+#usr/include/c++/6.3.0/bits/stl_relops.h
+#usr/include/c++/6.3.0/bits/stl_set.h
+#usr/include/c++/6.3.0/bits/stl_stack.h
+#usr/include/c++/6.3.0/bits/stl_tempbuf.h
+#usr/include/c++/6.3.0/bits/stl_tree.h
+#usr/include/c++/6.3.0/bits/stl_uninitialized.h
+#usr/include/c++/6.3.0/bits/stl_vector.h
+#usr/include/c++/6.3.0/bits/stream_iterator.h
+#usr/include/c++/6.3.0/bits/streambuf.tcc
+#usr/include/c++/6.3.0/bits/streambuf_iterator.h
+#usr/include/c++/6.3.0/bits/stringfwd.h
+#usr/include/c++/6.3.0/bits/uniform_int_dist.h
+#usr/include/c++/6.3.0/bits/unique_ptr.h
+#usr/include/c++/6.3.0/bits/unordered_map.h
+#usr/include/c++/6.3.0/bits/unordered_set.h
+#usr/include/c++/6.3.0/bits/uses_allocator.h
+#usr/include/c++/6.3.0/bits/valarray_after.h
+#usr/include/c++/6.3.0/bits/valarray_array.h
+#usr/include/c++/6.3.0/bits/valarray_array.tcc
+#usr/include/c++/6.3.0/bits/valarray_before.h
+#usr/include/c++/6.3.0/bits/vector.tcc
+#usr/include/c++/6.3.0/bitset
+#usr/include/c++/6.3.0/cassert
+#usr/include/c++/6.3.0/ccomplex
+#usr/include/c++/6.3.0/cctype
+#usr/include/c++/6.3.0/cerrno
+#usr/include/c++/6.3.0/cfenv
+#usr/include/c++/6.3.0/cfloat
+#usr/include/c++/6.3.0/chrono
+#usr/include/c++/6.3.0/cinttypes
+#usr/include/c++/6.3.0/ciso646
+#usr/include/c++/6.3.0/climits
+#usr/include/c++/6.3.0/clocale
+#usr/include/c++/6.3.0/cmath
+#usr/include/c++/6.3.0/codecvt
+#usr/include/c++/6.3.0/complex
+#usr/include/c++/6.3.0/complex.h
+#usr/include/c++/6.3.0/condition_variable
+#usr/include/c++/6.3.0/csetjmp
+#usr/include/c++/6.3.0/csignal
+#usr/include/c++/6.3.0/cstdalign
+#usr/include/c++/6.3.0/cstdarg
+#usr/include/c++/6.3.0/cstdbool
+#usr/include/c++/6.3.0/cstddef
+#usr/include/c++/6.3.0/cstdint
+#usr/include/c++/6.3.0/cstdio
+#usr/include/c++/6.3.0/cstdlib
+#usr/include/c++/6.3.0/cstring
+#usr/include/c++/6.3.0/ctgmath
+#usr/include/c++/6.3.0/ctime
+#usr/include/c++/6.3.0/cuchar
+#usr/include/c++/6.3.0/cwchar
+#usr/include/c++/6.3.0/cwctype
+#usr/include/c++/6.3.0/cxxabi.h
+#usr/include/c++/6.3.0/debug
+#usr/include/c++/6.3.0/debug/array
+#usr/include/c++/6.3.0/debug/assertions.h
+#usr/include/c++/6.3.0/debug/bitset
+#usr/include/c++/6.3.0/debug/debug.h
+#usr/include/c++/6.3.0/debug/deque
+#usr/include/c++/6.3.0/debug/formatter.h
+#usr/include/c++/6.3.0/debug/forward_list
+#usr/include/c++/6.3.0/debug/functions.h
+#usr/include/c++/6.3.0/debug/helper_functions.h
+#usr/include/c++/6.3.0/debug/list
+#usr/include/c++/6.3.0/debug/macros.h
+#usr/include/c++/6.3.0/debug/map
+#usr/include/c++/6.3.0/debug/map.h
+#usr/include/c++/6.3.0/debug/multimap.h
+#usr/include/c++/6.3.0/debug/multiset.h
+#usr/include/c++/6.3.0/debug/safe_base.h
+#usr/include/c++/6.3.0/debug/safe_container.h
+#usr/include/c++/6.3.0/debug/safe_iterator.h
+#usr/include/c++/6.3.0/debug/safe_iterator.tcc
+#usr/include/c++/6.3.0/debug/safe_local_iterator.h
+#usr/include/c++/6.3.0/debug/safe_local_iterator.tcc
+#usr/include/c++/6.3.0/debug/safe_sequence.h
+#usr/include/c++/6.3.0/debug/safe_sequence.tcc
+#usr/include/c++/6.3.0/debug/safe_unordered_base.h
+#usr/include/c++/6.3.0/debug/safe_unordered_container.h
+#usr/include/c++/6.3.0/debug/safe_unordered_container.tcc
+#usr/include/c++/6.3.0/debug/set
+#usr/include/c++/6.3.0/debug/set.h
+#usr/include/c++/6.3.0/debug/stl_iterator.h
+#usr/include/c++/6.3.0/debug/string
+#usr/include/c++/6.3.0/debug/unordered_map
+#usr/include/c++/6.3.0/debug/unordered_set
+#usr/include/c++/6.3.0/debug/vector
+#usr/include/c++/6.3.0/decimal
+#usr/include/c++/6.3.0/decimal/decimal
+#usr/include/c++/6.3.0/decimal/decimal.h
+#usr/include/c++/6.3.0/deque
+#usr/include/c++/6.3.0/exception
+#usr/include/c++/6.3.0/experimental
+#usr/include/c++/6.3.0/experimental/algorithm
+#usr/include/c++/6.3.0/experimental/any
+#usr/include/c++/6.3.0/experimental/array
+#usr/include/c++/6.3.0/experimental/bits
+#usr/include/c++/6.3.0/experimental/bits/erase_if.h
+#usr/include/c++/6.3.0/experimental/bits/fs_dir.h
+#usr/include/c++/6.3.0/experimental/bits/fs_fwd.h
+#usr/include/c++/6.3.0/experimental/bits/fs_ops.h
+#usr/include/c++/6.3.0/experimental/bits/fs_path.h
+#usr/include/c++/6.3.0/experimental/bits/lfts_config.h
+#usr/include/c++/6.3.0/experimental/bits/shared_ptr.h
+#usr/include/c++/6.3.0/experimental/bits/string_view.tcc
+#usr/include/c++/6.3.0/experimental/chrono
+#usr/include/c++/6.3.0/experimental/deque
+#usr/include/c++/6.3.0/experimental/filesystem
+#usr/include/c++/6.3.0/experimental/forward_list
+#usr/include/c++/6.3.0/experimental/functional
+#usr/include/c++/6.3.0/experimental/iterator
+#usr/include/c++/6.3.0/experimental/list
+#usr/include/c++/6.3.0/experimental/map
+#usr/include/c++/6.3.0/experimental/memory
+#usr/include/c++/6.3.0/experimental/memory_resource
+#usr/include/c++/6.3.0/experimental/numeric
+#usr/include/c++/6.3.0/experimental/optional
+#usr/include/c++/6.3.0/experimental/propagate_const
+#usr/include/c++/6.3.0/experimental/random
+#usr/include/c++/6.3.0/experimental/ratio
+#usr/include/c++/6.3.0/experimental/regex
+#usr/include/c++/6.3.0/experimental/set
+#usr/include/c++/6.3.0/experimental/string
+#usr/include/c++/6.3.0/experimental/string_view
+#usr/include/c++/6.3.0/experimental/system_error
+#usr/include/c++/6.3.0/experimental/tuple
+#usr/include/c++/6.3.0/experimental/type_traits
+#usr/include/c++/6.3.0/experimental/unordered_map
+#usr/include/c++/6.3.0/experimental/unordered_set
+#usr/include/c++/6.3.0/experimental/utility
+#usr/include/c++/6.3.0/experimental/vector
+#usr/include/c++/6.3.0/ext
+#usr/include/c++/6.3.0/ext/algorithm
+#usr/include/c++/6.3.0/ext/aligned_buffer.h
+#usr/include/c++/6.3.0/ext/alloc_traits.h
+#usr/include/c++/6.3.0/ext/array_allocator.h
+#usr/include/c++/6.3.0/ext/atomicity.h
+#usr/include/c++/6.3.0/ext/bitmap_allocator.h
+#usr/include/c++/6.3.0/ext/cast.h
+#usr/include/c++/6.3.0/ext/cmath
+#usr/include/c++/6.3.0/ext/codecvt_specializations.h
+#usr/include/c++/6.3.0/ext/concurrence.h
+#usr/include/c++/6.3.0/ext/debug_allocator.h
+#usr/include/c++/6.3.0/ext/enc_filebuf.h
+#usr/include/c++/6.3.0/ext/extptr_allocator.h
+#usr/include/c++/6.3.0/ext/functional
+#usr/include/c++/6.3.0/ext/hash_map
+#usr/include/c++/6.3.0/ext/hash_set
+#usr/include/c++/6.3.0/ext/iterator
+#usr/include/c++/6.3.0/ext/malloc_allocator.h
+#usr/include/c++/6.3.0/ext/memory
+#usr/include/c++/6.3.0/ext/mt_allocator.h
+#usr/include/c++/6.3.0/ext/new_allocator.h
+#usr/include/c++/6.3.0/ext/numeric
+#usr/include/c++/6.3.0/ext/numeric_traits.h
+#usr/include/c++/6.3.0/ext/pb_ds
+#usr/include/c++/6.3.0/ext/pb_ds/assoc_container.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy/branch_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cond_dealtor.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/container_base_dispatch.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/debug_map_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/eq_fn
+#usr/include/c++/6.3.0/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/node.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/node.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/standard_policies.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_trace_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/type_utils.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/types_traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/exception.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/hash_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/list_update_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/priority_queue.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/tag_and_trait.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/tree_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/trie_policy.hpp
+#usr/include/c++/6.3.0/ext/pod_char_traits.h
+#usr/include/c++/6.3.0/ext/pointer.h
+#usr/include/c++/6.3.0/ext/pool_allocator.h
+#usr/include/c++/6.3.0/ext/random
+#usr/include/c++/6.3.0/ext/random.tcc
+#usr/include/c++/6.3.0/ext/rb_tree
+#usr/include/c++/6.3.0/ext/rc_string_base.h
+#usr/include/c++/6.3.0/ext/rope
+#usr/include/c++/6.3.0/ext/ropeimpl.h
+#usr/include/c++/6.3.0/ext/slist
+#usr/include/c++/6.3.0/ext/sso_string_base.h
+#usr/include/c++/6.3.0/ext/stdio_filebuf.h
+#usr/include/c++/6.3.0/ext/stdio_sync_filebuf.h
+#usr/include/c++/6.3.0/ext/string_conversions.h
+#usr/include/c++/6.3.0/ext/throw_allocator.h
+#usr/include/c++/6.3.0/ext/type_traits.h
+#usr/include/c++/6.3.0/ext/typelist.h
+#usr/include/c++/6.3.0/ext/vstring.h
+#usr/include/c++/6.3.0/ext/vstring.tcc
+#usr/include/c++/6.3.0/ext/vstring_fwd.h
+#usr/include/c++/6.3.0/ext/vstring_util.h
+#usr/include/c++/6.3.0/fenv.h
+#usr/include/c++/6.3.0/forward_list
+#usr/include/c++/6.3.0/fstream
+#usr/include/c++/6.3.0/functional
+#usr/include/c++/6.3.0/future
+#usr/include/c++/6.3.0/i586-pc-linux-gnu
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/atomic_word.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/basic_file.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/c++allocator.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/c++config.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/c++io.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/c++locale.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/cpu_defines.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/ctype_base.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/ctype_inline.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/cxxabi_tweaks.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/error_constants.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/extc++.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/gthr-default.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/gthr-posix.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/gthr-single.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/gthr.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/messages_members.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/opt_random.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/os_defines.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/stdc++.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/stdtr1c++.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/bits/time_members.h
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/ext
+#usr/include/c++/6.3.0/i586-pc-linux-gnu/ext/opt_random.h
+#usr/include/c++/6.3.0/initializer_list
+#usr/include/c++/6.3.0/iomanip
+#usr/include/c++/6.3.0/ios
+#usr/include/c++/6.3.0/iosfwd
+#usr/include/c++/6.3.0/iostream
+#usr/include/c++/6.3.0/istream
+#usr/include/c++/6.3.0/iterator
+#usr/include/c++/6.3.0/limits
+#usr/include/c++/6.3.0/list
+#usr/include/c++/6.3.0/locale
+#usr/include/c++/6.3.0/map
+#usr/include/c++/6.3.0/math.h
+#usr/include/c++/6.3.0/memory
+#usr/include/c++/6.3.0/mutex
+#usr/include/c++/6.3.0/new
+#usr/include/c++/6.3.0/numeric
+#usr/include/c++/6.3.0/ostream
+#usr/include/c++/6.3.0/parallel
+#usr/include/c++/6.3.0/parallel/algo.h
+#usr/include/c++/6.3.0/parallel/algobase.h
+#usr/include/c++/6.3.0/parallel/algorithm
+#usr/include/c++/6.3.0/parallel/algorithmfwd.h
+#usr/include/c++/6.3.0/parallel/balanced_quicksort.h
+#usr/include/c++/6.3.0/parallel/base.h
+#usr/include/c++/6.3.0/parallel/basic_iterator.h
+#usr/include/c++/6.3.0/parallel/checkers.h
+#usr/include/c++/6.3.0/parallel/compatibility.h
+#usr/include/c++/6.3.0/parallel/compiletime_settings.h
+#usr/include/c++/6.3.0/parallel/equally_split.h
+#usr/include/c++/6.3.0/parallel/features.h
+#usr/include/c++/6.3.0/parallel/find.h
+#usr/include/c++/6.3.0/parallel/find_selectors.h
+#usr/include/c++/6.3.0/parallel/for_each.h
+#usr/include/c++/6.3.0/parallel/for_each_selectors.h
+#usr/include/c++/6.3.0/parallel/iterator.h
+#usr/include/c++/6.3.0/parallel/list_partition.h
+#usr/include/c++/6.3.0/parallel/losertree.h
+#usr/include/c++/6.3.0/parallel/merge.h
+#usr/include/c++/6.3.0/parallel/multiseq_selection.h
+#usr/include/c++/6.3.0/parallel/multiway_merge.h
+#usr/include/c++/6.3.0/parallel/multiway_mergesort.h
+#usr/include/c++/6.3.0/parallel/numeric
+#usr/include/c++/6.3.0/parallel/numericfwd.h
+#usr/include/c++/6.3.0/parallel/omp_loop.h
+#usr/include/c++/6.3.0/parallel/omp_loop_static.h
+#usr/include/c++/6.3.0/parallel/par_loop.h
+#usr/include/c++/6.3.0/parallel/parallel.h
+#usr/include/c++/6.3.0/parallel/partial_sum.h
+#usr/include/c++/6.3.0/parallel/partition.h
+#usr/include/c++/6.3.0/parallel/queue.h
+#usr/include/c++/6.3.0/parallel/quicksort.h
+#usr/include/c++/6.3.0/parallel/random_number.h
+#usr/include/c++/6.3.0/parallel/random_shuffle.h
+#usr/include/c++/6.3.0/parallel/search.h
+#usr/include/c++/6.3.0/parallel/set_operations.h
+#usr/include/c++/6.3.0/parallel/settings.h
+#usr/include/c++/6.3.0/parallel/sort.h
+#usr/include/c++/6.3.0/parallel/tags.h
+#usr/include/c++/6.3.0/parallel/types.h
+#usr/include/c++/6.3.0/parallel/unique_copy.h
+#usr/include/c++/6.3.0/parallel/workstealing.h
+#usr/include/c++/6.3.0/profile
+#usr/include/c++/6.3.0/profile/array
+#usr/include/c++/6.3.0/profile/base.h
+#usr/include/c++/6.3.0/profile/bitset
+#usr/include/c++/6.3.0/profile/deque
+#usr/include/c++/6.3.0/profile/forward_list
+#usr/include/c++/6.3.0/profile/impl
+#usr/include/c++/6.3.0/profile/impl/profiler.h
+#usr/include/c++/6.3.0/profile/impl/profiler_algos.h
+#usr/include/c++/6.3.0/profile/impl/profiler_container_size.h
+#usr/include/c++/6.3.0/profile/impl/profiler_hash_func.h
+#usr/include/c++/6.3.0/profile/impl/profiler_hashtable_size.h
+#usr/include/c++/6.3.0/profile/impl/profiler_list_to_slist.h
+#usr/include/c++/6.3.0/profile/impl/profiler_list_to_vector.h
+#usr/include/c++/6.3.0/profile/impl/profiler_map_to_unordered_map.h
+#usr/include/c++/6.3.0/profile/impl/profiler_node.h
+#usr/include/c++/6.3.0/profile/impl/profiler_state.h
+#usr/include/c++/6.3.0/profile/impl/profiler_trace.h
+#usr/include/c++/6.3.0/profile/impl/profiler_vector_size.h
+#usr/include/c++/6.3.0/profile/impl/profiler_vector_to_list.h
+#usr/include/c++/6.3.0/profile/iterator_tracker.h
+#usr/include/c++/6.3.0/profile/list
+#usr/include/c++/6.3.0/profile/map
+#usr/include/c++/6.3.0/profile/map.h
+#usr/include/c++/6.3.0/profile/multimap.h
+#usr/include/c++/6.3.0/profile/multiset.h
+#usr/include/c++/6.3.0/profile/ordered_base.h
+#usr/include/c++/6.3.0/profile/set
+#usr/include/c++/6.3.0/profile/set.h
+#usr/include/c++/6.3.0/profile/unordered_base.h
+#usr/include/c++/6.3.0/profile/unordered_map
+#usr/include/c++/6.3.0/profile/unordered_set
+#usr/include/c++/6.3.0/profile/vector
+#usr/include/c++/6.3.0/queue
+#usr/include/c++/6.3.0/random
+#usr/include/c++/6.3.0/ratio
+#usr/include/c++/6.3.0/regex
+#usr/include/c++/6.3.0/scoped_allocator
+#usr/include/c++/6.3.0/set
+#usr/include/c++/6.3.0/shared_mutex
+#usr/include/c++/6.3.0/sstream
+#usr/include/c++/6.3.0/stack
+#usr/include/c++/6.3.0/stdexcept
+#usr/include/c++/6.3.0/stdlib.h
+#usr/include/c++/6.3.0/streambuf
+#usr/include/c++/6.3.0/string
+#usr/include/c++/6.3.0/system_error
+#usr/include/c++/6.3.0/tgmath.h
+#usr/include/c++/6.3.0/thread
+#usr/include/c++/6.3.0/tr1
+#usr/include/c++/6.3.0/tr1/array
+#usr/include/c++/6.3.0/tr1/bessel_function.tcc
+#usr/include/c++/6.3.0/tr1/beta_function.tcc
+#usr/include/c++/6.3.0/tr1/ccomplex
+#usr/include/c++/6.3.0/tr1/cctype
+#usr/include/c++/6.3.0/tr1/cfenv
+#usr/include/c++/6.3.0/tr1/cfloat
+#usr/include/c++/6.3.0/tr1/cinttypes
+#usr/include/c++/6.3.0/tr1/climits
+#usr/include/c++/6.3.0/tr1/cmath
+#usr/include/c++/6.3.0/tr1/complex
+#usr/include/c++/6.3.0/tr1/complex.h
+#usr/include/c++/6.3.0/tr1/cstdarg
+#usr/include/c++/6.3.0/tr1/cstdbool
+#usr/include/c++/6.3.0/tr1/cstdint
+#usr/include/c++/6.3.0/tr1/cstdio
+#usr/include/c++/6.3.0/tr1/cstdlib
+#usr/include/c++/6.3.0/tr1/ctgmath
+#usr/include/c++/6.3.0/tr1/ctime
+#usr/include/c++/6.3.0/tr1/ctype.h
+#usr/include/c++/6.3.0/tr1/cwchar
+#usr/include/c++/6.3.0/tr1/cwctype
+#usr/include/c++/6.3.0/tr1/ell_integral.tcc
+#usr/include/c++/6.3.0/tr1/exp_integral.tcc
+#usr/include/c++/6.3.0/tr1/fenv.h
+#usr/include/c++/6.3.0/tr1/float.h
+#usr/include/c++/6.3.0/tr1/functional
+#usr/include/c++/6.3.0/tr1/functional_hash.h
+#usr/include/c++/6.3.0/tr1/gamma.tcc
+#usr/include/c++/6.3.0/tr1/hashtable.h
+#usr/include/c++/6.3.0/tr1/hashtable_policy.h
+#usr/include/c++/6.3.0/tr1/hypergeometric.tcc
+#usr/include/c++/6.3.0/tr1/inttypes.h
+#usr/include/c++/6.3.0/tr1/legendre_function.tcc
+#usr/include/c++/6.3.0/tr1/limits.h
+#usr/include/c++/6.3.0/tr1/math.h
+#usr/include/c++/6.3.0/tr1/memory
+#usr/include/c++/6.3.0/tr1/modified_bessel_func.tcc
+#usr/include/c++/6.3.0/tr1/poly_hermite.tcc
+#usr/include/c++/6.3.0/tr1/poly_laguerre.tcc
+#usr/include/c++/6.3.0/tr1/random
+#usr/include/c++/6.3.0/tr1/random.h
+#usr/include/c++/6.3.0/tr1/random.tcc
+#usr/include/c++/6.3.0/tr1/regex
+#usr/include/c++/6.3.0/tr1/riemann_zeta.tcc
+#usr/include/c++/6.3.0/tr1/shared_ptr.h
+#usr/include/c++/6.3.0/tr1/special_function_util.h
+#usr/include/c++/6.3.0/tr1/stdarg.h
+#usr/include/c++/6.3.0/tr1/stdbool.h
+#usr/include/c++/6.3.0/tr1/stdint.h
+#usr/include/c++/6.3.0/tr1/stdio.h
+#usr/include/c++/6.3.0/tr1/stdlib.h
+#usr/include/c++/6.3.0/tr1/tgmath.h
+#usr/include/c++/6.3.0/tr1/tuple
+#usr/include/c++/6.3.0/tr1/type_traits
+#usr/include/c++/6.3.0/tr1/unordered_map
+#usr/include/c++/6.3.0/tr1/unordered_map.h
+#usr/include/c++/6.3.0/tr1/unordered_set
+#usr/include/c++/6.3.0/tr1/unordered_set.h
+#usr/include/c++/6.3.0/tr1/utility
+#usr/include/c++/6.3.0/tr1/wchar.h
+#usr/include/c++/6.3.0/tr1/wctype.h
+#usr/include/c++/6.3.0/tr2
+#usr/include/c++/6.3.0/tr2/bool_set
+#usr/include/c++/6.3.0/tr2/bool_set.tcc
+#usr/include/c++/6.3.0/tr2/dynamic_bitset
+#usr/include/c++/6.3.0/tr2/dynamic_bitset.tcc
+#usr/include/c++/6.3.0/tr2/ratio
+#usr/include/c++/6.3.0/tr2/type_traits
+#usr/include/c++/6.3.0/tuple
+#usr/include/c++/6.3.0/type_traits
+#usr/include/c++/6.3.0/typeindex
+#usr/include/c++/6.3.0/typeinfo
+#usr/include/c++/6.3.0/unordered_map
+#usr/include/c++/6.3.0/unordered_set
+#usr/include/c++/6.3.0/utility
+#usr/include/c++/6.3.0/valarray
+#usr/include/c++/6.3.0/vector
 #usr/lib/gcc
 #usr/lib/gcc/i586-pc-linux-gnu
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/cc1
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/cc1plus
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/collect2
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/crtbegin.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/crtbeginS.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/crtbeginT.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/crtend.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/crtendS.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/crtfastmath.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/crtprec32.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/crtprec64.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/crtprec80.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/finclude
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include-fixed
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include-fixed/README
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include-fixed/limits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include-fixed/syslimits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/adxintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/ammintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/avx2intrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/avx512cdintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/avx512erintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/avx512fintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/avx512pfintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/avxintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/bmi2intrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/bmiintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/bmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/cilk.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/cilk_api.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/cilk_api_linux.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/cilk_stub.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/cilk_undocumented.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/common.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/holder.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/hyperobject_base.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/metaprogramming.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_file.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_list.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_max.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_min.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_min_max.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_opadd.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_opand.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_opmul.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_opor.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_opxor.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_ostream.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cilk/reducer_string.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cpuid.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/cross-stdarg.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/emmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/f16cintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/float.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/fma4intrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/fmaintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/fxsrintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/ia32intrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/immintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/iso646.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/lwpintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/lzcntintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/mm3dnow.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/mm_malloc.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/mmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/nmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/omp.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/pmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/popcntintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/prfchwintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/quadmath.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/quadmath_weak.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/rdseedintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/rtmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/sanitizer
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/sanitizer/asan_interface.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/sanitizer/common_interface_defs.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/sanitizer/lsan_interface.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/shaintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/smmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/ssp
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/ssp/ssp.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/ssp/stdio.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/ssp/string.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/ssp/unistd.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/stdalign.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/stdarg.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/stdatomic.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/stdbool.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/stddef.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/stdfix.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/stdint-gcc.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/stdint.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/stdnoreturn.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/tbmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/tmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/unwind.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/varargs.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/wmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/x86intrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/xmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/xopintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/xsaveintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/xsaveoptintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/include/xtestintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/fixinc.sh
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/fixinc_list
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/fixincl
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/gsyslimits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/include
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/include/README
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/include/limits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/macro_list
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/mkheaders
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/mkheaders.conf
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/install-tools/mkinstalldirs
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/libgcc.a
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/libgcc_eh.a
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/libgcov.a
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/liblto_plugin.la
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/liblto_plugin.so
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/liblto_plugin.so.0
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/liblto_plugin.so.0.0.0
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/lto-wrapper
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/lto1
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/gengtype
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/gtype.state
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ada
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ada/gcc-interface
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ada/gcc-interface/ada-tree.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/alias.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/all-tree.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/alloc-pool.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ansidecl.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/attribs.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/auto-host.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/b-header-vars
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/basic-block.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/bitmap.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/builtins.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/bversion.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/c-family
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/c-family/c-common.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/c-family/c-common.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/c-family/c-objc.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/c-family/c-pragma.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/c-family/c-pretty-print.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/c-tree.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/calls.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cfg-flags.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cfgexpand.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cfghooks.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cfgloop.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cgraph.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cif-code.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cilk-builtins.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cilkplus.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/dbxelf.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/elfos.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/glibc-stdint.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/gnu-user.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/att.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/gnu-user-common.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/gnu-user.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/i386-opts.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/i386-protos.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/i386.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/linux-common.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/linux.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/stringop.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/unix.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/i386/x86-tune.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/initfini-array.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/linux-android.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/linux-protos.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/linux.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/config/vxworks-dummy.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/configargs.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/context.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/coretypes.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cp
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cp/cp-tree.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cp/cp-tree.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cp/cxx-pretty-print.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cp/name-lookup.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cp/type-utils.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cppdefault.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/cpplib.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/debug.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/defaults.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/df.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/diagnostic-color.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/diagnostic-core.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/diagnostic.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/diagnostic.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/double-int.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/dumpfile.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/emit-rtl.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/except.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/filenames.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/fixed-value.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/flag-types.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/flags.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/fold-const.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/function.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gcc-plugin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gcc-symtab.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/genrtl.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ggc.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimple-builder.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimple-expr.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimple-fold.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimple-iterator.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimple-low.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimple-pretty-print.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimple-ssa.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimple-walk.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimple.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimple.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimplify-me.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gimplify.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gsstruct.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gtm-builtins.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/gtype-desc.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/hard-reg-set.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/hash-table.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/hashtab.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/highlev-plugin-common.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/hwint.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/incpath.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/input.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/insn-codes.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/insn-constants.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/insn-flags.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/insn-modes.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/insn-notes.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/internal-fn.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/internal-fn.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/intl.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ipa-prop.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ipa-ref-inline.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ipa-ref.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ipa-reference.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ipa-utils.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/is-a.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/java
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/java/java-tree.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/langhooks.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/libiberty.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/line-map.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/machmode.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/md5.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/mode-classes.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/objc
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/objc/objc-tree.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/obstack.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/omp-builtins.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/options.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/opts.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/output.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/params.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/params.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/pass-instances.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/pass_manager.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/plugin-api.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/plugin-version.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/plugin.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/plugin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/pointer-set.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/predict.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/predict.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/prefix.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/pretty-print.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/print-rtl.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/print-tree.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/real.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/realmpfr.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/reg-notes.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/regset.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/resource.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/rtl.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/rtl.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/safe-ctype.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/sanitizer.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/sbitmap.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/splay-tree.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/ssa-iterators.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/statistics.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/stmt.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/stor-layout.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/stringpool.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/symtab.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/sync-builtins.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/system.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/target-hooks-macros.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/target.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/target.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/timevar.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/timevar.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tm-preds.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tm.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tm_p.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/toplev.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-cfg.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-cfgcleanup.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-check.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-core.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-dfa.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-dump.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-eh.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-hasher.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-inline.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-into-ssa.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-iterator.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-nested.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-object-size.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-outof-ssa.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-parloops.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-pass.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-phinodes.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-pretty-print.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-address.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-alias.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-coalesce.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-dom.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-loop-ivopts.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-loop-manip.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-loop-niter.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-loop.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-operands.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-sccvn.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-ter.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-threadedge.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa-threadupdate.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssa.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree-ssanames.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/tree.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/treestruct.def
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/varasm.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/vec.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.9.3/plugin/include/version.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/cc1
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/cc1plus
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/collect2
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/crtbegin.o
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/crtbeginS.o
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/crtbeginT.o
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/crtend.o
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/crtendS.o
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/crtfastmath.o
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/crtprec32.o
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/crtprec64.o
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/crtprec80.o
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include-fixed
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include-fixed/README
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include-fixed/limits.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include-fixed/syslimits.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/adxintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/ammintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx2intrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512bwintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512cdintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512dqintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512erintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512fintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512ifmaintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512ifmavlintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512pfintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512vbmiintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512vbmivlintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512vlbwintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512vldqintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avx512vlintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/avxintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/bmi2intrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/bmiintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/bmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/cilk.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/cilk_api.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/cilk_api_linux.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/cilk_stub.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/cilk_undocumented.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/common.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/holder.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/hyperobject_base.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/metaprogramming.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_file.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_list.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_max.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_min.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_min_max.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_opadd.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_opand.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_opmul.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_opor.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_opxor.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_ostream.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cilk/reducer_string.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/clflushoptintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/clwbintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/clzerointrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cpuid.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/cross-stdarg.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/emmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/f16cintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/float.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/fma4intrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/fmaintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/fxsrintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/ia32intrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/immintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/iso646.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/lwpintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/lzcntintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/mm3dnow.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/mm_malloc.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/mmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/mwaitxintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/nmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/omp.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/openacc.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/pkuintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/pmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/popcntintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/prfchwintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/quadmath.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/quadmath_weak.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/rdseedintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/rtmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/sanitizer
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/sanitizer/asan_interface.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/sanitizer/common_interface_defs.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/sanitizer/lsan_interface.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/shaintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/smmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/ssp
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/ssp/ssp.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/ssp/stdio.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/ssp/string.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/ssp/unistd.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/stdalign.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/stdarg.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/stdatomic.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/stdbool.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/stddef.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/stdfix.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/stdint-gcc.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/stdint.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/stdnoreturn.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/tbmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/tmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/unwind.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/varargs.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/wmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/x86intrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/xmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/xopintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/xsavecintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/xsaveintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/xsaveoptintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/xsavesintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/include/xtestintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/fixinc.sh
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/fixinc_list
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/fixincl
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/gsyslimits.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/include
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/include/README
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/include/limits.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/macro_list
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/mkheaders
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/mkheaders.conf
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/install-tools/mkinstalldirs
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/libgcc.a
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/libgcc_eh.a
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/libgcov.a
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/liblto_plugin.la
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/liblto_plugin.so
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/liblto_plugin.so.0
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/liblto_plugin.so.0.0.0
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/lto-wrapper
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/lto1
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/gengtype
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/gtype.state
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ada
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ada/gcc-interface
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ada/gcc-interface/ada-tree.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/addresses.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/alias.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/all-tree.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/alloc-pool.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ansidecl.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/asan.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/attribs.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/auto-host.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/auto-profile.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/b-header-vars
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/backend.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/basic-block.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/bb-reorder.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/bitmap.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/builtin-attrs.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/builtin-types.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/builtins.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/builtins.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/bversion.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/c-family
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/c-family/c-common.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/c-family/c-common.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/c-family/c-objc.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/c-family/c-pragma.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/c-family/c-pretty-print.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/c-tree.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/calls.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ccmp.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cfg-flags.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cfg.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cfganal.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cfgbuild.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cfgcleanup.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cfgexpand.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cfghooks.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cfgloop.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cfgloopmanip.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cfgrtl.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cgraph.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/chkp-builtins.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cif-code.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cilk-builtins.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cilk.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cilkplus.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/collect-utils.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/collect2-aix.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/collect2.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/conditions.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/dbxelf.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/elfos.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/glibc-stdint.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/gnu-user.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/att.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/gnu-user-common.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/gnu-user.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/i386-opts.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/i386-protos.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/i386.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/linux-common.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/linux.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/stringop.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/unix.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/i386/x86-tune.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/initfini-array.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/linux-android.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/linux-protos.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/linux.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/config/vxworks-dummy.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/configargs.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/context.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/convert.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/coretypes.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/coverage.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cp
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cp/cp-tree.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cp/cp-tree.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cp/cxx-pretty-print.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cp/name-lookup.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cp/type-utils.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cppbuiltin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cppdefault.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cpplib.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/cselib.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/data-streamer.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/dbgcnt.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/dbgcnt.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/dbxout.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/dce.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ddg.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/debug.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/defaults.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/df.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/dfp.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/diagnostic-color.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/diagnostic-core.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/diagnostic.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/diagnostic.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/dojump.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/dominance.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/domwalk.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/double-int.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/dumpfile.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/dwarf2asm.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/dwarf2out.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/emit-rtl.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/errors.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/et-forest.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/except.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/explow.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/expmed.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/expr.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/fibonacci_heap.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/file-find.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/filenames.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/fixed-value.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/flag-types.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/flags.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/fold-const-call.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/fold-const.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/function.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gcc-plugin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gcc-rich-location.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gcc-symtab.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gcc.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gcov-counter.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gcov-io.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gcse-common.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gcse.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/generic-match.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gengtype.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/genrtl.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gensupport.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ggc-internal.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ggc.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-builder.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-expr.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-fold.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-iterator.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-low.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-match.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-predict.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-pretty-print.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-ssa.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-streamer.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple-walk.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimple.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimplify-me.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gimplify.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/glimits.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/graph.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/graphds.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/graphite.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gsstruct.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gstab.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gsyms.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gsyslimits.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gtm-builtins.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/gtype-desc.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hard-reg-set.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hash-map-traits.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hash-map.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hash-set.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hash-table.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hash-traits.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hashtab.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/highlev-plugin-common.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hooks.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hosthooks-def.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hosthooks.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hsa-brig-format.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hsa.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hw-doloop.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/hwint.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ifcvt.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/inchash.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/incpath.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/input.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/insn-addr.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/insn-codes.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/insn-constants.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/insn-flags.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/insn-modes.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/insn-notes.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/internal-fn.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/internal-fn.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/intl.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ipa-chkp.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ipa-icf-gimple.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ipa-icf.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ipa-inline.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ipa-prop.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ipa-ref.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ipa-reference.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ipa-utils.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ira-int.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ira.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/is-a.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/java
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/java/java-tree.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/langhooks-def.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/langhooks.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/lcm.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/libfuncs.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/libiberty.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/limitx.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/limity.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/line-map.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/loop-unroll.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/lower-subreg.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/lra-int.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/lra.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/lto-compress.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/lto-section-names.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/lto-streamer.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/machmode.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/machmode.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/md5.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/mem-stats-traits.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/mem-stats.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/memory-block.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/mode-classes.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/objc
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/objc/objc-tree.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/obstack.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/omp-builtins.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/omp-low.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/optabs-libfuncs.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/optabs-query.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/optabs-tree.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/optabs.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/optabs.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/options.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/opts-diagnostic.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/opts.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/output.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/params-enum.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/params-list.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/params.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/params.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/params.list
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/pass-instances.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/pass_manager.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/passes.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/plugin-api.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/plugin-version.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/plugin.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/plugin.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/predict.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/predict.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/prefix.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/pretty-print.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/print-rtl.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/print-tree.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/profile.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/read-md.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/real.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/realmpfr.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/recog.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/reg-notes.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/regcprop.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/regrename.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/regs.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/regset.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/reload.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/resource.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/rtl-chkp.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/rtl-error.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/rtl-iter.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/rtl.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/rtl.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/rtlhash.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/rtlhooks-def.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/safe-ctype.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sanitizer.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sbitmap.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sched-int.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sdbout.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sel-sched-dump.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sel-sched-ir.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sel-sched.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sese.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/shrink-wrap.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/signop.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sparseset.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/spellcheck.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/splay-tree.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sreal.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ssa-iterators.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ssa.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/stab.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/statistics.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/stmt.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/stor-layout.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/streamer-hooks.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/stringpool.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/symbol-summary.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/symtab.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/sync-builtins.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/system.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/target-def.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/target-globals.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/target-hooks-macros.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/target-insns.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/target.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/target.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/targhooks.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/timevar.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/timevar.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tm-preds.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tm.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tm_p.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/toplev.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tracer.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/trans-mem.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-affine.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-cfg.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-cfgcleanup.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-check.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-chkp.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-chrec.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-core.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-data-ref.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-dfa.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-diagnostic.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-dump.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-eh.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-hash-traits.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-hasher.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-inline.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-into-ssa.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-iterator.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-nested.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-object-size.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-outof-ssa.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-parloops.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-pass.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-phinodes.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-pretty-print.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-scalar-evolution.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-address.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-alias.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-coalesce.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-dom.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-live.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-loop-ivopts.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-loop-manip.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-loop-niter.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-loop.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-operands.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-propagate.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-sccvn.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-scopedtables.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-ter.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-threadbackward.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-threadedge.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-threadupdate.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssa.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-ssanames.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-stdarg.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-streamer.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree-vectorizer.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tree.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/treestruct.def
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tsan.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/tsystem.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/typeclass.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/typed-splay-tree.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/ubsan.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/valtrack.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/value-prof.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/varasm.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/vec.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/version.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/vmsdbg.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/vtable-verify.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/wide-int-print.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/wide-int.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/xcoff.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/include/xcoffout.h
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/libcc1plugin.la
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/libcc1plugin.so
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/libcc1plugin.so.0
+#usr/lib/gcc/i586-pc-linux-gnu/6.3.0/plugin/libcc1plugin.so.0.0.0
 #usr/lib/libasan.a
 #usr/lib/libasan.la
 #usr/lib/libasan.so
-usr/lib/libasan.so.1
-usr/lib/libasan.so.1.0.0
+usr/lib/libasan.so.3
+usr/lib/libasan.so.3.0.0
 usr/lib/libasan_preinit.o
 #usr/lib/libatomic.a
 #usr/lib/libatomic.la
-usr/lib/libatomic.so
+#usr/lib/libatomic.so
 usr/lib/libatomic.so.1
-usr/lib/libatomic.so.1.1.0
+usr/lib/libatomic.so.1.2.0
+#usr/lib/libcc1.la
+#usr/lib/libcc1.so
+usr/lib/libcc1.so.0
+usr/lib/libcc1.so.0.0.0
 #usr/lib/libcilkrts.a
 #usr/lib/libcilkrts.la
 #usr/lib/libcilkrts.so
@@ -1122,6 +1368,17 @@ usr/lib/libgomp.so.1.0.0
 usr/lib/libitm.so.1
 usr/lib/libitm.so.1.0.0
 #usr/lib/libitm.spec
+#usr/lib/libmpx.a
+#usr/lib/libmpx.la
+#usr/lib/libmpx.so
+usr/lib/libmpx.so.2
+usr/lib/libmpx.so.2.0.0
+#usr/lib/libmpx.spec
+#usr/lib/libmpxwrappers.a
+#usr/lib/libmpxwrappers.la
+#usr/lib/libmpxwrappers.so
+usr/lib/libmpxwrappers.so.2
+usr/lib/libmpxwrappers.so.2.0.0
 #usr/lib/libquadmath.a
 #usr/lib/libquadmath.la
 #usr/lib/libquadmath.so
@@ -1136,8 +1393,9 @@ usr/lib/libssp.so.0.0.0
 #usr/lib/libssp_nonshared.a
 #usr/lib/libssp_nonshared.la
 #usr/lib/libstdc++.a
-usr/lib/libstdc++.so.6.0.20
-#usr/lib/libstdc++.so.6.0.20-gdb.py
+usr/lib/libstdc++.so.6.0.22
+#usr/lib/libstdc++fs.a
+#usr/lib/libstdc++fs.la
 #usr/lib/libsupc++.a
 #usr/lib/libsupc++.la
 #usr/lib/libubsan.a
@@ -1145,18 +1403,14 @@ usr/lib/libstdc++.so.6.0.20
 #usr/lib/libubsan.so
 usr/lib/libubsan.so.0
 usr/lib/libubsan.so.0.0.0
-#usr/lib/libvtv.a
-#usr/lib/libvtv.la
-#usr/lib/libvtv.so
-usr/lib/libvtv.so.0
-usr/lib/libvtv.so.0.0.0
-#usr/share/gcc-4.9.3
-#usr/share/gcc-4.9.3/python
-#usr/share/gcc-4.9.3/python/libstdcxx
-#usr/share/gcc-4.9.3/python/libstdcxx/__init__.py
-#usr/share/gcc-4.9.3/python/libstdcxx/v6
-#usr/share/gcc-4.9.3/python/libstdcxx/v6/__init__.py
-#usr/share/gcc-4.9.3/python/libstdcxx/v6/printers.py
+#usr/share/gcc-6.3.0
+#usr/share/gcc-6.3.0/python
+#usr/share/gcc-6.3.0/python/libstdcxx
+#usr/share/gcc-6.3.0/python/libstdcxx/__init__.py
+#usr/share/gcc-6.3.0/python/libstdcxx/v6
+#usr/share/gcc-6.3.0/python/libstdcxx/v6/__init__.py
+#usr/share/gcc-6.3.0/python/libstdcxx/v6/printers.py
+#usr/share/gcc-6.3.0/python/libstdcxx/v6/xmethods.py
 #usr/share/info/cpp.info
 #usr/share/info/cppinternals.info
 #usr/share/info/gcc.info
index d34a8f5986bbdfa727b6caad1950e2798a8d931b..a169be1473e183559ba6f3837d4df7c64d9e441b 100644 (file)
@@ -1,48 +1,49 @@
 #etc/ld.so.cache
-etc/localtime
 etc/rpc
-lib/ld-2.12.so
+lib/ld-2.25.so
 lib/ld-linux.so.2
-lib/libBrokenLocale-2.12.so
+lib/libBrokenLocale-2.25.so
 lib/libBrokenLocale.so.1
 #lib/libSegFault.so
-lib/libanl-2.12.so
+lib/libanl-2.25.so
 lib/libanl.so.1
-lib/libc-2.12.so
+lib/libc-2.25.so
 lib/libc.so.6
-lib/libcidn-2.12.so
+lib/libcidn-2.25.so
 lib/libcidn.so.1
-lib/libcrypt-2.12.so
+lib/libcrypt-2.25.so
 lib/libcrypt.so.1
-lib/libdl-2.12.so
+lib/libdl-2.25.so
 lib/libdl.so.2
-lib/libm-2.12.so
+lib/libm-2.25.so
 lib/libm.so.6
 #lib/libmemusage.so
-lib/libnsl-2.12.so
+lib/libnsl-2.25.so
 lib/libnsl.so.1
-lib/libnss_compat-2.12.so
+lib/libnss_compat-2.25.so
 lib/libnss_compat.so.2
-lib/libnss_dns-2.12.so
+lib/libnss_db-2.25.so
+lib/libnss_db.so.2
+lib/libnss_dns-2.25.so
 lib/libnss_dns.so.2
-lib/libnss_files-2.12.so
+lib/libnss_files-2.25.so
 lib/libnss_files.so.2
-lib/libnss_hesiod-2.12.so
+lib/libnss_hesiod-2.25.so
 lib/libnss_hesiod.so.2
-lib/libnss_nis-2.12.so
+lib/libnss_nis-2.25.so
 lib/libnss_nis.so.2
-lib/libnss_nisplus-2.12.so
+lib/libnss_nisplus-2.25.so
 lib/libnss_nisplus.so.2
 #lib/libpcprofile.so
-lib/libpthread-2.12.so
+lib/libpthread-2.25.so
 lib/libpthread.so.0
-lib/libresolv-2.12.so
+lib/libresolv-2.25.so
 lib/libresolv.so.2
-lib/librt-2.12.so
+lib/librt-2.25.so
 lib/librt.so.1
 lib/libthread_db-1.0.so
 lib/libthread_db.so.1
-lib/libutil-2.12.so
+lib/libutil-2.25.so
 lib/libutil.so.1
 sbin/ldconfig
 #sbin/sln
@@ -55,9 +56,12 @@ usr/bin/ldd
 usr/bin/lddlibc4
 usr/bin/locale
 #usr/bin/localedef
+#usr/bin/makedb
 #usr/bin/mtrace
 #usr/bin/pcprofiledump
+#usr/bin/pldd
 #usr/bin/rpcgen
+#usr/bin/sotruss
 #usr/bin/sprof
 #usr/bin/tzselect
 #usr/bin/xtrace
@@ -79,6 +83,7 @@ usr/bin/locale
 #usr/include/assert.h
 #usr/include/bits
 #usr/include/bits/a.out.h
+#usr/include/bits/byteswap-16.h
 #usr/include/bits/byteswap.h
 #usr/include/bits/cmathcalls.h
 #usr/include/bits/confname.h
@@ -87,30 +92,44 @@ usr/bin/locale
 #usr/include/bits/elfclass.h
 #usr/include/bits/endian.h
 #usr/include/bits/environments.h
+#usr/include/bits/epoll.h
 #usr/include/bits/errno.h
 #usr/include/bits/error.h
+#usr/include/bits/eventfd.h
+#usr/include/bits/fcntl-linux.h
 #usr/include/bits/fcntl.h
 #usr/include/bits/fcntl2.h
 #usr/include/bits/fenv.h
 #usr/include/bits/fenvinline.h
+#usr/include/bits/flt-eval-method.h
+#usr/include/bits/fp-fast.h
+#usr/include/bits/fp-logb.h
 #usr/include/bits/huge_val.h
 #usr/include/bits/huge_valf.h
 #usr/include/bits/huge_vall.h
+#usr/include/bits/hwcap.h
 #usr/include/bits/in.h
 #usr/include/bits/inf.h
 #usr/include/bits/initspin.h
+#usr/include/bits/inotify.h
 #usr/include/bits/ioctl-types.h
 #usr/include/bits/ioctls.h
 #usr/include/bits/ipc.h
 #usr/include/bits/ipctypes.h
-#usr/include/bits/libc-lock.h
+#usr/include/bits/iscanonical.h
+#usr/include/bits/libc-header-start.h
 #usr/include/bits/libio-ldbl.h
+#usr/include/bits/libm-simd-decl-stubs.h
 #usr/include/bits/link.h
 #usr/include/bits/local_lim.h
 #usr/include/bits/locale.h
+#usr/include/bits/long-double.h
+#usr/include/bits/math-finite.h
+#usr/include/bits/math-vector.h
 #usr/include/bits/mathcalls.h
 #usr/include/bits/mathdef.h
 #usr/include/bits/mathinline.h
+#usr/include/bits/mman-linux.h
 #usr/include/bits/mman.h
 #usr/include/bits/monetary-ldbl.h
 #usr/include/bits/mqueue.h
@@ -118,7 +137,9 @@ usr/bin/locale
 #usr/include/bits/msq.h
 #usr/include/bits/nan.h
 #usr/include/bits/netdb.h
+#usr/include/bits/param.h
 #usr/include/bits/poll.h
+#usr/include/bits/poll2.h
 #usr/include/bits/posix1_lim.h
 #usr/include/bits/posix2_lim.h
 #usr/include/bits/posix_opt.h
@@ -127,6 +148,7 @@ usr/bin/locale
 #usr/include/bits/resource.h
 #usr/include/bits/sched.h
 #usr/include/bits/select.h
+#usr/include/bits/select2.h
 #usr/include/bits/sem.h
 #usr/include/bits/semaphore.h
 #usr/include/bits/setjmp.h
@@ -135,6 +157,7 @@ usr/bin/locale
 #usr/include/bits/sigaction.h
 #usr/include/bits/sigcontext.h
 #usr/include/bits/siginfo.h
+#usr/include/bits/signalfd.h
 #usr/include/bits/signum.h
 #usr/include/bits/sigset.h
 #usr/include/bits/sigstack.h
@@ -142,29 +165,48 @@ usr/bin/locale
 #usr/include/bits/sockaddr.h
 #usr/include/bits/socket.h
 #usr/include/bits/socket2.h
+#usr/include/bits/socket_type.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-bsearch.h
+#usr/include/bits/stdlib-float.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/strings_fortified.h
+#usr/include/bits/stropts.h
 #usr/include/bits/sys_errlist.h
 #usr/include/bits/syscall.h
+#usr/include/bits/sysctl.h
 #usr/include/bits/syslog-ldbl.h
 #usr/include/bits/syslog-path.h
 #usr/include/bits/syslog.h
+#usr/include/bits/sysmacros.h
 #usr/include/bits/termios.h
 #usr/include/bits/time.h
+#usr/include/bits/timerfd.h
+#usr/include/bits/timex.h
+#usr/include/bits/types
 #usr/include/bits/types.h
+#usr/include/bits/types/clock_t.h
+#usr/include/bits/types/clockid_t.h
+#usr/include/bits/types/struct_itimerspec.h
+#usr/include/bits/types/struct_osockaddr.h
+#usr/include/bits/types/struct_timespec.h
+#usr/include/bits/types/struct_timeval.h
+#usr/include/bits/types/struct_tm.h
+#usr/include/bits/types/time_t.h
+#usr/include/bits/types/timer_t.h
 #usr/include/bits/typesizes.h
+#usr/include/bits/uintn-identity.h
 #usr/include/bits/uio.h
 #usr/include/bits/unistd.h
 #usr/include/bits/ustat.h
@@ -178,6 +220,7 @@ usr/bin/locale
 #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
@@ -206,6 +249,7 @@ usr/bin/locale
 #usr/include/glob.h
 #usr/include/gnu
 #usr/include/gnu-versions.h
+#usr/include/gnu/lib-names-32.h
 #usr/include/gnu/lib-names.h
 #usr/include/gnu/libc-version.h
 #usr/include/gnu/stubs-32.h
@@ -283,6 +327,7 @@ usr/bin/locale
 #usr/include/paths.h
 #usr/include/poll.h
 #usr/include/printf.h
+#usr/include/proc_service.h
 #usr/include/protocols
 #usr/include/protocols/routed.h
 #usr/include/protocols/rwhod.h
@@ -365,14 +410,17 @@ usr/bin/locale
 #usr/include/signal.h
 #usr/include/spawn.h
 #usr/include/stab.h
+#usr/include/stdc-predef.h
 #usr/include/stdint.h
 #usr/include/stdio.h
 #usr/include/stdio_ext.h
 #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/auxv.h
 #usr/include/sys/bitypes.h
 #usr/include/sys/cdefs.h
 #usr/include/sys/debugreg.h
@@ -381,6 +429,7 @@ usr/bin/locale
 #usr/include/sys/epoll.h
 #usr/include/sys/errno.h
 #usr/include/sys/eventfd.h
+#usr/include/sys/fanotify.h
 #usr/include/sys/fcntl.h
 #usr/include/sys/file.h
 #usr/include/sys/fsuid.h
@@ -391,7 +440,6 @@ usr/bin/locale
 #usr/include/sys/ioctl.h
 #usr/include/sys/ipc.h
 #usr/include/sys/kd.h
-#usr/include/sys/kdaemon.h
 #usr/include/sys/klog.h
 #usr/include/sys/mman.h
 #usr/include/sys/mount.h
@@ -408,6 +456,7 @@ usr/bin/locale
 #usr/include/sys/ptrace.h
 #usr/include/sys/queue.h
 #usr/include/sys/quota.h
+#usr/include/sys/random.h
 #usr/include/sys/raw.h
 #usr/include/sys/reboot.h
 #usr/include/sys/reg.h
@@ -424,6 +473,7 @@ usr/bin/locale
 #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
@@ -464,6 +514,7 @@ usr/bin/locale
 #usr/include/thread_db.h
 #usr/include/time.h
 #usr/include/ttyent.h
+#usr/include/uchar.h
 #usr/include/ucontext.h
 #usr/include/ulimit.h
 #usr/include/unistd.h
@@ -479,6 +530,8 @@ usr/bin/locale
 #usr/include/xlocale.h
 #usr/lib/Mcrt1.o
 #usr/lib/Scrt1.o
+#usr/lib/audit
+#usr/lib/audit/sotruss-lib.so
 #usr/lib/crt1.o
 #usr/lib/crti.o
 #usr/lib/crtn.o
@@ -501,6 +554,11 @@ usr/lib/gconv
 #usr/lib/gconv/CP1257.so
 #usr/lib/gconv/CP1258.so
 #usr/lib/gconv/CP737.so
+#usr/lib/gconv/CP770.so
+#usr/lib/gconv/CP771.so
+#usr/lib/gconv/CP772.so
+#usr/lib/gconv/CP773.so
+#usr/lib/gconv/CP774.so
 #usr/lib/gconv/CP775.so
 #usr/lib/gconv/CP932.so
 #usr/lib/gconv/CSN_369103.so
@@ -738,12 +796,12 @@ usr/lib/gconv
 #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/glibc/getconf/XBS5_ILP32_OFF32
+#usr/lib/glibc/getconf/XBS5_ILP32_OFFBIG
 #usr/lib/libBrokenLocale.a
 #usr/lib/libBrokenLocale.so
 #usr/lib/libanl.a
 #usr/lib/libanl.so
-#usr/lib/libbsd-compat.a
 #usr/lib/libc.a
 #usr/lib/libc.so
 #usr/lib/libc_nonshared.a
@@ -760,6 +818,7 @@ usr/lib/gconv
 #usr/lib/libnsl.a
 #usr/lib/libnsl.so
 #usr/lib/libnss_compat.so
+#usr/lib/libnss_db.so
 #usr/lib/libnss_dns.so
 #usr/lib/libnss_files.so
 #usr/lib/libnss_hesiod.so
@@ -875,6 +934,20 @@ usr/lib/locale
 #usr/lib/locale/af_ZA/LC_PAPER
 #usr/lib/locale/af_ZA/LC_TELEPHONE
 #usr/lib/locale/af_ZA/LC_TIME
+#usr/lib/locale/ak_GH
+#usr/lib/locale/ak_GH/LC_ADDRESS
+#usr/lib/locale/ak_GH/LC_COLLATE
+#usr/lib/locale/ak_GH/LC_CTYPE
+#usr/lib/locale/ak_GH/LC_IDENTIFICATION
+#usr/lib/locale/ak_GH/LC_MEASUREMENT
+#usr/lib/locale/ak_GH/LC_MESSAGES
+#usr/lib/locale/ak_GH/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ak_GH/LC_MONETARY
+#usr/lib/locale/ak_GH/LC_NAME
+#usr/lib/locale/ak_GH/LC_NUMERIC
+#usr/lib/locale/ak_GH/LC_PAPER
+#usr/lib/locale/ak_GH/LC_TELEPHONE
+#usr/lib/locale/ak_GH/LC_TIME
 #usr/lib/locale/am_ET
 #usr/lib/locale/am_ET/LC_ADDRESS
 #usr/lib/locale/am_ET/LC_COLLATE
@@ -917,6 +990,20 @@ usr/lib/locale
 #usr/lib/locale/an_ES/LC_PAPER
 #usr/lib/locale/an_ES/LC_TELEPHONE
 #usr/lib/locale/an_ES/LC_TIME
+#usr/lib/locale/anp_IN
+#usr/lib/locale/anp_IN/LC_ADDRESS
+#usr/lib/locale/anp_IN/LC_COLLATE
+#usr/lib/locale/anp_IN/LC_CTYPE
+#usr/lib/locale/anp_IN/LC_IDENTIFICATION
+#usr/lib/locale/anp_IN/LC_MEASUREMENT
+#usr/lib/locale/anp_IN/LC_MESSAGES
+#usr/lib/locale/anp_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/anp_IN/LC_MONETARY
+#usr/lib/locale/anp_IN/LC_NAME
+#usr/lib/locale/anp_IN/LC_NUMERIC
+#usr/lib/locale/anp_IN/LC_PAPER
+#usr/lib/locale/anp_IN/LC_TELEPHONE
+#usr/lib/locale/anp_IN/LC_TIME
 #usr/lib/locale/ar_AE
 #usr/lib/locale/ar_AE.utf8
 #usr/lib/locale/ar_AE.utf8/LC_ADDRESS
@@ -1323,6 +1410,20 @@ usr/lib/locale
 #usr/lib/locale/ar_SD/LC_PAPER
 #usr/lib/locale/ar_SD/LC_TELEPHONE
 #usr/lib/locale/ar_SD/LC_TIME
+#usr/lib/locale/ar_SS
+#usr/lib/locale/ar_SS/LC_ADDRESS
+#usr/lib/locale/ar_SS/LC_COLLATE
+#usr/lib/locale/ar_SS/LC_CTYPE
+#usr/lib/locale/ar_SS/LC_IDENTIFICATION
+#usr/lib/locale/ar_SS/LC_MEASUREMENT
+#usr/lib/locale/ar_SS/LC_MESSAGES
+#usr/lib/locale/ar_SS/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ar_SS/LC_MONETARY
+#usr/lib/locale/ar_SS/LC_NAME
+#usr/lib/locale/ar_SS/LC_NUMERIC
+#usr/lib/locale/ar_SS/LC_PAPER
+#usr/lib/locale/ar_SS/LC_TELEPHONE
+#usr/lib/locale/ar_SS/LC_TIME
 #usr/lib/locale/ar_SY
 #usr/lib/locale/ar_SY.utf8
 #usr/lib/locale/ar_SY.utf8/LC_ADDRESS
@@ -1449,6 +1550,20 @@ usr/lib/locale
 #usr/lib/locale/ast_ES/LC_PAPER
 #usr/lib/locale/ast_ES/LC_TELEPHONE
 #usr/lib/locale/ast_ES/LC_TIME
+#usr/lib/locale/ayc_PE
+#usr/lib/locale/ayc_PE/LC_ADDRESS
+#usr/lib/locale/ayc_PE/LC_COLLATE
+#usr/lib/locale/ayc_PE/LC_CTYPE
+#usr/lib/locale/ayc_PE/LC_IDENTIFICATION
+#usr/lib/locale/ayc_PE/LC_MEASUREMENT
+#usr/lib/locale/ayc_PE/LC_MESSAGES
+#usr/lib/locale/ayc_PE/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ayc_PE/LC_MONETARY
+#usr/lib/locale/ayc_PE/LC_NAME
+#usr/lib/locale/ayc_PE/LC_NUMERIC
+#usr/lib/locale/ayc_PE/LC_PAPER
+#usr/lib/locale/ayc_PE/LC_TELEPHONE
+#usr/lib/locale/ayc_PE/LC_TIME
 #usr/lib/locale/az_AZ
 #usr/lib/locale/az_AZ/LC_ADDRESS
 #usr/lib/locale/az_AZ/LC_COLLATE
@@ -1505,6 +1620,20 @@ usr/lib/locale
 #usr/lib/locale/be_BY@latin/LC_PAPER
 #usr/lib/locale/be_BY@latin/LC_TELEPHONE
 #usr/lib/locale/be_BY@latin/LC_TIME
+#usr/lib/locale/bem_ZM
+#usr/lib/locale/bem_ZM/LC_ADDRESS
+#usr/lib/locale/bem_ZM/LC_COLLATE
+#usr/lib/locale/bem_ZM/LC_CTYPE
+#usr/lib/locale/bem_ZM/LC_IDENTIFICATION
+#usr/lib/locale/bem_ZM/LC_MEASUREMENT
+#usr/lib/locale/bem_ZM/LC_MESSAGES
+#usr/lib/locale/bem_ZM/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/bem_ZM/LC_MONETARY
+#usr/lib/locale/bem_ZM/LC_NAME
+#usr/lib/locale/bem_ZM/LC_NUMERIC
+#usr/lib/locale/bem_ZM/LC_PAPER
+#usr/lib/locale/bem_ZM/LC_TELEPHONE
+#usr/lib/locale/bem_ZM/LC_TIME
 #usr/lib/locale/ber_DZ
 #usr/lib/locale/ber_DZ/LC_ADDRESS
 #usr/lib/locale/ber_DZ/LC_COLLATE
@@ -1561,6 +1690,34 @@ usr/lib/locale
 #usr/lib/locale/bg_BG/LC_PAPER
 #usr/lib/locale/bg_BG/LC_TELEPHONE
 #usr/lib/locale/bg_BG/LC_TIME
+#usr/lib/locale/bhb_IN.utf8
+#usr/lib/locale/bhb_IN.utf8/LC_ADDRESS
+#usr/lib/locale/bhb_IN.utf8/LC_COLLATE
+#usr/lib/locale/bhb_IN.utf8/LC_CTYPE
+#usr/lib/locale/bhb_IN.utf8/LC_IDENTIFICATION
+#usr/lib/locale/bhb_IN.utf8/LC_MEASUREMENT
+#usr/lib/locale/bhb_IN.utf8/LC_MESSAGES
+#usr/lib/locale/bhb_IN.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/bhb_IN.utf8/LC_MONETARY
+#usr/lib/locale/bhb_IN.utf8/LC_NAME
+#usr/lib/locale/bhb_IN.utf8/LC_NUMERIC
+#usr/lib/locale/bhb_IN.utf8/LC_PAPER
+#usr/lib/locale/bhb_IN.utf8/LC_TELEPHONE
+#usr/lib/locale/bhb_IN.utf8/LC_TIME
+#usr/lib/locale/bho_IN
+#usr/lib/locale/bho_IN/LC_ADDRESS
+#usr/lib/locale/bho_IN/LC_COLLATE
+#usr/lib/locale/bho_IN/LC_CTYPE
+#usr/lib/locale/bho_IN/LC_IDENTIFICATION
+#usr/lib/locale/bho_IN/LC_MEASUREMENT
+#usr/lib/locale/bho_IN/LC_MESSAGES
+#usr/lib/locale/bho_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/bho_IN/LC_MONETARY
+#usr/lib/locale/bho_IN/LC_NAME
+#usr/lib/locale/bho_IN/LC_NUMERIC
+#usr/lib/locale/bho_IN/LC_PAPER
+#usr/lib/locale/bho_IN/LC_TELEPHONE
+#usr/lib/locale/bho_IN/LC_TIME
 #usr/lib/locale/bn_BD
 #usr/lib/locale/bn_BD/LC_ADDRESS
 #usr/lib/locale/bn_BD/LC_COLLATE
@@ -1659,6 +1816,20 @@ usr/lib/locale
 #usr/lib/locale/br_FR@euro/LC_PAPER
 #usr/lib/locale/br_FR@euro/LC_TELEPHONE
 #usr/lib/locale/br_FR@euro/LC_TIME
+#usr/lib/locale/brx_IN
+#usr/lib/locale/brx_IN/LC_ADDRESS
+#usr/lib/locale/brx_IN/LC_COLLATE
+#usr/lib/locale/brx_IN/LC_CTYPE
+#usr/lib/locale/brx_IN/LC_IDENTIFICATION
+#usr/lib/locale/brx_IN/LC_MEASUREMENT
+#usr/lib/locale/brx_IN/LC_MESSAGES
+#usr/lib/locale/brx_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/brx_IN/LC_MONETARY
+#usr/lib/locale/brx_IN/LC_NAME
+#usr/lib/locale/brx_IN/LC_NUMERIC
+#usr/lib/locale/brx_IN/LC_PAPER
+#usr/lib/locale/brx_IN/LC_TELEPHONE
+#usr/lib/locale/brx_IN/LC_TIME
 #usr/lib/locale/bs_BA
 #usr/lib/locale/bs_BA.utf8
 #usr/lib/locale/bs_BA.utf8/LC_ADDRESS
@@ -1827,6 +1998,48 @@ usr/lib/locale
 #usr/lib/locale/ca_IT/LC_PAPER
 #usr/lib/locale/ca_IT/LC_TELEPHONE
 #usr/lib/locale/ca_IT/LC_TIME
+#usr/lib/locale/ce_RU
+#usr/lib/locale/ce_RU/LC_ADDRESS
+#usr/lib/locale/ce_RU/LC_COLLATE
+#usr/lib/locale/ce_RU/LC_CTYPE
+#usr/lib/locale/ce_RU/LC_IDENTIFICATION
+#usr/lib/locale/ce_RU/LC_MEASUREMENT
+#usr/lib/locale/ce_RU/LC_MESSAGES
+#usr/lib/locale/ce_RU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ce_RU/LC_MONETARY
+#usr/lib/locale/ce_RU/LC_NAME
+#usr/lib/locale/ce_RU/LC_NUMERIC
+#usr/lib/locale/ce_RU/LC_PAPER
+#usr/lib/locale/ce_RU/LC_TELEPHONE
+#usr/lib/locale/ce_RU/LC_TIME
+#usr/lib/locale/chr_US
+#usr/lib/locale/chr_US/LC_ADDRESS
+#usr/lib/locale/chr_US/LC_COLLATE
+#usr/lib/locale/chr_US/LC_CTYPE
+#usr/lib/locale/chr_US/LC_IDENTIFICATION
+#usr/lib/locale/chr_US/LC_MEASUREMENT
+#usr/lib/locale/chr_US/LC_MESSAGES
+#usr/lib/locale/chr_US/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/chr_US/LC_MONETARY
+#usr/lib/locale/chr_US/LC_NAME
+#usr/lib/locale/chr_US/LC_NUMERIC
+#usr/lib/locale/chr_US/LC_PAPER
+#usr/lib/locale/chr_US/LC_TELEPHONE
+#usr/lib/locale/chr_US/LC_TIME
+#usr/lib/locale/cmn_TW
+#usr/lib/locale/cmn_TW/LC_ADDRESS
+#usr/lib/locale/cmn_TW/LC_COLLATE
+#usr/lib/locale/cmn_TW/LC_CTYPE
+#usr/lib/locale/cmn_TW/LC_IDENTIFICATION
+#usr/lib/locale/cmn_TW/LC_MEASUREMENT
+#usr/lib/locale/cmn_TW/LC_MESSAGES
+#usr/lib/locale/cmn_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/cmn_TW/LC_MONETARY
+#usr/lib/locale/cmn_TW/LC_NAME
+#usr/lib/locale/cmn_TW/LC_NUMERIC
+#usr/lib/locale/cmn_TW/LC_PAPER
+#usr/lib/locale/cmn_TW/LC_TELEPHONE
+#usr/lib/locale/cmn_TW/LC_TIME
 #usr/lib/locale/crh_UA
 #usr/lib/locale/crh_UA/LC_ADDRESS
 #usr/lib/locale/crh_UA/LC_COLLATE
@@ -1926,20 +2139,6 @@ usr/lib/locale
 #usr/lib/locale/cy_GB/LC_TELEPHONE
 #usr/lib/locale/cy_GB/LC_TIME
 #usr/lib/locale/da_DK
-#usr/lib/locale/da_DK.iso885915
-#usr/lib/locale/da_DK.iso885915/LC_ADDRESS
-#usr/lib/locale/da_DK.iso885915/LC_COLLATE
-#usr/lib/locale/da_DK.iso885915/LC_CTYPE
-#usr/lib/locale/da_DK.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/da_DK.iso885915/LC_MEASUREMENT
-#usr/lib/locale/da_DK.iso885915/LC_MESSAGES
-#usr/lib/locale/da_DK.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/da_DK.iso885915/LC_MONETARY
-#usr/lib/locale/da_DK.iso885915/LC_NAME
-#usr/lib/locale/da_DK.iso885915/LC_NUMERIC
-#usr/lib/locale/da_DK.iso885915/LC_PAPER
-#usr/lib/locale/da_DK.iso885915/LC_TELEPHONE
-#usr/lib/locale/da_DK.iso885915/LC_TIME
 #usr/lib/locale/da_DK.utf8
 #usr/lib/locale/da_DK.utf8/LC_ADDRESS
 #usr/lib/locale/da_DK.utf8/LC_COLLATE
@@ -2121,6 +2320,48 @@ usr/lib/locale
 #usr/lib/locale/de_DE@euro/LC_PAPER
 #usr/lib/locale/de_DE@euro/LC_TELEPHONE
 #usr/lib/locale/de_DE@euro/LC_TIME
+#usr/lib/locale/de_IT
+#usr/lib/locale/de_IT.utf8
+#usr/lib/locale/de_IT.utf8/LC_ADDRESS
+#usr/lib/locale/de_IT.utf8/LC_COLLATE
+#usr/lib/locale/de_IT.utf8/LC_CTYPE
+#usr/lib/locale/de_IT.utf8/LC_IDENTIFICATION
+#usr/lib/locale/de_IT.utf8/LC_MEASUREMENT
+#usr/lib/locale/de_IT.utf8/LC_MESSAGES
+#usr/lib/locale/de_IT.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/de_IT.utf8/LC_MONETARY
+#usr/lib/locale/de_IT.utf8/LC_NAME
+#usr/lib/locale/de_IT.utf8/LC_NUMERIC
+#usr/lib/locale/de_IT.utf8/LC_PAPER
+#usr/lib/locale/de_IT.utf8/LC_TELEPHONE
+#usr/lib/locale/de_IT.utf8/LC_TIME
+#usr/lib/locale/de_IT/LC_ADDRESS
+#usr/lib/locale/de_IT/LC_COLLATE
+#usr/lib/locale/de_IT/LC_CTYPE
+#usr/lib/locale/de_IT/LC_IDENTIFICATION
+#usr/lib/locale/de_IT/LC_MEASUREMENT
+#usr/lib/locale/de_IT/LC_MESSAGES
+#usr/lib/locale/de_IT/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/de_IT/LC_MONETARY
+#usr/lib/locale/de_IT/LC_NAME
+#usr/lib/locale/de_IT/LC_NUMERIC
+#usr/lib/locale/de_IT/LC_PAPER
+#usr/lib/locale/de_IT/LC_TELEPHONE
+#usr/lib/locale/de_IT/LC_TIME
+#usr/lib/locale/de_LI.utf8
+#usr/lib/locale/de_LI.utf8/LC_ADDRESS
+#usr/lib/locale/de_LI.utf8/LC_COLLATE
+#usr/lib/locale/de_LI.utf8/LC_CTYPE
+#usr/lib/locale/de_LI.utf8/LC_IDENTIFICATION
+#usr/lib/locale/de_LI.utf8/LC_MEASUREMENT
+#usr/lib/locale/de_LI.utf8/LC_MESSAGES
+#usr/lib/locale/de_LI.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/de_LI.utf8/LC_MONETARY
+#usr/lib/locale/de_LI.utf8/LC_NAME
+#usr/lib/locale/de_LI.utf8/LC_NUMERIC
+#usr/lib/locale/de_LI.utf8/LC_PAPER
+#usr/lib/locale/de_LI.utf8/LC_TELEPHONE
+#usr/lib/locale/de_LI.utf8/LC_TIME
 #usr/lib/locale/de_LU
 #usr/lib/locale/de_LU.utf8
 #usr/lib/locale/de_LU.utf8/LC_ADDRESS
@@ -2163,6 +2404,20 @@ usr/lib/locale
 #usr/lib/locale/de_LU@euro/LC_PAPER
 #usr/lib/locale/de_LU@euro/LC_TELEPHONE
 #usr/lib/locale/de_LU@euro/LC_TIME
+#usr/lib/locale/doi_IN
+#usr/lib/locale/doi_IN/LC_ADDRESS
+#usr/lib/locale/doi_IN/LC_COLLATE
+#usr/lib/locale/doi_IN/LC_CTYPE
+#usr/lib/locale/doi_IN/LC_IDENTIFICATION
+#usr/lib/locale/doi_IN/LC_MEASUREMENT
+#usr/lib/locale/doi_IN/LC_MESSAGES
+#usr/lib/locale/doi_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/doi_IN/LC_MONETARY
+#usr/lib/locale/doi_IN/LC_NAME
+#usr/lib/locale/doi_IN/LC_NUMERIC
+#usr/lib/locale/doi_IN/LC_PAPER
+#usr/lib/locale/doi_IN/LC_TELEPHONE
+#usr/lib/locale/doi_IN/LC_TIME
 #usr/lib/locale/dv_MV
 #usr/lib/locale/dv_MV/LC_ADDRESS
 #usr/lib/locale/dv_MV/LC_COLLATE
@@ -2374,20 +2629,6 @@ usr/lib/locale
 #usr/lib/locale/en_DK/LC_TELEPHONE
 #usr/lib/locale/en_DK/LC_TIME
 #usr/lib/locale/en_GB
-#usr/lib/locale/en_GB.iso885915
-#usr/lib/locale/en_GB.iso885915/LC_ADDRESS
-#usr/lib/locale/en_GB.iso885915/LC_COLLATE
-#usr/lib/locale/en_GB.iso885915/LC_CTYPE
-#usr/lib/locale/en_GB.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/en_GB.iso885915/LC_MEASUREMENT
-#usr/lib/locale/en_GB.iso885915/LC_MESSAGES
-#usr/lib/locale/en_GB.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/en_GB.iso885915/LC_MONETARY
-#usr/lib/locale/en_GB.iso885915/LC_NAME
-#usr/lib/locale/en_GB.iso885915/LC_NUMERIC
-#usr/lib/locale/en_GB.iso885915/LC_PAPER
-#usr/lib/locale/en_GB.iso885915/LC_TELEPHONE
-#usr/lib/locale/en_GB.iso885915/LC_TIME
 #usr/lib/locale/en_GB.utf8
 #usr/lib/locale/en_GB.utf8/LC_ADDRESS
 #usr/lib/locale/en_GB.utf8/LC_COLLATE
@@ -2485,6 +2726,20 @@ usr/lib/locale
 #usr/lib/locale/en_IE@euro/LC_PAPER
 #usr/lib/locale/en_IE@euro/LC_TELEPHONE
 #usr/lib/locale/en_IE@euro/LC_TIME
+#usr/lib/locale/en_IL
+#usr/lib/locale/en_IL/LC_ADDRESS
+#usr/lib/locale/en_IL/LC_COLLATE
+#usr/lib/locale/en_IL/LC_CTYPE
+#usr/lib/locale/en_IL/LC_IDENTIFICATION
+#usr/lib/locale/en_IL/LC_MEASUREMENT
+#usr/lib/locale/en_IL/LC_MESSAGES
+#usr/lib/locale/en_IL/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/en_IL/LC_MONETARY
+#usr/lib/locale/en_IL/LC_NAME
+#usr/lib/locale/en_IL/LC_NUMERIC
+#usr/lib/locale/en_IL/LC_PAPER
+#usr/lib/locale/en_IL/LC_TELEPHONE
+#usr/lib/locale/en_IL/LC_TIME
 #usr/lib/locale/en_IN
 #usr/lib/locale/en_IN/LC_ADDRESS
 #usr/lib/locale/en_IN/LC_COLLATE
@@ -2598,20 +2853,6 @@ usr/lib/locale
 #usr/lib/locale/en_SG/LC_TELEPHONE
 #usr/lib/locale/en_SG/LC_TIME
 #usr/lib/locale/en_US
-#usr/lib/locale/en_US.iso885915
-#usr/lib/locale/en_US.iso885915/LC_ADDRESS
-#usr/lib/locale/en_US.iso885915/LC_COLLATE
-#usr/lib/locale/en_US.iso885915/LC_CTYPE
-#usr/lib/locale/en_US.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/en_US.iso885915/LC_MEASUREMENT
-#usr/lib/locale/en_US.iso885915/LC_MESSAGES
-#usr/lib/locale/en_US.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/en_US.iso885915/LC_MONETARY
-#usr/lib/locale/en_US.iso885915/LC_NAME
-#usr/lib/locale/en_US.iso885915/LC_NUMERIC
-#usr/lib/locale/en_US.iso885915/LC_PAPER
-#usr/lib/locale/en_US.iso885915/LC_TELEPHONE
-#usr/lib/locale/en_US.iso885915/LC_TIME
 #usr/lib/locale/en_US.utf8
 #usr/lib/locale/en_US.utf8/LC_ADDRESS
 #usr/lib/locale/en_US.utf8/LC_COLLATE
@@ -2667,6 +2908,20 @@ usr/lib/locale
 #usr/lib/locale/en_ZA/LC_PAPER
 #usr/lib/locale/en_ZA/LC_TELEPHONE
 #usr/lib/locale/en_ZA/LC_TIME
+#usr/lib/locale/en_ZM
+#usr/lib/locale/en_ZM/LC_ADDRESS
+#usr/lib/locale/en_ZM/LC_COLLATE
+#usr/lib/locale/en_ZM/LC_CTYPE
+#usr/lib/locale/en_ZM/LC_IDENTIFICATION
+#usr/lib/locale/en_ZM/LC_MEASUREMENT
+#usr/lib/locale/en_ZM/LC_MESSAGES
+#usr/lib/locale/en_ZM/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/en_ZM/LC_MONETARY
+#usr/lib/locale/en_ZM/LC_NAME
+#usr/lib/locale/en_ZM/LC_NUMERIC
+#usr/lib/locale/en_ZM/LC_PAPER
+#usr/lib/locale/en_ZM/LC_TELEPHONE
+#usr/lib/locale/en_ZM/LC_TIME
 #usr/lib/locale/en_ZW
 #usr/lib/locale/en_ZW.utf8
 #usr/lib/locale/en_ZW.utf8/LC_ADDRESS
@@ -2695,6 +2950,20 @@ usr/lib/locale
 #usr/lib/locale/en_ZW/LC_PAPER
 #usr/lib/locale/en_ZW/LC_TELEPHONE
 #usr/lib/locale/en_ZW/LC_TIME
+#usr/lib/locale/eo
+#usr/lib/locale/eo/LC_ADDRESS
+#usr/lib/locale/eo/LC_COLLATE
+#usr/lib/locale/eo/LC_CTYPE
+#usr/lib/locale/eo/LC_IDENTIFICATION
+#usr/lib/locale/eo/LC_MEASUREMENT
+#usr/lib/locale/eo/LC_MESSAGES
+#usr/lib/locale/eo/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/eo/LC_MONETARY
+#usr/lib/locale/eo/LC_NAME
+#usr/lib/locale/eo/LC_NUMERIC
+#usr/lib/locale/eo/LC_PAPER
+#usr/lib/locale/eo/LC_TELEPHONE
+#usr/lib/locale/eo/LC_TIME
 #usr/lib/locale/es_AR
 #usr/lib/locale/es_AR.utf8
 #usr/lib/locale/es_AR.utf8/LC_ADDRESS
@@ -2835,6 +3104,20 @@ usr/lib/locale
 #usr/lib/locale/es_CR/LC_PAPER
 #usr/lib/locale/es_CR/LC_TELEPHONE
 #usr/lib/locale/es_CR/LC_TIME
+#usr/lib/locale/es_CU
+#usr/lib/locale/es_CU/LC_ADDRESS
+#usr/lib/locale/es_CU/LC_COLLATE
+#usr/lib/locale/es_CU/LC_CTYPE
+#usr/lib/locale/es_CU/LC_IDENTIFICATION
+#usr/lib/locale/es_CU/LC_MEASUREMENT
+#usr/lib/locale/es_CU/LC_MESSAGES
+#usr/lib/locale/es_CU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/es_CU/LC_MONETARY
+#usr/lib/locale/es_CU/LC_NAME
+#usr/lib/locale/es_CU/LC_NUMERIC
+#usr/lib/locale/es_CU/LC_PAPER
+#usr/lib/locale/es_CU/LC_TELEPHONE
+#usr/lib/locale/es_CU/LC_TIME
 #usr/lib/locale/es_DO
 #usr/lib/locale/es_DO.utf8
 #usr/lib/locale/es_DO.utf8/LC_ADDRESS
@@ -3367,6 +3650,20 @@ usr/lib/locale
 #usr/lib/locale/fa_IR/LC_PAPER
 #usr/lib/locale/fa_IR/LC_TELEPHONE
 #usr/lib/locale/fa_IR/LC_TIME
+#usr/lib/locale/ff_SN
+#usr/lib/locale/ff_SN/LC_ADDRESS
+#usr/lib/locale/ff_SN/LC_COLLATE
+#usr/lib/locale/ff_SN/LC_CTYPE
+#usr/lib/locale/ff_SN/LC_IDENTIFICATION
+#usr/lib/locale/ff_SN/LC_MEASUREMENT
+#usr/lib/locale/ff_SN/LC_MESSAGES
+#usr/lib/locale/ff_SN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ff_SN/LC_MONETARY
+#usr/lib/locale/ff_SN/LC_NAME
+#usr/lib/locale/ff_SN/LC_NUMERIC
+#usr/lib/locale/ff_SN/LC_PAPER
+#usr/lib/locale/ff_SN/LC_TELEPHONE
+#usr/lib/locale/ff_SN/LC_TIME
 #usr/lib/locale/fi_FI
 #usr/lib/locale/fi_FI.utf8
 #usr/lib/locale/fi_FI.utf8/LC_ADDRESS
@@ -3899,6 +4196,20 @@ usr/lib/locale
 #usr/lib/locale/ha_NG/LC_PAPER
 #usr/lib/locale/ha_NG/LC_TELEPHONE
 #usr/lib/locale/ha_NG/LC_TIME
+#usr/lib/locale/hak_TW
+#usr/lib/locale/hak_TW/LC_ADDRESS
+#usr/lib/locale/hak_TW/LC_COLLATE
+#usr/lib/locale/hak_TW/LC_CTYPE
+#usr/lib/locale/hak_TW/LC_IDENTIFICATION
+#usr/lib/locale/hak_TW/LC_MEASUREMENT
+#usr/lib/locale/hak_TW/LC_MESSAGES
+#usr/lib/locale/hak_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/hak_TW/LC_MONETARY
+#usr/lib/locale/hak_TW/LC_NAME
+#usr/lib/locale/hak_TW/LC_NUMERIC
+#usr/lib/locale/hak_TW/LC_PAPER
+#usr/lib/locale/hak_TW/LC_TELEPHONE
+#usr/lib/locale/hak_TW/LC_TIME
 #usr/lib/locale/he_IL
 #usr/lib/locale/he_IL.utf8
 #usr/lib/locale/he_IL.utf8/LC_ADDRESS
@@ -4081,6 +4392,20 @@ usr/lib/locale
 #usr/lib/locale/hy_AM/LC_PAPER
 #usr/lib/locale/hy_AM/LC_TELEPHONE
 #usr/lib/locale/hy_AM/LC_TIME
+#usr/lib/locale/ia_FR
+#usr/lib/locale/ia_FR/LC_ADDRESS
+#usr/lib/locale/ia_FR/LC_COLLATE
+#usr/lib/locale/ia_FR/LC_CTYPE
+#usr/lib/locale/ia_FR/LC_IDENTIFICATION
+#usr/lib/locale/ia_FR/LC_MEASUREMENT
+#usr/lib/locale/ia_FR/LC_MESSAGES
+#usr/lib/locale/ia_FR/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ia_FR/LC_MONETARY
+#usr/lib/locale/ia_FR/LC_NAME
+#usr/lib/locale/ia_FR/LC_NUMERIC
+#usr/lib/locale/ia_FR/LC_PAPER
+#usr/lib/locale/ia_FR/LC_TELEPHONE
+#usr/lib/locale/ia_FR/LC_TIME
 #usr/lib/locale/id_ID
 #usr/lib/locale/id_ID.utf8
 #usr/lib/locale/id_ID.utf8/LC_ADDRESS
@@ -4249,34 +4574,6 @@ usr/lib/locale
 #usr/lib/locale/iu_CA/LC_PAPER
 #usr/lib/locale/iu_CA/LC_TELEPHONE
 #usr/lib/locale/iu_CA/LC_TIME
-#usr/lib/locale/iw_IL
-#usr/lib/locale/iw_IL.utf8
-#usr/lib/locale/iw_IL.utf8/LC_ADDRESS
-#usr/lib/locale/iw_IL.utf8/LC_COLLATE
-#usr/lib/locale/iw_IL.utf8/LC_CTYPE
-#usr/lib/locale/iw_IL.utf8/LC_IDENTIFICATION
-#usr/lib/locale/iw_IL.utf8/LC_MEASUREMENT
-#usr/lib/locale/iw_IL.utf8/LC_MESSAGES
-#usr/lib/locale/iw_IL.utf8/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/iw_IL.utf8/LC_MONETARY
-#usr/lib/locale/iw_IL.utf8/LC_NAME
-#usr/lib/locale/iw_IL.utf8/LC_NUMERIC
-#usr/lib/locale/iw_IL.utf8/LC_PAPER
-#usr/lib/locale/iw_IL.utf8/LC_TELEPHONE
-#usr/lib/locale/iw_IL.utf8/LC_TIME
-#usr/lib/locale/iw_IL/LC_ADDRESS
-#usr/lib/locale/iw_IL/LC_COLLATE
-#usr/lib/locale/iw_IL/LC_CTYPE
-#usr/lib/locale/iw_IL/LC_IDENTIFICATION
-#usr/lib/locale/iw_IL/LC_MEASUREMENT
-#usr/lib/locale/iw_IL/LC_MESSAGES
-#usr/lib/locale/iw_IL/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/iw_IL/LC_MONETARY
-#usr/lib/locale/iw_IL/LC_NAME
-#usr/lib/locale/iw_IL/LC_NUMERIC
-#usr/lib/locale/iw_IL/LC_PAPER
-#usr/lib/locale/iw_IL/LC_TELEPHONE
-#usr/lib/locale/iw_IL/LC_TIME
 #usr/lib/locale/ja_JP.eucjp
 #usr/lib/locale/ja_JP.eucjp/LC_ADDRESS
 #usr/lib/locale/ja_JP.eucjp/LC_COLLATE
@@ -4557,6 +4854,20 @@ usr/lib/locale
 #usr/lib/locale/ky_KG/LC_PAPER
 #usr/lib/locale/ky_KG/LC_TELEPHONE
 #usr/lib/locale/ky_KG/LC_TIME
+#usr/lib/locale/lb_LU
+#usr/lib/locale/lb_LU/LC_ADDRESS
+#usr/lib/locale/lb_LU/LC_COLLATE
+#usr/lib/locale/lb_LU/LC_CTYPE
+#usr/lib/locale/lb_LU/LC_IDENTIFICATION
+#usr/lib/locale/lb_LU/LC_MEASUREMENT
+#usr/lib/locale/lb_LU/LC_MESSAGES
+#usr/lib/locale/lb_LU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/lb_LU/LC_MONETARY
+#usr/lib/locale/lb_LU/LC_NAME
+#usr/lib/locale/lb_LU/LC_NUMERIC
+#usr/lib/locale/lb_LU/LC_PAPER
+#usr/lib/locale/lb_LU/LC_TELEPHONE
+#usr/lib/locale/lb_LU/LC_TIME
 #usr/lib/locale/lg_UG
 #usr/lib/locale/lg_UG.utf8
 #usr/lib/locale/lg_UG.utf8/LC_ADDRESS
@@ -4613,6 +4924,34 @@ usr/lib/locale
 #usr/lib/locale/li_NL/LC_PAPER
 #usr/lib/locale/li_NL/LC_TELEPHONE
 #usr/lib/locale/li_NL/LC_TIME
+#usr/lib/locale/lij_IT
+#usr/lib/locale/lij_IT/LC_ADDRESS
+#usr/lib/locale/lij_IT/LC_COLLATE
+#usr/lib/locale/lij_IT/LC_CTYPE
+#usr/lib/locale/lij_IT/LC_IDENTIFICATION
+#usr/lib/locale/lij_IT/LC_MEASUREMENT
+#usr/lib/locale/lij_IT/LC_MESSAGES
+#usr/lib/locale/lij_IT/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/lij_IT/LC_MONETARY
+#usr/lib/locale/lij_IT/LC_NAME
+#usr/lib/locale/lij_IT/LC_NUMERIC
+#usr/lib/locale/lij_IT/LC_PAPER
+#usr/lib/locale/lij_IT/LC_TELEPHONE
+#usr/lib/locale/lij_IT/LC_TIME
+#usr/lib/locale/ln_CD
+#usr/lib/locale/ln_CD/LC_ADDRESS
+#usr/lib/locale/ln_CD/LC_COLLATE
+#usr/lib/locale/ln_CD/LC_CTYPE
+#usr/lib/locale/ln_CD/LC_IDENTIFICATION
+#usr/lib/locale/ln_CD/LC_MEASUREMENT
+#usr/lib/locale/ln_CD/LC_MESSAGES
+#usr/lib/locale/ln_CD/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ln_CD/LC_MONETARY
+#usr/lib/locale/ln_CD/LC_NAME
+#usr/lib/locale/ln_CD/LC_NUMERIC
+#usr/lib/locale/ln_CD/LC_PAPER
+#usr/lib/locale/ln_CD/LC_TELEPHONE
+#usr/lib/locale/ln_CD/LC_TIME
 #usr/lib/locale/lo_LA
 #usr/lib/locale/lo_LA/LC_ADDRESS
 #usr/lib/locale/lo_LA/LC_COLLATE
@@ -4683,6 +5022,34 @@ usr/lib/locale
 #usr/lib/locale/lv_LV/LC_PAPER
 #usr/lib/locale/lv_LV/LC_TELEPHONE
 #usr/lib/locale/lv_LV/LC_TIME
+#usr/lib/locale/lzh_TW
+#usr/lib/locale/lzh_TW/LC_ADDRESS
+#usr/lib/locale/lzh_TW/LC_COLLATE
+#usr/lib/locale/lzh_TW/LC_CTYPE
+#usr/lib/locale/lzh_TW/LC_IDENTIFICATION
+#usr/lib/locale/lzh_TW/LC_MEASUREMENT
+#usr/lib/locale/lzh_TW/LC_MESSAGES
+#usr/lib/locale/lzh_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/lzh_TW/LC_MONETARY
+#usr/lib/locale/lzh_TW/LC_NAME
+#usr/lib/locale/lzh_TW/LC_NUMERIC
+#usr/lib/locale/lzh_TW/LC_PAPER
+#usr/lib/locale/lzh_TW/LC_TELEPHONE
+#usr/lib/locale/lzh_TW/LC_TIME
+#usr/lib/locale/mag_IN
+#usr/lib/locale/mag_IN/LC_ADDRESS
+#usr/lib/locale/mag_IN/LC_COLLATE
+#usr/lib/locale/mag_IN/LC_CTYPE
+#usr/lib/locale/mag_IN/LC_IDENTIFICATION
+#usr/lib/locale/mag_IN/LC_MEASUREMENT
+#usr/lib/locale/mag_IN/LC_MESSAGES
+#usr/lib/locale/mag_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/mag_IN/LC_MONETARY
+#usr/lib/locale/mag_IN/LC_NAME
+#usr/lib/locale/mag_IN/LC_NUMERIC
+#usr/lib/locale/mag_IN/LC_PAPER
+#usr/lib/locale/mag_IN/LC_TELEPHONE
+#usr/lib/locale/mag_IN/LC_TIME
 #usr/lib/locale/mai_IN
 #usr/lib/locale/mai_IN/LC_ADDRESS
 #usr/lib/locale/mai_IN/LC_COLLATE
@@ -4725,6 +5092,20 @@ usr/lib/locale
 #usr/lib/locale/mg_MG/LC_PAPER
 #usr/lib/locale/mg_MG/LC_TELEPHONE
 #usr/lib/locale/mg_MG/LC_TIME
+#usr/lib/locale/mhr_RU
+#usr/lib/locale/mhr_RU/LC_ADDRESS
+#usr/lib/locale/mhr_RU/LC_COLLATE
+#usr/lib/locale/mhr_RU/LC_CTYPE
+#usr/lib/locale/mhr_RU/LC_IDENTIFICATION
+#usr/lib/locale/mhr_RU/LC_MEASUREMENT
+#usr/lib/locale/mhr_RU/LC_MESSAGES
+#usr/lib/locale/mhr_RU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/mhr_RU/LC_MONETARY
+#usr/lib/locale/mhr_RU/LC_NAME
+#usr/lib/locale/mhr_RU/LC_NUMERIC
+#usr/lib/locale/mhr_RU/LC_PAPER
+#usr/lib/locale/mhr_RU/LC_TELEPHONE
+#usr/lib/locale/mhr_RU/LC_TIME
 #usr/lib/locale/mi_NZ
 #usr/lib/locale/mi_NZ.utf8
 #usr/lib/locale/mi_NZ.utf8/LC_ADDRESS
@@ -4809,6 +5190,20 @@ usr/lib/locale
 #usr/lib/locale/mn_MN/LC_PAPER
 #usr/lib/locale/mn_MN/LC_TELEPHONE
 #usr/lib/locale/mn_MN/LC_TIME
+#usr/lib/locale/mni_IN
+#usr/lib/locale/mni_IN/LC_ADDRESS
+#usr/lib/locale/mni_IN/LC_COLLATE
+#usr/lib/locale/mni_IN/LC_CTYPE
+#usr/lib/locale/mni_IN/LC_IDENTIFICATION
+#usr/lib/locale/mni_IN/LC_MEASUREMENT
+#usr/lib/locale/mni_IN/LC_MESSAGES
+#usr/lib/locale/mni_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/mni_IN/LC_MONETARY
+#usr/lib/locale/mni_IN/LC_NAME
+#usr/lib/locale/mni_IN/LC_NUMERIC
+#usr/lib/locale/mni_IN/LC_PAPER
+#usr/lib/locale/mni_IN/LC_TELEPHONE
+#usr/lib/locale/mni_IN/LC_TIME
 #usr/lib/locale/mr_IN
 #usr/lib/locale/mr_IN/LC_ADDRESS
 #usr/lib/locale/mr_IN/LC_COLLATE
@@ -4893,6 +5288,20 @@ usr/lib/locale
 #usr/lib/locale/my_MM/LC_PAPER
 #usr/lib/locale/my_MM/LC_TELEPHONE
 #usr/lib/locale/my_MM/LC_TIME
+#usr/lib/locale/nan_TW
+#usr/lib/locale/nan_TW/LC_ADDRESS
+#usr/lib/locale/nan_TW/LC_COLLATE
+#usr/lib/locale/nan_TW/LC_CTYPE
+#usr/lib/locale/nan_TW/LC_IDENTIFICATION
+#usr/lib/locale/nan_TW/LC_MEASUREMENT
+#usr/lib/locale/nan_TW/LC_MESSAGES
+#usr/lib/locale/nan_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/nan_TW/LC_MONETARY
+#usr/lib/locale/nan_TW/LC_NAME
+#usr/lib/locale/nan_TW/LC_NUMERIC
+#usr/lib/locale/nan_TW/LC_PAPER
+#usr/lib/locale/nan_TW/LC_TELEPHONE
+#usr/lib/locale/nan_TW/LC_TIME
 #usr/lib/locale/nan_TW@latin
 #usr/lib/locale/nan_TW@latin/LC_ADDRESS
 #usr/lib/locale/nan_TW@latin/LC_COLLATE
@@ -4977,6 +5386,48 @@ usr/lib/locale
 #usr/lib/locale/ne_NP/LC_PAPER
 #usr/lib/locale/ne_NP/LC_TELEPHONE
 #usr/lib/locale/ne_NP/LC_TIME
+#usr/lib/locale/nhn_MX
+#usr/lib/locale/nhn_MX/LC_ADDRESS
+#usr/lib/locale/nhn_MX/LC_COLLATE
+#usr/lib/locale/nhn_MX/LC_CTYPE
+#usr/lib/locale/nhn_MX/LC_IDENTIFICATION
+#usr/lib/locale/nhn_MX/LC_MEASUREMENT
+#usr/lib/locale/nhn_MX/LC_MESSAGES
+#usr/lib/locale/nhn_MX/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/nhn_MX/LC_MONETARY
+#usr/lib/locale/nhn_MX/LC_NAME
+#usr/lib/locale/nhn_MX/LC_NUMERIC
+#usr/lib/locale/nhn_MX/LC_PAPER
+#usr/lib/locale/nhn_MX/LC_TELEPHONE
+#usr/lib/locale/nhn_MX/LC_TIME
+#usr/lib/locale/niu_NU
+#usr/lib/locale/niu_NU/LC_ADDRESS
+#usr/lib/locale/niu_NU/LC_COLLATE
+#usr/lib/locale/niu_NU/LC_CTYPE
+#usr/lib/locale/niu_NU/LC_IDENTIFICATION
+#usr/lib/locale/niu_NU/LC_MEASUREMENT
+#usr/lib/locale/niu_NU/LC_MESSAGES
+#usr/lib/locale/niu_NU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/niu_NU/LC_MONETARY
+#usr/lib/locale/niu_NU/LC_NAME
+#usr/lib/locale/niu_NU/LC_NUMERIC
+#usr/lib/locale/niu_NU/LC_PAPER
+#usr/lib/locale/niu_NU/LC_TELEPHONE
+#usr/lib/locale/niu_NU/LC_TIME
+#usr/lib/locale/niu_NZ
+#usr/lib/locale/niu_NZ/LC_ADDRESS
+#usr/lib/locale/niu_NZ/LC_COLLATE
+#usr/lib/locale/niu_NZ/LC_CTYPE
+#usr/lib/locale/niu_NZ/LC_IDENTIFICATION
+#usr/lib/locale/niu_NZ/LC_MEASUREMENT
+#usr/lib/locale/niu_NZ/LC_MESSAGES
+#usr/lib/locale/niu_NZ/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/niu_NZ/LC_MONETARY
+#usr/lib/locale/niu_NZ/LC_NAME
+#usr/lib/locale/niu_NZ/LC_NUMERIC
+#usr/lib/locale/niu_NZ/LC_PAPER
+#usr/lib/locale/niu_NZ/LC_TELEPHONE
+#usr/lib/locale/niu_NZ/LC_TIME
 #usr/lib/locale/nl_AW
 #usr/lib/locale/nl_AW/LC_ADDRESS
 #usr/lib/locale/nl_AW/LC_COLLATE
@@ -5103,34 +5554,6 @@ usr/lib/locale
 #usr/lib/locale/nn_NO/LC_PAPER
 #usr/lib/locale/nn_NO/LC_TELEPHONE
 #usr/lib/locale/nn_NO/LC_TIME
-#usr/lib/locale/no_NO
-#usr/lib/locale/no_NO.utf8
-#usr/lib/locale/no_NO.utf8/LC_ADDRESS
-#usr/lib/locale/no_NO.utf8/LC_COLLATE
-#usr/lib/locale/no_NO.utf8/LC_CTYPE
-#usr/lib/locale/no_NO.utf8/LC_IDENTIFICATION
-#usr/lib/locale/no_NO.utf8/LC_MEASUREMENT
-#usr/lib/locale/no_NO.utf8/LC_MESSAGES
-#usr/lib/locale/no_NO.utf8/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/no_NO.utf8/LC_MONETARY
-#usr/lib/locale/no_NO.utf8/LC_NAME
-#usr/lib/locale/no_NO.utf8/LC_NUMERIC
-#usr/lib/locale/no_NO.utf8/LC_PAPER
-#usr/lib/locale/no_NO.utf8/LC_TELEPHONE
-#usr/lib/locale/no_NO.utf8/LC_TIME
-#usr/lib/locale/no_NO/LC_ADDRESS
-#usr/lib/locale/no_NO/LC_COLLATE
-#usr/lib/locale/no_NO/LC_CTYPE
-#usr/lib/locale/no_NO/LC_IDENTIFICATION
-#usr/lib/locale/no_NO/LC_MEASUREMENT
-#usr/lib/locale/no_NO/LC_MESSAGES
-#usr/lib/locale/no_NO/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/no_NO/LC_MONETARY
-#usr/lib/locale/no_NO/LC_NAME
-#usr/lib/locale/no_NO/LC_NUMERIC
-#usr/lib/locale/no_NO/LC_PAPER
-#usr/lib/locale/no_NO/LC_TELEPHONE
-#usr/lib/locale/no_NO/LC_TIME
 #usr/lib/locale/nr_ZA
 #usr/lib/locale/nr_ZA/LC_ADDRESS
 #usr/lib/locale/nr_ZA/LC_COLLATE
@@ -5243,6 +5666,20 @@ usr/lib/locale
 #usr/lib/locale/or_IN/LC_PAPER
 #usr/lib/locale/or_IN/LC_TELEPHONE
 #usr/lib/locale/or_IN/LC_TIME
+#usr/lib/locale/os_RU
+#usr/lib/locale/os_RU/LC_ADDRESS
+#usr/lib/locale/os_RU/LC_COLLATE
+#usr/lib/locale/os_RU/LC_CTYPE
+#usr/lib/locale/os_RU/LC_IDENTIFICATION
+#usr/lib/locale/os_RU/LC_MEASUREMENT
+#usr/lib/locale/os_RU/LC_MESSAGES
+#usr/lib/locale/os_RU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/os_RU/LC_MONETARY
+#usr/lib/locale/os_RU/LC_NAME
+#usr/lib/locale/os_RU/LC_NUMERIC
+#usr/lib/locale/os_RU/LC_PAPER
+#usr/lib/locale/os_RU/LC_TELEPHONE
+#usr/lib/locale/os_RU/LC_TIME
 #usr/lib/locale/pa_IN
 #usr/lib/locale/pa_IN/LC_ADDRESS
 #usr/lib/locale/pa_IN/LC_COLLATE
@@ -5271,20 +5708,34 @@ usr/lib/locale
 #usr/lib/locale/pa_PK/LC_PAPER
 #usr/lib/locale/pa_PK/LC_TELEPHONE
 #usr/lib/locale/pa_PK/LC_TIME
-#usr/lib/locale/pap_AN
-#usr/lib/locale/pap_AN/LC_ADDRESS
-#usr/lib/locale/pap_AN/LC_COLLATE
-#usr/lib/locale/pap_AN/LC_CTYPE
-#usr/lib/locale/pap_AN/LC_IDENTIFICATION
-#usr/lib/locale/pap_AN/LC_MEASUREMENT
-#usr/lib/locale/pap_AN/LC_MESSAGES
-#usr/lib/locale/pap_AN/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/pap_AN/LC_MONETARY
-#usr/lib/locale/pap_AN/LC_NAME
-#usr/lib/locale/pap_AN/LC_NUMERIC
-#usr/lib/locale/pap_AN/LC_PAPER
-#usr/lib/locale/pap_AN/LC_TELEPHONE
-#usr/lib/locale/pap_AN/LC_TIME
+#usr/lib/locale/pap_AW
+#usr/lib/locale/pap_AW/LC_ADDRESS
+#usr/lib/locale/pap_AW/LC_COLLATE
+#usr/lib/locale/pap_AW/LC_CTYPE
+#usr/lib/locale/pap_AW/LC_IDENTIFICATION
+#usr/lib/locale/pap_AW/LC_MEASUREMENT
+#usr/lib/locale/pap_AW/LC_MESSAGES
+#usr/lib/locale/pap_AW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/pap_AW/LC_MONETARY
+#usr/lib/locale/pap_AW/LC_NAME
+#usr/lib/locale/pap_AW/LC_NUMERIC
+#usr/lib/locale/pap_AW/LC_PAPER
+#usr/lib/locale/pap_AW/LC_TELEPHONE
+#usr/lib/locale/pap_AW/LC_TIME
+#usr/lib/locale/pap_CW
+#usr/lib/locale/pap_CW/LC_ADDRESS
+#usr/lib/locale/pap_CW/LC_COLLATE
+#usr/lib/locale/pap_CW/LC_CTYPE
+#usr/lib/locale/pap_CW/LC_IDENTIFICATION
+#usr/lib/locale/pap_CW/LC_MEASUREMENT
+#usr/lib/locale/pap_CW/LC_MESSAGES
+#usr/lib/locale/pap_CW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/pap_CW/LC_MONETARY
+#usr/lib/locale/pap_CW/LC_NAME
+#usr/lib/locale/pap_CW/LC_NUMERIC
+#usr/lib/locale/pap_CW/LC_PAPER
+#usr/lib/locale/pap_CW/LC_TELEPHONE
+#usr/lib/locale/pap_CW/LC_TIME
 #usr/lib/locale/pl_PL
 #usr/lib/locale/pl_PL.utf8
 #usr/lib/locale/pl_PL.utf8/LC_ADDRESS
@@ -5397,6 +5848,34 @@ usr/lib/locale
 #usr/lib/locale/pt_PT@euro/LC_PAPER
 #usr/lib/locale/pt_PT@euro/LC_TELEPHONE
 #usr/lib/locale/pt_PT@euro/LC_TIME
+#usr/lib/locale/quz_PE
+#usr/lib/locale/quz_PE/LC_ADDRESS
+#usr/lib/locale/quz_PE/LC_COLLATE
+#usr/lib/locale/quz_PE/LC_CTYPE
+#usr/lib/locale/quz_PE/LC_IDENTIFICATION
+#usr/lib/locale/quz_PE/LC_MEASUREMENT
+#usr/lib/locale/quz_PE/LC_MESSAGES
+#usr/lib/locale/quz_PE/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/quz_PE/LC_MONETARY
+#usr/lib/locale/quz_PE/LC_NAME
+#usr/lib/locale/quz_PE/LC_NUMERIC
+#usr/lib/locale/quz_PE/LC_PAPER
+#usr/lib/locale/quz_PE/LC_TELEPHONE
+#usr/lib/locale/quz_PE/LC_TIME
+#usr/lib/locale/raj_IN
+#usr/lib/locale/raj_IN/LC_ADDRESS
+#usr/lib/locale/raj_IN/LC_COLLATE
+#usr/lib/locale/raj_IN/LC_CTYPE
+#usr/lib/locale/raj_IN/LC_IDENTIFICATION
+#usr/lib/locale/raj_IN/LC_MEASUREMENT
+#usr/lib/locale/raj_IN/LC_MESSAGES
+#usr/lib/locale/raj_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/raj_IN/LC_MONETARY
+#usr/lib/locale/raj_IN/LC_NAME
+#usr/lib/locale/raj_IN/LC_NUMERIC
+#usr/lib/locale/raj_IN/LC_PAPER
+#usr/lib/locale/raj_IN/LC_TELEPHONE
+#usr/lib/locale/raj_IN/LC_TIME
 #usr/lib/locale/ro_RO
 #usr/lib/locale/ro_RO.utf8
 #usr/lib/locale/ro_RO.utf8/LC_ADDRESS
@@ -5523,6 +6002,20 @@ usr/lib/locale
 #usr/lib/locale/sa_IN/LC_PAPER
 #usr/lib/locale/sa_IN/LC_TELEPHONE
 #usr/lib/locale/sa_IN/LC_TIME
+#usr/lib/locale/sat_IN
+#usr/lib/locale/sat_IN/LC_ADDRESS
+#usr/lib/locale/sat_IN/LC_COLLATE
+#usr/lib/locale/sat_IN/LC_CTYPE
+#usr/lib/locale/sat_IN/LC_IDENTIFICATION
+#usr/lib/locale/sat_IN/LC_MEASUREMENT
+#usr/lib/locale/sat_IN/LC_MESSAGES
+#usr/lib/locale/sat_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sat_IN/LC_MONETARY
+#usr/lib/locale/sat_IN/LC_NAME
+#usr/lib/locale/sat_IN/LC_NUMERIC
+#usr/lib/locale/sat_IN/LC_PAPER
+#usr/lib/locale/sat_IN/LC_TELEPHONE
+#usr/lib/locale/sat_IN/LC_TIME
 #usr/lib/locale/sc_IT
 #usr/lib/locale/sc_IT/LC_ADDRESS
 #usr/lib/locale/sc_IT/LC_COLLATE
@@ -5579,6 +6072,20 @@ usr/lib/locale
 #usr/lib/locale/se_NO/LC_PAPER
 #usr/lib/locale/se_NO/LC_TELEPHONE
 #usr/lib/locale/se_NO/LC_TIME
+#usr/lib/locale/sgs_LT
+#usr/lib/locale/sgs_LT/LC_ADDRESS
+#usr/lib/locale/sgs_LT/LC_COLLATE
+#usr/lib/locale/sgs_LT/LC_CTYPE
+#usr/lib/locale/sgs_LT/LC_IDENTIFICATION
+#usr/lib/locale/sgs_LT/LC_MEASUREMENT
+#usr/lib/locale/sgs_LT/LC_MESSAGES
+#usr/lib/locale/sgs_LT/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sgs_LT/LC_MONETARY
+#usr/lib/locale/sgs_LT/LC_NAME
+#usr/lib/locale/sgs_LT/LC_NUMERIC
+#usr/lib/locale/sgs_LT/LC_PAPER
+#usr/lib/locale/sgs_LT/LC_TELEPHONE
+#usr/lib/locale/sgs_LT/LC_TIME
 #usr/lib/locale/shs_CA
 #usr/lib/locale/shs_CA/LC_ADDRESS
 #usr/lib/locale/shs_CA/LC_COLLATE
@@ -5944,20 +6451,6 @@ usr/lib/locale
 #usr/lib/locale/sv_FI@euro/LC_TELEPHONE
 #usr/lib/locale/sv_FI@euro/LC_TIME
 #usr/lib/locale/sv_SE
-#usr/lib/locale/sv_SE.iso885915
-#usr/lib/locale/sv_SE.iso885915/LC_ADDRESS
-#usr/lib/locale/sv_SE.iso885915/LC_COLLATE
-#usr/lib/locale/sv_SE.iso885915/LC_CTYPE
-#usr/lib/locale/sv_SE.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/sv_SE.iso885915/LC_MEASUREMENT
-#usr/lib/locale/sv_SE.iso885915/LC_MESSAGES
-#usr/lib/locale/sv_SE.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/sv_SE.iso885915/LC_MONETARY
-#usr/lib/locale/sv_SE.iso885915/LC_NAME
-#usr/lib/locale/sv_SE.iso885915/LC_NUMERIC
-#usr/lib/locale/sv_SE.iso885915/LC_PAPER
-#usr/lib/locale/sv_SE.iso885915/LC_TELEPHONE
-#usr/lib/locale/sv_SE.iso885915/LC_TIME
 #usr/lib/locale/sv_SE.utf8
 #usr/lib/locale/sv_SE.utf8/LC_ADDRESS
 #usr/lib/locale/sv_SE.utf8/LC_COLLATE
@@ -5985,6 +6478,48 @@ usr/lib/locale
 #usr/lib/locale/sv_SE/LC_PAPER
 #usr/lib/locale/sv_SE/LC_TELEPHONE
 #usr/lib/locale/sv_SE/LC_TIME
+#usr/lib/locale/sw_KE
+#usr/lib/locale/sw_KE/LC_ADDRESS
+#usr/lib/locale/sw_KE/LC_COLLATE
+#usr/lib/locale/sw_KE/LC_CTYPE
+#usr/lib/locale/sw_KE/LC_IDENTIFICATION
+#usr/lib/locale/sw_KE/LC_MEASUREMENT
+#usr/lib/locale/sw_KE/LC_MESSAGES
+#usr/lib/locale/sw_KE/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sw_KE/LC_MONETARY
+#usr/lib/locale/sw_KE/LC_NAME
+#usr/lib/locale/sw_KE/LC_NUMERIC
+#usr/lib/locale/sw_KE/LC_PAPER
+#usr/lib/locale/sw_KE/LC_TELEPHONE
+#usr/lib/locale/sw_KE/LC_TIME
+#usr/lib/locale/sw_TZ
+#usr/lib/locale/sw_TZ/LC_ADDRESS
+#usr/lib/locale/sw_TZ/LC_COLLATE
+#usr/lib/locale/sw_TZ/LC_CTYPE
+#usr/lib/locale/sw_TZ/LC_IDENTIFICATION
+#usr/lib/locale/sw_TZ/LC_MEASUREMENT
+#usr/lib/locale/sw_TZ/LC_MESSAGES
+#usr/lib/locale/sw_TZ/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sw_TZ/LC_MONETARY
+#usr/lib/locale/sw_TZ/LC_NAME
+#usr/lib/locale/sw_TZ/LC_NUMERIC
+#usr/lib/locale/sw_TZ/LC_PAPER
+#usr/lib/locale/sw_TZ/LC_TELEPHONE
+#usr/lib/locale/sw_TZ/LC_TIME
+#usr/lib/locale/szl_PL
+#usr/lib/locale/szl_PL/LC_ADDRESS
+#usr/lib/locale/szl_PL/LC_COLLATE
+#usr/lib/locale/szl_PL/LC_CTYPE
+#usr/lib/locale/szl_PL/LC_IDENTIFICATION
+#usr/lib/locale/szl_PL/LC_MEASUREMENT
+#usr/lib/locale/szl_PL/LC_MESSAGES
+#usr/lib/locale/szl_PL/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/szl_PL/LC_MONETARY
+#usr/lib/locale/szl_PL/LC_NAME
+#usr/lib/locale/szl_PL/LC_NUMERIC
+#usr/lib/locale/szl_PL/LC_PAPER
+#usr/lib/locale/szl_PL/LC_TELEPHONE
+#usr/lib/locale/szl_PL/LC_TIME
 #usr/lib/locale/ta_IN
 #usr/lib/locale/ta_IN/LC_ADDRESS
 #usr/lib/locale/ta_IN/LC_COLLATE
@@ -5999,6 +6534,34 @@ usr/lib/locale
 #usr/lib/locale/ta_IN/LC_PAPER
 #usr/lib/locale/ta_IN/LC_TELEPHONE
 #usr/lib/locale/ta_IN/LC_TIME
+#usr/lib/locale/ta_LK
+#usr/lib/locale/ta_LK/LC_ADDRESS
+#usr/lib/locale/ta_LK/LC_COLLATE
+#usr/lib/locale/ta_LK/LC_CTYPE
+#usr/lib/locale/ta_LK/LC_IDENTIFICATION
+#usr/lib/locale/ta_LK/LC_MEASUREMENT
+#usr/lib/locale/ta_LK/LC_MESSAGES
+#usr/lib/locale/ta_LK/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ta_LK/LC_MONETARY
+#usr/lib/locale/ta_LK/LC_NAME
+#usr/lib/locale/ta_LK/LC_NUMERIC
+#usr/lib/locale/ta_LK/LC_PAPER
+#usr/lib/locale/ta_LK/LC_TELEPHONE
+#usr/lib/locale/ta_LK/LC_TIME
+#usr/lib/locale/tcy_IN.utf8
+#usr/lib/locale/tcy_IN.utf8/LC_ADDRESS
+#usr/lib/locale/tcy_IN.utf8/LC_COLLATE
+#usr/lib/locale/tcy_IN.utf8/LC_CTYPE
+#usr/lib/locale/tcy_IN.utf8/LC_IDENTIFICATION
+#usr/lib/locale/tcy_IN.utf8/LC_MEASUREMENT
+#usr/lib/locale/tcy_IN.utf8/LC_MESSAGES
+#usr/lib/locale/tcy_IN.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/tcy_IN.utf8/LC_MONETARY
+#usr/lib/locale/tcy_IN.utf8/LC_NAME
+#usr/lib/locale/tcy_IN.utf8/LC_NUMERIC
+#usr/lib/locale/tcy_IN.utf8/LC_PAPER
+#usr/lib/locale/tcy_IN.utf8/LC_TELEPHONE
+#usr/lib/locale/tcy_IN.utf8/LC_TIME
 #usr/lib/locale/te_IN
 #usr/lib/locale/te_IN/LC_ADDRESS
 #usr/lib/locale/te_IN/LC_COLLATE
@@ -6069,6 +6632,20 @@ usr/lib/locale
 #usr/lib/locale/th_TH/LC_PAPER
 #usr/lib/locale/th_TH/LC_TELEPHONE
 #usr/lib/locale/th_TH/LC_TIME
+#usr/lib/locale/the_NP
+#usr/lib/locale/the_NP/LC_ADDRESS
+#usr/lib/locale/the_NP/LC_COLLATE
+#usr/lib/locale/the_NP/LC_CTYPE
+#usr/lib/locale/the_NP/LC_IDENTIFICATION
+#usr/lib/locale/the_NP/LC_MEASUREMENT
+#usr/lib/locale/the_NP/LC_MESSAGES
+#usr/lib/locale/the_NP/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/the_NP/LC_MONETARY
+#usr/lib/locale/the_NP/LC_NAME
+#usr/lib/locale/the_NP/LC_NUMERIC
+#usr/lib/locale/the_NP/LC_PAPER
+#usr/lib/locale/the_NP/LC_TELEPHONE
+#usr/lib/locale/the_NP/LC_TIME
 #usr/lib/locale/ti_ER
 #usr/lib/locale/ti_ER/LC_ADDRESS
 #usr/lib/locale/ti_ER/LC_COLLATE
@@ -6307,6 +6884,34 @@ usr/lib/locale
 #usr/lib/locale/uk_UA/LC_PAPER
 #usr/lib/locale/uk_UA/LC_TELEPHONE
 #usr/lib/locale/uk_UA/LC_TIME
+#usr/lib/locale/unm_US
+#usr/lib/locale/unm_US/LC_ADDRESS
+#usr/lib/locale/unm_US/LC_COLLATE
+#usr/lib/locale/unm_US/LC_CTYPE
+#usr/lib/locale/unm_US/LC_IDENTIFICATION
+#usr/lib/locale/unm_US/LC_MEASUREMENT
+#usr/lib/locale/unm_US/LC_MESSAGES
+#usr/lib/locale/unm_US/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/unm_US/LC_MONETARY
+#usr/lib/locale/unm_US/LC_NAME
+#usr/lib/locale/unm_US/LC_NUMERIC
+#usr/lib/locale/unm_US/LC_PAPER
+#usr/lib/locale/unm_US/LC_TELEPHONE
+#usr/lib/locale/unm_US/LC_TIME
+#usr/lib/locale/ur_IN
+#usr/lib/locale/ur_IN/LC_ADDRESS
+#usr/lib/locale/ur_IN/LC_COLLATE
+#usr/lib/locale/ur_IN/LC_CTYPE
+#usr/lib/locale/ur_IN/LC_IDENTIFICATION
+#usr/lib/locale/ur_IN/LC_MEASUREMENT
+#usr/lib/locale/ur_IN/LC_MESSAGES
+#usr/lib/locale/ur_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ur_IN/LC_MONETARY
+#usr/lib/locale/ur_IN/LC_NAME
+#usr/lib/locale/ur_IN/LC_NUMERIC
+#usr/lib/locale/ur_IN/LC_PAPER
+#usr/lib/locale/ur_IN/LC_TELEPHONE
+#usr/lib/locale/ur_IN/LC_TIME
 #usr/lib/locale/ur_PK
 #usr/lib/locale/ur_PK/LC_ADDRESS
 #usr/lib/locale/ur_PK/LC_COLLATE
@@ -6322,6 +6927,20 @@ usr/lib/locale
 #usr/lib/locale/ur_PK/LC_TELEPHONE
 #usr/lib/locale/ur_PK/LC_TIME
 #usr/lib/locale/uz_UZ
+#usr/lib/locale/uz_UZ.utf8
+#usr/lib/locale/uz_UZ.utf8/LC_ADDRESS
+#usr/lib/locale/uz_UZ.utf8/LC_COLLATE
+#usr/lib/locale/uz_UZ.utf8/LC_CTYPE
+#usr/lib/locale/uz_UZ.utf8/LC_IDENTIFICATION
+#usr/lib/locale/uz_UZ.utf8/LC_MEASUREMENT
+#usr/lib/locale/uz_UZ.utf8/LC_MESSAGES
+#usr/lib/locale/uz_UZ.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/uz_UZ.utf8/LC_MONETARY
+#usr/lib/locale/uz_UZ.utf8/LC_NAME
+#usr/lib/locale/uz_UZ.utf8/LC_NUMERIC
+#usr/lib/locale/uz_UZ.utf8/LC_PAPER
+#usr/lib/locale/uz_UZ.utf8/LC_TELEPHONE
+#usr/lib/locale/uz_UZ.utf8/LC_TIME
 #usr/lib/locale/uz_UZ/LC_ADDRESS
 #usr/lib/locale/uz_UZ/LC_COLLATE
 #usr/lib/locale/uz_UZ/LC_CTYPE
@@ -6364,20 +6983,6 @@ usr/lib/locale
 #usr/lib/locale/ve_ZA/LC_TELEPHONE
 #usr/lib/locale/ve_ZA/LC_TIME
 #usr/lib/locale/vi_VN
-#usr/lib/locale/vi_VN.tcvn
-#usr/lib/locale/vi_VN.tcvn/LC_ADDRESS
-#usr/lib/locale/vi_VN.tcvn/LC_COLLATE
-#usr/lib/locale/vi_VN.tcvn/LC_CTYPE
-#usr/lib/locale/vi_VN.tcvn/LC_IDENTIFICATION
-#usr/lib/locale/vi_VN.tcvn/LC_MEASUREMENT
-#usr/lib/locale/vi_VN.tcvn/LC_MESSAGES
-#usr/lib/locale/vi_VN.tcvn/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/vi_VN.tcvn/LC_MONETARY
-#usr/lib/locale/vi_VN.tcvn/LC_NAME
-#usr/lib/locale/vi_VN.tcvn/LC_NUMERIC
-#usr/lib/locale/vi_VN.tcvn/LC_PAPER
-#usr/lib/locale/vi_VN.tcvn/LC_TELEPHONE
-#usr/lib/locale/vi_VN.tcvn/LC_TIME
 #usr/lib/locale/vi_VN/LC_ADDRESS
 #usr/lib/locale/vi_VN/LC_COLLATE
 #usr/lib/locale/vi_VN/LC_CTYPE
@@ -6433,6 +7038,34 @@ usr/lib/locale
 #usr/lib/locale/wa_BE@euro/LC_PAPER
 #usr/lib/locale/wa_BE@euro/LC_TELEPHONE
 #usr/lib/locale/wa_BE@euro/LC_TIME
+#usr/lib/locale/wae_CH
+#usr/lib/locale/wae_CH/LC_ADDRESS
+#usr/lib/locale/wae_CH/LC_COLLATE
+#usr/lib/locale/wae_CH/LC_CTYPE
+#usr/lib/locale/wae_CH/LC_IDENTIFICATION
+#usr/lib/locale/wae_CH/LC_MEASUREMENT
+#usr/lib/locale/wae_CH/LC_MESSAGES
+#usr/lib/locale/wae_CH/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/wae_CH/LC_MONETARY
+#usr/lib/locale/wae_CH/LC_NAME
+#usr/lib/locale/wae_CH/LC_NUMERIC
+#usr/lib/locale/wae_CH/LC_PAPER
+#usr/lib/locale/wae_CH/LC_TELEPHONE
+#usr/lib/locale/wae_CH/LC_TIME
+#usr/lib/locale/wal_ET
+#usr/lib/locale/wal_ET/LC_ADDRESS
+#usr/lib/locale/wal_ET/LC_COLLATE
+#usr/lib/locale/wal_ET/LC_CTYPE
+#usr/lib/locale/wal_ET/LC_IDENTIFICATION
+#usr/lib/locale/wal_ET/LC_MEASUREMENT
+#usr/lib/locale/wal_ET/LC_MESSAGES
+#usr/lib/locale/wal_ET/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/wal_ET/LC_MONETARY
+#usr/lib/locale/wal_ET/LC_NAME
+#usr/lib/locale/wal_ET/LC_NUMERIC
+#usr/lib/locale/wal_ET/LC_PAPER
+#usr/lib/locale/wal_ET/LC_TELEPHONE
+#usr/lib/locale/wal_ET/LC_TIME
 #usr/lib/locale/wo_SN
 #usr/lib/locale/wo_SN/LC_ADDRESS
 #usr/lib/locale/wo_SN/LC_COLLATE
@@ -6517,6 +7150,20 @@ usr/lib/locale
 #usr/lib/locale/yo_NG/LC_PAPER
 #usr/lib/locale/yo_NG/LC_TELEPHONE
 #usr/lib/locale/yo_NG/LC_TIME
+#usr/lib/locale/yue_HK
+#usr/lib/locale/yue_HK/LC_ADDRESS
+#usr/lib/locale/yue_HK/LC_COLLATE
+#usr/lib/locale/yue_HK/LC_CTYPE
+#usr/lib/locale/yue_HK/LC_IDENTIFICATION
+#usr/lib/locale/yue_HK/LC_MEASUREMENT
+#usr/lib/locale/yue_HK/LC_MESSAGES
+#usr/lib/locale/yue_HK/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/yue_HK/LC_MONETARY
+#usr/lib/locale/yue_HK/LC_NAME
+#usr/lib/locale/yue_HK/LC_NUMERIC
+#usr/lib/locale/yue_HK/LC_PAPER
+#usr/lib/locale/yue_HK/LC_TELEPHONE
+#usr/lib/locale/yue_HK/LC_TIME
 #usr/lib/locale/zh_CN
 #usr/lib/locale/zh_CN.gb18030
 #usr/lib/locale/zh_CN.gb18030/LC_ADDRESS
@@ -6715,7 +7362,6 @@ usr/lib/locale
 #usr/lib/locale/zu_ZA/LC_TIME
 #usr/sbin/iconvconfig
 #usr/sbin/nscd
-#usr/sbin/rpcinfo
 #usr/sbin/zdump
 #usr/sbin/zic
 #usr/share/i18n
@@ -6741,6 +7387,11 @@ usr/lib/locale
 #usr/share/i18n/charmaps/CP1257.gz
 #usr/share/i18n/charmaps/CP1258.gz
 #usr/share/i18n/charmaps/CP737.gz
+#usr/share/i18n/charmaps/CP770.gz
+#usr/share/i18n/charmaps/CP771.gz
+#usr/share/i18n/charmaps/CP772.gz
+#usr/share/i18n/charmaps/CP773.gz
+#usr/share/i18n/charmaps/CP774.gz
 #usr/share/i18n/charmaps/CP775.gz
 #usr/share/i18n/charmaps/CP949.gz
 #usr/share/i18n/charmaps/CSA_Z243.4-1985-1.gz
@@ -6954,8 +7605,10 @@ usr/lib/locale
 #usr/share/i18n/locales/aa_ER@saaho
 #usr/share/i18n/locales/aa_ET
 #usr/share/i18n/locales/af_ZA
+#usr/share/i18n/locales/ak_GH
 #usr/share/i18n/locales/am_ET
 #usr/share/i18n/locales/an_ES
+#usr/share/i18n/locales/anp_IN
 #usr/share/i18n/locales/ar_AE
 #usr/share/i18n/locales/ar_BH
 #usr/share/i18n/locales/ar_DZ
@@ -6971,23 +7624,29 @@ usr/lib/locale
 #usr/share/i18n/locales/ar_QA
 #usr/share/i18n/locales/ar_SA
 #usr/share/i18n/locales/ar_SD
+#usr/share/i18n/locales/ar_SS
 #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/ayc_PE
 #usr/share/i18n/locales/az_AZ
 #usr/share/i18n/locales/be_BY
 #usr/share/i18n/locales/be_BY@latin
+#usr/share/i18n/locales/bem_ZM
 #usr/share/i18n/locales/ber_DZ
 #usr/share/i18n/locales/ber_MA
 #usr/share/i18n/locales/bg_BG
+#usr/share/i18n/locales/bhb_IN
+#usr/share/i18n/locales/bho_IN
 #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/brx_IN
 #usr/share/i18n/locales/bs_BA
 #usr/share/i18n/locales/byn_ER
 #usr/share/i18n/locales/ca_AD
@@ -6995,6 +7654,9 @@ usr/lib/locale
 #usr/share/i18n/locales/ca_ES@euro
 #usr/share/i18n/locales/ca_FR
 #usr/share/i18n/locales/ca_IT
+#usr/share/i18n/locales/ce_RU
+#usr/share/i18n/locales/chr_US
+#usr/share/i18n/locales/cmn_TW
 #usr/share/i18n/locales/crh_UA
 #usr/share/i18n/locales/cs_CZ
 #usr/share/i18n/locales/csb_PL
@@ -7008,8 +7670,11 @@ usr/lib/locale
 #usr/share/i18n/locales/de_CH
 #usr/share/i18n/locales/de_DE
 #usr/share/i18n/locales/de_DE@euro
+#usr/share/i18n/locales/de_IT
+#usr/share/i18n/locales/de_LI
 #usr/share/i18n/locales/de_LU
 #usr/share/i18n/locales/de_LU@euro
+#usr/share/i18n/locales/doi_IN
 #usr/share/i18n/locales/dv_MV
 #usr/share/i18n/locales/dz_BT
 #usr/share/i18n/locales/el_CY
@@ -7024,6 +7689,7 @@ usr/lib/locale
 #usr/share/i18n/locales/en_HK
 #usr/share/i18n/locales/en_IE
 #usr/share/i18n/locales/en_IE@euro
+#usr/share/i18n/locales/en_IL
 #usr/share/i18n/locales/en_IN
 #usr/share/i18n/locales/en_NG
 #usr/share/i18n/locales/en_NZ
@@ -7031,12 +7697,15 @@ usr/lib/locale
 #usr/share/i18n/locales/en_SG
 #usr/share/i18n/locales/en_US
 #usr/share/i18n/locales/en_ZA
+#usr/share/i18n/locales/en_ZM
 #usr/share/i18n/locales/en_ZW
+#usr/share/i18n/locales/eo
 #usr/share/i18n/locales/es_AR
 #usr/share/i18n/locales/es_BO
 #usr/share/i18n/locales/es_CL
 #usr/share/i18n/locales/es_CO
 #usr/share/i18n/locales/es_CR
+#usr/share/i18n/locales/es_CU
 #usr/share/i18n/locales/es_DO
 #usr/share/i18n/locales/es_EC
 #usr/share/i18n/locales/es_ES
@@ -7057,8 +7726,8 @@ usr/lib/locale
 #usr/share/i18n/locales/eu_ES
 #usr/share/i18n/locales/eu_ES@euro
 #usr/share/i18n/locales/fa_IR
+#usr/share/i18n/locales/ff_SN
 #usr/share/i18n/locales/fi_FI
-#usr/share/i18n/locales/fi_FI.orig
 #usr/share/i18n/locales/fi_FI@euro
 #usr/share/i18n/locales/fil_PH
 #usr/share/i18n/locales/fo_FO
@@ -7085,6 +7754,7 @@ usr/lib/locale
 #usr/share/i18n/locales/gu_IN
 #usr/share/i18n/locales/gv_GB
 #usr/share/i18n/locales/ha_NG
+#usr/share/i18n/locales/hak_TW
 #usr/share/i18n/locales/he_IL
 #usr/share/i18n/locales/hi_IN
 #usr/share/i18n/locales/hne_IN
@@ -7094,6 +7764,7 @@ usr/lib/locale
 #usr/share/i18n/locales/hu_HU
 #usr/share/i18n/locales/hy_AM
 #usr/share/i18n/locales/i18n
+#usr/share/i18n/locales/ia_FR
 #usr/share/i18n/locales/id_ID
 #usr/share/i18n/locales/ig_NG
 #usr/share/i18n/locales/ik_CA
@@ -7105,7 +7776,6 @@ usr/lib/locale
 #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
@@ -7119,57 +7789,73 @@ usr/lib/locale
 #usr/share/i18n/locales/ku_TR
 #usr/share/i18n/locales/kw_GB
 #usr/share/i18n/locales/ky_KG
+#usr/share/i18n/locales/lb_LU
 #usr/share/i18n/locales/lg_UG
 #usr/share/i18n/locales/li_BE
 #usr/share/i18n/locales/li_NL
+#usr/share/i18n/locales/lij_IT
+#usr/share/i18n/locales/ln_CD
 #usr/share/i18n/locales/lo_LA
 #usr/share/i18n/locales/lt_LT
 #usr/share/i18n/locales/lv_LV
+#usr/share/i18n/locales/lzh_TW
+#usr/share/i18n/locales/mag_IN
 #usr/share/i18n/locales/mai_IN
 #usr/share/i18n/locales/mg_MG
+#usr/share/i18n/locales/mhr_RU
 #usr/share/i18n/locales/mi_NZ
 #usr/share/i18n/locales/mk_MK
 #usr/share/i18n/locales/ml_IN
 #usr/share/i18n/locales/mn_MN
+#usr/share/i18n/locales/mni_IN
 #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
 #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/nhn_MX
+#usr/share/i18n/locales/niu_NU
+#usr/share/i18n/locales/niu_NZ
 #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/os_RU
 #usr/share/i18n/locales/pa_IN
 #usr/share/i18n/locales/pa_PK
-#usr/share/i18n/locales/pap_AN
+#usr/share/i18n/locales/pap_AW
+#usr/share/i18n/locales/pap_CW
 #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/quz_PE
+#usr/share/i18n/locales/raj_IN
 #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/sat_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/sgs_LT
 #usr/share/i18n/locales/shs_CA
 #usr/share/i18n/locales/si_LK
 #usr/share/i18n/locales/sid_ET
@@ -7189,10 +7875,16 @@ usr/lib/locale
 #usr/share/i18n/locales/sv_FI
 #usr/share/i18n/locales/sv_FI@euro
 #usr/share/i18n/locales/sv_SE
+#usr/share/i18n/locales/sw_KE
+#usr/share/i18n/locales/sw_TZ
+#usr/share/i18n/locales/szl_PL
 #usr/share/i18n/locales/ta_IN
+#usr/share/i18n/locales/ta_LK
+#usr/share/i18n/locales/tcy_IN
 #usr/share/i18n/locales/te_IN
 #usr/share/i18n/locales/tg_TJ
 #usr/share/i18n/locales/th_TH
+#usr/share/i18n/locales/the_NP
 #usr/share/i18n/locales/ti_ER
 #usr/share/i18n/locales/ti_ET
 #usr/share/i18n/locales/tig_ER
@@ -7218,6 +7910,7 @@ usr/lib/locale
 #usr/share/i18n/locales/tt_RU@iqtelif
 #usr/share/i18n/locales/ug_CN
 #usr/share/i18n/locales/uk_UA
+#usr/share/i18n/locales/unm_US
 #usr/share/i18n/locales/ur_IN
 #usr/share/i18n/locales/ur_PK
 #usr/share/i18n/locales/uz_UZ
@@ -7226,11 +7919,13 @@ usr/lib/locale
 #usr/share/i18n/locales/vi_VN
 #usr/share/i18n/locales/wa_BE
 #usr/share/i18n/locales/wa_BE@euro
+#usr/share/i18n/locales/wae_CH
 #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/yue_HK
 #usr/share/i18n/locales/zh_CN
 #usr/share/i18n/locales/zh_HK
 #usr/share/i18n/locales/zh_SG
@@ -7241,6 +7936,10 @@ usr/lib/locale
 #usr/share/info/libc.info-1
 #usr/share/info/libc.info-10
 #usr/share/info/libc.info-11
+#usr/share/info/libc.info-12
+#usr/share/info/libc.info-13
+#usr/share/info/libc.info-14
+#usr/share/info/libc.info-15
 #usr/share/info/libc.info-2
 #usr/share/info/libc.info-3
 #usr/share/info/libc.info-4
@@ -7273,6 +7972,9 @@ usr/lib/locale
 #usr/share/locale/en_GB
 #usr/share/locale/en_GB/LC_MESSAGES
 #usr/share/locale/en_GB/LC_MESSAGES/libc.mo
+#usr/share/locale/eo
+#usr/share/locale/eo/LC_MESSAGES
+#usr/share/locale/eo/LC_MESSAGES/libc.mo
 #usr/share/locale/es
 #usr/share/locale/es/LC_MESSAGES
 #usr/share/locale/es/LC_MESSAGES/libc.mo
@@ -7291,6 +7993,9 @@ usr/lib/locale
 #usr/share/locale/hu
 #usr/share/locale/hu/LC_MESSAGES
 #usr/share/locale/hu/LC_MESSAGES/libc.mo
+#usr/share/locale/ia
+#usr/share/locale/ia/LC_MESSAGES
+#usr/share/locale/ia/LC_MESSAGES/libc.mo
 #usr/share/locale/id
 #usr/share/locale/id/LC_MESSAGES
 #usr/share/locale/id/LC_MESSAGES/libc.mo
@@ -7328,12 +8033,18 @@ usr/lib/locale
 #usr/share/locale/sk
 #usr/share/locale/sk/LC_MESSAGES
 #usr/share/locale/sk/LC_MESSAGES/libc.mo
+#usr/share/locale/sl
+#usr/share/locale/sl/LC_MESSAGES
+#usr/share/locale/sl/LC_MESSAGES/libc.mo
 #usr/share/locale/sv
 #usr/share/locale/sv/LC_MESSAGES
 #usr/share/locale/sv/LC_MESSAGES/libc.mo
 #usr/share/locale/tr
 #usr/share/locale/tr/LC_MESSAGES
 #usr/share/locale/tr/LC_MESSAGES/libc.mo
+#usr/share/locale/uk
+#usr/share/locale/uk/LC_MESSAGES
+#usr/share/locale/uk/LC_MESSAGES/libc.mo
 #usr/share/locale/vi
 #usr/share/locale/vi/LC_MESSAGES
 #usr/share/locale/vi/LC_MESSAGES/libc.mo
@@ -7345,3 +8056,5 @@ usr/lib/locale
 #usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
 #var/cache/ldconfig
 #var/cache/ldconfig/aux-cache
+#var/db
+#var/db/Makefile
index 972bca1a06d91e0bafc25ddfaa419d64aa5ea2f8..636dc5c45b05b055fa54c04be64adb111969330d 100644 (file)
@@ -4,14 +4,14 @@
 #usr/lib/libgmp.la
 #usr/lib/libgmp.so
 usr/lib/libgmp.so.10
-usr/lib/libgmp.so.10.3.0
+usr/lib/libgmp.so.10.3.2
 #usr/lib/libgmpxx.a
 #usr/lib/libgmpxx.la
 #usr/lib/libgmpxx.so
 usr/lib/libgmpxx.so.4
-usr/lib/libgmpxx.so.4.5.0
+usr/lib/libgmpxx.so.4.5.2
 usr/lib/sse2/libgmp.so.10
-usr/lib/sse2/libgmp.so.10.3.0
+usr/lib/sse2/libgmp.so.10.3.2
 #usr/share/info/gmp.info
 #usr/share/info/gmp.info-1
 #usr/share/info/gmp.info-2
index 75aad1783ffc21510d507dfb9795d2d704388a4f..760a12869cf829c375f1833d31e084b95964feba 100644 (file)
@@ -4,66 +4,30 @@ etc/init.d
 etc/rc.d/helper/getdnsfromdhcpc.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
-#etc/rc.d/init.d/apcupsd
-#etc/rc.d/init.d/applejuice
-#etc/rc.d/init.d/asterisk
 etc/rc.d/init.d/beep
-#etc/rc.d/init.d/bluetooth
 etc/rc.d/init.d/checkfs
-#etc/rc.d/init.d/clamav
 etc/rc.d/init.d/cleanfs
-#etc/rc.d/init.d/client175
 etc/rc.d/init.d/collectd
 etc/rc.d/init.d/connectd
 etc/rc.d/init.d/console
-#etc/rc.d/init.d/cpufreq
-#etc/rc.d/init.d/cups
-#etc/rc.d/init.d/cyrus-imapd
-#etc/rc.d/init.d/cyrus-sasl
 etc/rc.d/init.d/dhcp
 etc/rc.d/init.d/dhcrelay
-#etc/rc.d/init.d/dnsdist
 etc/rc.d/init.d/fcron
-#etc/rc.d/init.d/fetchmail
 etc/rc.d/init.d/fireinfo
 etc/rc.d/init.d/firewall
 etc/rc.d/init.d/firstsetup
-#etc/rc.d/init.d/freeradius
 etc/rc.d/init.d/fsresize
 etc/rc.d/init.d/functions
-#etc/rc.d/init.d/gnump3d
-#etc/rc.d/init.d/guardian
 etc/rc.d/init.d/halt
-#etc/rc.d/init.d/haproxy
-#etc/rc.d/init.d/hostapd
-#etc/rc.d/init.d/imspector
 etc/rc.d/init.d/ipsec
-#etc/rc.d/init.d/keepalived
-#etc/rc.d/init.d/lcd4linux
-#etc/rc.d/init.d/lcdproc
-#etc/rc.d/init.d/lcr
 etc/rc.d/init.d/leds
-#etc/rc.d/init.d/libvirt-guests
-#etc/rc.d/init.d/libvirtd
 etc/rc.d/init.d/localnet
 etc/rc.d/init.d/mISDN
-#etc/rc.d/init.d/mediatomb
-#etc/rc.d/init.d/messagebus
-#etc/rc.d/init.d/miau
-#etc/rc.d/init.d/minidlna
-#etc/rc.d/init.d/miniupnpd
 etc/rc.d/init.d/modules
-#etc/rc.d/init.d/monit
-#etc/rc.d/init.d/motion
 etc/rc.d/init.d/mountfs
 etc/rc.d/init.d/mountkernfs
 etc/rc.d/init.d/mounttmpfs
-#etc/rc.d/init.d/mpd
-#etc/rc.d/init.d/mysql
-#etc/rc.d/init.d/netsnmpd
 etc/rc.d/init.d/network
 etc/rc.d/init.d/network-trigger
 #etc/rc.d/init.d/networking
@@ -100,51 +64,30 @@ etc/rc.d/init.d/networking/red.up/99-fireinfo
 etc/rc.d/init.d/networking/red.up/99-geoip-database
 etc/rc.d/init.d/networking/red.up/99-pakfire-update
 etc/rc.d/init.d/networking/wpa_supplicant.exe
-#etc/rc.d/init.d/nfs-server
 etc/rc.d/init.d/ntp
-#etc/rc.d/init.d/nut
-#etc/rc.d/init.d/openvmtools
 etc/rc.d/init.d/partresize
-#etc/rc.d/init.d/postfix
-#etc/rc.d/init.d/pound
 etc/rc.d/init.d/random
 etc/rc.d/init.d/rc
 etc/rc.d/init.d/reboot
 etc/rc.d/init.d/rngd
-#etc/rc.d/init.d/rpcbind
-#etc/rc.d/init.d/rtpproxy
-#etc/rc.d/init.d/samba
-#etc/rc.d/init.d/sane
 etc/rc.d/init.d/sendsignals
 etc/rc.d/init.d/setclock
 etc/rc.d/init.d/smartenabler
 etc/rc.d/init.d/snort
-#etc/rc.d/init.d/spamassassin
 etc/rc.d/init.d/squid
 etc/rc.d/init.d/sshd
-#etc/rc.d/init.d/sslh
 etc/rc.d/init.d/static-routes
-#etc/rc.d/init.d/stunnel
 etc/rc.d/init.d/swap
 etc/rc.d/init.d/sysctl
 etc/rc.d/init.d/sysklogd
 etc/rc.d/init.d/template
-#etc/rc.d/init.d/tftpd
-#etc/rc.d/init.d/tor
-#etc/rc.d/init.d/transmission
 etc/rc.d/init.d/udev
 etc/rc.d/init.d/udev_retry
 etc/rc.d/init.d/unbound
 etc/rc.d/init.d/upnpd
-#etc/rc.d/init.d/vdr
-#etc/rc.d/init.d/vdradmin
-#etc/rc.d/init.d/virtlogd
 etc/rc.d/init.d/vnstat
-#etc/rc.d/init.d/vsftpd
 etc/rc.d/init.d/waitdrives
-#etc/rc.d/init.d/watchdog
 etc/rc.d/init.d/wlanclient
-#etc/rc.d/init.d/xinetd
 #etc/rc.d/rc0.d
 #etc/rc.d/rc0.d/K01imspetor
 #etc/rc.d/rc0.d/K01motion
index f23b97c2b0fb07bd872e5c99db68c7244b412d3e..9936e0466add34e3def3b18353099735a09ba0f1 100644 (file)
@@ -8,7 +8,7 @@ usr/bin/sensors-conf-convert
 #usr/lib/libsensors.a
 usr/lib/libsensors.so
 usr/lib/libsensors.so.4
-usr/lib/libsensors.so.4.3.2
+usr/lib/libsensors.so.4.4.0
 #usr/man/man1/sensors.1
 #usr/man/man3/libsensors.3
 #usr/man/man5/sensors.conf.5
@@ -17,6 +17,7 @@ usr/lib/libsensors.so.4.3.2
 #usr/man/man8/isadump.8
 #usr/man/man8/isaset.8
 #usr/man/man8/pwmconfig.8
+#usr/man/man8/sensors-conf-convert.8
 #usr/man/man8/sensors-detect.8
 usr/sbin/fancontrol
 usr/sbin/isadump
index a308ae0e4f31a4fcd6bf639601eabe387645883f..9248201f90b2c4545a3f764be6b0b4344acd1b60 100644 (file)
@@ -1463,8 +1463,8 @@ usr/lib/python2.7/encodings/zlib_codec.pyc
 #usr/lib/python2.7/ensurepip/__main__.pyc
 #usr/lib/python2.7/ensurepip/__main__.pyo
 #usr/lib/python2.7/ensurepip/_bundled
-#usr/lib/python2.7/ensurepip/_bundled/pip-6.1.1-py2.py3-none-any.whl
-#usr/lib/python2.7/ensurepip/_bundled/setuptools-15.2-py2.py3-none-any.whl
+#usr/lib/python2.7/ensurepip/_bundled/pip-9.0.1-py2.py3-none-any.whl
+#usr/lib/python2.7/ensurepip/_bundled/setuptools-28.8.0-py2.py3-none-any.whl
 #usr/lib/python2.7/ensurepip/_uninstall.py
 #usr/lib/python2.7/ensurepip/_uninstall.pyc
 #usr/lib/python2.7/ensurepip/_uninstall.pyo
@@ -1718,6 +1718,10 @@ usr/lib/python2.7/httplib.pyc
 #usr/lib/python2.7/idlelib/dynOptionMenuWidget.pyc
 #usr/lib/python2.7/idlelib/dynOptionMenuWidget.pyo
 #usr/lib/python2.7/idlelib/extend.txt
+#usr/lib/python2.7/idlelib/help.html
+#usr/lib/python2.7/idlelib/help.py
+#usr/lib/python2.7/idlelib/help.pyc
+#usr/lib/python2.7/idlelib/help.pyo
 #usr/lib/python2.7/idlelib/help.txt
 #usr/lib/python2.7/idlelib/idle.bat
 #usr/lib/python2.7/idlelib/idle.py
@@ -1756,12 +1760,18 @@ usr/lib/python2.7/httplib.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_delegator.py
 #usr/lib/python2.7/idlelib/idle_test/test_delegator.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_delegator.pyo
+#usr/lib/python2.7/idlelib/idle_test/test_editmenu.py
+#usr/lib/python2.7/idlelib/idle_test/test_editmenu.pyc
+#usr/lib/python2.7/idlelib/idle_test/test_editmenu.pyo
 #usr/lib/python2.7/idlelib/idle_test/test_formatparagraph.py
 #usr/lib/python2.7/idlelib/idle_test/test_formatparagraph.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_formatparagraph.pyo
 #usr/lib/python2.7/idlelib/idle_test/test_grep.py
 #usr/lib/python2.7/idlelib/idle_test/test_grep.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_grep.pyo
+#usr/lib/python2.7/idlelib/idle_test/test_helpabout.py
+#usr/lib/python2.7/idlelib/idle_test/test_helpabout.pyc
+#usr/lib/python2.7/idlelib/idle_test/test_helpabout.pyo
 #usr/lib/python2.7/idlelib/idle_test/test_hyperparser.py
 #usr/lib/python2.7/idlelib/idle_test/test_hyperparser.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_hyperparser.pyo
@@ -1916,7 +1926,7 @@ usr/lib/python2.7/json/tool.pyc
 usr/lib/python2.7/keyword.pyc
 #usr/lib/python2.7/keyword.pyo
 #usr/lib/python2.7/lib-dynload
-#usr/lib/python2.7/lib-dynload/Python-2.7.10-py2.7.egg-info
+#usr/lib/python2.7/lib-dynload/Python-2.7.13-py2.7.egg-info
 usr/lib/python2.7/lib-dynload/_bisect.so
 usr/lib/python2.7/lib-dynload/_bsddb.so
 usr/lib/python2.7/lib-dynload/_codecs_cn.so
@@ -2092,9 +2102,9 @@ usr/lib/python2.7/lib-dynload/zlib.so
 #usr/lib/python2.7/lib-tk/turtle.pyo
 #usr/lib/python2.7/lib2to3
 #usr/lib/python2.7/lib2to3/Grammar.txt
-#usr/lib/python2.7/lib2to3/Grammar2.7.10.final.0.pickle
+#usr/lib/python2.7/lib2to3/Grammar2.7.13.final.0.pickle
 #usr/lib/python2.7/lib2to3/PatternGrammar.txt
-#usr/lib/python2.7/lib2to3/PatternGrammar2.7.10.final.0.pickle
+#usr/lib/python2.7/lib2to3/PatternGrammar2.7.13.final.0.pickle
 #usr/lib/python2.7/lib2to3/__init__.py
 #usr/lib/python2.7/lib2to3/__init__.pyc
 #usr/lib/python2.7/lib2to3/__init__.pyo
@@ -2129,9 +2139,6 @@ usr/lib/python2.7/lib-dynload/zlib.so
 #usr/lib/python2.7/lib2to3/fixes/fix_buffer.py
 #usr/lib/python2.7/lib2to3/fixes/fix_buffer.pyc
 #usr/lib/python2.7/lib2to3/fixes/fix_buffer.pyo
-#usr/lib/python2.7/lib2to3/fixes/fix_callable.py
-#usr/lib/python2.7/lib2to3/fixes/fix_callable.pyc
-#usr/lib/python2.7/lib2to3/fixes/fix_callable.pyo
 #usr/lib/python2.7/lib2to3/fixes/fix_dict.py
 #usr/lib/python2.7/lib2to3/fixes/fix_dict.pyc
 #usr/lib/python2.7/lib2to3/fixes/fix_dict.pyo
@@ -2750,6 +2757,7 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/_mock_backport.py
 #usr/lib/python2.7/test/_mock_backport.pyc
 #usr/lib/python2.7/test/_mock_backport.pyo
+#usr/lib/python2.7/test/allsans.pem
 #usr/lib/python2.7/test/audiodata
 #usr/lib/python2.7/test/audiodata/pluck-pcm16.aiff
 #usr/lib/python2.7/test/audiodata/pluck-pcm16.au
@@ -2784,16 +2792,14 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/badsyntax_future8.py
 #usr/lib/python2.7/test/badsyntax_future9.py
 #usr/lib/python2.7/test/badsyntax_nocaret.py
-#usr/lib/python2.7/test/buffer_tests.py
-#usr/lib/python2.7/test/buffer_tests.pyc
-#usr/lib/python2.7/test/buffer_tests.pyo
 #usr/lib/python2.7/test/capath
+#usr/lib/python2.7/test/capath/0e4015b9.0
 #usr/lib/python2.7/test/capath/4e1295a3.0
 #usr/lib/python2.7/test/capath/5ed36f99.0
 #usr/lib/python2.7/test/capath/6e88d7b8.0
 #usr/lib/python2.7/test/capath/99d0fa06.0
+#usr/lib/python2.7/test/capath/ce7b8643.0
 #usr/lib/python2.7/test/cfgparser.1
-#usr/lib/python2.7/test/check_soundcard.vbs
 #usr/lib/python2.7/test/cjkencodings
 #usr/lib/python2.7/test/cjkencodings/big5-utf8.txt
 #usr/lib/python2.7/test/cjkencodings/big5.txt
@@ -2993,7 +2999,6 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/gdb_sample.pyc
 #usr/lib/python2.7/test/gdb_sample.pyo
 #usr/lib/python2.7/test/greyrgb.uue
-#usr/lib/python2.7/test/https_svn_python_org_root.pem
 #usr/lib/python2.7/test/ieee754.txt
 #usr/lib/python2.7/test/imghdrdata
 #usr/lib/python2.7/test/imghdrdata/python.bmp
@@ -3105,6 +3110,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/ssl_servers.py
 #usr/lib/python2.7/test/ssl_servers.pyc
 #usr/lib/python2.7/test/ssl_servers.pyo
+#usr/lib/python2.7/test/ssltests.py
+#usr/lib/python2.7/test/ssltests.pyc
+#usr/lib/python2.7/test/ssltests.pyo
 #usr/lib/python2.7/test/string_tests.py
 #usr/lib/python2.7/test/string_tests.pyc
 #usr/lib/python2.7/test/string_tests.pyo
@@ -3319,9 +3327,6 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_codeop.py
 #usr/lib/python2.7/test/test_codeop.pyc
 #usr/lib/python2.7/test/test_codeop.pyo
-#usr/lib/python2.7/test/test_coding.py
-#usr/lib/python2.7/test/test_coding.pyc
-#usr/lib/python2.7/test/test_coding.pyo
 #usr/lib/python2.7/test/test_coercion.py
 #usr/lib/python2.7/test/test_coercion.pyc
 #usr/lib/python2.7/test/test_coercion.pyo
@@ -3837,6 +3842,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_optparse.py
 #usr/lib/python2.7/test/test_optparse.pyc
 #usr/lib/python2.7/test/test_optparse.pyo
+#usr/lib/python2.7/test/test_ordered_dict.py
+#usr/lib/python2.7/test/test_ordered_dict.pyc
+#usr/lib/python2.7/test/test_ordered_dict.pyo
 #usr/lib/python2.7/test/test_os.py
 #usr/lib/python2.7/test/test_os.pyc
 #usr/lib/python2.7/test/test_os.pyo
@@ -3855,15 +3863,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_pep247.py
 #usr/lib/python2.7/test/test_pep247.pyc
 #usr/lib/python2.7/test/test_pep247.pyo
-#usr/lib/python2.7/test/test_pep263.py
-#usr/lib/python2.7/test/test_pep263.pyc
-#usr/lib/python2.7/test/test_pep263.pyo
 #usr/lib/python2.7/test/test_pep277.py
 #usr/lib/python2.7/test/test_pep277.pyc
 #usr/lib/python2.7/test/test_pep277.pyo
-#usr/lib/python2.7/test/test_pep292.py
-#usr/lib/python2.7/test/test_pep292.pyc
-#usr/lib/python2.7/test/test_pep292.pyo
 #usr/lib/python2.7/test/test_pep352.py
 #usr/lib/python2.7/test/test_pep352.pyc
 #usr/lib/python2.7/test/test_pep352.pyo
@@ -4047,6 +4049,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_sort.py
 #usr/lib/python2.7/test/test_sort.pyc
 #usr/lib/python2.7/test/test_sort.pyo
+#usr/lib/python2.7/test/test_source_encoding.py
+#usr/lib/python2.7/test/test_source_encoding.pyc
+#usr/lib/python2.7/test/test_source_encoding.pyo
 #usr/lib/python2.7/test/test_spwd.py
 #usr/lib/python2.7/test/test_spwd.pyc
 #usr/lib/python2.7/test/test_spwd.pyo
@@ -4194,6 +4199,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_tuple.py
 #usr/lib/python2.7/test/test_tuple.pyc
 #usr/lib/python2.7/test/test_tuple.pyo
+#usr/lib/python2.7/test/test_turtle.py
+#usr/lib/python2.7/test/test_turtle.pyc
+#usr/lib/python2.7/test/test_turtle.pyo
 #usr/lib/python2.7/test/test_typechecks.py
 #usr/lib/python2.7/test/test_typechecks.pyc
 #usr/lib/python2.7/test/test_typechecks.pyo
index 9b8d484e3c565590806e09038e8a68a9eafc7cf9..d445a7f3a7ecf932a2060f9b64c012303a67829f 100644 (file)
@@ -8,8 +8,12 @@ bin/wdctl
 #etc/fcron.daily
 etc/fcron.daily/trim
 lib/libblkid.so.1.1.0
+lib/libfdisk.so.1
+lib/libfdisk.so.1.1.0
 lib/libmount.so.1
 lib/libmount.so.1.1.0
+lib/libsmartcols.so.1
+lib/libsmartcols.so.1.1.0
 lib/libuuid.so.1.3.0
 sbin/agetty
 sbin/blkdiscard
@@ -29,7 +33,6 @@ sbin/mkfs
 #sbin/mkfs.cramfs
 sbin/mkfs.minix
 sbin/mkswap
-sbin/nologin
 #sbin/pivot_root
 sbin/raw
 sbin/sfdisk
@@ -38,13 +41,13 @@ sbin/swapoff
 sbin/swapon
 sbin/switch_root
 sbin/wipefs
+sbin/zramctl
 #usr/bin/cal
 #usr/bin/chrt
 #usr/bin/col
 #usr/bin/colcrt
 #usr/bin/colrm
 #usr/bin/column
-#usr/bin/cytune
 usr/bin/eject
 usr/bin/fallocate
 usr/bin/flock
@@ -61,7 +64,10 @@ usr/bin/ionice
 usr/bin/logger
 #usr/bin/look
 usr/bin/lscpu
+usr/bin/lsipc
 usr/bin/lslocks
+usr/bin/lslogins
+usr/bin/lsns
 #usr/bin/mcookie
 #usr/bin/namei
 #usr/bin/nsenter
@@ -78,16 +84,26 @@ usr/bin/setsid
 usr/bin/tailf
 #usr/bin/taskset
 #usr/bin/ul
+#usr/bin/uname26
 #usr/bin/unshare
 #usr/bin/whereis
+#usr/include/libfdisk
+#usr/include/libfdisk/libfdisk.h
 #usr/include/libmount
 #usr/include/libmount/libmount.h
+#usr/include/libsmartcols
+#usr/include/libsmartcols/libsmartcols.h
 #usr/lib/libblkid.la
-#usr/lib/libmount.a
+#usr/lib/libfdisk.la
+#usr/lib/libfdisk.so
 #usr/lib/libmount.la
 #usr/lib/libmount.so
+#usr/lib/libsmartcols.la
+#usr/lib/libsmartcols.so
 #usr/lib/libuuid.la
+#usr/lib/pkgconfig/fdisk.pc
 #usr/lib/pkgconfig/mount.pc
+#usr/lib/pkgconfig/smartcols.pc
 usr/sbin/addpart
 usr/sbin/delpart
 usr/sbin/fdformat
@@ -96,8 +112,6 @@ usr/sbin/partx
 #usr/sbin/readprofile
 usr/sbin/resizepart
 usr/sbin/rtcwake
-usr/share/bash-completion
-#usr/share/bash-completion/completions
 #usr/share/bash-completion/completions/addpart
 #usr/share/bash-completion/completions/blkdiscard
 #usr/share/bash-completion/completions/blkid
@@ -111,7 +125,6 @@ usr/share/bash-completion
 #usr/share/bash-completion/completions/colrm
 #usr/share/bash-completion/completions/column
 #usr/share/bash-completion/completions/ctrlaltdel
-#usr/share/bash-completion/completions/cytune
 #usr/share/bash-completion/completions/delpart
 #usr/share/bash-completion/completions/dmesg
 #usr/share/bash-completion/completions/eject
@@ -129,16 +142,21 @@ usr/share/bash-completion
 #usr/share/bash-completion/completions/hexdump
 #usr/share/bash-completion/completions/hwclock
 #usr/share/bash-completion/completions/ionice
+#usr/share/bash-completion/completions/ipcmk
 #usr/share/bash-completion/completions/ipcrm
 #usr/share/bash-completion/completions/ipcs
 #usr/share/bash-completion/completions/isosize
+#usr/share/bash-completion/completions/last
 #usr/share/bash-completion/completions/ldattach
 #usr/share/bash-completion/completions/logger
 #usr/share/bash-completion/completions/look
 #usr/share/bash-completion/completions/losetup
 #usr/share/bash-completion/completions/lsblk
 #usr/share/bash-completion/completions/lscpu
+#usr/share/bash-completion/completions/lsipc
 #usr/share/bash-completion/completions/lslocks
+#usr/share/bash-completion/completions/lslogins
+#usr/share/bash-completion/completions/lsns
 #usr/share/bash-completion/completions/mcookie
 #usr/share/bash-completion/completions/mesg
 #usr/share/bash-completion/completions/mkfs
@@ -147,6 +165,7 @@ usr/share/bash-completion
 #usr/share/bash-completion/completions/mkfs.minix
 #usr/share/bash-completion/completions/mkswap
 #usr/share/bash-completion/completions/more
+#usr/share/bash-completion/completions/mount
 #usr/share/bash-completion/completions/mountpoint
 #usr/share/bash-completion/completions/namei
 #usr/share/bash-completion/completions/nsenter
@@ -168,10 +187,12 @@ usr/share/bash-completion
 #usr/share/bash-completion/completions/setterm
 #usr/share/bash-completion/completions/sfdisk
 #usr/share/bash-completion/completions/swaplabel
+#usr/share/bash-completion/completions/swapoff
 #usr/share/bash-completion/completions/swapon
 #usr/share/bash-completion/completions/tailf
 #usr/share/bash-completion/completions/taskset
 #usr/share/bash-completion/completions/ul
+#usr/share/bash-completion/completions/umount
 #usr/share/bash-completion/completions/unshare
 #usr/share/bash-completion/completions/utmpdump
 #usr/share/bash-completion/completions/uuidd
@@ -180,44 +201,11 @@ usr/share/bash-completion
 #usr/share/bash-completion/completions/wdctl
 #usr/share/bash-completion/completions/whereis
 #usr/share/bash-completion/completions/wipefs
+#usr/share/bash-completion/completions/zramctl
 #usr/share/doc/util-linux
 #usr/share/doc/util-linux/getopt
 #usr/share/doc/util-linux/getopt/getopt-parse.bash
 #usr/share/doc/util-linux/getopt/getopt-parse.tcsh
-#usr/share/locale/ca/LC_MESSAGES/util-linux.mo
-#usr/share/locale/cs/LC_MESSAGES/util-linux.mo
-#usr/share/locale/da/LC_MESSAGES/util-linux.mo
-#usr/share/locale/de/LC_MESSAGES/util-linux.mo
-#usr/share/locale/es/LC_MESSAGES/util-linux.mo
-#usr/share/locale/et
-#usr/share/locale/et/LC_MESSAGES
-#usr/share/locale/et/LC_MESSAGES/util-linux.mo
-#usr/share/locale/eu
-#usr/share/locale/eu/LC_MESSAGES
-#usr/share/locale/eu/LC_MESSAGES/util-linux.mo
-#usr/share/locale/fi/LC_MESSAGES/util-linux.mo
-#usr/share/locale/fr/LC_MESSAGES/util-linux.mo
-#usr/share/locale/gl/LC_MESSAGES/util-linux.mo
-#usr/share/locale/hr/LC_MESSAGES/util-linux.mo
-#usr/share/locale/hu/LC_MESSAGES/util-linux.mo
-#usr/share/locale/id/LC_MESSAGES/util-linux.mo
-#usr/share/locale/it/LC_MESSAGES/util-linux.mo
-#usr/share/locale/ja/LC_MESSAGES/util-linux.mo
-#usr/share/locale/nl/LC_MESSAGES/util-linux.mo
-#usr/share/locale/pl/LC_MESSAGES/util-linux.mo
-#usr/share/locale/pt_BR/LC_MESSAGES/util-linux.mo
-#usr/share/locale/ru/LC_MESSAGES/util-linux.mo
-#usr/share/locale/sl
-#usr/share/locale/sl/LC_MESSAGES
-#usr/share/locale/sl/LC_MESSAGES/util-linux.mo
-#usr/share/locale/sv/LC_MESSAGES/util-linux.mo
-#usr/share/locale/tr/LC_MESSAGES/util-linux.mo
-#usr/share/locale/uk
-#usr/share/locale/uk/LC_MESSAGES
-#usr/share/locale/uk/LC_MESSAGES/util-linux.mo
-#usr/share/locale/vi/LC_MESSAGES/util-linux.mo
-#usr/share/locale/zh_CN/LC_MESSAGES/util-linux.mo
-#usr/share/locale/zh_TW/LC_MESSAGES/util-linux.mo
 #usr/share/man/man1/cal.1
 #usr/share/man/man1/chrt.1
 #usr/share/man/man1/col.1
@@ -237,6 +225,8 @@ usr/share/bash-completion
 #usr/share/man/man1/logger.1
 #usr/share/man/man1/look.1
 #usr/share/man/man1/lscpu.1
+#usr/share/man/man1/lsipc.1
+#usr/share/man/man1/lslogins.1
 #usr/share/man/man1/mcookie.1
 #usr/share/man/man1/more.1
 #usr/share/man/man1/namei.1
@@ -257,6 +247,7 @@ usr/share/bash-completion
 #usr/share/man/man1/whereis.1
 #usr/share/man/man3/uuid_generate_time_safe.3
 #usr/share/man/man5/fstab.5
+#usr/share/man/man5/terminal-colors.d.5
 #usr/share/man/man8/addpart.8
 #usr/share/man/man8/agetty.8
 #usr/share/man/man8/blkdiscard.8
@@ -264,7 +255,6 @@ usr/share/bash-completion
 #usr/share/man/man8/cfdisk.8
 #usr/share/man/man8/chcpu.8
 #usr/share/man/man8/ctrlaltdel.8
-#usr/share/man/man8/cytune.8
 #usr/share/man/man8/delpart.8
 #usr/share/man/man8/fdformat.8
 #usr/share/man/man8/fdisk.8
@@ -282,13 +272,13 @@ usr/share/bash-completion
 #usr/share/man/man8/losetup.8
 #usr/share/man/man8/lsblk.8
 #usr/share/man/man8/lslocks.8
+#usr/share/man/man8/lsns.8
 #usr/share/man/man8/mkfs.8
 #usr/share/man/man8/mkfs.bfs.8
 #usr/share/man/man8/mkfs.cramfs.8
 #usr/share/man/man8/mkfs.minix.8
 #usr/share/man/man8/mkswap.8
 #usr/share/man/man8/mount.8
-#usr/share/man/man8/nologin.8
 #usr/share/man/man8/partx.8
 #usr/share/man/man8/pivot_root.8
 #usr/share/man/man8/raw.8
@@ -302,5 +292,8 @@ usr/share/bash-completion
 #usr/share/man/man8/swapon.8
 #usr/share/man/man8/switch_root.8
 #usr/share/man/man8/umount.8
+#usr/share/man/man8/uname26.8
 #usr/share/man/man8/wdctl.8
 #usr/share/man/man8/wipefs.8
+#usr/share/man/man8/x86_64.8
+#usr/share/man/man8/zramctl.8
diff --git a/config/rootfiles/common/lcms2 b/config/rootfiles/common/lcms2
new file mode 100644 (file)
index 0000000..2ea5915
--- /dev/null
@@ -0,0 +1,15 @@
+#usr/bin/jpgicc
+#usr/bin/linkicc
+#usr/bin/psicc
+#usr/bin/tificc
+#usr/bin/transicc
+#usr/include/lcms2.h
+#usr/include/lcms2_plugin.h
+#usr/lib/liblcms2.a
+#usr/lib/liblcms2.la
+#usr/lib/liblcms2.so
+usr/lib/liblcms2.so.2
+usr/lib/liblcms2.so.2.0.8
+#usr/lib/pkgconfig/lcms2.pc
+#usr/share/man/man1/jpgicc.1
+#usr/share/man/man1/tificc.1
index 80daa2d5b2afc95cb6749221642061b4435feba6..c190eef7b496768ab4a7a2275f55361796738884 100644 (file)
@@ -1,15 +1,15 @@
-#usr/bin/bsdcpio
 #usr/bin/bsdcat
+#usr/bin/bsdcpio
 #usr/bin/bsdtar
 #usr/include/archive.h
 #usr/include/archive_entry.h
 #usr/lib/libarchive.la
 #usr/lib/libarchive.so
 #usr/lib/libarchive.so.13
-#usr/lib/libarchive.so.13.2.1
+#usr/lib/libarchive.so.13.3.1
 #usr/lib/pkgconfig/libarchive.pc
-#usr/share/man/man1/bsdcpio.1
 #usr/share/man/man1/bsdcat.1
+#usr/share/man/man1/bsdcpio.1
 #usr/share/man/man1/bsdtar.1
 #usr/share/man/man3/archive_entry.3
 #usr/share/man/man3/archive_entry_acl.3
index aab354ebee540dcd3a894e600cdb792d889d4680..d5c60c23329d3d74dc03a7f572f6a27fbe52643b 100644 (file)
 #usr/include/event2/tag_compat.h
 #usr/include/event2/thread.h
 #usr/include/event2/util.h
-usr/lib/libevent-2.0.so.5
-usr/lib/libevent-2.0.so.5.1.9
-usr/lib/libevent_core-2.0.so.5
-usr/lib/libevent_core-2.0.so.5.1.9
-usr/lib/libevent_extra-2.0.so.5
-usr/lib/libevent_extra-2.0.so.5.1.9
-usr/lib/libevent_openssl-2.0.so.5
-usr/lib/libevent_openssl-2.0.so.5.1.9
-#usr/lib/libevent_openssl.a
+#usr/include/event2/visibility.h
+usr/lib/libevent-2.1.so.6
+usr/lib/libevent-2.1.so.6.0.2
+usr/lib/libevent_core-2.1.so.6
+usr/lib/libevent_core-2.1.so.6.0.2
+usr/lib/libevent_extra-2.1.so.6
+usr/lib/libevent_extra-2.1.so.6.0.2
+usr/lib/libevent_openssl-2.1.so.6
+usr/lib/libevent_openssl-2.1.so.6.0.2
 #usr/lib/libevent_openssl.la
 usr/lib/libevent_openssl.so
-usr/lib/libevent_pthreads-2.0.so.5
-usr/lib/libevent_pthreads-2.0.so.5.1.9
-#usr/lib/libevent_pthreads.a
+usr/lib/libevent_pthreads-2.1.so.6
+usr/lib/libevent_pthreads-2.1.so.6.0.2
 #usr/lib/libevent_pthreads.la
 usr/lib/libevent_pthreads.so
 #usr/lib/pkgconfig/libevent.pc
+#usr/lib/pkgconfig/libevent_core.pc
+#usr/lib/pkgconfig/libevent_extra.pc
 #usr/lib/pkgconfig/libevent_openssl.pc
 #usr/lib/pkgconfig/libevent_pthreads.pc
diff --git a/config/rootfiles/common/libevent2-compat b/config/rootfiles/common/libevent2-compat
new file mode 100644 (file)
index 0000000..edeb449
--- /dev/null
@@ -0,0 +1,10 @@
+usr/lib/libevent-2.0.so.5
+usr/lib/libevent-2.0.so.5.1.9
+usr/lib/libevent_core-2.0.so.5
+usr/lib/libevent_core-2.0.so.5.1.9
+usr/lib/libevent_extra-2.0.so.5
+usr/lib/libevent_extra-2.0.so.5.1.9
+usr/lib/libevent_openssl-2.0.so.5
+usr/lib/libevent_openssl-2.0.so.5.1.9
+usr/lib/libevent_pthreads-2.0.so.5
+usr/lib/libevent_pthreads-2.0.so.5.1.9
index 470634341648204bef689fc49877cf20cf659461..725593f8b812df9ac874631bbeb36414ddbb49ba 100644 (file)
@@ -6,7 +6,7 @@
 #usr/lib/libgcrypt.la
 #usr/lib/libgcrypt.so
 usr/lib/libgcrypt.so.20
-usr/lib/libgcrypt.so.20.1.3
+usr/lib/libgcrypt.so.20.1.7
 #usr/share/aclocal/libgcrypt.m4
 #usr/share/info/gcrypt.info
 #usr/share/man/man1/hmac256.1
index 92ac1f3f94ee87afabbb05aaad5b6ff099854d35..6945f3495add52a29a4973962f5638e1eeacd451 100644 (file)
@@ -1,10 +1,11 @@
 usr/bin/gpg-error
 #usr/bin/gpg-error-config
 #usr/include/gpg-error.h
+#usr/include/gpgrt.h
 #usr/lib/libgpg-error.la
 #usr/lib/libgpg-error.so
 usr/lib/libgpg-error.so.0
-usr/lib/libgpg-error.so.0.19.1
+usr/lib/libgpg-error.so.0.22.0
 #usr/share/aclocal/gpg-error.m4
 #usr/share/common-lisp
 #usr/share/common-lisp/source
@@ -14,6 +15,8 @@ usr/lib/libgpg-error.so.0.19.1
 #usr/share/common-lisp/source/gpg-error/gpg-error.asd
 #usr/share/common-lisp/source/gpg-error/gpg-error.lisp
 #usr/share/info/gpgrt.info
+#usr/share/libgpg-error
+#usr/share/libgpg-error/errorref.txt
 #usr/share/locale/cs/LC_MESSAGES/libgpg-error.mo
 #usr/share/locale/da/LC_MESSAGES/libgpg-error.mo
 #usr/share/locale/de/LC_MESSAGES/libgpg-error.mo
index 71ec1e48c881a30a459b8eddc0b8858bbaa4d255..878dd4dcf0127706dfee5b87cf80a4e25f013208 100644 (file)
@@ -56,7 +56,7 @@
 #usr/lib/libxml2.la
 usr/lib/libxml2.so
 usr/lib/libxml2.so.2
-usr/lib/libxml2.so.2.9.3
+usr/lib/libxml2.so.2.9.4
 #usr/lib/pkgconfig/libxml-2.0.pc
 usr/lib/python2.7/site-packages/drv_libxml2.py
 usr/lib/python2.7/site-packages/libxml2.py
@@ -64,220 +64,222 @@ usr/lib/python2.7/site-packages/libxml2.py
 usr/lib/python2.7/site-packages/libxml2mod.so
 #usr/lib/xml2Conf.sh
 #usr/share/aclocal/libxml.m4
-#usr/share/doc/libxml2-2.9.3
-#usr/share/doc/libxml2-2.9.3/Copyright
-#usr/share/doc/libxml2-2.9.3/examples
-#usr/share/doc/libxml2-2.9.3/examples/testHTML.c
-#usr/share/doc/libxml2-2.9.3/examples/testSAX.c
-#usr/share/doc/libxml2-2.9.3/examples/testXPath.c
-#usr/share/doc/libxml2-2.9.3/examples/xmllint.c
-#usr/share/doc/libxml2-2.9.3/html
-#usr/share/doc/libxml2-2.9.3/html/DOM.gif
-#usr/share/doc/libxml2-2.9.3/html/FAQ.html
-#usr/share/doc/libxml2-2.9.3/html/Libxml2-Logo-180x168.gif
-#usr/share/doc/libxml2-2.9.3/html/Libxml2-Logo-90x34.gif
-#usr/share/doc/libxml2-2.9.3/html/encoding.html
-#usr/share/doc/libxml2-2.9.3/html/examples.xml
-#usr/share/doc/libxml2-2.9.3/html/examples.xsl
-#usr/share/doc/libxml2-2.9.3/html/html
-#usr/share/doc/libxml2-2.9.3/html/html/book1.html
-#usr/share/doc/libxml2-2.9.3/html/html/home.png
-#usr/share/doc/libxml2-2.9.3/html/html/index.html
-#usr/share/doc/libxml2-2.9.3/html/html/left.png
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-DOCBparser.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-HTMLparser.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-HTMLtree.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-SAX.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-SAX2.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-c14n.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-catalog.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-chvalid.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-debugXML.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-dict.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-encoding.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-entities.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-globals.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-hash.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-lib.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-list.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-nanoftp.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-nanohttp.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-parser.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-parserInternals.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-pattern.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-relaxng.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-schemasInternals.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-schematron.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-threads.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-tree.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-uri.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-valid.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xinclude.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xlink.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlIO.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlautomata.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlerror.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlexports.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlmemory.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlmodule.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlreader.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlregexp.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlsave.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlschemas.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlschemastypes.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlstring.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlunicode.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlversion.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xmlwriter.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xpath.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xpathInternals.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xpointer.html
-#usr/share/doc/libxml2-2.9.3/html/html/libxml-xzlib.html
-#usr/share/doc/libxml2-2.9.3/html/html/right.png
-#usr/share/doc/libxml2-2.9.3/html/html/up.png
-#usr/share/doc/libxml2-2.9.3/html/index.html
-#usr/share/doc/libxml2-2.9.3/html/io1.c
-#usr/share/doc/libxml2-2.9.3/html/io1.res
-#usr/share/doc/libxml2-2.9.3/html/io2.c
-#usr/share/doc/libxml2-2.9.3/html/io2.res
-#usr/share/doc/libxml2-2.9.3/html/libxml.gif
-#usr/share/doc/libxml2-2.9.3/html/parse1.c
-#usr/share/doc/libxml2-2.9.3/html/parse2.c
-#usr/share/doc/libxml2-2.9.3/html/parse3.c
-#usr/share/doc/libxml2-2.9.3/html/parse4.c
-#usr/share/doc/libxml2-2.9.3/html/reader1.c
-#usr/share/doc/libxml2-2.9.3/html/reader1.res
-#usr/share/doc/libxml2-2.9.3/html/reader2.c
-#usr/share/doc/libxml2-2.9.3/html/reader3.c
-#usr/share/doc/libxml2-2.9.3/html/reader3.res
-#usr/share/doc/libxml2-2.9.3/html/reader4.c
-#usr/share/doc/libxml2-2.9.3/html/reader4.res
-#usr/share/doc/libxml2-2.9.3/html/redhat.gif
-#usr/share/doc/libxml2-2.9.3/html/smallfootonly.gif
-#usr/share/doc/libxml2-2.9.3/html/structure.gif
-#usr/share/doc/libxml2-2.9.3/html/test1.xml
-#usr/share/doc/libxml2-2.9.3/html/test2.xml
-#usr/share/doc/libxml2-2.9.3/html/test3.xml
-#usr/share/doc/libxml2-2.9.3/html/testWriter.c
-#usr/share/doc/libxml2-2.9.3/html/tree1.c
-#usr/share/doc/libxml2-2.9.3/html/tree1.res
-#usr/share/doc/libxml2-2.9.3/html/tree2.c
-#usr/share/doc/libxml2-2.9.3/html/tree2.res
-#usr/share/doc/libxml2-2.9.3/html/tst.xml
-#usr/share/doc/libxml2-2.9.3/html/tutorial
-#usr/share/doc/libxml2-2.9.3/html/tutorial/apa.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/apb.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/apc.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/apd.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/ape.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/apf.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/apg.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/aph.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/api.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/ar01s02.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/ar01s03.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/ar01s04.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/ar01s05.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/ar01s06.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/ar01s07.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/ar01s08.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/ar01s09.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/blank.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts/1.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts/10.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts/2.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts/3.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts/4.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts/5.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts/6.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts/7.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts/8.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/callouts/9.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/caution.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/draft.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/home.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/important.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/next.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/note.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/prev.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/tip.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/toc-blank.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/toc-minus.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/toc-plus.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/up.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/images/warning.png
-#usr/share/doc/libxml2-2.9.3/html/tutorial/includeaddattribute.c
-#usr/share/doc/libxml2-2.9.3/html/tutorial/includeaddkeyword.c
-#usr/share/doc/libxml2-2.9.3/html/tutorial/includeconvert.c
-#usr/share/doc/libxml2-2.9.3/html/tutorial/includegetattribute.c
-#usr/share/doc/libxml2-2.9.3/html/tutorial/includekeyword.c
-#usr/share/doc/libxml2-2.9.3/html/tutorial/includexpath.c
-#usr/share/doc/libxml2-2.9.3/html/tutorial/index.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/ix01.html
-#usr/share/doc/libxml2-2.9.3/html/tutorial/xmltutorial.pdf
-#usr/share/doc/libxml2-2.9.3/html/w3c.png
-#usr/share/doc/libxml2-2.9.3/html/writer.xml
-#usr/share/doc/libxml2-2.9.3/html/xml.html
-#usr/share/doc/libxml2-2.9.3/html/xpath1.c
-#usr/share/doc/libxml2-2.9.3/html/xpath1.res
-#usr/share/doc/libxml2-2.9.3/html/xpath2.c
-#usr/share/doc/libxml2-2.9.3/html/xpath2.res
-#usr/share/doc/libxml2-python-2.9.3
-#usr/share/doc/libxml2-python-2.9.3/TODO
-#usr/share/doc/libxml2-python-2.9.3/examples
-#usr/share/doc/libxml2-python-2.9.3/examples/attribs.py
-#usr/share/doc/libxml2-python-2.9.3/examples/build.py
-#usr/share/doc/libxml2-python-2.9.3/examples/compareNodes.py
-#usr/share/doc/libxml2-python-2.9.3/examples/ctxterror.py
-#usr/share/doc/libxml2-python-2.9.3/examples/cutnpaste.py
-#usr/share/doc/libxml2-python-2.9.3/examples/dtdvalid.py
-#usr/share/doc/libxml2-python-2.9.3/examples/error.py
-#usr/share/doc/libxml2-python-2.9.3/examples/inbuf.py
-#usr/share/doc/libxml2-python-2.9.3/examples/indexes.py
-#usr/share/doc/libxml2-python-2.9.3/examples/input_callback.py
-#usr/share/doc/libxml2-python-2.9.3/examples/invalid.xml
-#usr/share/doc/libxml2-python-2.9.3/examples/nsdel.py
-#usr/share/doc/libxml2-python-2.9.3/examples/outbuf.py
-#usr/share/doc/libxml2-python-2.9.3/examples/push.py
-#usr/share/doc/libxml2-python-2.9.3/examples/pushSAX.py
-#usr/share/doc/libxml2-python-2.9.3/examples/pushSAXhtml.py
-#usr/share/doc/libxml2-python-2.9.3/examples/reader.py
-#usr/share/doc/libxml2-python-2.9.3/examples/reader2.py
-#usr/share/doc/libxml2-python-2.9.3/examples/reader3.py
-#usr/share/doc/libxml2-python-2.9.3/examples/reader4.py
-#usr/share/doc/libxml2-python-2.9.3/examples/reader5.py
-#usr/share/doc/libxml2-python-2.9.3/examples/reader6.py
-#usr/share/doc/libxml2-python-2.9.3/examples/reader7.py
-#usr/share/doc/libxml2-python-2.9.3/examples/reader8.py
-#usr/share/doc/libxml2-python-2.9.3/examples/readererr.py
-#usr/share/doc/libxml2-python-2.9.3/examples/readernext.py
-#usr/share/doc/libxml2-python-2.9.3/examples/regexp.py
-#usr/share/doc/libxml2-python-2.9.3/examples/relaxng.py
-#usr/share/doc/libxml2-python-2.9.3/examples/resolver.py
-#usr/share/doc/libxml2-python-2.9.3/examples/schema.py
-#usr/share/doc/libxml2-python-2.9.3/examples/serialize.py
-#usr/share/doc/libxml2-python-2.9.3/examples/sync.py
-#usr/share/doc/libxml2-python-2.9.3/examples/test.dtd
-#usr/share/doc/libxml2-python-2.9.3/examples/thread2.py
-#usr/share/doc/libxml2-python-2.9.3/examples/tst.py
-#usr/share/doc/libxml2-python-2.9.3/examples/tst.xml
-#usr/share/doc/libxml2-python-2.9.3/examples/tstLastError.py
-#usr/share/doc/libxml2-python-2.9.3/examples/tstURI.py
-#usr/share/doc/libxml2-python-2.9.3/examples/tstmem.py
-#usr/share/doc/libxml2-python-2.9.3/examples/tstxpath.py
-#usr/share/doc/libxml2-python-2.9.3/examples/valid.xml
-#usr/share/doc/libxml2-python-2.9.3/examples/validDTD.py
-#usr/share/doc/libxml2-python-2.9.3/examples/validRNG.py
-#usr/share/doc/libxml2-python-2.9.3/examples/validSchemas.py
-#usr/share/doc/libxml2-python-2.9.3/examples/validate.py
-#usr/share/doc/libxml2-python-2.9.3/examples/walker.py
-#usr/share/doc/libxml2-python-2.9.3/examples/xpath.py
-#usr/share/doc/libxml2-python-2.9.3/examples/xpathext.py
-#usr/share/doc/libxml2-python-2.9.3/examples/xpathleak.py
-#usr/share/doc/libxml2-python-2.9.3/examples/xpathns.py
-#usr/share/doc/libxml2-python-2.9.3/examples/xpathret.py
+#usr/share/doc/libxml2-2.9.4
+#usr/share/doc/libxml2-2.9.4/Copyright
+#usr/share/doc/libxml2-2.9.4/examples
+#usr/share/doc/libxml2-2.9.4/examples/testHTML.c
+#usr/share/doc/libxml2-2.9.4/examples/testSAX.c
+#usr/share/doc/libxml2-2.9.4/examples/testXPath.c
+#usr/share/doc/libxml2-2.9.4/examples/xmllint.c
+#usr/share/doc/libxml2-2.9.4/html
+#usr/share/doc/libxml2-2.9.4/html/DOM.gif
+#usr/share/doc/libxml2-2.9.4/html/FAQ.html
+#usr/share/doc/libxml2-2.9.4/html/Libxml2-Logo-180x168.gif
+#usr/share/doc/libxml2-2.9.4/html/Libxml2-Logo-90x34.gif
+#usr/share/doc/libxml2-2.9.4/html/encoding.html
+#usr/share/doc/libxml2-2.9.4/html/examples.xml
+#usr/share/doc/libxml2-2.9.4/html/examples.xsl
+#usr/share/doc/libxml2-2.9.4/html/html
+#usr/share/doc/libxml2-2.9.4/html/html/book1.html
+#usr/share/doc/libxml2-2.9.4/html/html/home.png
+#usr/share/doc/libxml2-2.9.4/html/html/index.html
+#usr/share/doc/libxml2-2.9.4/html/html/left.png
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-DOCBparser.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-HTMLparser.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-HTMLtree.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-SAX.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-SAX2.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-c14n.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-catalog.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-chvalid.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-debugXML.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-dict.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-encoding.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-entities.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-globals.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-hash.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-lib.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-list.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-nanoftp.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-nanohttp.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-parser.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-parserInternals.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-pattern.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-relaxng.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-schemasInternals.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-schematron.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-threads.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-tree.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-uri.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-valid.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xinclude.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xlink.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlIO.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlautomata.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlerror.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlexports.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlmemory.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlmodule.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlreader.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlregexp.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlsave.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlschemas.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlschemastypes.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlstring.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlunicode.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlversion.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xmlwriter.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xpath.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xpathInternals.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xpointer.html
+#usr/share/doc/libxml2-2.9.4/html/html/libxml-xzlib.html
+#usr/share/doc/libxml2-2.9.4/html/html/right.png
+#usr/share/doc/libxml2-2.9.4/html/html/up.png
+#usr/share/doc/libxml2-2.9.4/html/index.html
+#usr/share/doc/libxml2-2.9.4/html/io1.c
+#usr/share/doc/libxml2-2.9.4/html/io1.res
+#usr/share/doc/libxml2-2.9.4/html/io2.c
+#usr/share/doc/libxml2-2.9.4/html/io2.res
+#usr/share/doc/libxml2-2.9.4/html/libxml.gif
+#usr/share/doc/libxml2-2.9.4/html/parse1.c
+#usr/share/doc/libxml2-2.9.4/html/parse2.c
+#usr/share/doc/libxml2-2.9.4/html/parse3.c
+#usr/share/doc/libxml2-2.9.4/html/parse4.c
+#usr/share/doc/libxml2-2.9.4/html/reader1.c
+#usr/share/doc/libxml2-2.9.4/html/reader1.res
+#usr/share/doc/libxml2-2.9.4/html/reader2.c
+#usr/share/doc/libxml2-2.9.4/html/reader3.c
+#usr/share/doc/libxml2-2.9.4/html/reader3.res
+#usr/share/doc/libxml2-2.9.4/html/reader4.c
+#usr/share/doc/libxml2-2.9.4/html/reader4.res
+#usr/share/doc/libxml2-2.9.4/html/redhat.gif
+#usr/share/doc/libxml2-2.9.4/html/smallfootonly.gif
+#usr/share/doc/libxml2-2.9.4/html/structure.gif
+#usr/share/doc/libxml2-2.9.4/html/test1.xml
+#usr/share/doc/libxml2-2.9.4/html/test2.xml
+#usr/share/doc/libxml2-2.9.4/html/test3.xml
+#usr/share/doc/libxml2-2.9.4/html/testWriter.c
+#usr/share/doc/libxml2-2.9.4/html/tree1.c
+#usr/share/doc/libxml2-2.9.4/html/tree1.res
+#usr/share/doc/libxml2-2.9.4/html/tree2.c
+#usr/share/doc/libxml2-2.9.4/html/tree2.res
+#usr/share/doc/libxml2-2.9.4/html/tst.xml
+#usr/share/doc/libxml2-2.9.4/html/tutorial
+#usr/share/doc/libxml2-2.9.4/html/tutorial/apa.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/apb.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/apc.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/apd.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/ape.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/apf.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/apg.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/aph.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/api.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/ar01s02.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/ar01s03.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/ar01s04.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/ar01s05.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/ar01s06.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/ar01s07.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/ar01s08.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/ar01s09.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/blank.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts/1.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts/10.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts/2.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts/3.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts/4.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts/5.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts/6.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts/7.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts/8.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/callouts/9.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/caution.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/draft.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/home.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/important.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/next.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/note.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/prev.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/tip.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/toc-blank.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/toc-minus.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/toc-plus.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/up.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/images/warning.png
+#usr/share/doc/libxml2-2.9.4/html/tutorial/includeaddattribute.c
+#usr/share/doc/libxml2-2.9.4/html/tutorial/includeaddkeyword.c
+#usr/share/doc/libxml2-2.9.4/html/tutorial/includeconvert.c
+#usr/share/doc/libxml2-2.9.4/html/tutorial/includegetattribute.c
+#usr/share/doc/libxml2-2.9.4/html/tutorial/includekeyword.c
+#usr/share/doc/libxml2-2.9.4/html/tutorial/includexpath.c
+#usr/share/doc/libxml2-2.9.4/html/tutorial/index.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/ix01.html
+#usr/share/doc/libxml2-2.9.4/html/tutorial/xmltutorial.pdf
+#usr/share/doc/libxml2-2.9.4/html/w3c.png
+#usr/share/doc/libxml2-2.9.4/html/writer.xml
+#usr/share/doc/libxml2-2.9.4/html/xml.html
+#usr/share/doc/libxml2-2.9.4/html/xpath1.c
+#usr/share/doc/libxml2-2.9.4/html/xpath1.res
+#usr/share/doc/libxml2-2.9.4/html/xpath2.c
+#usr/share/doc/libxml2-2.9.4/html/xpath2.res
+#usr/share/doc/libxml2-python-2.9.4
+#usr/share/doc/libxml2-python-2.9.4/TODO
+#usr/share/doc/libxml2-python-2.9.4/examples
+#usr/share/doc/libxml2-python-2.9.4/examples/attribs.py
+#usr/share/doc/libxml2-python-2.9.4/examples/build.py
+#usr/share/doc/libxml2-python-2.9.4/examples/compareNodes.py
+#usr/share/doc/libxml2-python-2.9.4/examples/ctxterror.py
+#usr/share/doc/libxml2-python-2.9.4/examples/cutnpaste.py
+#usr/share/doc/libxml2-python-2.9.4/examples/dtdvalid.py
+#usr/share/doc/libxml2-python-2.9.4/examples/error.py
+#usr/share/doc/libxml2-python-2.9.4/examples/inbuf.py
+#usr/share/doc/libxml2-python-2.9.4/examples/indexes.py
+#usr/share/doc/libxml2-python-2.9.4/examples/input_callback.py
+#usr/share/doc/libxml2-python-2.9.4/examples/invalid.xml
+#usr/share/doc/libxml2-python-2.9.4/examples/nsdel.py
+#usr/share/doc/libxml2-python-2.9.4/examples/outbuf.py
+#usr/share/doc/libxml2-python-2.9.4/examples/push.py
+#usr/share/doc/libxml2-python-2.9.4/examples/pushSAX.py
+#usr/share/doc/libxml2-python-2.9.4/examples/pushSAXhtml.py
+#usr/share/doc/libxml2-python-2.9.4/examples/reader.py
+#usr/share/doc/libxml2-python-2.9.4/examples/reader2.py
+#usr/share/doc/libxml2-python-2.9.4/examples/reader3.py
+#usr/share/doc/libxml2-python-2.9.4/examples/reader4.py
+#usr/share/doc/libxml2-python-2.9.4/examples/reader5.py
+#usr/share/doc/libxml2-python-2.9.4/examples/reader6.py
+#usr/share/doc/libxml2-python-2.9.4/examples/reader7.py
+#usr/share/doc/libxml2-python-2.9.4/examples/reader8.py
+#usr/share/doc/libxml2-python-2.9.4/examples/readererr.py
+#usr/share/doc/libxml2-python-2.9.4/examples/readernext.py
+#usr/share/doc/libxml2-python-2.9.4/examples/regexp.py
+#usr/share/doc/libxml2-python-2.9.4/examples/relaxng.py
+#usr/share/doc/libxml2-python-2.9.4/examples/resolver.py
+#usr/share/doc/libxml2-python-2.9.4/examples/schema.py
+#usr/share/doc/libxml2-python-2.9.4/examples/serialize.py
+#usr/share/doc/libxml2-python-2.9.4/examples/sync.py
+#usr/share/doc/libxml2-python-2.9.4/examples/test.dtd
+#usr/share/doc/libxml2-python-2.9.4/examples/thread2.py
+#usr/share/doc/libxml2-python-2.9.4/examples/tst.py
+#usr/share/doc/libxml2-python-2.9.4/examples/tst.xml
+#usr/share/doc/libxml2-python-2.9.4/examples/tstLastError.py
+#usr/share/doc/libxml2-python-2.9.4/examples/tstURI.py
+#usr/share/doc/libxml2-python-2.9.4/examples/tstmem.py
+#usr/share/doc/libxml2-python-2.9.4/examples/tstxpath.py
+#usr/share/doc/libxml2-python-2.9.4/examples/valid.xml
+#usr/share/doc/libxml2-python-2.9.4/examples/validDTD.py
+#usr/share/doc/libxml2-python-2.9.4/examples/validRNG.py
+#usr/share/doc/libxml2-python-2.9.4/examples/validSchemas.py
+#usr/share/doc/libxml2-python-2.9.4/examples/validate.py
+#usr/share/doc/libxml2-python-2.9.4/examples/walker.py
+#usr/share/doc/libxml2-python-2.9.4/examples/xpath.py
+#usr/share/doc/libxml2-python-2.9.4/examples/xpathext.py
+#usr/share/doc/libxml2-python-2.9.4/examples/xpathleak.py
+#usr/share/doc/libxml2-python-2.9.4/examples/xpathns.py
+#usr/share/doc/libxml2-python-2.9.4/examples/xpathret.py
+#usr/share/gtk-doc
+#usr/share/gtk-doc/html
 #usr/share/gtk-doc/html/libxml2
 #usr/share/gtk-doc/html/libxml2/general.html
 #usr/share/gtk-doc/html/libxml2/home.png
index 8ef728c94a1000f35e15d2bd3939d657e2a0a644..0583525ea0ccb0698c0572d1c1ab281de22bbf5c 100644 (file)
@@ -1,6 +1,6 @@
 #etc/logrotate.d
 etc/logrotate.d/.empty
-#usr/man/man5/logrotate.conf.5
-#usr/man/man8/logrotate.8
 usr/sbin/logrotate
+#usr/share/man/man5/logrotate.conf.5
+#usr/share/man/man8/logrotate.8
 var/lib/logrotate.status
index 998ab8ae2a2d670ea0524eaa596f7a107a2e4aab..fe67a8c8463aa3420d1b8a05915435bd1a83ed10 100644 (file)
@@ -1,11 +1,6 @@
 #etc/logwatch
 etc/logwatch/conf
 #etc/logwatch/logwatch.cron
-#etc/logwatch/conf/ignore.conf
-#etc/logwatch/conf/logfiles
-#etc/logwatch/conf/logwatch.conf
-#etc/logwatch/conf/override.conf
-#etc/logwatch/conf/services
 etc/logwatch/scripts
 etc/logwatch/scripts/services
 usr/sbin/logwatch
@@ -72,7 +67,7 @@ usr/share/logwatch/default.conf/logfiles/xferlog.conf
 #usr/share/logwatch/default.conf/logfiles/yum.conf
 #usr/share/logwatch/default.conf/logfiles/zypp.conf
 usr/share/logwatch/default.conf/logwatch.conf
-usr/share/logwatch/default.conf/services
+#usr/share/logwatch/default.conf/services
 #usr/share/logwatch/default.conf/services/afpd.conf
 usr/share/logwatch/default.conf/services/amavis.conf
 #usr/share/logwatch/default.conf/services/arpwatch.conf
@@ -99,7 +94,7 @@ usr/share/logwatch/default.conf/services/dhcpd.conf
 #usr/share/logwatch/default.conf/services/evtsecurity.conf
 #usr/share/logwatch/default.conf/services/evtsystem.conf
 #usr/share/logwatch/default.conf/services/exim.conf
-#usr/share/logwatch/default.conf/services/eximstats.conf
+usr/share/logwatch/default.conf/services/eximstats.conf
 #usr/share/logwatch/default.conf/services/extreme-networks.conf
 #usr/share/logwatch/default.conf/services/fail2ban.conf
 #usr/share/logwatch/default.conf/services/fetchmail.conf
@@ -166,10 +161,12 @@ usr/share/logwatch/default.conf/services/scsi.conf
 #usr/share/logwatch/default.conf/services/spamassassin.conf
 usr/share/logwatch/default.conf/services/sshd.conf
 usr/share/logwatch/default.conf/services/sshd2.conf
+#usr/share/logwatch/default.conf/services/sssd.conf
 #usr/share/logwatch/default.conf/services/stunnel.conf
 usr/share/logwatch/default.conf/services/sudo.conf
 #usr/share/logwatch/default.conf/services/syslog-ng.conf
 usr/share/logwatch/default.conf/services/syslogd.conf
+#usr/share/logwatch/default.conf/services/systemd.conf
 #usr/share/logwatch/default.conf/services/tac_acc.conf
 #usr/share/logwatch/default.conf/services/tivoli-smc.conf
 #usr/share/logwatch/default.conf/services/up2date.conf
@@ -182,10 +179,10 @@ usr/share/logwatch/default.conf/services/windows.conf
 #usr/share/logwatch/default.conf/services/zypp.conf
 usr/share/logwatch/default.conf/services/zz-disk_space.conf
 #usr/share/logwatch/default.conf/services/zz-fortune.conf
-#usr/share/logwatch/default.conf/services/zz-lm_sensors.conf
+usr/share/logwatch/default.conf/services/zz-lm_sensors.conf
 usr/share/logwatch/default.conf/services/zz-network.conf
 usr/share/logwatch/default.conf/services/zz-runtime.conf
-#usr/share/logwatch/default.conf/services/zz-sys.conf
+usr/share/logwatch/default.conf/services/zz-sys.conf
 #usr/share/logwatch/default.conf/services/zz-zfs.conf
 #usr/share/logwatch/dist.conf
 usr/share/logwatch/dist.conf/logfiles
@@ -213,7 +210,7 @@ usr/share/logwatch/scripts/logfiles/xferlog/removeheaders
 #usr/share/logwatch/scripts/logfiles/yum
 #usr/share/logwatch/scripts/logfiles/yum/applydate
 usr/share/logwatch/scripts/logwatch.pl
-usr/share/logwatch/scripts/services
+#usr/share/logwatch/scripts/services
 #usr/share/logwatch/scripts/services/afpd
 usr/share/logwatch/scripts/services/amavis
 #usr/share/logwatch/scripts/services/arpwatch
@@ -241,7 +238,7 @@ usr/share/logwatch/scripts/services/dialup
 #usr/share/logwatch/scripts/services/evtsecurity
 #usr/share/logwatch/scripts/services/evtsystem
 #usr/share/logwatch/scripts/services/exim
-#usr/share/logwatch/scripts/services/eximstats
+usr/share/logwatch/scripts/services/eximstats
 #usr/share/logwatch/scripts/services/extreme-networks
 #usr/share/logwatch/scripts/services/fail2ban
 #usr/share/logwatch/scripts/services/fetchmail
@@ -292,7 +289,7 @@ usr/share/logwatch/scripts/services/postfix
 #usr/share/logwatch/scripts/services/qmail-send
 #usr/share/logwatch/scripts/services/qmail-smtpd
 #usr/share/logwatch/scripts/services/raid
-#usr/share/logwatch/scripts/services/resolver
+usr/share/logwatch/scripts/services/resolver
 #usr/share/logwatch/scripts/services/rsyslogd
 #usr/share/logwatch/scripts/services/rt314
 usr/share/logwatch/scripts/services/samba
@@ -308,10 +305,12 @@ usr/share/logwatch/scripts/services/scsi
 #usr/share/logwatch/scripts/services/spamassassin
 usr/share/logwatch/scripts/services/sshd
 usr/share/logwatch/scripts/services/sshd2
+#usr/share/logwatch/scripts/services/sssd
 #usr/share/logwatch/scripts/services/stunnel
 usr/share/logwatch/scripts/services/sudo
 #usr/share/logwatch/scripts/services/syslog-ng
 usr/share/logwatch/scripts/services/syslogd
+#usr/share/logwatch/scripts/services/systemd
 #usr/share/logwatch/scripts/services/tac_acc
 #usr/share/logwatch/scripts/services/tivoli-smc
 #usr/share/logwatch/scripts/services/up2date
@@ -324,10 +323,10 @@ usr/share/logwatch/scripts/services/windows
 #usr/share/logwatch/scripts/services/zypp
 usr/share/logwatch/scripts/services/zz-disk_space
 #usr/share/logwatch/scripts/services/zz-fortune
-#usr/share/logwatch/scripts/services/zz-lm_sensors
+usr/share/logwatch/scripts/services/zz-lm_sensors
 usr/share/logwatch/scripts/services/zz-network
 usr/share/logwatch/scripts/services/zz-runtime
-#usr/share/logwatch/scripts/services/zz-sys
+usr/share/logwatch/scripts/services/zz-sys
 #usr/share/logwatch/scripts/services/zz-zfs
 #usr/share/logwatch/scripts/shared
 usr/share/logwatch/scripts/shared/applybinddate
index 7cdd31f440515b945251178ce898cb2646ce68db..34c4dbe7817b293bbf14dbddc513141c0b50e222 100644 (file)
@@ -4,7 +4,7 @@
 #usr/lib/libmpfr.la
 #usr/lib/libmpfr.so
 usr/lib/libmpfr.so.4
-usr/lib/libmpfr.so.4.1.3
+usr/lib/libmpfr.so.4.1.5
 #usr/share/doc/mpfr
 #usr/share/doc/mpfr/AUTHORS
 #usr/share/doc/mpfr/BUGS
index 4f34e39dd4a3c34c55d9f6a77bd7cc41a1c26a55..0b7cff8b167d0d52eb02558d6e7950e66d03913f 100644 (file)
@@ -49,14 +49,9 @@ usr/lib/libncursesw.so.6.0
 usr/lib/libpanelw.so.6
 usr/lib/libpanelw.so.6.0
 #usr/lib/pkgconfig/form.pc
-#usr/lib/pkgconfig/formw.pc
 #usr/lib/pkgconfig/menu.pc
-#usr/lib/pkgconfig/menuw.pc
-#usr/lib/pkgconfig/ncurses++w.pc
 #usr/lib/pkgconfig/ncurses.pc
-#usr/lib/pkgconfig/ncursesw.pc
 #usr/lib/pkgconfig/panel.pc
-#usr/lib/pkgconfig/panelw.pc
 #usr/lib/terminfo
 #usr/share/man/man1/captoinfo.1m
 #usr/share/man/man1/clear.1
index 5d5777b18a282356d232633de14e9082e12d5ce9..3f23cb70ab6e4d1bb0881b3af7cc12c4d7817dd8 100644 (file)
@@ -39,6 +39,7 @@
 #usr/include/nettle/md4.h
 #usr/include/nettle/md5-compat.h
 #usr/include/nettle/md5.h
+#usr/include/nettle/memops.h
 #usr/include/nettle/memxor.h
 #usr/include/nettle/nettle-meta.h
 #usr/include/nettle/nettle-stdint.h
 #usr/include/nettle/yarrow.h
 usr/lib/libhogweed.so
 usr/lib/libhogweed.so.4
-usr/lib/libhogweed.so.4.2
+usr/lib/libhogweed.so.4.3
 #usr/lib/libnettle.so
 usr/lib/libnettle.so.6
-usr/lib/libnettle.so.6.2
+usr/lib/libnettle.so.6.3
 #usr/lib/pkgconfig/hogweed.pc
 #usr/lib/pkgconfig/nettle.pc
-usr/share/doc/nettle-3.2
-#usr/share/info/nettle.info
index 55fb9d721bf709f99b3a39daa2fa4dbc76db1270..c551c0dd3ce92eab33caab43557801e1975d3d37 100644 (file)
 #usr/lib/libpcre.la
 usr/lib/libpcre.so
 usr/lib/libpcre.so.1
-usr/lib/libpcre.so.1.2.7
+usr/lib/libpcre.so.1.2.8
 #usr/lib/libpcre16.la
 usr/lib/libpcre16.so
 usr/lib/libpcre16.so.0
-usr/lib/libpcre16.so.0.2.7
+usr/lib/libpcre16.so.0.2.8
 #usr/lib/libpcre32.la
 usr/lib/libpcre32.so
 usr/lib/libpcre32.so.0
-usr/lib/libpcre32.so.0.0.7
+usr/lib/libpcre32.so.0.0.8
 #usr/lib/libpcrecpp.la
 usr/lib/libpcrecpp.so
 usr/lib/libpcrecpp.so.0
@@ -32,72 +32,72 @@ usr/lib/libpcreposix.so.0.0.4
 #usr/lib/pkgconfig/libpcre32.pc
 #usr/lib/pkgconfig/libpcrecpp.pc
 #usr/lib/pkgconfig/libpcreposix.pc
-#usr/share/doc/pcre-pcre-8.39
-#usr/share/doc/pcre-pcre-8.39/AUTHORS
-#usr/share/doc/pcre-pcre-8.39/COPYING
-#usr/share/doc/pcre-pcre-8.39/ChangeLog
-#usr/share/doc/pcre-pcre-8.39/LICENCE
-#usr/share/doc/pcre-pcre-8.39/NEWS
-#usr/share/doc/pcre-pcre-8.39/README
-#usr/share/doc/pcre-pcre-8.39/html
-#usr/share/doc/pcre-pcre-8.39/html/NON-AUTOTOOLS-BUILD.txt
-#usr/share/doc/pcre-pcre-8.39/html/README.txt
-#usr/share/doc/pcre-pcre-8.39/html/index.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre-config.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre16.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre32.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_assign_jit_stack.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_compile.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_compile2.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_config.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_copy_named_substring.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_copy_substring.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_dfa_exec.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_exec.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_free_study.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_free_substring.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_free_substring_list.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_fullinfo.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_get_named_substring.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_get_stringnumber.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_get_stringtable_entries.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_get_substring.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_get_substring_list.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_jit_exec.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_jit_stack_alloc.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_jit_stack_free.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_maketables.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_pattern_to_host_byte_order.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_refcount.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_study.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_utf16_to_host_byte_order.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_utf32_to_host_byte_order.html
-#usr/share/doc/pcre-pcre-8.39/html/pcre_version.html
-#usr/share/doc/pcre-pcre-8.39/html/pcreapi.html
-#usr/share/doc/pcre-pcre-8.39/html/pcrebuild.html
-#usr/share/doc/pcre-pcre-8.39/html/pcrecallout.html
-#usr/share/doc/pcre-pcre-8.39/html/pcrecompat.html
-#usr/share/doc/pcre-pcre-8.39/html/pcrecpp.html
-#usr/share/doc/pcre-pcre-8.39/html/pcredemo.html
-#usr/share/doc/pcre-pcre-8.39/html/pcregrep.html
-#usr/share/doc/pcre-pcre-8.39/html/pcrejit.html
-#usr/share/doc/pcre-pcre-8.39/html/pcrelimits.html
-#usr/share/doc/pcre-pcre-8.39/html/pcrematching.html
-#usr/share/doc/pcre-pcre-8.39/html/pcrepartial.html
-#usr/share/doc/pcre-pcre-8.39/html/pcrepattern.html
-#usr/share/doc/pcre-pcre-8.39/html/pcreperform.html
-#usr/share/doc/pcre-pcre-8.39/html/pcreposix.html
-#usr/share/doc/pcre-pcre-8.39/html/pcreprecompile.html
-#usr/share/doc/pcre-pcre-8.39/html/pcresample.html
-#usr/share/doc/pcre-pcre-8.39/html/pcrestack.html
-#usr/share/doc/pcre-pcre-8.39/html/pcresyntax.html
-#usr/share/doc/pcre-pcre-8.39/html/pcretest.html
-#usr/share/doc/pcre-pcre-8.39/html/pcreunicode.html
-#usr/share/doc/pcre-pcre-8.39/pcre-config.txt
-#usr/share/doc/pcre-pcre-8.39/pcre.txt
-#usr/share/doc/pcre-pcre-8.39/pcregrep.txt
-#usr/share/doc/pcre-pcre-8.39/pcretest.txt
+#usr/share/doc/pcre-pcre-8.40
+#usr/share/doc/pcre-pcre-8.40/AUTHORS
+#usr/share/doc/pcre-pcre-8.40/COPYING
+#usr/share/doc/pcre-pcre-8.40/ChangeLog
+#usr/share/doc/pcre-pcre-8.40/LICENCE
+#usr/share/doc/pcre-pcre-8.40/NEWS
+#usr/share/doc/pcre-pcre-8.40/README
+#usr/share/doc/pcre-pcre-8.40/html
+#usr/share/doc/pcre-pcre-8.40/html/NON-AUTOTOOLS-BUILD.txt
+#usr/share/doc/pcre-pcre-8.40/html/README.txt
+#usr/share/doc/pcre-pcre-8.40/html/index.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre-config.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre16.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre32.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_assign_jit_stack.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_compile.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_compile2.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_config.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_copy_named_substring.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_copy_substring.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_dfa_exec.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_exec.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_free_study.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_free_substring.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_free_substring_list.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_fullinfo.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_get_named_substring.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_get_stringnumber.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_get_stringtable_entries.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_get_substring.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_get_substring_list.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_jit_exec.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_jit_stack_alloc.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_jit_stack_free.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_maketables.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_pattern_to_host_byte_order.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_refcount.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_study.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_utf16_to_host_byte_order.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_utf32_to_host_byte_order.html
+#usr/share/doc/pcre-pcre-8.40/html/pcre_version.html
+#usr/share/doc/pcre-pcre-8.40/html/pcreapi.html
+#usr/share/doc/pcre-pcre-8.40/html/pcrebuild.html
+#usr/share/doc/pcre-pcre-8.40/html/pcrecallout.html
+#usr/share/doc/pcre-pcre-8.40/html/pcrecompat.html
+#usr/share/doc/pcre-pcre-8.40/html/pcrecpp.html
+#usr/share/doc/pcre-pcre-8.40/html/pcredemo.html
+#usr/share/doc/pcre-pcre-8.40/html/pcregrep.html
+#usr/share/doc/pcre-pcre-8.40/html/pcrejit.html
+#usr/share/doc/pcre-pcre-8.40/html/pcrelimits.html
+#usr/share/doc/pcre-pcre-8.40/html/pcrematching.html
+#usr/share/doc/pcre-pcre-8.40/html/pcrepartial.html
+#usr/share/doc/pcre-pcre-8.40/html/pcrepattern.html
+#usr/share/doc/pcre-pcre-8.40/html/pcreperform.html
+#usr/share/doc/pcre-pcre-8.40/html/pcreposix.html
+#usr/share/doc/pcre-pcre-8.40/html/pcreprecompile.html
+#usr/share/doc/pcre-pcre-8.40/html/pcresample.html
+#usr/share/doc/pcre-pcre-8.40/html/pcrestack.html
+#usr/share/doc/pcre-pcre-8.40/html/pcresyntax.html
+#usr/share/doc/pcre-pcre-8.40/html/pcretest.html
+#usr/share/doc/pcre-pcre-8.40/html/pcreunicode.html
+#usr/share/doc/pcre-pcre-8.40/pcre-config.txt
+#usr/share/doc/pcre-pcre-8.40/pcre.txt
+#usr/share/doc/pcre-pcre-8.40/pcregrep.txt
+#usr/share/doc/pcre-pcre-8.40/pcretest.txt
 #usr/share/man/man1/pcre-config.1
 #usr/share/man/man1/pcregrep.1
 #usr/share/man/man1/pcretest.1
index ea44cd812d2e1e304930fcee27764ea60d5dae0e..34b2a3fb67e24e78dcf975093f95c70cc40440d4 100644 (file)
@@ -5,5 +5,5 @@
 #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/libpixman-1.so.0.34.0
 #usr/lib/pkgconfig/pixman-1.pc
diff --git a/config/rootfiles/common/poppler b/config/rootfiles/common/poppler
new file mode 100644 (file)
index 0000000..6a21261
--- /dev/null
@@ -0,0 +1,174 @@
+usr/bin/pdfdetach
+usr/bin/pdffonts
+usr/bin/pdfimages
+usr/bin/pdfinfo
+usr/bin/pdfseparate
+usr/bin/pdftocairo
+usr/bin/pdftohtml
+usr/bin/pdftoppm
+usr/bin/pdftops
+usr/bin/pdftotext
+usr/bin/pdfunite
+#usr/include/poppler
+#usr/include/poppler/Annot.h
+#usr/include/poppler/Array.h
+#usr/include/poppler/BuiltinFont.h
+#usr/include/poppler/BuiltinFontTables.h
+#usr/include/poppler/CMap.h
+#usr/include/poppler/CachedFile.h
+#usr/include/poppler/Catalog.h
+#usr/include/poppler/CharCodeToUnicode.h
+#usr/include/poppler/CharTypes.h
+#usr/include/poppler/CompactFontTables.h
+#usr/include/poppler/DateInfo.h
+#usr/include/poppler/Decrypt.h
+#usr/include/poppler/Dict.h
+#usr/include/poppler/Error.h
+#usr/include/poppler/ErrorCodes.h
+#usr/include/poppler/FileSpec.h
+#usr/include/poppler/FontEncodingTables.h
+#usr/include/poppler/FontInfo.h
+#usr/include/poppler/Form.h
+#usr/include/poppler/Function.h
+#usr/include/poppler/Gfx.h
+#usr/include/poppler/GfxFont.h
+#usr/include/poppler/GfxState.h
+#usr/include/poppler/GfxState_helpers.h
+#usr/include/poppler/GlobalParams.h
+#usr/include/poppler/Hints.h
+#usr/include/poppler/JArithmeticDecoder.h
+#usr/include/poppler/JBIG2Stream.h
+#usr/include/poppler/Lexer.h
+#usr/include/poppler/Linearization.h
+#usr/include/poppler/Link.h
+#usr/include/poppler/LocalPDFDocBuilder.h
+#usr/include/poppler/MarkedContentOutputDev.h
+#usr/include/poppler/Movie.h
+#usr/include/poppler/NameToCharCode.h
+#usr/include/poppler/NameToUnicodeTable.h
+#usr/include/poppler/Object.h
+#usr/include/poppler/OptionalContent.h
+#usr/include/poppler/Outline.h
+#usr/include/poppler/OutputDev.h
+#usr/include/poppler/PDFDoc.h
+#usr/include/poppler/PDFDocBuilder.h
+#usr/include/poppler/PDFDocEncoding.h
+#usr/include/poppler/PDFDocFactory.h
+#usr/include/poppler/PSOutputDev.h
+#usr/include/poppler/PSTokenizer.h
+#usr/include/poppler/Page.h
+#usr/include/poppler/PageTransition.h
+#usr/include/poppler/Parser.h
+#usr/include/poppler/PopplerCache.h
+#usr/include/poppler/PreScanOutputDev.h
+#usr/include/poppler/ProfileData.h
+#usr/include/poppler/Rendition.h
+#usr/include/poppler/SecurityHandler.h
+#usr/include/poppler/SignatureInfo.h
+#usr/include/poppler/Sound.h
+#usr/include/poppler/SplashOutputDev.h
+#usr/include/poppler/StdinCachedFile.h
+#usr/include/poppler/StdinPDFDocBuilder.h
+#usr/include/poppler/Stream-CCITT.h
+#usr/include/poppler/Stream.h
+#usr/include/poppler/StructElement.h
+#usr/include/poppler/StructTreeRoot.h
+#usr/include/poppler/TextOutputDev.h
+#usr/include/poppler/UTF.h
+#usr/include/poppler/UTF8.h
+#usr/include/poppler/UnicodeCClassTables.h
+#usr/include/poppler/UnicodeCompTables.h
+#usr/include/poppler/UnicodeDecompTables.h
+#usr/include/poppler/UnicodeMap.h
+#usr/include/poppler/UnicodeMapTables.h
+#usr/include/poppler/UnicodeTypeTable.h
+#usr/include/poppler/ViewerPreferences.h
+#usr/include/poppler/XRef.h
+#usr/include/poppler/XpdfPluginAPI.h
+#usr/include/poppler/cpp
+#usr/include/poppler/cpp/poppler-document.h
+#usr/include/poppler/cpp/poppler-embedded-file.h
+#usr/include/poppler/cpp/poppler-font.h
+#usr/include/poppler/cpp/poppler-global.h
+#usr/include/poppler/cpp/poppler-image.h
+#usr/include/poppler/cpp/poppler-page-renderer.h
+#usr/include/poppler/cpp/poppler-page-transition.h
+#usr/include/poppler/cpp/poppler-page.h
+#usr/include/poppler/cpp/poppler-rectangle.h
+#usr/include/poppler/cpp/poppler-toc.h
+#usr/include/poppler/cpp/poppler-version.h
+#usr/include/poppler/fofi
+#usr/include/poppler/fofi/FoFiBase.h
+#usr/include/poppler/fofi/FoFiEncodings.h
+#usr/include/poppler/fofi/FoFiIdentifier.h
+#usr/include/poppler/fofi/FoFiTrueType.h
+#usr/include/poppler/fofi/FoFiType1.h
+#usr/include/poppler/fofi/FoFiType1C.h
+#usr/include/poppler/goo
+#usr/include/poppler/goo/FixedPoint.h
+#usr/include/poppler/goo/GooHash.h
+#usr/include/poppler/goo/GooLikely.h
+#usr/include/poppler/goo/GooList.h
+#usr/include/poppler/goo/GooMutex.h
+#usr/include/poppler/goo/GooString.h
+#usr/include/poppler/goo/GooTimer.h
+#usr/include/poppler/goo/ImgWriter.h
+#usr/include/poppler/goo/JpegWriter.h
+#usr/include/poppler/goo/NetPBMWriter.h
+#usr/include/poppler/goo/PNGWriter.h
+#usr/include/poppler/goo/TiffWriter.h
+#usr/include/poppler/goo/gfile.h
+#usr/include/poppler/goo/gmem.h
+#usr/include/poppler/goo/grandom.h
+#usr/include/poppler/goo/gstrtod.h
+#usr/include/poppler/goo/gtypes.h
+#usr/include/poppler/poppler-config.h
+#usr/include/poppler/splash
+#usr/include/poppler/splash/Splash.h
+#usr/include/poppler/splash/SplashBitmap.h
+#usr/include/poppler/splash/SplashClip.h
+#usr/include/poppler/splash/SplashErrorCodes.h
+#usr/include/poppler/splash/SplashFTFont.h
+#usr/include/poppler/splash/SplashFTFontEngine.h
+#usr/include/poppler/splash/SplashFTFontFile.h
+#usr/include/poppler/splash/SplashFont.h
+#usr/include/poppler/splash/SplashFontEngine.h
+#usr/include/poppler/splash/SplashFontFile.h
+#usr/include/poppler/splash/SplashFontFileID.h
+#usr/include/poppler/splash/SplashGlyphBitmap.h
+#usr/include/poppler/splash/SplashMath.h
+#usr/include/poppler/splash/SplashPath.h
+#usr/include/poppler/splash/SplashPattern.h
+#usr/include/poppler/splash/SplashScreen.h
+#usr/include/poppler/splash/SplashState.h
+#usr/include/poppler/splash/SplashT1Font.h
+#usr/include/poppler/splash/SplashT1FontEngine.h
+#usr/include/poppler/splash/SplashT1FontFile.h
+#usr/include/poppler/splash/SplashTypes.h
+#usr/include/poppler/splash/SplashXPath.h
+#usr/include/poppler/splash/SplashXPathScanner.h
+#usr/lib/libpoppler-cpp.a
+#usr/lib/libpoppler-cpp.la
+#usr/lib/libpoppler-cpp.so
+usr/lib/libpoppler-cpp.so.0
+usr/lib/libpoppler-cpp.so.0.3.0
+#usr/lib/libpoppler.a
+#usr/lib/libpoppler.la
+#usr/lib/libpoppler.so
+usr/lib/libpoppler.so.66
+usr/lib/libpoppler.so.66.0.0
+#usr/lib/pkgconfig/poppler-cairo.pc
+#usr/lib/pkgconfig/poppler-cpp.pc
+#usr/lib/pkgconfig/poppler-splash.pc
+#usr/lib/pkgconfig/poppler.pc
+#usr/share/man/man1/pdfdetach.1
+#usr/share/man/man1/pdffonts.1
+#usr/share/man/man1/pdfimages.1
+#usr/share/man/man1/pdfinfo.1
+#usr/share/man/man1/pdfseparate.1
+#usr/share/man/man1/pdftocairo.1
+#usr/share/man/man1/pdftohtml.1
+#usr/share/man/man1/pdftoppm.1
+#usr/share/man/man1/pdftops.1
+#usr/share/man/man1/pdftotext.1
+#usr/share/man/man1/pdfunite.1
diff --git a/config/rootfiles/common/qpdf b/config/rootfiles/common/qpdf
new file mode 100644 (file)
index 0000000..9776c16
--- /dev/null
@@ -0,0 +1,44 @@
+usr/bin/fix-qdf
+usr/bin/qpdf
+#usr/bin/zlib-flate
+#usr/include/qpdf
+#usr/include/qpdf/Buffer.hh
+#usr/include/qpdf/BufferInputSource.hh
+#usr/include/qpdf/Constants.h
+#usr/include/qpdf/DLL.h
+#usr/include/qpdf/FileInputSource.hh
+#usr/include/qpdf/InputSource.hh
+#usr/include/qpdf/Pipeline.hh
+#usr/include/qpdf/Pl_Buffer.hh
+#usr/include/qpdf/Pl_Concatenate.hh
+#usr/include/qpdf/Pl_Count.hh
+#usr/include/qpdf/Pl_Discard.hh
+#usr/include/qpdf/Pl_Flate.hh
+#usr/include/qpdf/Pl_StdioFile.hh
+#usr/include/qpdf/PointerHolder.hh
+#usr/include/qpdf/QPDF.hh
+#usr/include/qpdf/QPDFExc.hh
+#usr/include/qpdf/QPDFObjGen.hh
+#usr/include/qpdf/QPDFObject.hh
+#usr/include/qpdf/QPDFObjectHandle.hh
+#usr/include/qpdf/QPDFTokenizer.hh
+#usr/include/qpdf/QPDFWriter.hh
+#usr/include/qpdf/QPDFXRefEntry.hh
+#usr/include/qpdf/QTC.hh
+#usr/include/qpdf/QUtil.hh
+#usr/include/qpdf/RandomDataProvider.hh
+#usr/include/qpdf/Types.h
+#usr/include/qpdf/qpdf-c.h
+#usr/lib/libqpdf.a
+#usr/lib/libqpdf.la
+#usr/lib/libqpdf.so
+usr/lib/libqpdf.so.17
+usr/lib/libqpdf.so.17.0.0
+#usr/lib/pkgconfig/libqpdf.pc
+#usr/share/doc/qpdf
+#usr/share/doc/qpdf/qpdf-manual.html
+#usr/share/doc/qpdf/qpdf-manual.pdf
+#usr/share/doc/qpdf/stylesheet.css
+#usr/share/man/man1/fix-qdf.1
+#usr/share/man/man1/qpdf.1
+#usr/share/man/man1/zlib-flate.1
index f5cfca2feaa4a4b38eae2e8150c4113aeb01c934..ac375e9413b87e883f8338feafae81981ecb3883 100644 (file)
@@ -1,3 +1,4 @@
+#sbin/debugfs.reiserfs
 #sbin/debugreiserfs
 sbin/fsck.reiserfs
 sbin/mkfs.reiserfs
@@ -5,8 +6,26 @@ sbin/mkreiserfs
 sbin/reiserfsck
 sbin/reiserfstune
 sbin/resize_reiserfs
+sbin/tunefs.reiserfs
+#usr/include/reiserfs
+#usr/include/reiserfs/io.h
+#usr/include/reiserfs/misc.h
+#usr/include/reiserfs/reiserfs_err.h
+#usr/include/reiserfs/reiserfs_fs.h
+#usr/include/reiserfs/reiserfs_lib.h
+#usr/include/reiserfs/swab.h
+#usr/lib/libreiserfscore.a
+#usr/lib/libreiserfscore.la
+#usr/lib/libreiserfscore.so
+usr/lib/libreiserfscore.so.0
+usr/lib/libreiserfscore.so.0.0.0
+#usr/lib/pkgconfig/reiserfscore.pc
+#usr/share/man/man8/debugfs.reiserfs.8
 #usr/share/man/man8/debugreiserfs.8
+#usr/share/man/man8/fsck.reiserfs.8
+#usr/share/man/man8/mkfs.reiserfs.8
 #usr/share/man/man8/mkreiserfs.8
 #usr/share/man/man8/reiserfsck.8
 #usr/share/man/man8/reiserfstune.8
 #usr/share/man/man8/resize_reiserfs.8
+#usr/share/man/man8/tunefs.reiserfs.8
index 98d76b582a7f6827cfac2fb9baf247e0f492dadf..4254b2ec9b49baec4dd8782dca23b5d68982360d 100644 (file)
@@ -1,7 +1,7 @@
 #srv/web/ipfire/html/graphs
 usr/bin/rrdcached
-#usr/bin/rrdcreate
-#usr/bin/rrdinfo
+usr/bin/rrdcreate
+usr/bin/rrdinfo
 usr/bin/rrdtool
 usr/bin/rrdupdate
 #usr/include/rrd.h
@@ -10,13 +10,8 @@ usr/bin/rrdupdate
 #usr/lib/librrd.a
 #usr/lib/librrd.la
 #usr/lib/librrd.so
-usr/lib/librrd.so.4
-usr/lib/librrd.so.4.3.5
-#usr/lib/librrd_th.a
-#usr/lib/librrd_th.la
-#usr/lib/librrd_th.so
-usr/lib/librrd_th.so.4
-usr/lib/librrd_th.so.4.3.5
+usr/lib/librrd.so.8
+usr/lib/librrd.so.8.0.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
@@ -26,98 +21,101 @@ 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/RRDs.bs
 usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.so
 #usr/lib/pkgconfig/librrd.pc
-#usr/share/doc/rrdtool-1.5.5
-#usr/share/doc/rrdtool-1.5.5/html
-#usr/share/doc/rrdtool-1.5.5/html/RRDp.html
-#usr/share/doc/rrdtool-1.5.5/html/RRDs.html
-#usr/share/doc/rrdtool-1.5.5/html/bin_dec_hex.html
-#usr/share/doc/rrdtool-1.5.5/html/cdeftutorial.html
-#usr/share/doc/rrdtool-1.5.5/html/index.html
-#usr/share/doc/rrdtool-1.5.5/html/librrd.html
-#usr/share/doc/rrdtool-1.5.5/html/rpntutorial.html
-#usr/share/doc/rrdtool-1.5.5/html/rrd-beginners.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdbuild.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdcached.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdcgi.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdcreate.html
-#usr/share/doc/rrdtool-1.5.5/html/rrddump.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdfetch.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdfirst.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdflushcached.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdgraph.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdgraph_data.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdgraph_examples.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdgraph_graph.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdgraph_rpn.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdinfo.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdlast.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdlastupdate.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdresize.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdrestore.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdthreads.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdtool.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdtune.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdtutorial.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdupdate.html
-#usr/share/doc/rrdtool-1.5.5/html/rrdxport.html
-#usr/share/doc/rrdtool-1.5.5/txt
-#usr/share/doc/rrdtool-1.5.5/txt/bin_dec_hex.pod
-#usr/share/doc/rrdtool-1.5.5/txt/bin_dec_hex.txt
-#usr/share/doc/rrdtool-1.5.5/txt/cdeftutorial.pod
-#usr/share/doc/rrdtool-1.5.5/txt/cdeftutorial.txt
-#usr/share/doc/rrdtool-1.5.5/txt/librrd.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rpntutorial.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rpntutorial.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrd-beginners.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrd-beginners.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdbuild.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdbuild.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdcached.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdcached.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdcgi.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdcgi.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdcreate.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdcreate.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrddump.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrddump.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdfetch.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdfetch.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdfirst.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdfirst.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdflushcached.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdflushcached.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdgraph.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdgraph.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdgraph_data.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdgraph_data.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdgraph_examples.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdgraph_examples.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdgraph_graph.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdgraph_graph.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdgraph_rpn.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdgraph_rpn.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdinfo.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdinfo.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdlast.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdlast.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdlastupdate.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdlastupdate.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdresize.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdresize.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdrestore.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdrestore.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdthreads.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdthreads.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdtool.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdtool.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdtune.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdtune.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdtutorial.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdtutorial.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdupdate.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdupdate.txt
-#usr/share/doc/rrdtool-1.5.5/txt/rrdxport.pod
-#usr/share/doc/rrdtool-1.5.5/txt/rrdxport.txt
+#usr/share/doc/rrdtool-1.6.0
+#usr/share/doc/rrdtool-1.6.0/html
+#usr/share/doc/rrdtool-1.6.0/html/RRDp.html
+#usr/share/doc/rrdtool-1.6.0/html/RRDs.html
+#usr/share/doc/rrdtool-1.6.0/html/bin_dec_hex.html
+#usr/share/doc/rrdtool-1.6.0/html/cdeftutorial.html
+#usr/share/doc/rrdtool-1.6.0/html/index.html
+#usr/share/doc/rrdtool-1.6.0/html/librrd.html
+#usr/share/doc/rrdtool-1.6.0/html/rpntutorial.html
+#usr/share/doc/rrdtool-1.6.0/html/rrd-beginners.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdbuild.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdcached.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdcgi.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdcreate.html
+#usr/share/doc/rrdtool-1.6.0/html/rrddump.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdfetch.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdfirst.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdflushcached.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdgraph.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdgraph_data.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdgraph_examples.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdgraph_graph.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdgraph_rpn.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdinfo.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdlast.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdlastupdate.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdlua.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdresize.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdrestore.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdthreads.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdtool.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdtune.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdtutorial.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdupdate.html
+#usr/share/doc/rrdtool-1.6.0/html/rrdxport.html
+#usr/share/doc/rrdtool-1.6.0/txt
+#usr/share/doc/rrdtool-1.6.0/txt/bin_dec_hex.pod
+#usr/share/doc/rrdtool-1.6.0/txt/bin_dec_hex.txt
+#usr/share/doc/rrdtool-1.6.0/txt/cdeftutorial.pod
+#usr/share/doc/rrdtool-1.6.0/txt/cdeftutorial.txt
+#usr/share/doc/rrdtool-1.6.0/txt/librrd.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rpntutorial.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rpntutorial.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrd-beginners.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrd-beginners.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdbuild.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdbuild.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdcached.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdcached.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdcgi.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdcgi.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdcreate.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdcreate.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrddump.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrddump.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdfetch.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdfetch.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdfirst.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdfirst.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdflushcached.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdflushcached.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdgraph.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdgraph.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdgraph_data.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdgraph_data.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdgraph_examples.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdgraph_examples.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdgraph_graph.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdgraph_graph.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdgraph_rpn.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdgraph_rpn.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdinfo.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdinfo.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdlast.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdlast.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdlastupdate.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdlastupdate.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdlua.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdlua.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdresize.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdresize.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdrestore.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdrestore.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdthreads.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdthreads.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdtool.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdtool.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdtune.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdtune.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdtutorial.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdtutorial.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdupdate.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdupdate.txt
+#usr/share/doc/rrdtool-1.6.0/txt/rrdxport.pod
+#usr/share/doc/rrdtool-1.6.0/txt/rrdxport.txt
 #usr/share/man/man1/bin_dec_hex.1
 #usr/share/man/man1/cdeftutorial.1
 #usr/share/man/man1/rpntutorial.1
@@ -138,6 +136,7 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.so
 #usr/share/man/man1/rrdinfo.1
 #usr/share/man/man1/rrdlast.1
 #usr/share/man/man1/rrdlastupdate.1
+#usr/share/man/man1/rrdlua.1
 #usr/share/man/man1/rrdresize.1
 #usr/share/man/man1/rrdrestore.1
 #usr/share/man/man1/rrdthreads.1
index 354ecd7b55bf670f52c22d03475fe99e67624346..fbc57866ab627e8d2a4add8a6bb34e873defb103 100644 (file)
@@ -21,6 +21,7 @@ etc/strongswan.d/charon/cmac.conf
 etc/strongswan.d/charon/constraints.conf
 etc/strongswan.d/charon/ctr.conf
 etc/strongswan.d/charon/curl.conf
+etc/strongswan.d/charon/curve25519.conf
 etc/strongswan.d/charon/des.conf
 etc/strongswan.d/charon/dhcp.conf
 etc/strongswan.d/charon/dnskey.conf
@@ -105,6 +106,11 @@ usr/lib/ipsec/libstrongswan.so.0.0.0
 usr/lib/ipsec/libtls.so
 usr/lib/ipsec/libtls.so.0
 usr/lib/ipsec/libtls.so.0.0.0
+#usr/lib/ipsec/libtpmtss.a
+#usr/lib/ipsec/libtpmtss.la
+usr/lib/ipsec/libtpmtss.so
+usr/lib/ipsec/libtpmtss.so.0
+usr/lib/ipsec/libtpmtss.so.0.0.0
 #usr/lib/ipsec/libvici.a
 #usr/lib/ipsec/libvici.la
 usr/lib/ipsec/libvici.so
@@ -118,6 +124,7 @@ usr/lib/ipsec/plugins/libstrongswan-cmac.so
 usr/lib/ipsec/plugins/libstrongswan-constraints.so
 usr/lib/ipsec/plugins/libstrongswan-ctr.so
 usr/lib/ipsec/plugins/libstrongswan-curl.so
+usr/lib/ipsec/plugins/libstrongswan-curve25519.so
 usr/lib/ipsec/plugins/libstrongswan-des.so
 usr/lib/ipsec/plugins/libstrongswan-dhcp.so
 usr/lib/ipsec/plugins/libstrongswan-dnskey.so
@@ -201,6 +208,7 @@ usr/sbin/swanctl
 #usr/share/strongswan/templates/config/plugins/constraints.conf
 #usr/share/strongswan/templates/config/plugins/ctr.conf
 #usr/share/strongswan/templates/config/plugins/curl.conf
+#usr/share/strongswan/templates/config/plugins/curve25519.conf
 #usr/share/strongswan/templates/config/plugins/des.conf
 #usr/share/strongswan/templates/config/plugins/dhcp.conf
 #usr/share/strongswan/templates/config/plugins/dnskey.conf
index c904fc337e7ba4c92d17167d6639aea1e0fc63e2..d6ac72d4f5ac021b776d63db080ce61a1a4a804e 100644 (file)
@@ -74,4 +74,4 @@ usr/sbin/visudo
 #usr/share/man/man8/sudoedit.8
 #usr/share/man/man8/sudoreplay.8
 #usr/share/man/man8/visudo.8
-var/lib/sudo
+var/db/sudo
index 61481999e2fa5c03aab40763b185b14111ff4d63..c44ad4abf56f6f4f18d7962c108cc37926241d29 100644 (file)
@@ -1,3 +1,4 @@
+etc/localtime
 usr/share/zoneinfo
 #usr/share/zoneinfo/Africa
 #usr/share/zoneinfo/Africa/Abidjan
index c31b8a6985655fccd0e9fbf7af6e216178482c93..ee4b7fd5c9631da2a1344590f06c131d02f9f8ef 100644 (file)
@@ -6,11 +6,12 @@ etc/unbound/icannbundle.pem
 etc/unbound/local.d
 etc/unbound/root.hints
 etc/unbound/unbound.conf
+#usr/include/unbound-event.h
 #usr/include/unbound.h
 #usr/lib/libunbound.la
 #usr/lib/libunbound.so
 usr/lib/libunbound.so.2
-usr/lib/libunbound.so.2.4.3
+usr/lib/libunbound.so.2.5.2
 usr/sbin/unbound
 usr/sbin/unbound-anchor
 usr/sbin/unbound-checkconf
index 7d559c0ec3fdac58bddcb0c9aca7ba563d7db922..6213bcbc2fd635713f14e47e99982eee688e6d43 100644 (file)
@@ -3,8 +3,8 @@ usr/bin/unzip
 #usr/bin/unzipsfx
 #usr/bin/zipgrep
 #usr/bin/zipinfo
-#usr/man/man1/funzip.1
-#usr/man/man1/unzip.1
-#usr/man/man1/unzipsfx.1
-#usr/man/man1/zipgrep.1
-#usr/man/man1/zipinfo.1
+#usr/share/man/man1/funzip.1
+#usr/share/man/man1/unzip.1
+#usr/share/man/man1/unzipsfx.1
+#usr/share/man/man1/zipgrep.1
+#usr/share/man/man1/zipinfo.1
index 8c94d2e16eb934b9ae6777f353d6d83360b57fe5..f204f165777963f78456613a63c7efea008fddf2 100644 (file)
@@ -29,7 +29,6 @@ srv/web/ipfire/cgi-bin/gui.cgi
 srv/web/ipfire/cgi-bin/hardwaregraphs.cgi
 srv/web/ipfire/cgi-bin/hosts.cgi
 srv/web/ipfire/cgi-bin/ids.cgi
-#srv/web/ipfire/cgi-bin/imspector.cgi
 srv/web/ipfire/cgi-bin/index.cgi
 srv/web/ipfire/cgi-bin/ipinfo.cgi
 srv/web/ipfire/cgi-bin/iptables.cgi
@@ -117,6 +116,7 @@ srv/web/ipfire/html/images/audio-volume-low-red.png
 srv/web/ipfire/html/images/audio-volume-low.png
 srv/web/ipfire/html/images/audio-x-generic-red.png
 srv/web/ipfire/html/images/audio-x-generic.png
+srv/web/ipfire/html/images/back.png
 srv/web/ipfire/html/images/background.gif
 srv/web/ipfire/html/images/bookmark-new.png
 srv/web/ipfire/html/images/clock.gif
index bb0bf9b1fae520a7fd57ecfb54a790cb6b92271d..88c1da36e59c54b5aaa8359a28c5d48c39e6c901 100644 (file)
@@ -19,6 +19,7 @@
 #usr/include/bfdlink.h
 #usr/include/dis-asm.h
 #usr/include/libiberty.h
+#usr/include/plugin-api.h
 #usr/include/symcat.h
 #usr/lib/ldscripts
 #usr/lib/ldscripts/elf32_x86_64.x
 #usr/lib/ldscripts/elf_i386.xsw
 #usr/lib/ldscripts/elf_i386.xu
 #usr/lib/ldscripts/elf_i386.xw
+#usr/lib/ldscripts/elf_iamcu.x
+#usr/lib/ldscripts/elf_iamcu.xbn
+#usr/lib/ldscripts/elf_iamcu.xc
+#usr/lib/ldscripts/elf_iamcu.xd
+#usr/lib/ldscripts/elf_iamcu.xdc
+#usr/lib/ldscripts/elf_iamcu.xdw
+#usr/lib/ldscripts/elf_iamcu.xn
+#usr/lib/ldscripts/elf_iamcu.xr
+#usr/lib/ldscripts/elf_iamcu.xs
+#usr/lib/ldscripts/elf_iamcu.xsc
+#usr/lib/ldscripts/elf_iamcu.xsw
+#usr/lib/ldscripts/elf_iamcu.xu
+#usr/lib/ldscripts/elf_iamcu.xw
 #usr/lib/ldscripts/elf_k1om.x
 #usr/lib/ldscripts/elf_k1om.xbn
 #usr/lib/ldscripts/elf_k1om.xc
 #usr/lib/ldscripts/i386linux.xn
 #usr/lib/ldscripts/i386linux.xr
 #usr/lib/ldscripts/i386linux.xu
-#usr/lib/libbfd-2.24.so
+#usr/lib/libbfd-2.28.so
 #usr/lib/libbfd.a
 #usr/lib/libbfd.la
 #usr/lib/libbfd.so
-#usr/lib/libiberty.a
-#usr/lib/libopcodes-2.24.so
+#usr/lib/libopcodes-2.28.so
 #usr/lib/libopcodes.a
 #usr/lib/libopcodes.la
 #usr/lib/libopcodes.so
 #usr/share/info/as.info
 #usr/share/info/bfd.info
 #usr/share/info/binutils.info
-#usr/share/info/configure.info
-#usr/share/info/dir
 #usr/share/info/gprof.info
 #usr/share/info/ld.info
-#usr/share/info/standards.info
+#usr/share/locale/bg/LC_MESSAGES/binutils.mo
+#usr/share/locale/bg/LC_MESSAGES/gprof.mo
+#usr/share/locale/bg/LC_MESSAGES/ld.mo
+#usr/share/locale/ca/LC_MESSAGES/binutils.mo
+#usr/share/locale/da/LC_MESSAGES/bfd.mo
+#usr/share/locale/da/LC_MESSAGES/binutils.mo
+#usr/share/locale/da/LC_MESSAGES/gprof.mo
+#usr/share/locale/da/LC_MESSAGES/ld.mo
+#usr/share/locale/da/LC_MESSAGES/opcodes.mo
+#usr/share/locale/de/LC_MESSAGES/gprof.mo
+#usr/share/locale/de/LC_MESSAGES/opcodes.mo
+#usr/share/locale/eo/LC_MESSAGES/gprof.mo
+#usr/share/locale/es/LC_MESSAGES/bfd.mo
+#usr/share/locale/es/LC_MESSAGES/binutils.mo
+#usr/share/locale/es/LC_MESSAGES/gas.mo
+#usr/share/locale/es/LC_MESSAGES/gprof.mo
+#usr/share/locale/es/LC_MESSAGES/ld.mo
+#usr/share/locale/es/LC_MESSAGES/opcodes.mo
+#usr/share/locale/fi/LC_MESSAGES/bfd.mo
+#usr/share/locale/fi/LC_MESSAGES/binutils.mo
+#usr/share/locale/fi/LC_MESSAGES/gas.mo
+#usr/share/locale/fi/LC_MESSAGES/gprof.mo
+#usr/share/locale/fi/LC_MESSAGES/ld.mo
+#usr/share/locale/fi/LC_MESSAGES/opcodes.mo
+#usr/share/locale/fr/LC_MESSAGES/bfd.mo
+#usr/share/locale/fr/LC_MESSAGES/binutils.mo
+#usr/share/locale/fr/LC_MESSAGES/gas.mo
+#usr/share/locale/fr/LC_MESSAGES/gprof.mo
+#usr/share/locale/fr/LC_MESSAGES/ld.mo
+#usr/share/locale/fr/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ga
+#usr/share/locale/ga/LC_MESSAGES
+#usr/share/locale/ga/LC_MESSAGES/gprof.mo
+#usr/share/locale/ga/LC_MESSAGES/ld.mo
+#usr/share/locale/ga/LC_MESSAGES/opcodes.mo
+#usr/share/locale/hr/LC_MESSAGES/binutils.mo
+#usr/share/locale/hu/LC_MESSAGES/gprof.mo
+#usr/share/locale/id/LC_MESSAGES/bfd.mo
+#usr/share/locale/id/LC_MESSAGES/binutils.mo
+#usr/share/locale/id/LC_MESSAGES/gas.mo
+#usr/share/locale/id/LC_MESSAGES/gprof.mo
+#usr/share/locale/id/LC_MESSAGES/ld.mo
+#usr/share/locale/id/LC_MESSAGES/opcodes.mo
+#usr/share/locale/it/LC_MESSAGES/binutils.mo
+#usr/share/locale/it/LC_MESSAGES/gprof.mo
+#usr/share/locale/it/LC_MESSAGES/ld.mo
+#usr/share/locale/it/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ja/LC_MESSAGES/bfd.mo
+#usr/share/locale/ja/LC_MESSAGES/binutils.mo
+#usr/share/locale/ja/LC_MESSAGES/gas.mo
+#usr/share/locale/ja/LC_MESSAGES/gprof.mo
+#usr/share/locale/ja/LC_MESSAGES/ld.mo
+#usr/share/locale/ms
+#usr/share/locale/ms/LC_MESSAGES
+#usr/share/locale/ms/LC_MESSAGES/gprof.mo
+#usr/share/locale/nl/LC_MESSAGES/gprof.mo
+#usr/share/locale/nl/LC_MESSAGES/opcodes.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/gprof.mo
+#usr/share/locale/pt_BR/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ro
+#usr/share/locale/ro/LC_MESSAGES
+#usr/share/locale/ro/LC_MESSAGES/bfd.mo
+#usr/share/locale/ro/LC_MESSAGES/binutils.mo
+#usr/share/locale/ro/LC_MESSAGES/gprof.mo
+#usr/share/locale/ro/LC_MESSAGES/opcodes.mo
+#usr/share/locale/ru/LC_MESSAGES/bfd.mo
+#usr/share/locale/ru/LC_MESSAGES/binutils.mo
+#usr/share/locale/ru/LC_MESSAGES/gas.mo
+#usr/share/locale/ru/LC_MESSAGES/gprof.mo
+#usr/share/locale/rw/LC_MESSAGES/bfd.mo
+#usr/share/locale/rw/LC_MESSAGES/binutils.mo
+#usr/share/locale/rw/LC_MESSAGES/gas.mo
+#usr/share/locale/rw/LC_MESSAGES/gprof.mo
+#usr/share/locale/sk/LC_MESSAGES/binutils.mo
+#usr/share/locale/sr
+#usr/share/locale/sr/LC_MESSAGES
+#usr/share/locale/sr/LC_MESSAGES/bfd.mo
+#usr/share/locale/sr/LC_MESSAGES/binutils.mo
+#usr/share/locale/sr/LC_MESSAGES/gprof.mo
+#usr/share/locale/sv/LC_MESSAGES/bfd.mo
+#usr/share/locale/sv/LC_MESSAGES/binutils.mo
+#usr/share/locale/sv/LC_MESSAGES/gprof.mo
+#usr/share/locale/sv/LC_MESSAGES/ld.mo
+#usr/share/locale/sv/LC_MESSAGES/opcodes.mo
+#usr/share/locale/tr/LC_MESSAGES/bfd.mo
+#usr/share/locale/tr/LC_MESSAGES/binutils.mo
+#usr/share/locale/tr/LC_MESSAGES/gas.mo
+#usr/share/locale/tr/LC_MESSAGES/gprof.mo
+#usr/share/locale/tr/LC_MESSAGES/ld.mo
+#usr/share/locale/tr/LC_MESSAGES/opcodes.mo
+#usr/share/locale/uk/LC_MESSAGES/bfd.mo
+#usr/share/locale/uk/LC_MESSAGES/binutils.mo
+#usr/share/locale/uk/LC_MESSAGES/gas.mo
+#usr/share/locale/uk/LC_MESSAGES/gprof.mo
+#usr/share/locale/uk/LC_MESSAGES/ld.mo
+#usr/share/locale/uk/LC_MESSAGES/opcodes.mo
+#usr/share/locale/vi/LC_MESSAGES/bfd.mo
+#usr/share/locale/vi/LC_MESSAGES/binutils.mo
+#usr/share/locale/vi/LC_MESSAGES/gprof.mo
+#usr/share/locale/vi/LC_MESSAGES/ld.mo
+#usr/share/locale/vi/LC_MESSAGES/opcodes.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/bfd.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/binutils.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/gas.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/ld.mo
+#usr/share/locale/zh_CN/LC_MESSAGES/opcodes.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/binutils.mo
+#usr/share/locale/zh_TW/LC_MESSAGES/ld.mo
 #usr/share/man/man1/addr2line.1
 #usr/share/man/man1/ar.1
 #usr/share/man/man1/as.1
index e378d930bcf010be0f64ec3879df56d90f11718d..d30ead1cf9bf3398321665549b35197679171c4a 100644 (file)
 #usr/bin/gcc-nm
 #usr/bin/gcc-ranlib
 #usr/bin/gcov
-#usr/bin/x86_64-unknown-linux-gnu-c++
-#usr/bin/x86_64-unknown-linux-gnu-g++
-#usr/bin/x86_64-unknown-linux-gnu-gcc
-#usr/bin/x86_64-unknown-linux-gnu-gcc-4.9.3
-#usr/bin/x86_64-unknown-linux-gnu-gcc-ar
-#usr/bin/x86_64-unknown-linux-gnu-gcc-nm
-#usr/bin/x86_64-unknown-linux-gnu-gcc-ranlib
+#usr/bin/gcov-tool
+#usr/bin/x86_64-pc-linux-gnu-c++
+#usr/bin/x86_64-pc-linux-gnu-g++
+#usr/bin/x86_64-pc-linux-gnu-gcc
+#usr/bin/x86_64-pc-linux-gnu-gcc-6.3.0
+#usr/bin/x86_64-pc-linux-gnu-gcc-ar
+#usr/bin/x86_64-pc-linux-gnu-gcc-nm
+#usr/bin/x86_64-pc-linux-gnu-gcc-ranlib
 #usr/include/c++
-#usr/include/c++/4.9.3
-#usr/include/c++/4.9.3/algorithm
-#usr/include/c++/4.9.3/array
-#usr/include/c++/4.9.3/atomic
-#usr/include/c++/4.9.3/backward
-#usr/include/c++/4.9.3/backward/auto_ptr.h
-#usr/include/c++/4.9.3/backward/backward_warning.h
-#usr/include/c++/4.9.3/backward/binders.h
-#usr/include/c++/4.9.3/backward/hash_fun.h
-#usr/include/c++/4.9.3/backward/hash_map
-#usr/include/c++/4.9.3/backward/hash_set
-#usr/include/c++/4.9.3/backward/hashtable.h
-#usr/include/c++/4.9.3/backward/strstream
-#usr/include/c++/4.9.3/bits
-#usr/include/c++/4.9.3/bits/algorithmfwd.h
-#usr/include/c++/4.9.3/bits/alloc_traits.h
-#usr/include/c++/4.9.3/bits/allocator.h
-#usr/include/c++/4.9.3/bits/atomic_base.h
-#usr/include/c++/4.9.3/bits/atomic_lockfree_defines.h
-#usr/include/c++/4.9.3/bits/basic_ios.h
-#usr/include/c++/4.9.3/bits/basic_ios.tcc
-#usr/include/c++/4.9.3/bits/basic_string.h
-#usr/include/c++/4.9.3/bits/basic_string.tcc
-#usr/include/c++/4.9.3/bits/boost_concept_check.h
-#usr/include/c++/4.9.3/bits/c++0x_warning.h
-#usr/include/c++/4.9.3/bits/c++14_warning.h
-#usr/include/c++/4.9.3/bits/char_traits.h
-#usr/include/c++/4.9.3/bits/codecvt.h
-#usr/include/c++/4.9.3/bits/concept_check.h
-#usr/include/c++/4.9.3/bits/cpp_type_traits.h
-#usr/include/c++/4.9.3/bits/cxxabi_forced.h
-#usr/include/c++/4.9.3/bits/deque.tcc
-#usr/include/c++/4.9.3/bits/enable_special_members.h
-#usr/include/c++/4.9.3/bits/exception_defines.h
-#usr/include/c++/4.9.3/bits/exception_ptr.h
-#usr/include/c++/4.9.3/bits/forward_list.h
-#usr/include/c++/4.9.3/bits/forward_list.tcc
-#usr/include/c++/4.9.3/bits/fstream.tcc
-#usr/include/c++/4.9.3/bits/functexcept.h
-#usr/include/c++/4.9.3/bits/functional_hash.h
-#usr/include/c++/4.9.3/bits/gslice.h
-#usr/include/c++/4.9.3/bits/gslice_array.h
-#usr/include/c++/4.9.3/bits/hash_bytes.h
-#usr/include/c++/4.9.3/bits/hashtable.h
-#usr/include/c++/4.9.3/bits/hashtable_policy.h
-#usr/include/c++/4.9.3/bits/indirect_array.h
-#usr/include/c++/4.9.3/bits/ios_base.h
-#usr/include/c++/4.9.3/bits/istream.tcc
-#usr/include/c++/4.9.3/bits/list.tcc
-#usr/include/c++/4.9.3/bits/locale_classes.h
-#usr/include/c++/4.9.3/bits/locale_classes.tcc
-#usr/include/c++/4.9.3/bits/locale_facets.h
-#usr/include/c++/4.9.3/bits/locale_facets.tcc
-#usr/include/c++/4.9.3/bits/locale_facets_nonio.h
-#usr/include/c++/4.9.3/bits/locale_facets_nonio.tcc
-#usr/include/c++/4.9.3/bits/localefwd.h
-#usr/include/c++/4.9.3/bits/mask_array.h
-#usr/include/c++/4.9.3/bits/memoryfwd.h
-#usr/include/c++/4.9.3/bits/move.h
-#usr/include/c++/4.9.3/bits/nested_exception.h
-#usr/include/c++/4.9.3/bits/ostream.tcc
-#usr/include/c++/4.9.3/bits/ostream_insert.h
-#usr/include/c++/4.9.3/bits/parse_numbers.h
-#usr/include/c++/4.9.3/bits/postypes.h
-#usr/include/c++/4.9.3/bits/predefined_ops.h
-#usr/include/c++/4.9.3/bits/ptr_traits.h
-#usr/include/c++/4.9.3/bits/random.h
-#usr/include/c++/4.9.3/bits/random.tcc
-#usr/include/c++/4.9.3/bits/range_access.h
-#usr/include/c++/4.9.3/bits/regex.h
-#usr/include/c++/4.9.3/bits/regex.tcc
-#usr/include/c++/4.9.3/bits/regex_automaton.h
-#usr/include/c++/4.9.3/bits/regex_automaton.tcc
-#usr/include/c++/4.9.3/bits/regex_compiler.h
-#usr/include/c++/4.9.3/bits/regex_compiler.tcc
-#usr/include/c++/4.9.3/bits/regex_constants.h
-#usr/include/c++/4.9.3/bits/regex_error.h
-#usr/include/c++/4.9.3/bits/regex_executor.h
-#usr/include/c++/4.9.3/bits/regex_executor.tcc
-#usr/include/c++/4.9.3/bits/regex_scanner.h
-#usr/include/c++/4.9.3/bits/regex_scanner.tcc
-#usr/include/c++/4.9.3/bits/shared_ptr.h
-#usr/include/c++/4.9.3/bits/shared_ptr_base.h
-#usr/include/c++/4.9.3/bits/slice_array.h
-#usr/include/c++/4.9.3/bits/sstream.tcc
-#usr/include/c++/4.9.3/bits/stl_algo.h
-#usr/include/c++/4.9.3/bits/stl_algobase.h
-#usr/include/c++/4.9.3/bits/stl_bvector.h
-#usr/include/c++/4.9.3/bits/stl_construct.h
-#usr/include/c++/4.9.3/bits/stl_deque.h
-#usr/include/c++/4.9.3/bits/stl_function.h
-#usr/include/c++/4.9.3/bits/stl_heap.h
-#usr/include/c++/4.9.3/bits/stl_iterator.h
-#usr/include/c++/4.9.3/bits/stl_iterator_base_funcs.h
-#usr/include/c++/4.9.3/bits/stl_iterator_base_types.h
-#usr/include/c++/4.9.3/bits/stl_list.h
-#usr/include/c++/4.9.3/bits/stl_map.h
-#usr/include/c++/4.9.3/bits/stl_multimap.h
-#usr/include/c++/4.9.3/bits/stl_multiset.h
-#usr/include/c++/4.9.3/bits/stl_numeric.h
-#usr/include/c++/4.9.3/bits/stl_pair.h
-#usr/include/c++/4.9.3/bits/stl_queue.h
-#usr/include/c++/4.9.3/bits/stl_raw_storage_iter.h
-#usr/include/c++/4.9.3/bits/stl_relops.h
-#usr/include/c++/4.9.3/bits/stl_set.h
-#usr/include/c++/4.9.3/bits/stl_stack.h
-#usr/include/c++/4.9.3/bits/stl_tempbuf.h
-#usr/include/c++/4.9.3/bits/stl_tree.h
-#usr/include/c++/4.9.3/bits/stl_uninitialized.h
-#usr/include/c++/4.9.3/bits/stl_vector.h
-#usr/include/c++/4.9.3/bits/stream_iterator.h
-#usr/include/c++/4.9.3/bits/streambuf.tcc
-#usr/include/c++/4.9.3/bits/streambuf_iterator.h
-#usr/include/c++/4.9.3/bits/stringfwd.h
-#usr/include/c++/4.9.3/bits/unique_ptr.h
-#usr/include/c++/4.9.3/bits/unordered_map.h
-#usr/include/c++/4.9.3/bits/unordered_set.h
-#usr/include/c++/4.9.3/bits/uses_allocator.h
-#usr/include/c++/4.9.3/bits/valarray_after.h
-#usr/include/c++/4.9.3/bits/valarray_array.h
-#usr/include/c++/4.9.3/bits/valarray_array.tcc
-#usr/include/c++/4.9.3/bits/valarray_before.h
-#usr/include/c++/4.9.3/bits/vector.tcc
-#usr/include/c++/4.9.3/bitset
-#usr/include/c++/4.9.3/cassert
-#usr/include/c++/4.9.3/ccomplex
-#usr/include/c++/4.9.3/cctype
-#usr/include/c++/4.9.3/cerrno
-#usr/include/c++/4.9.3/cfenv
-#usr/include/c++/4.9.3/cfloat
-#usr/include/c++/4.9.3/chrono
-#usr/include/c++/4.9.3/cinttypes
-#usr/include/c++/4.9.3/ciso646
-#usr/include/c++/4.9.3/climits
-#usr/include/c++/4.9.3/clocale
-#usr/include/c++/4.9.3/cmath
-#usr/include/c++/4.9.3/complex
-#usr/include/c++/4.9.3/complex.h
-#usr/include/c++/4.9.3/condition_variable
-#usr/include/c++/4.9.3/csetjmp
-#usr/include/c++/4.9.3/csignal
-#usr/include/c++/4.9.3/cstdalign
-#usr/include/c++/4.9.3/cstdarg
-#usr/include/c++/4.9.3/cstdbool
-#usr/include/c++/4.9.3/cstddef
-#usr/include/c++/4.9.3/cstdint
-#usr/include/c++/4.9.3/cstdio
-#usr/include/c++/4.9.3/cstdlib
-#usr/include/c++/4.9.3/cstring
-#usr/include/c++/4.9.3/ctgmath
-#usr/include/c++/4.9.3/ctime
-#usr/include/c++/4.9.3/cwchar
-#usr/include/c++/4.9.3/cwctype
-#usr/include/c++/4.9.3/cxxabi.h
-#usr/include/c++/4.9.3/debug
-#usr/include/c++/4.9.3/debug/array
-#usr/include/c++/4.9.3/debug/bitset
-#usr/include/c++/4.9.3/debug/debug.h
-#usr/include/c++/4.9.3/debug/deque
-#usr/include/c++/4.9.3/debug/formatter.h
-#usr/include/c++/4.9.3/debug/forward_list
-#usr/include/c++/4.9.3/debug/functions.h
-#usr/include/c++/4.9.3/debug/list
-#usr/include/c++/4.9.3/debug/macros.h
-#usr/include/c++/4.9.3/debug/map
-#usr/include/c++/4.9.3/debug/map.h
-#usr/include/c++/4.9.3/debug/multimap.h
-#usr/include/c++/4.9.3/debug/multiset.h
-#usr/include/c++/4.9.3/debug/safe_base.h
-#usr/include/c++/4.9.3/debug/safe_iterator.h
-#usr/include/c++/4.9.3/debug/safe_iterator.tcc
-#usr/include/c++/4.9.3/debug/safe_local_iterator.h
-#usr/include/c++/4.9.3/debug/safe_local_iterator.tcc
-#usr/include/c++/4.9.3/debug/safe_sequence.h
-#usr/include/c++/4.9.3/debug/safe_sequence.tcc
-#usr/include/c++/4.9.3/debug/safe_unordered_base.h
-#usr/include/c++/4.9.3/debug/safe_unordered_container.h
-#usr/include/c++/4.9.3/debug/safe_unordered_container.tcc
-#usr/include/c++/4.9.3/debug/set
-#usr/include/c++/4.9.3/debug/set.h
-#usr/include/c++/4.9.3/debug/string
-#usr/include/c++/4.9.3/debug/unordered_map
-#usr/include/c++/4.9.3/debug/unordered_set
-#usr/include/c++/4.9.3/debug/vector
-#usr/include/c++/4.9.3/decimal
-#usr/include/c++/4.9.3/decimal/decimal
-#usr/include/c++/4.9.3/decimal/decimal.h
-#usr/include/c++/4.9.3/deque
-#usr/include/c++/4.9.3/exception
-#usr/include/c++/4.9.3/experimental
-#usr/include/c++/4.9.3/experimental/optional
-#usr/include/c++/4.9.3/experimental/string_view
-#usr/include/c++/4.9.3/experimental/string_view.tcc
-#usr/include/c++/4.9.3/ext
-#usr/include/c++/4.9.3/ext/algorithm
-#usr/include/c++/4.9.3/ext/aligned_buffer.h
-#usr/include/c++/4.9.3/ext/alloc_traits.h
-#usr/include/c++/4.9.3/ext/array_allocator.h
-#usr/include/c++/4.9.3/ext/atomicity.h
-#usr/include/c++/4.9.3/ext/bitmap_allocator.h
-#usr/include/c++/4.9.3/ext/cast.h
-#usr/include/c++/4.9.3/ext/cmath
-#usr/include/c++/4.9.3/ext/codecvt_specializations.h
-#usr/include/c++/4.9.3/ext/concurrence.h
-#usr/include/c++/4.9.3/ext/debug_allocator.h
-#usr/include/c++/4.9.3/ext/enc_filebuf.h
-#usr/include/c++/4.9.3/ext/extptr_allocator.h
-#usr/include/c++/4.9.3/ext/functional
-#usr/include/c++/4.9.3/ext/hash_map
-#usr/include/c++/4.9.3/ext/hash_set
-#usr/include/c++/4.9.3/ext/iterator
-#usr/include/c++/4.9.3/ext/malloc_allocator.h
-#usr/include/c++/4.9.3/ext/memory
-#usr/include/c++/4.9.3/ext/mt_allocator.h
-#usr/include/c++/4.9.3/ext/new_allocator.h
-#usr/include/c++/4.9.3/ext/numeric
-#usr/include/c++/4.9.3/ext/numeric_traits.h
-#usr/include/c++/4.9.3/ext/pb_ds
-#usr/include/c++/4.9.3/ext/pb_ds/assoc_container.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/bin_search_tree_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy/branch_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/branch_policy/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/cond_dealtor.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/container_base_dispatch.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/debug_map_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/eq_fn
-#usr/include/c++/4.9.3/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/ov_tree_map_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/node.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rb_tree_map_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/node.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/splay_tree_/traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/standard_policies.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/tree_trace_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/type_utils.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/types_traits.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/exception.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/hash_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/list_update_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/priority_queue.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/tag_and_trait.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/tree_policy.hpp
-#usr/include/c++/4.9.3/ext/pb_ds/trie_policy.hpp
-#usr/include/c++/4.9.3/ext/pod_char_traits.h
-#usr/include/c++/4.9.3/ext/pointer.h
-#usr/include/c++/4.9.3/ext/pool_allocator.h
-#usr/include/c++/4.9.3/ext/random
-#usr/include/c++/4.9.3/ext/random.tcc
-#usr/include/c++/4.9.3/ext/rb_tree
-#usr/include/c++/4.9.3/ext/rc_string_base.h
-#usr/include/c++/4.9.3/ext/rope
-#usr/include/c++/4.9.3/ext/ropeimpl.h
-#usr/include/c++/4.9.3/ext/slist
-#usr/include/c++/4.9.3/ext/sso_string_base.h
-#usr/include/c++/4.9.3/ext/stdio_filebuf.h
-#usr/include/c++/4.9.3/ext/stdio_sync_filebuf.h
-#usr/include/c++/4.9.3/ext/string_conversions.h
-#usr/include/c++/4.9.3/ext/throw_allocator.h
-#usr/include/c++/4.9.3/ext/type_traits.h
-#usr/include/c++/4.9.3/ext/typelist.h
-#usr/include/c++/4.9.3/ext/vstring.h
-#usr/include/c++/4.9.3/ext/vstring.tcc
-#usr/include/c++/4.9.3/ext/vstring_fwd.h
-#usr/include/c++/4.9.3/ext/vstring_util.h
-#usr/include/c++/4.9.3/fenv.h
-#usr/include/c++/4.9.3/forward_list
-#usr/include/c++/4.9.3/fstream
-#usr/include/c++/4.9.3/functional
-#usr/include/c++/4.9.3/future
-#usr/include/c++/4.9.3/initializer_list
-#usr/include/c++/4.9.3/iomanip
-#usr/include/c++/4.9.3/ios
-#usr/include/c++/4.9.3/iosfwd
-#usr/include/c++/4.9.3/iostream
-#usr/include/c++/4.9.3/istream
-#usr/include/c++/4.9.3/iterator
-#usr/include/c++/4.9.3/limits
-#usr/include/c++/4.9.3/list
-#usr/include/c++/4.9.3/locale
-#usr/include/c++/4.9.3/map
-#usr/include/c++/4.9.3/memory
-#usr/include/c++/4.9.3/mutex
-#usr/include/c++/4.9.3/new
-#usr/include/c++/4.9.3/numeric
-#usr/include/c++/4.9.3/ostream
-#usr/include/c++/4.9.3/parallel
-#usr/include/c++/4.9.3/parallel/algo.h
-#usr/include/c++/4.9.3/parallel/algobase.h
-#usr/include/c++/4.9.3/parallel/algorithm
-#usr/include/c++/4.9.3/parallel/algorithmfwd.h
-#usr/include/c++/4.9.3/parallel/balanced_quicksort.h
-#usr/include/c++/4.9.3/parallel/base.h
-#usr/include/c++/4.9.3/parallel/basic_iterator.h
-#usr/include/c++/4.9.3/parallel/checkers.h
-#usr/include/c++/4.9.3/parallel/compatibility.h
-#usr/include/c++/4.9.3/parallel/compiletime_settings.h
-#usr/include/c++/4.9.3/parallel/equally_split.h
-#usr/include/c++/4.9.3/parallel/features.h
-#usr/include/c++/4.9.3/parallel/find.h
-#usr/include/c++/4.9.3/parallel/find_selectors.h
-#usr/include/c++/4.9.3/parallel/for_each.h
-#usr/include/c++/4.9.3/parallel/for_each_selectors.h
-#usr/include/c++/4.9.3/parallel/iterator.h
-#usr/include/c++/4.9.3/parallel/list_partition.h
-#usr/include/c++/4.9.3/parallel/losertree.h
-#usr/include/c++/4.9.3/parallel/merge.h
-#usr/include/c++/4.9.3/parallel/multiseq_selection.h
-#usr/include/c++/4.9.3/parallel/multiway_merge.h
-#usr/include/c++/4.9.3/parallel/multiway_mergesort.h
-#usr/include/c++/4.9.3/parallel/numeric
-#usr/include/c++/4.9.3/parallel/numericfwd.h
-#usr/include/c++/4.9.3/parallel/omp_loop.h
-#usr/include/c++/4.9.3/parallel/omp_loop_static.h
-#usr/include/c++/4.9.3/parallel/par_loop.h
-#usr/include/c++/4.9.3/parallel/parallel.h
-#usr/include/c++/4.9.3/parallel/partial_sum.h
-#usr/include/c++/4.9.3/parallel/partition.h
-#usr/include/c++/4.9.3/parallel/queue.h
-#usr/include/c++/4.9.3/parallel/quicksort.h
-#usr/include/c++/4.9.3/parallel/random_number.h
-#usr/include/c++/4.9.3/parallel/random_shuffle.h
-#usr/include/c++/4.9.3/parallel/search.h
-#usr/include/c++/4.9.3/parallel/set_operations.h
-#usr/include/c++/4.9.3/parallel/settings.h
-#usr/include/c++/4.9.3/parallel/sort.h
-#usr/include/c++/4.9.3/parallel/tags.h
-#usr/include/c++/4.9.3/parallel/types.h
-#usr/include/c++/4.9.3/parallel/unique_copy.h
-#usr/include/c++/4.9.3/parallel/workstealing.h
-#usr/include/c++/4.9.3/profile
-#usr/include/c++/4.9.3/profile/array
-#usr/include/c++/4.9.3/profile/base.h
-#usr/include/c++/4.9.3/profile/bitset
-#usr/include/c++/4.9.3/profile/deque
-#usr/include/c++/4.9.3/profile/forward_list
-#usr/include/c++/4.9.3/profile/impl
-#usr/include/c++/4.9.3/profile/impl/profiler.h
-#usr/include/c++/4.9.3/profile/impl/profiler_algos.h
-#usr/include/c++/4.9.3/profile/impl/profiler_container_size.h
-#usr/include/c++/4.9.3/profile/impl/profiler_hash_func.h
-#usr/include/c++/4.9.3/profile/impl/profiler_hashtable_size.h
-#usr/include/c++/4.9.3/profile/impl/profiler_list_to_slist.h
-#usr/include/c++/4.9.3/profile/impl/profiler_list_to_vector.h
-#usr/include/c++/4.9.3/profile/impl/profiler_map_to_unordered_map.h
-#usr/include/c++/4.9.3/profile/impl/profiler_node.h
-#usr/include/c++/4.9.3/profile/impl/profiler_state.h
-#usr/include/c++/4.9.3/profile/impl/profiler_trace.h
-#usr/include/c++/4.9.3/profile/impl/profiler_vector_size.h
-#usr/include/c++/4.9.3/profile/impl/profiler_vector_to_list.h
-#usr/include/c++/4.9.3/profile/iterator_tracker.h
-#usr/include/c++/4.9.3/profile/list
-#usr/include/c++/4.9.3/profile/map
-#usr/include/c++/4.9.3/profile/map.h
-#usr/include/c++/4.9.3/profile/multimap.h
-#usr/include/c++/4.9.3/profile/multiset.h
-#usr/include/c++/4.9.3/profile/set
-#usr/include/c++/4.9.3/profile/set.h
-#usr/include/c++/4.9.3/profile/unordered_base.h
-#usr/include/c++/4.9.3/profile/unordered_map
-#usr/include/c++/4.9.3/profile/unordered_set
-#usr/include/c++/4.9.3/profile/vector
-#usr/include/c++/4.9.3/queue
-#usr/include/c++/4.9.3/random
-#usr/include/c++/4.9.3/ratio
-#usr/include/c++/4.9.3/regex
-#usr/include/c++/4.9.3/scoped_allocator
-#usr/include/c++/4.9.3/set
-#usr/include/c++/4.9.3/shared_mutex
-#usr/include/c++/4.9.3/sstream
-#usr/include/c++/4.9.3/stack
-#usr/include/c++/4.9.3/stdexcept
-#usr/include/c++/4.9.3/streambuf
-#usr/include/c++/4.9.3/string
-#usr/include/c++/4.9.3/system_error
-#usr/include/c++/4.9.3/tgmath.h
-#usr/include/c++/4.9.3/thread
-#usr/include/c++/4.9.3/tr1
-#usr/include/c++/4.9.3/tr1/array
-#usr/include/c++/4.9.3/tr1/bessel_function.tcc
-#usr/include/c++/4.9.3/tr1/beta_function.tcc
-#usr/include/c++/4.9.3/tr1/ccomplex
-#usr/include/c++/4.9.3/tr1/cctype
-#usr/include/c++/4.9.3/tr1/cfenv
-#usr/include/c++/4.9.3/tr1/cfloat
-#usr/include/c++/4.9.3/tr1/cinttypes
-#usr/include/c++/4.9.3/tr1/climits
-#usr/include/c++/4.9.3/tr1/cmath
-#usr/include/c++/4.9.3/tr1/complex
-#usr/include/c++/4.9.3/tr1/complex.h
-#usr/include/c++/4.9.3/tr1/cstdarg
-#usr/include/c++/4.9.3/tr1/cstdbool
-#usr/include/c++/4.9.3/tr1/cstdint
-#usr/include/c++/4.9.3/tr1/cstdio
-#usr/include/c++/4.9.3/tr1/cstdlib
-#usr/include/c++/4.9.3/tr1/ctgmath
-#usr/include/c++/4.9.3/tr1/ctime
-#usr/include/c++/4.9.3/tr1/ctype.h
-#usr/include/c++/4.9.3/tr1/cwchar
-#usr/include/c++/4.9.3/tr1/cwctype
-#usr/include/c++/4.9.3/tr1/ell_integral.tcc
-#usr/include/c++/4.9.3/tr1/exp_integral.tcc
-#usr/include/c++/4.9.3/tr1/fenv.h
-#usr/include/c++/4.9.3/tr1/float.h
-#usr/include/c++/4.9.3/tr1/functional
-#usr/include/c++/4.9.3/tr1/functional_hash.h
-#usr/include/c++/4.9.3/tr1/gamma.tcc
-#usr/include/c++/4.9.3/tr1/hashtable.h
-#usr/include/c++/4.9.3/tr1/hashtable_policy.h
-#usr/include/c++/4.9.3/tr1/hypergeometric.tcc
-#usr/include/c++/4.9.3/tr1/inttypes.h
-#usr/include/c++/4.9.3/tr1/legendre_function.tcc
-#usr/include/c++/4.9.3/tr1/limits.h
-#usr/include/c++/4.9.3/tr1/math.h
-#usr/include/c++/4.9.3/tr1/memory
-#usr/include/c++/4.9.3/tr1/modified_bessel_func.tcc
-#usr/include/c++/4.9.3/tr1/poly_hermite.tcc
-#usr/include/c++/4.9.3/tr1/poly_laguerre.tcc
-#usr/include/c++/4.9.3/tr1/random
-#usr/include/c++/4.9.3/tr1/random.h
-#usr/include/c++/4.9.3/tr1/random.tcc
-#usr/include/c++/4.9.3/tr1/regex
-#usr/include/c++/4.9.3/tr1/riemann_zeta.tcc
-#usr/include/c++/4.9.3/tr1/shared_ptr.h
-#usr/include/c++/4.9.3/tr1/special_function_util.h
-#usr/include/c++/4.9.3/tr1/stdarg.h
-#usr/include/c++/4.9.3/tr1/stdbool.h
-#usr/include/c++/4.9.3/tr1/stdint.h
-#usr/include/c++/4.9.3/tr1/stdio.h
-#usr/include/c++/4.9.3/tr1/stdlib.h
-#usr/include/c++/4.9.3/tr1/tgmath.h
-#usr/include/c++/4.9.3/tr1/tuple
-#usr/include/c++/4.9.3/tr1/type_traits
-#usr/include/c++/4.9.3/tr1/unordered_map
-#usr/include/c++/4.9.3/tr1/unordered_map.h
-#usr/include/c++/4.9.3/tr1/unordered_set
-#usr/include/c++/4.9.3/tr1/unordered_set.h
-#usr/include/c++/4.9.3/tr1/utility
-#usr/include/c++/4.9.3/tr1/wchar.h
-#usr/include/c++/4.9.3/tr1/wctype.h
-#usr/include/c++/4.9.3/tr2
-#usr/include/c++/4.9.3/tr2/bool_set
-#usr/include/c++/4.9.3/tr2/bool_set.tcc
-#usr/include/c++/4.9.3/tr2/dynamic_bitset
-#usr/include/c++/4.9.3/tr2/dynamic_bitset.tcc
-#usr/include/c++/4.9.3/tr2/ratio
-#usr/include/c++/4.9.3/tr2/type_traits
-#usr/include/c++/4.9.3/tuple
-#usr/include/c++/4.9.3/type_traits
-#usr/include/c++/4.9.3/typeindex
-#usr/include/c++/4.9.3/typeinfo
-#usr/include/c++/4.9.3/unordered_map
-#usr/include/c++/4.9.3/unordered_set
-#usr/include/c++/4.9.3/utility
-#usr/include/c++/4.9.3/valarray
-#usr/include/c++/4.9.3/vector
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/atomic_word.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/basic_file.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/c++allocator.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/c++config.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/c++io.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/c++locale.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/cpu_defines.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/ctype_base.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/ctype_inline.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/cxxabi_tweaks.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/error_constants.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/extc++.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/gthr-default.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/gthr-posix.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/gthr-single.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/gthr.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/messages_members.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/opt_random.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/os_defines.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/stdc++.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/stdtr1c++.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/bits/time_members.h
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/ext
-#usr/include/c++/4.9.3/x86_64-unknown-linux-gnu/ext/opt_random.h
+#usr/include/c++/6.3.0
+#usr/include/c++/6.3.0/algorithm
+#usr/include/c++/6.3.0/array
+#usr/include/c++/6.3.0/atomic
+#usr/include/c++/6.3.0/backward
+#usr/include/c++/6.3.0/backward/auto_ptr.h
+#usr/include/c++/6.3.0/backward/backward_warning.h
+#usr/include/c++/6.3.0/backward/binders.h
+#usr/include/c++/6.3.0/backward/hash_fun.h
+#usr/include/c++/6.3.0/backward/hash_map
+#usr/include/c++/6.3.0/backward/hash_set
+#usr/include/c++/6.3.0/backward/hashtable.h
+#usr/include/c++/6.3.0/backward/strstream
+#usr/include/c++/6.3.0/bits
+#usr/include/c++/6.3.0/bits/algorithmfwd.h
+#usr/include/c++/6.3.0/bits/alloc_traits.h
+#usr/include/c++/6.3.0/bits/allocated_ptr.h
+#usr/include/c++/6.3.0/bits/allocator.h
+#usr/include/c++/6.3.0/bits/atomic_base.h
+#usr/include/c++/6.3.0/bits/atomic_futex.h
+#usr/include/c++/6.3.0/bits/atomic_lockfree_defines.h
+#usr/include/c++/6.3.0/bits/basic_ios.h
+#usr/include/c++/6.3.0/bits/basic_ios.tcc
+#usr/include/c++/6.3.0/bits/basic_string.h
+#usr/include/c++/6.3.0/bits/basic_string.tcc
+#usr/include/c++/6.3.0/bits/boost_concept_check.h
+#usr/include/c++/6.3.0/bits/c++0x_warning.h
+#usr/include/c++/6.3.0/bits/c++14_warning.h
+#usr/include/c++/6.3.0/bits/char_traits.h
+#usr/include/c++/6.3.0/bits/codecvt.h
+#usr/include/c++/6.3.0/bits/concept_check.h
+#usr/include/c++/6.3.0/bits/cpp_type_traits.h
+#usr/include/c++/6.3.0/bits/cxxabi_forced.h
+#usr/include/c++/6.3.0/bits/deque.tcc
+#usr/include/c++/6.3.0/bits/enable_special_members.h
+#usr/include/c++/6.3.0/bits/exception_defines.h
+#usr/include/c++/6.3.0/bits/exception_ptr.h
+#usr/include/c++/6.3.0/bits/forward_list.h
+#usr/include/c++/6.3.0/bits/forward_list.tcc
+#usr/include/c++/6.3.0/bits/fstream.tcc
+#usr/include/c++/6.3.0/bits/functexcept.h
+#usr/include/c++/6.3.0/bits/functional_hash.h
+#usr/include/c++/6.3.0/bits/gslice.h
+#usr/include/c++/6.3.0/bits/gslice_array.h
+#usr/include/c++/6.3.0/bits/hash_bytes.h
+#usr/include/c++/6.3.0/bits/hashtable.h
+#usr/include/c++/6.3.0/bits/hashtable_policy.h
+#usr/include/c++/6.3.0/bits/indirect_array.h
+#usr/include/c++/6.3.0/bits/ios_base.h
+#usr/include/c++/6.3.0/bits/istream.tcc
+#usr/include/c++/6.3.0/bits/list.tcc
+#usr/include/c++/6.3.0/bits/locale_classes.h
+#usr/include/c++/6.3.0/bits/locale_classes.tcc
+#usr/include/c++/6.3.0/bits/locale_conv.h
+#usr/include/c++/6.3.0/bits/locale_facets.h
+#usr/include/c++/6.3.0/bits/locale_facets.tcc
+#usr/include/c++/6.3.0/bits/locale_facets_nonio.h
+#usr/include/c++/6.3.0/bits/locale_facets_nonio.tcc
+#usr/include/c++/6.3.0/bits/localefwd.h
+#usr/include/c++/6.3.0/bits/mask_array.h
+#usr/include/c++/6.3.0/bits/memoryfwd.h
+#usr/include/c++/6.3.0/bits/move.h
+#usr/include/c++/6.3.0/bits/nested_exception.h
+#usr/include/c++/6.3.0/bits/ostream.tcc
+#usr/include/c++/6.3.0/bits/ostream_insert.h
+#usr/include/c++/6.3.0/bits/parse_numbers.h
+#usr/include/c++/6.3.0/bits/postypes.h
+#usr/include/c++/6.3.0/bits/predefined_ops.h
+#usr/include/c++/6.3.0/bits/ptr_traits.h
+#usr/include/c++/6.3.0/bits/quoted_string.h
+#usr/include/c++/6.3.0/bits/random.h
+#usr/include/c++/6.3.0/bits/random.tcc
+#usr/include/c++/6.3.0/bits/range_access.h
+#usr/include/c++/6.3.0/bits/regex.h
+#usr/include/c++/6.3.0/bits/regex.tcc
+#usr/include/c++/6.3.0/bits/regex_automaton.h
+#usr/include/c++/6.3.0/bits/regex_automaton.tcc
+#usr/include/c++/6.3.0/bits/regex_compiler.h
+#usr/include/c++/6.3.0/bits/regex_compiler.tcc
+#usr/include/c++/6.3.0/bits/regex_constants.h
+#usr/include/c++/6.3.0/bits/regex_error.h
+#usr/include/c++/6.3.0/bits/regex_executor.h
+#usr/include/c++/6.3.0/bits/regex_executor.tcc
+#usr/include/c++/6.3.0/bits/regex_scanner.h
+#usr/include/c++/6.3.0/bits/regex_scanner.tcc
+#usr/include/c++/6.3.0/bits/shared_ptr.h
+#usr/include/c++/6.3.0/bits/shared_ptr_atomic.h
+#usr/include/c++/6.3.0/bits/shared_ptr_base.h
+#usr/include/c++/6.3.0/bits/slice_array.h
+#usr/include/c++/6.3.0/bits/specfun.h
+#usr/include/c++/6.3.0/bits/sstream.tcc
+#usr/include/c++/6.3.0/bits/std_mutex.h
+#usr/include/c++/6.3.0/bits/stl_algo.h
+#usr/include/c++/6.3.0/bits/stl_algobase.h
+#usr/include/c++/6.3.0/bits/stl_bvector.h
+#usr/include/c++/6.3.0/bits/stl_construct.h
+#usr/include/c++/6.3.0/bits/stl_deque.h
+#usr/include/c++/6.3.0/bits/stl_function.h
+#usr/include/c++/6.3.0/bits/stl_heap.h
+#usr/include/c++/6.3.0/bits/stl_iterator.h
+#usr/include/c++/6.3.0/bits/stl_iterator_base_funcs.h
+#usr/include/c++/6.3.0/bits/stl_iterator_base_types.h
+#usr/include/c++/6.3.0/bits/stl_list.h
+#usr/include/c++/6.3.0/bits/stl_map.h
+#usr/include/c++/6.3.0/bits/stl_multimap.h
+#usr/include/c++/6.3.0/bits/stl_multiset.h
+#usr/include/c++/6.3.0/bits/stl_numeric.h
+#usr/include/c++/6.3.0/bits/stl_pair.h
+#usr/include/c++/6.3.0/bits/stl_queue.h
+#usr/include/c++/6.3.0/bits/stl_raw_storage_iter.h
+#usr/include/c++/6.3.0/bits/stl_relops.h
+#usr/include/c++/6.3.0/bits/stl_set.h
+#usr/include/c++/6.3.0/bits/stl_stack.h
+#usr/include/c++/6.3.0/bits/stl_tempbuf.h
+#usr/include/c++/6.3.0/bits/stl_tree.h
+#usr/include/c++/6.3.0/bits/stl_uninitialized.h
+#usr/include/c++/6.3.0/bits/stl_vector.h
+#usr/include/c++/6.3.0/bits/stream_iterator.h
+#usr/include/c++/6.3.0/bits/streambuf.tcc
+#usr/include/c++/6.3.0/bits/streambuf_iterator.h
+#usr/include/c++/6.3.0/bits/stringfwd.h
+#usr/include/c++/6.3.0/bits/uniform_int_dist.h
+#usr/include/c++/6.3.0/bits/unique_ptr.h
+#usr/include/c++/6.3.0/bits/unordered_map.h
+#usr/include/c++/6.3.0/bits/unordered_set.h
+#usr/include/c++/6.3.0/bits/uses_allocator.h
+#usr/include/c++/6.3.0/bits/valarray_after.h
+#usr/include/c++/6.3.0/bits/valarray_array.h
+#usr/include/c++/6.3.0/bits/valarray_array.tcc
+#usr/include/c++/6.3.0/bits/valarray_before.h
+#usr/include/c++/6.3.0/bits/vector.tcc
+#usr/include/c++/6.3.0/bitset
+#usr/include/c++/6.3.0/cassert
+#usr/include/c++/6.3.0/ccomplex
+#usr/include/c++/6.3.0/cctype
+#usr/include/c++/6.3.0/cerrno
+#usr/include/c++/6.3.0/cfenv
+#usr/include/c++/6.3.0/cfloat
+#usr/include/c++/6.3.0/chrono
+#usr/include/c++/6.3.0/cinttypes
+#usr/include/c++/6.3.0/ciso646
+#usr/include/c++/6.3.0/climits
+#usr/include/c++/6.3.0/clocale
+#usr/include/c++/6.3.0/cmath
+#usr/include/c++/6.3.0/codecvt
+#usr/include/c++/6.3.0/complex
+#usr/include/c++/6.3.0/complex.h
+#usr/include/c++/6.3.0/condition_variable
+#usr/include/c++/6.3.0/csetjmp
+#usr/include/c++/6.3.0/csignal
+#usr/include/c++/6.3.0/cstdalign
+#usr/include/c++/6.3.0/cstdarg
+#usr/include/c++/6.3.0/cstdbool
+#usr/include/c++/6.3.0/cstddef
+#usr/include/c++/6.3.0/cstdint
+#usr/include/c++/6.3.0/cstdio
+#usr/include/c++/6.3.0/cstdlib
+#usr/include/c++/6.3.0/cstring
+#usr/include/c++/6.3.0/ctgmath
+#usr/include/c++/6.3.0/ctime
+#usr/include/c++/6.3.0/cuchar
+#usr/include/c++/6.3.0/cwchar
+#usr/include/c++/6.3.0/cwctype
+#usr/include/c++/6.3.0/cxxabi.h
+#usr/include/c++/6.3.0/debug
+#usr/include/c++/6.3.0/debug/array
+#usr/include/c++/6.3.0/debug/assertions.h
+#usr/include/c++/6.3.0/debug/bitset
+#usr/include/c++/6.3.0/debug/debug.h
+#usr/include/c++/6.3.0/debug/deque
+#usr/include/c++/6.3.0/debug/formatter.h
+#usr/include/c++/6.3.0/debug/forward_list
+#usr/include/c++/6.3.0/debug/functions.h
+#usr/include/c++/6.3.0/debug/helper_functions.h
+#usr/include/c++/6.3.0/debug/list
+#usr/include/c++/6.3.0/debug/macros.h
+#usr/include/c++/6.3.0/debug/map
+#usr/include/c++/6.3.0/debug/map.h
+#usr/include/c++/6.3.0/debug/multimap.h
+#usr/include/c++/6.3.0/debug/multiset.h
+#usr/include/c++/6.3.0/debug/safe_base.h
+#usr/include/c++/6.3.0/debug/safe_container.h
+#usr/include/c++/6.3.0/debug/safe_iterator.h
+#usr/include/c++/6.3.0/debug/safe_iterator.tcc
+#usr/include/c++/6.3.0/debug/safe_local_iterator.h
+#usr/include/c++/6.3.0/debug/safe_local_iterator.tcc
+#usr/include/c++/6.3.0/debug/safe_sequence.h
+#usr/include/c++/6.3.0/debug/safe_sequence.tcc
+#usr/include/c++/6.3.0/debug/safe_unordered_base.h
+#usr/include/c++/6.3.0/debug/safe_unordered_container.h
+#usr/include/c++/6.3.0/debug/safe_unordered_container.tcc
+#usr/include/c++/6.3.0/debug/set
+#usr/include/c++/6.3.0/debug/set.h
+#usr/include/c++/6.3.0/debug/stl_iterator.h
+#usr/include/c++/6.3.0/debug/string
+#usr/include/c++/6.3.0/debug/unordered_map
+#usr/include/c++/6.3.0/debug/unordered_set
+#usr/include/c++/6.3.0/debug/vector
+#usr/include/c++/6.3.0/decimal
+#usr/include/c++/6.3.0/decimal/decimal
+#usr/include/c++/6.3.0/decimal/decimal.h
+#usr/include/c++/6.3.0/deque
+#usr/include/c++/6.3.0/exception
+#usr/include/c++/6.3.0/experimental
+#usr/include/c++/6.3.0/experimental/algorithm
+#usr/include/c++/6.3.0/experimental/any
+#usr/include/c++/6.3.0/experimental/array
+#usr/include/c++/6.3.0/experimental/bits
+#usr/include/c++/6.3.0/experimental/bits/erase_if.h
+#usr/include/c++/6.3.0/experimental/bits/fs_dir.h
+#usr/include/c++/6.3.0/experimental/bits/fs_fwd.h
+#usr/include/c++/6.3.0/experimental/bits/fs_ops.h
+#usr/include/c++/6.3.0/experimental/bits/fs_path.h
+#usr/include/c++/6.3.0/experimental/bits/lfts_config.h
+#usr/include/c++/6.3.0/experimental/bits/shared_ptr.h
+#usr/include/c++/6.3.0/experimental/bits/string_view.tcc
+#usr/include/c++/6.3.0/experimental/chrono
+#usr/include/c++/6.3.0/experimental/deque
+#usr/include/c++/6.3.0/experimental/filesystem
+#usr/include/c++/6.3.0/experimental/forward_list
+#usr/include/c++/6.3.0/experimental/functional
+#usr/include/c++/6.3.0/experimental/iterator
+#usr/include/c++/6.3.0/experimental/list
+#usr/include/c++/6.3.0/experimental/map
+#usr/include/c++/6.3.0/experimental/memory
+#usr/include/c++/6.3.0/experimental/memory_resource
+#usr/include/c++/6.3.0/experimental/numeric
+#usr/include/c++/6.3.0/experimental/optional
+#usr/include/c++/6.3.0/experimental/propagate_const
+#usr/include/c++/6.3.0/experimental/random
+#usr/include/c++/6.3.0/experimental/ratio
+#usr/include/c++/6.3.0/experimental/regex
+#usr/include/c++/6.3.0/experimental/set
+#usr/include/c++/6.3.0/experimental/string
+#usr/include/c++/6.3.0/experimental/string_view
+#usr/include/c++/6.3.0/experimental/system_error
+#usr/include/c++/6.3.0/experimental/tuple
+#usr/include/c++/6.3.0/experimental/type_traits
+#usr/include/c++/6.3.0/experimental/unordered_map
+#usr/include/c++/6.3.0/experimental/unordered_set
+#usr/include/c++/6.3.0/experimental/utility
+#usr/include/c++/6.3.0/experimental/vector
+#usr/include/c++/6.3.0/ext
+#usr/include/c++/6.3.0/ext/algorithm
+#usr/include/c++/6.3.0/ext/aligned_buffer.h
+#usr/include/c++/6.3.0/ext/alloc_traits.h
+#usr/include/c++/6.3.0/ext/array_allocator.h
+#usr/include/c++/6.3.0/ext/atomicity.h
+#usr/include/c++/6.3.0/ext/bitmap_allocator.h
+#usr/include/c++/6.3.0/ext/cast.h
+#usr/include/c++/6.3.0/ext/cmath
+#usr/include/c++/6.3.0/ext/codecvt_specializations.h
+#usr/include/c++/6.3.0/ext/concurrence.h
+#usr/include/c++/6.3.0/ext/debug_allocator.h
+#usr/include/c++/6.3.0/ext/enc_filebuf.h
+#usr/include/c++/6.3.0/ext/extptr_allocator.h
+#usr/include/c++/6.3.0/ext/functional
+#usr/include/c++/6.3.0/ext/hash_map
+#usr/include/c++/6.3.0/ext/hash_set
+#usr/include/c++/6.3.0/ext/iterator
+#usr/include/c++/6.3.0/ext/malloc_allocator.h
+#usr/include/c++/6.3.0/ext/memory
+#usr/include/c++/6.3.0/ext/mt_allocator.h
+#usr/include/c++/6.3.0/ext/new_allocator.h
+#usr/include/c++/6.3.0/ext/numeric
+#usr/include/c++/6.3.0/ext/numeric_traits.h
+#usr/include/c++/6.3.0/ext/pb_ds
+#usr/include/c++/6.3.0/ext/pb_ds/assoc_container.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/bin_search_tree_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy/branch_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/branch_policy/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/cond_dealtor.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/container_base_dispatch.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/debug_map_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/eq_fn
+#usr/include/c++/6.3.0/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/point_const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_policy/lu_counter_metadata.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/ov_tree_map_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/synth_access_traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/node.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rb_tree_map_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/node.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/splay_tree_/traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/standard_policies.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/tree_trace_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/type_utils.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/types_traits.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/exception.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/hash_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/list_update_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/priority_queue.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/tag_and_trait.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/tree_policy.hpp
+#usr/include/c++/6.3.0/ext/pb_ds/trie_policy.hpp
+#usr/include/c++/6.3.0/ext/pod_char_traits.h
+#usr/include/c++/6.3.0/ext/pointer.h
+#usr/include/c++/6.3.0/ext/pool_allocator.h
+#usr/include/c++/6.3.0/ext/random
+#usr/include/c++/6.3.0/ext/random.tcc
+#usr/include/c++/6.3.0/ext/rb_tree
+#usr/include/c++/6.3.0/ext/rc_string_base.h
+#usr/include/c++/6.3.0/ext/rope
+#usr/include/c++/6.3.0/ext/ropeimpl.h
+#usr/include/c++/6.3.0/ext/slist
+#usr/include/c++/6.3.0/ext/sso_string_base.h
+#usr/include/c++/6.3.0/ext/stdio_filebuf.h
+#usr/include/c++/6.3.0/ext/stdio_sync_filebuf.h
+#usr/include/c++/6.3.0/ext/string_conversions.h
+#usr/include/c++/6.3.0/ext/throw_allocator.h
+#usr/include/c++/6.3.0/ext/type_traits.h
+#usr/include/c++/6.3.0/ext/typelist.h
+#usr/include/c++/6.3.0/ext/vstring.h
+#usr/include/c++/6.3.0/ext/vstring.tcc
+#usr/include/c++/6.3.0/ext/vstring_fwd.h
+#usr/include/c++/6.3.0/ext/vstring_util.h
+#usr/include/c++/6.3.0/fenv.h
+#usr/include/c++/6.3.0/forward_list
+#usr/include/c++/6.3.0/fstream
+#usr/include/c++/6.3.0/functional
+#usr/include/c++/6.3.0/future
+#usr/include/c++/6.3.0/initializer_list
+#usr/include/c++/6.3.0/iomanip
+#usr/include/c++/6.3.0/ios
+#usr/include/c++/6.3.0/iosfwd
+#usr/include/c++/6.3.0/iostream
+#usr/include/c++/6.3.0/istream
+#usr/include/c++/6.3.0/iterator
+#usr/include/c++/6.3.0/limits
+#usr/include/c++/6.3.0/list
+#usr/include/c++/6.3.0/locale
+#usr/include/c++/6.3.0/map
+#usr/include/c++/6.3.0/math.h
+#usr/include/c++/6.3.0/memory
+#usr/include/c++/6.3.0/mutex
+#usr/include/c++/6.3.0/new
+#usr/include/c++/6.3.0/numeric
+#usr/include/c++/6.3.0/ostream
+#usr/include/c++/6.3.0/parallel
+#usr/include/c++/6.3.0/parallel/algo.h
+#usr/include/c++/6.3.0/parallel/algobase.h
+#usr/include/c++/6.3.0/parallel/algorithm
+#usr/include/c++/6.3.0/parallel/algorithmfwd.h
+#usr/include/c++/6.3.0/parallel/balanced_quicksort.h
+#usr/include/c++/6.3.0/parallel/base.h
+#usr/include/c++/6.3.0/parallel/basic_iterator.h
+#usr/include/c++/6.3.0/parallel/checkers.h
+#usr/include/c++/6.3.0/parallel/compatibility.h
+#usr/include/c++/6.3.0/parallel/compiletime_settings.h
+#usr/include/c++/6.3.0/parallel/equally_split.h
+#usr/include/c++/6.3.0/parallel/features.h
+#usr/include/c++/6.3.0/parallel/find.h
+#usr/include/c++/6.3.0/parallel/find_selectors.h
+#usr/include/c++/6.3.0/parallel/for_each.h
+#usr/include/c++/6.3.0/parallel/for_each_selectors.h
+#usr/include/c++/6.3.0/parallel/iterator.h
+#usr/include/c++/6.3.0/parallel/list_partition.h
+#usr/include/c++/6.3.0/parallel/losertree.h
+#usr/include/c++/6.3.0/parallel/merge.h
+#usr/include/c++/6.3.0/parallel/multiseq_selection.h
+#usr/include/c++/6.3.0/parallel/multiway_merge.h
+#usr/include/c++/6.3.0/parallel/multiway_mergesort.h
+#usr/include/c++/6.3.0/parallel/numeric
+#usr/include/c++/6.3.0/parallel/numericfwd.h
+#usr/include/c++/6.3.0/parallel/omp_loop.h
+#usr/include/c++/6.3.0/parallel/omp_loop_static.h
+#usr/include/c++/6.3.0/parallel/par_loop.h
+#usr/include/c++/6.3.0/parallel/parallel.h
+#usr/include/c++/6.3.0/parallel/partial_sum.h
+#usr/include/c++/6.3.0/parallel/partition.h
+#usr/include/c++/6.3.0/parallel/queue.h
+#usr/include/c++/6.3.0/parallel/quicksort.h
+#usr/include/c++/6.3.0/parallel/random_number.h
+#usr/include/c++/6.3.0/parallel/random_shuffle.h
+#usr/include/c++/6.3.0/parallel/search.h
+#usr/include/c++/6.3.0/parallel/set_operations.h
+#usr/include/c++/6.3.0/parallel/settings.h
+#usr/include/c++/6.3.0/parallel/sort.h
+#usr/include/c++/6.3.0/parallel/tags.h
+#usr/include/c++/6.3.0/parallel/types.h
+#usr/include/c++/6.3.0/parallel/unique_copy.h
+#usr/include/c++/6.3.0/parallel/workstealing.h
+#usr/include/c++/6.3.0/profile
+#usr/include/c++/6.3.0/profile/array
+#usr/include/c++/6.3.0/profile/base.h
+#usr/include/c++/6.3.0/profile/bitset
+#usr/include/c++/6.3.0/profile/deque
+#usr/include/c++/6.3.0/profile/forward_list
+#usr/include/c++/6.3.0/profile/impl
+#usr/include/c++/6.3.0/profile/impl/profiler.h
+#usr/include/c++/6.3.0/profile/impl/profiler_algos.h
+#usr/include/c++/6.3.0/profile/impl/profiler_container_size.h
+#usr/include/c++/6.3.0/profile/impl/profiler_hash_func.h
+#usr/include/c++/6.3.0/profile/impl/profiler_hashtable_size.h
+#usr/include/c++/6.3.0/profile/impl/profiler_list_to_slist.h
+#usr/include/c++/6.3.0/profile/impl/profiler_list_to_vector.h
+#usr/include/c++/6.3.0/profile/impl/profiler_map_to_unordered_map.h
+#usr/include/c++/6.3.0/profile/impl/profiler_node.h
+#usr/include/c++/6.3.0/profile/impl/profiler_state.h
+#usr/include/c++/6.3.0/profile/impl/profiler_trace.h
+#usr/include/c++/6.3.0/profile/impl/profiler_vector_size.h
+#usr/include/c++/6.3.0/profile/impl/profiler_vector_to_list.h
+#usr/include/c++/6.3.0/profile/iterator_tracker.h
+#usr/include/c++/6.3.0/profile/list
+#usr/include/c++/6.3.0/profile/map
+#usr/include/c++/6.3.0/profile/map.h
+#usr/include/c++/6.3.0/profile/multimap.h
+#usr/include/c++/6.3.0/profile/multiset.h
+#usr/include/c++/6.3.0/profile/ordered_base.h
+#usr/include/c++/6.3.0/profile/set
+#usr/include/c++/6.3.0/profile/set.h
+#usr/include/c++/6.3.0/profile/unordered_base.h
+#usr/include/c++/6.3.0/profile/unordered_map
+#usr/include/c++/6.3.0/profile/unordered_set
+#usr/include/c++/6.3.0/profile/vector
+#usr/include/c++/6.3.0/queue
+#usr/include/c++/6.3.0/random
+#usr/include/c++/6.3.0/ratio
+#usr/include/c++/6.3.0/regex
+#usr/include/c++/6.3.0/scoped_allocator
+#usr/include/c++/6.3.0/set
+#usr/include/c++/6.3.0/shared_mutex
+#usr/include/c++/6.3.0/sstream
+#usr/include/c++/6.3.0/stack
+#usr/include/c++/6.3.0/stdexcept
+#usr/include/c++/6.3.0/stdlib.h
+#usr/include/c++/6.3.0/streambuf
+#usr/include/c++/6.3.0/string
+#usr/include/c++/6.3.0/system_error
+#usr/include/c++/6.3.0/tgmath.h
+#usr/include/c++/6.3.0/thread
+#usr/include/c++/6.3.0/tr1
+#usr/include/c++/6.3.0/tr1/array
+#usr/include/c++/6.3.0/tr1/bessel_function.tcc
+#usr/include/c++/6.3.0/tr1/beta_function.tcc
+#usr/include/c++/6.3.0/tr1/ccomplex
+#usr/include/c++/6.3.0/tr1/cctype
+#usr/include/c++/6.3.0/tr1/cfenv
+#usr/include/c++/6.3.0/tr1/cfloat
+#usr/include/c++/6.3.0/tr1/cinttypes
+#usr/include/c++/6.3.0/tr1/climits
+#usr/include/c++/6.3.0/tr1/cmath
+#usr/include/c++/6.3.0/tr1/complex
+#usr/include/c++/6.3.0/tr1/complex.h
+#usr/include/c++/6.3.0/tr1/cstdarg
+#usr/include/c++/6.3.0/tr1/cstdbool
+#usr/include/c++/6.3.0/tr1/cstdint
+#usr/include/c++/6.3.0/tr1/cstdio
+#usr/include/c++/6.3.0/tr1/cstdlib
+#usr/include/c++/6.3.0/tr1/ctgmath
+#usr/include/c++/6.3.0/tr1/ctime
+#usr/include/c++/6.3.0/tr1/ctype.h
+#usr/include/c++/6.3.0/tr1/cwchar
+#usr/include/c++/6.3.0/tr1/cwctype
+#usr/include/c++/6.3.0/tr1/ell_integral.tcc
+#usr/include/c++/6.3.0/tr1/exp_integral.tcc
+#usr/include/c++/6.3.0/tr1/fenv.h
+#usr/include/c++/6.3.0/tr1/float.h
+#usr/include/c++/6.3.0/tr1/functional
+#usr/include/c++/6.3.0/tr1/functional_hash.h
+#usr/include/c++/6.3.0/tr1/gamma.tcc
+#usr/include/c++/6.3.0/tr1/hashtable.h
+#usr/include/c++/6.3.0/tr1/hashtable_policy.h
+#usr/include/c++/6.3.0/tr1/hypergeometric.tcc
+#usr/include/c++/6.3.0/tr1/inttypes.h
+#usr/include/c++/6.3.0/tr1/legendre_function.tcc
+#usr/include/c++/6.3.0/tr1/limits.h
+#usr/include/c++/6.3.0/tr1/math.h
+#usr/include/c++/6.3.0/tr1/memory
+#usr/include/c++/6.3.0/tr1/modified_bessel_func.tcc
+#usr/include/c++/6.3.0/tr1/poly_hermite.tcc
+#usr/include/c++/6.3.0/tr1/poly_laguerre.tcc
+#usr/include/c++/6.3.0/tr1/random
+#usr/include/c++/6.3.0/tr1/random.h
+#usr/include/c++/6.3.0/tr1/random.tcc
+#usr/include/c++/6.3.0/tr1/regex
+#usr/include/c++/6.3.0/tr1/riemann_zeta.tcc
+#usr/include/c++/6.3.0/tr1/shared_ptr.h
+#usr/include/c++/6.3.0/tr1/special_function_util.h
+#usr/include/c++/6.3.0/tr1/stdarg.h
+#usr/include/c++/6.3.0/tr1/stdbool.h
+#usr/include/c++/6.3.0/tr1/stdint.h
+#usr/include/c++/6.3.0/tr1/stdio.h
+#usr/include/c++/6.3.0/tr1/stdlib.h
+#usr/include/c++/6.3.0/tr1/tgmath.h
+#usr/include/c++/6.3.0/tr1/tuple
+#usr/include/c++/6.3.0/tr1/type_traits
+#usr/include/c++/6.3.0/tr1/unordered_map
+#usr/include/c++/6.3.0/tr1/unordered_map.h
+#usr/include/c++/6.3.0/tr1/unordered_set
+#usr/include/c++/6.3.0/tr1/unordered_set.h
+#usr/include/c++/6.3.0/tr1/utility
+#usr/include/c++/6.3.0/tr1/wchar.h
+#usr/include/c++/6.3.0/tr1/wctype.h
+#usr/include/c++/6.3.0/tr2
+#usr/include/c++/6.3.0/tr2/bool_set
+#usr/include/c++/6.3.0/tr2/bool_set.tcc
+#usr/include/c++/6.3.0/tr2/dynamic_bitset
+#usr/include/c++/6.3.0/tr2/dynamic_bitset.tcc
+#usr/include/c++/6.3.0/tr2/ratio
+#usr/include/c++/6.3.0/tr2/type_traits
+#usr/include/c++/6.3.0/tuple
+#usr/include/c++/6.3.0/type_traits
+#usr/include/c++/6.3.0/typeindex
+#usr/include/c++/6.3.0/typeinfo
+#usr/include/c++/6.3.0/unordered_map
+#usr/include/c++/6.3.0/unordered_set
+#usr/include/c++/6.3.0/utility
+#usr/include/c++/6.3.0/valarray
+#usr/include/c++/6.3.0/vector
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/atomic_word.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/basic_file.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/c++allocator.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/c++config.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/c++io.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/c++locale.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/cpu_defines.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/ctype_base.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/ctype_inline.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/cxxabi_tweaks.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/error_constants.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/extc++.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/gthr-default.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/gthr-posix.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/gthr-single.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/gthr.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/messages_members.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/opt_random.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/os_defines.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/stdc++.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/stdtr1c++.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/bits/time_members.h
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/ext
+#usr/include/c++/6.3.0/x86_64-pc-linux-gnu/ext/opt_random.h
 #usr/lib/gcc
-#usr/lib/gcc/x86_64-unknown-linux-gnu
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/cc1
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/cc1plus
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/collect2
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/crtbegin.o
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/crtbeginS.o
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/crtbeginT.o
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/crtend.o
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/crtendS.o
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/crtfastmath.o
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/crtprec32.o
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/crtprec64.o
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/crtprec80.o
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/finclude
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include-fixed
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include-fixed/README
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include-fixed/limits.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include-fixed/syslimits.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/adxintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/ammintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/avx2intrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/avx512cdintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/avx512erintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/avx512fintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/avx512pfintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/avxintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/bmi2intrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/bmiintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/bmmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/cilk.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/cilk_api.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/cilk_api_linux.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/cilk_stub.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/cilk_undocumented.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/common.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/holder.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/hyperobject_base.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/metaprogramming.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_file.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_list.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_max.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_min.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_min_max.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_opadd.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_opand.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_opmul.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_opor.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_opxor.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_ostream.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cilk/reducer_string.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cpuid.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/cross-stdarg.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/emmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/f16cintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/float.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/fma4intrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/fmaintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/fxsrintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/ia32intrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/immintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/iso646.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/lwpintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/lzcntintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/mm3dnow.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/mm_malloc.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/mmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/nmmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/omp.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/pmmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/popcntintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/prfchwintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/quadmath.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/quadmath_weak.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/rdseedintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/rtmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/sanitizer
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/sanitizer/asan_interface.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/sanitizer/common_interface_defs.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/sanitizer/lsan_interface.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/shaintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/smmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/ssp
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/ssp/ssp.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/ssp/stdio.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/ssp/string.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/ssp/unistd.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/stdalign.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/stdarg.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/stdatomic.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/stdbool.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/stddef.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/stdfix.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/stdint-gcc.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/stdint.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/stdnoreturn.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/tbmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/tmmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/unwind.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/varargs.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/wmmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/x86intrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/xmmintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/xopintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/xsaveintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/xsaveoptintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/include/xtestintrin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/fixinc.sh
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/fixinc_list
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/fixincl
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/gsyslimits.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/include
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/include/README
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/include/limits.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/macro_list
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/mkheaders
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/mkheaders.conf
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/install-tools/mkinstalldirs
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/libgcc.a
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/libgcc_eh.a
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/libgcov.a
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/liblto_plugin.la
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/liblto_plugin.so
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/liblto_plugin.so.0
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/liblto_plugin.so.0.0.0
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/lto1
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/gengtype
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/gtype.state
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ada
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ada/gcc-interface
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ada/gcc-interface/ada-tree.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/alias.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/all-tree.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/alloc-pool.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ansidecl.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/attribs.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/auto-host.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/b-header-vars
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/basic-block.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/bitmap.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/builtins.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/bversion.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/c-family
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/c-family/c-common.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/c-family/c-common.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/c-family/c-objc.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/c-family/c-pragma.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/c-family/c-pretty-print.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/c-tree.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/calls.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cfg-flags.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cfgexpand.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cfghooks.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cfgloop.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cgraph.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cif-code.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cilk-builtins.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cilkplus.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/dbxelf.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/elfos.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/glibc-stdint.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/gnu-user.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/att.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/biarch64.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/gnu-user-common.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/gnu-user64.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/i386-opts.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/i386-protos.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/i386.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/linux-common.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/linux64.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/stringop.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/unix.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/x86-64.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/i386/x86-tune.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/initfini-array.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/linux-android.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/linux-protos.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/linux.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/config/vxworks-dummy.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/configargs.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/context.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/coretypes.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cp
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cp/cp-tree.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cp/cp-tree.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cp/cxx-pretty-print.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cp/name-lookup.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cp/type-utils.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cppdefault.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/cpplib.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/debug.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/defaults.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/df.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/diagnostic-color.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/diagnostic-core.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/diagnostic.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/diagnostic.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/double-int.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/dumpfile.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/emit-rtl.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/except.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/filenames.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/fixed-value.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/flag-types.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/flags.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/fold-const.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/function.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gcc-plugin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gcc-symtab.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/genrtl.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ggc.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimple-builder.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimple-expr.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimple-fold.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimple-iterator.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimple-low.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimple-pretty-print.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimple-ssa.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimple-walk.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimple.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimple.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimplify-me.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gimplify.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gsstruct.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gtm-builtins.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/gtype-desc.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/hard-reg-set.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/hash-table.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/hashtab.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/highlev-plugin-common.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/hwint.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/incpath.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/input.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/insn-codes.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/insn-constants.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/insn-flags.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/insn-modes.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/insn-notes.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/internal-fn.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/internal-fn.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/intl.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ipa-prop.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ipa-ref-inline.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ipa-ref.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ipa-reference.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ipa-utils.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/is-a.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/java
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/java/java-tree.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/langhooks.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/libiberty.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/line-map.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/machmode.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/md5.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/mode-classes.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/objc
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/objc/objc-tree.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/obstack.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/omp-builtins.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/options.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/opts.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/output.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/params.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/params.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/pass-instances.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/pass_manager.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/plugin-api.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/plugin-version.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/plugin.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/plugin.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/pointer-set.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/predict.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/predict.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/prefix.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/pretty-print.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/print-rtl.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/print-tree.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/real.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/realmpfr.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/reg-notes.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/regset.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/resource.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/rtl.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/rtl.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/safe-ctype.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/sanitizer.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/sbitmap.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/splay-tree.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/ssa-iterators.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/statistics.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/stmt.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/stor-layout.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/stringpool.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/symtab.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/sync-builtins.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/system.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/target-hooks-macros.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/target.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/target.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/timevar.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/timevar.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tm-preds.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tm.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tm_p.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/toplev.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-cfg.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-cfgcleanup.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-check.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-core.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-dfa.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-dump.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-eh.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-hasher.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-inline.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-into-ssa.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-iterator.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-nested.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-object-size.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-outof-ssa.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-parloops.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-pass.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-phinodes.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-pretty-print.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-address.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-alias.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-coalesce.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-dom.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-loop-ivopts.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-loop-manip.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-loop-niter.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-loop.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-operands.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-sccvn.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-ter.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-threadedge.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa-threadupdate.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssa.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree-ssanames.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/tree.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/treestruct.def
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/varasm.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/vec.h
-#usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.3/plugin/include/version.h
+#usr/lib/gcc/x86_64-pc-linux-gnu
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/cc1
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/cc1plus
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/collect2
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtbegin.o
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtbeginS.o
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtbeginT.o
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtend.o
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtendS.o
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtfastmath.o
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtprec32.o
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtprec64.o
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/crtprec80.o
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include-fixed
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include-fixed/README
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include-fixed/limits.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include-fixed/syslimits.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/adxintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/ammintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx2intrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512bwintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512cdintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512dqintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512erintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512fintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512ifmaintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512ifmavlintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512pfintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512vbmiintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512vbmivlintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512vlbwintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512vldqintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avx512vlintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/avxintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/bmi2intrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/bmiintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/bmmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/cilk.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/cilk_api.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/cilk_api_linux.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/cilk_stub.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/cilk_undocumented.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/common.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/holder.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/hyperobject_base.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/metaprogramming.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_file.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_list.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_max.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_min.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_min_max.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_opadd.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_opand.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_opmul.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_opor.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_opxor.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_ostream.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cilk/reducer_string.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/clflushoptintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/clwbintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/clzerointrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cpuid.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/cross-stdarg.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/emmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/f16cintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/float.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/fma4intrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/fmaintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/fxsrintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/ia32intrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/immintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/iso646.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/lwpintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/lzcntintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/mm3dnow.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/mm_malloc.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/mmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/mwaitxintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/nmmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/omp.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/openacc.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/pkuintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/pmmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/popcntintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/prfchwintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/quadmath.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/quadmath_weak.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/rdseedintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/rtmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/sanitizer
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/sanitizer/asan_interface.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/sanitizer/common_interface_defs.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/sanitizer/lsan_interface.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/shaintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/smmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/ssp
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/ssp/ssp.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/ssp/stdio.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/ssp/string.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/ssp/unistd.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/stdalign.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/stdarg.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/stdatomic.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/stdbool.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/stddef.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/stdfix.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/stdint-gcc.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/stdint.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/stdnoreturn.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/tbmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/tmmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/unwind.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/varargs.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/wmmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/x86intrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/xmmintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/xopintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/xsavecintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/xsaveintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/xsaveoptintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/xsavesintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/include/xtestintrin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/fixinc.sh
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/fixinc_list
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/fixincl
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/gsyslimits.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/include
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/include/README
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/include/limits.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/macro_list
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/mkheaders
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/mkheaders.conf
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/install-tools/mkinstalldirs
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/libgcc.a
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/libgcc_eh.a
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/libgcov.a
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/liblto_plugin.la
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/liblto_plugin.so
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/liblto_plugin.so.0
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/liblto_plugin.so.0.0.0
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/lto-wrapper
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/lto1
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/gengtype
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/gtype.state
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ada
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ada/gcc-interface
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ada/gcc-interface/ada-tree.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/addresses.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/alias.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/all-tree.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/alloc-pool.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ansidecl.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/asan.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/attribs.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/auto-host.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/auto-profile.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/b-header-vars
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/backend.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/basic-block.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/bb-reorder.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/bitmap.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/builtin-attrs.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/builtin-types.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/builtins.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/builtins.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/bversion.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/c-family
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/c-family/c-common.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/c-family/c-common.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/c-family/c-objc.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/c-family/c-pragma.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/c-family/c-pretty-print.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/c-tree.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/calls.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ccmp.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cfg-flags.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cfg.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cfganal.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cfgbuild.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cfgcleanup.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cfgexpand.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cfghooks.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cfgloop.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cfgloopmanip.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cfgrtl.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cgraph.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/chkp-builtins.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cif-code.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cilk-builtins.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cilk.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cilkplus.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/collect-utils.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/collect2-aix.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/collect2.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/conditions.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/dbxelf.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/elfos.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/glibc-stdint.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/gnu-user.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/att.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/biarch64.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/gnu-user-common.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/gnu-user64.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/i386-opts.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/i386-protos.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/i386.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/linux-common.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/linux64.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/stringop.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/unix.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/x86-64.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/i386/x86-tune.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/initfini-array.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/linux-android.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/linux-protos.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/linux.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/config/vxworks-dummy.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/configargs.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/context.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/convert.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/coretypes.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/coverage.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cp
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cp/cp-tree.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cp/cp-tree.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cp/cxx-pretty-print.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cp/name-lookup.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cp/type-utils.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cppbuiltin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cppdefault.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cpplib.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/cselib.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/data-streamer.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/dbgcnt.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/dbgcnt.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/dbxout.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/dce.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ddg.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/debug.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/defaults.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/df.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/dfp.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/diagnostic-color.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/diagnostic-core.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/diagnostic.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/diagnostic.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/dojump.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/dominance.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/domwalk.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/double-int.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/dumpfile.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/dwarf2asm.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/dwarf2out.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/emit-rtl.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/errors.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/et-forest.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/except.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/explow.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/expmed.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/expr.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/fibonacci_heap.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/file-find.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/filenames.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/fixed-value.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/flag-types.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/flags.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/fold-const-call.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/fold-const.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/function.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gcc-plugin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gcc-rich-location.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gcc-symtab.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gcc.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gcov-counter.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gcov-io.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gcse-common.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gcse.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/generic-match.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gengtype.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/genrtl.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gensupport.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ggc-internal.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ggc.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-builder.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-expr.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-fold.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-iterator.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-low.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-match.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-predict.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-pretty-print.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-ssa.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-streamer.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple-walk.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimple.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimplify-me.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gimplify.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/glimits.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/graph.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/graphds.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/graphite.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gsstruct.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gstab.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gsyms.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gsyslimits.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gtm-builtins.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/gtype-desc.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hard-reg-set.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hash-map-traits.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hash-map.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hash-set.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hash-table.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hash-traits.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hashtab.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/highlev-plugin-common.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hooks.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hosthooks-def.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hosthooks.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hsa-brig-format.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hsa.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hw-doloop.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/hwint.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ifcvt.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/inchash.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/incpath.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/input.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/insn-addr.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/insn-codes.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/insn-constants.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/insn-flags.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/insn-modes.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/insn-notes.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/internal-fn.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/internal-fn.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/intl.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ipa-chkp.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ipa-icf-gimple.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ipa-icf.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ipa-inline.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ipa-prop.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ipa-ref.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ipa-reference.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ipa-utils.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ira-int.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ira.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/is-a.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/java
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/java/java-tree.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/langhooks-def.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/langhooks.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/lcm.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/libfuncs.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/libiberty.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/limitx.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/limity.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/line-map.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/loop-unroll.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/lower-subreg.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/lra-int.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/lra.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/lto-compress.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/lto-section-names.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/lto-streamer.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/machmode.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/machmode.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/md5.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/mem-stats-traits.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/mem-stats.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/memory-block.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/mode-classes.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/objc
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/objc/objc-tree.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/obstack.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/omp-builtins.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/omp-low.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/optabs-libfuncs.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/optabs-query.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/optabs-tree.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/optabs.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/optabs.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/options.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/opts-diagnostic.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/opts.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/output.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/params-enum.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/params-list.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/params.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/params.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/params.list
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/pass-instances.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/pass_manager.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/passes.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/plugin-api.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/plugin-version.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/plugin.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/plugin.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/predict.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/predict.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/prefix.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/pretty-print.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/print-rtl.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/print-tree.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/profile.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/read-md.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/real.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/realmpfr.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/recog.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/reg-notes.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/regcprop.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/regrename.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/regs.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/regset.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/reload.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/resource.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/rtl-chkp.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/rtl-error.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/rtl-iter.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/rtl.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/rtl.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/rtlhash.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/rtlhooks-def.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/safe-ctype.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sanitizer.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sbitmap.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sched-int.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sdbout.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sel-sched-dump.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sel-sched-ir.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sel-sched.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sese.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/shrink-wrap.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/signop.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sparseset.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/spellcheck.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/splay-tree.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sreal.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ssa-iterators.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ssa.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/stab.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/statistics.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/stmt.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/stor-layout.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/streamer-hooks.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/stringpool.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/symbol-summary.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/symtab.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/sync-builtins.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/system.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/target-def.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/target-globals.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/target-hooks-macros.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/target-insns.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/target.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/target.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/targhooks.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/timevar.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/timevar.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tm-preds.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tm.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tm_p.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/toplev.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tracer.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/trans-mem.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-affine.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-cfg.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-cfgcleanup.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-check.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-chkp.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-chrec.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-core.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-data-ref.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-dfa.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-diagnostic.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-dump.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-eh.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-hash-traits.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-hasher.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-inline.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-into-ssa.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-iterator.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-nested.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-object-size.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-outof-ssa.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-parloops.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-pass.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-phinodes.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-pretty-print.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-scalar-evolution.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-address.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-alias.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-coalesce.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-dom.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-live.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-loop-ivopts.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-loop-manip.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-loop-niter.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-loop.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-operands.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-propagate.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-sccvn.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-scopedtables.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-ter.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-threadbackward.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-threadedge.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa-threadupdate.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssa.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-ssanames.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-stdarg.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-streamer.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree-vectorizer.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tree.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/treestruct.def
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tsan.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/tsystem.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/typeclass.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/typed-splay-tree.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/ubsan.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/valtrack.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/value-prof.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/varasm.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/vec.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/version.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/vmsdbg.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/vtable-verify.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/wide-int-print.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/wide-int.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/xcoff.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/include/xcoffout.h
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/libcc1plugin.la
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/libcc1plugin.so
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/libcc1plugin.so.0
+#usr/lib/gcc/x86_64-pc-linux-gnu/6.3.0/plugin/libcc1plugin.so.0.0.0
 #usr/lib/libasan.a
 #usr/lib/libasan.la
 #usr/lib/libasan.so
-usr/lib/libasan.so.1
-usr/lib/libasan.so.1.0.0
+usr/lib/libasan.so.3
+usr/lib/libasan.so.3.0.0
 #usr/lib/libasan_preinit.o
 #usr/lib/libatomic.a
 #usr/lib/libatomic.la
 #usr/lib/libatomic.so
 usr/lib/libatomic.so.1
-usr/lib/libatomic.so.1.1.0
+usr/lib/libatomic.so.1.2.0
+#usr/lib/libcc1.la
+#usr/lib/libcc1.so
+usr/lib/libcc1.so.0
+usr/lib/libcc1.so.0.0.0
 #usr/lib/libcilkrts.a
 #usr/lib/libcilkrts.la
 #usr/lib/libcilkrts.so
@@ -1129,6 +1375,17 @@ usr/lib/libitm.so.1.0.0
 #usr/lib/liblsan.so
 usr/lib/liblsan.so.0
 usr/lib/liblsan.so.0.0.0
+#usr/lib/libmpx.a
+#usr/lib/libmpx.la
+#usr/lib/libmpx.so
+usr/lib/libmpx.so.2
+usr/lib/libmpx.so.2.0.0
+#usr/lib/libmpx.spec
+#usr/lib/libmpxwrappers.a
+#usr/lib/libmpxwrappers.la
+#usr/lib/libmpxwrappers.so
+usr/lib/libmpxwrappers.so.2
+usr/lib/libmpxwrappers.so.2.0.0
 #usr/lib/libquadmath.a
 #usr/lib/libquadmath.la
 #usr/lib/libquadmath.so
@@ -1143,8 +1400,9 @@ usr/lib/libquadmath.so.0.0.0
 #usr/lib/libssp_nonshared.a
 #usr/lib/libssp_nonshared.la
 #usr/lib/libstdc++.a
-usr/lib/libstdc++.so.6.0.20
-#usr/lib/libstdc++.so.6.0.20-gdb.py
+usr/lib/libstdc++.so.6.0.22
+#usr/lib/libstdc++fs.a
+#usr/lib/libstdc++fs.la
 #usr/lib/libsupc++.a
 #usr/lib/libsupc++.la
 #usr/lib/libtsan.a
@@ -1157,18 +1415,14 @@ usr/lib/libtsan.so.0.0.0
 #usr/lib/libubsan.so
 usr/lib/libubsan.so.0
 usr/lib/libubsan.so.0.0.0
-#usr/lib/libvtv.a
-#usr/lib/libvtv.la
-#usr/lib/libvtv.so
-usr/lib/libvtv.so.0
-usr/lib/libvtv.so.0.0.0
-#usr/share/gcc-4.9.3
-#usr/share/gcc-4.9.3/python
-#usr/share/gcc-4.9.3/python/libstdcxx
-#usr/share/gcc-4.9.3/python/libstdcxx/__init__.py
-#usr/share/gcc-4.9.3/python/libstdcxx/v6
-#usr/share/gcc-4.9.3/python/libstdcxx/v6/__init__.py
-#usr/share/gcc-4.9.3/python/libstdcxx/v6/printers.py
+#usr/share/gcc-6.3.0
+#usr/share/gcc-6.3.0/python
+#usr/share/gcc-6.3.0/python/libstdcxx
+#usr/share/gcc-6.3.0/python/libstdcxx/__init__.py
+#usr/share/gcc-6.3.0/python/libstdcxx/v6
+#usr/share/gcc-6.3.0/python/libstdcxx/v6/__init__.py
+#usr/share/gcc-6.3.0/python/libstdcxx/v6/printers.py
+#usr/share/gcc-6.3.0/python/libstdcxx/v6/xmethods.py
 #usr/share/info/cpp.info
 #usr/share/info/cppinternals.info
 #usr/share/info/gcc.info
index 98845c6f2ac3f335bbdad8eed3c874ff6ff88220..d42de2fe47ccded5d399c5e2518dc349dfe36e23 100644 (file)
@@ -1,48 +1,51 @@
 #etc/ld.so.cache
-etc/localtime
 etc/rpc
-lib/ld-2.12.so
+lib/ld-2.25.so
 lib/ld-linux-x86-64.so.2
-lib/libBrokenLocale-2.12.so
+lib/libBrokenLocale-2.25.so
 lib/libBrokenLocale.so.1
 #lib/libSegFault.so
-lib/libanl-2.12.so
+lib/libanl-2.25.so
 lib/libanl.so.1
-lib/libc-2.12.so
+lib/libc-2.25.so
 lib/libc.so.6
-lib/libcidn-2.12.so
+lib/libcidn-2.25.so
 lib/libcidn.so.1
-lib/libcrypt-2.12.so
+lib/libcrypt-2.25.so
 lib/libcrypt.so.1
-lib/libdl-2.12.so
+lib/libdl-2.25.so
 lib/libdl.so.2
-lib/libm-2.12.so
+lib/libm-2.25.so
 lib/libm.so.6
 #lib/libmemusage.so
-lib/libnsl-2.12.so
+lib/libmvec-2.25.so
+lib/libmvec.so.1
+lib/libnsl-2.25.so
 lib/libnsl.so.1
-lib/libnss_compat-2.12.so
+lib/libnss_compat-2.25.so
 lib/libnss_compat.so.2
-lib/libnss_dns-2.12.so
+lib/libnss_db-2.25.so
+lib/libnss_db.so.2
+lib/libnss_dns-2.25.so
 lib/libnss_dns.so.2
-lib/libnss_files-2.12.so
+lib/libnss_files-2.25.so
 lib/libnss_files.so.2
-lib/libnss_hesiod-2.12.so
+lib/libnss_hesiod-2.25.so
 lib/libnss_hesiod.so.2
-lib/libnss_nis-2.12.so
+lib/libnss_nis-2.25.so
 lib/libnss_nis.so.2
-lib/libnss_nisplus-2.12.so
+lib/libnss_nisplus-2.25.so
 lib/libnss_nisplus.so.2
 #lib/libpcprofile.so
-lib/libpthread-2.12.so
+lib/libpthread-2.25.so
 lib/libpthread.so.0
-lib/libresolv-2.12.so
+lib/libresolv-2.25.so
 lib/libresolv.so.2
-lib/librt-2.12.so
+lib/librt-2.25.so
 lib/librt.so.1
 lib/libthread_db-1.0.so
 lib/libthread_db.so.1
-lib/libutil-2.12.so
+lib/libutil-2.25.so
 lib/libutil.so.1
 sbin/ldconfig
 #sbin/sln
@@ -54,9 +57,12 @@ usr/bin/getent
 usr/bin/ldd
 usr/bin/locale
 #usr/bin/localedef
+#usr/bin/makedb
 #usr/bin/mtrace
 #usr/bin/pcprofiledump
+#usr/bin/pldd
 #usr/bin/rpcgen
+#usr/bin/sotruss
 #usr/bin/sprof
 #usr/bin/tzselect
 #usr/bin/xtrace
@@ -78,6 +84,7 @@ usr/bin/locale
 #usr/include/assert.h
 #usr/include/bits
 #usr/include/bits/a.out.h
+#usr/include/bits/byteswap-16.h
 #usr/include/bits/byteswap.h
 #usr/include/bits/cmathcalls.h
 #usr/include/bits/confname.h
@@ -86,30 +93,44 @@ usr/bin/locale
 #usr/include/bits/elfclass.h
 #usr/include/bits/endian.h
 #usr/include/bits/environments.h
+#usr/include/bits/epoll.h
 #usr/include/bits/errno.h
 #usr/include/bits/error.h
+#usr/include/bits/eventfd.h
+#usr/include/bits/fcntl-linux.h
 #usr/include/bits/fcntl.h
 #usr/include/bits/fcntl2.h
 #usr/include/bits/fenv.h
 #usr/include/bits/fenvinline.h
+#usr/include/bits/flt-eval-method.h
+#usr/include/bits/fp-fast.h
+#usr/include/bits/fp-logb.h
 #usr/include/bits/huge_val.h
 #usr/include/bits/huge_valf.h
 #usr/include/bits/huge_vall.h
+#usr/include/bits/hwcap.h
 #usr/include/bits/in.h
 #usr/include/bits/inf.h
 #usr/include/bits/initspin.h
+#usr/include/bits/inotify.h
 #usr/include/bits/ioctl-types.h
 #usr/include/bits/ioctls.h
 #usr/include/bits/ipc.h
 #usr/include/bits/ipctypes.h
-#usr/include/bits/libc-lock.h
+#usr/include/bits/iscanonical.h
+#usr/include/bits/libc-header-start.h
 #usr/include/bits/libio-ldbl.h
+#usr/include/bits/libm-simd-decl-stubs.h
 #usr/include/bits/link.h
 #usr/include/bits/local_lim.h
 #usr/include/bits/locale.h
+#usr/include/bits/long-double.h
+#usr/include/bits/math-finite.h
+#usr/include/bits/math-vector.h
 #usr/include/bits/mathcalls.h
 #usr/include/bits/mathdef.h
 #usr/include/bits/mathinline.h
+#usr/include/bits/mman-linux.h
 #usr/include/bits/mman.h
 #usr/include/bits/monetary-ldbl.h
 #usr/include/bits/mqueue.h
@@ -117,7 +138,9 @@ usr/bin/locale
 #usr/include/bits/msq.h
 #usr/include/bits/nan.h
 #usr/include/bits/netdb.h
+#usr/include/bits/param.h
 #usr/include/bits/poll.h
+#usr/include/bits/poll2.h
 #usr/include/bits/posix1_lim.h
 #usr/include/bits/posix2_lim.h
 #usr/include/bits/posix_opt.h
@@ -126,6 +149,7 @@ usr/bin/locale
 #usr/include/bits/resource.h
 #usr/include/bits/sched.h
 #usr/include/bits/select.h
+#usr/include/bits/select2.h
 #usr/include/bits/sem.h
 #usr/include/bits/semaphore.h
 #usr/include/bits/setjmp.h
@@ -134,6 +158,7 @@ usr/bin/locale
 #usr/include/bits/sigaction.h
 #usr/include/bits/sigcontext.h
 #usr/include/bits/siginfo.h
+#usr/include/bits/signalfd.h
 #usr/include/bits/signum.h
 #usr/include/bits/sigset.h
 #usr/include/bits/sigstack.h
@@ -141,29 +166,48 @@ usr/bin/locale
 #usr/include/bits/sockaddr.h
 #usr/include/bits/socket.h
 #usr/include/bits/socket2.h
+#usr/include/bits/socket_type.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-bsearch.h
+#usr/include/bits/stdlib-float.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/strings_fortified.h
+#usr/include/bits/stropts.h
 #usr/include/bits/sys_errlist.h
 #usr/include/bits/syscall.h
+#usr/include/bits/sysctl.h
 #usr/include/bits/syslog-ldbl.h
 #usr/include/bits/syslog-path.h
 #usr/include/bits/syslog.h
+#usr/include/bits/sysmacros.h
 #usr/include/bits/termios.h
 #usr/include/bits/time.h
+#usr/include/bits/timerfd.h
+#usr/include/bits/timex.h
+#usr/include/bits/types
 #usr/include/bits/types.h
+#usr/include/bits/types/clock_t.h
+#usr/include/bits/types/clockid_t.h
+#usr/include/bits/types/struct_itimerspec.h
+#usr/include/bits/types/struct_osockaddr.h
+#usr/include/bits/types/struct_timespec.h
+#usr/include/bits/types/struct_timeval.h
+#usr/include/bits/types/struct_tm.h
+#usr/include/bits/types/time_t.h
+#usr/include/bits/types/timer_t.h
 #usr/include/bits/typesizes.h
+#usr/include/bits/uintn-identity.h
 #usr/include/bits/uio.h
 #usr/include/bits/unistd.h
 #usr/include/bits/ustat.h
@@ -177,6 +221,7 @@ usr/bin/locale
 #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
@@ -205,6 +250,7 @@ usr/bin/locale
 #usr/include/glob.h
 #usr/include/gnu
 #usr/include/gnu-versions.h
+#usr/include/gnu/lib-names-64.h
 #usr/include/gnu/lib-names.h
 #usr/include/gnu/libc-version.h
 #usr/include/gnu/stubs-64.h
@@ -282,6 +328,7 @@ usr/bin/locale
 #usr/include/paths.h
 #usr/include/poll.h
 #usr/include/printf.h
+#usr/include/proc_service.h
 #usr/include/protocols
 #usr/include/protocols/routed.h
 #usr/include/protocols/rwhod.h
@@ -364,21 +411,26 @@ usr/bin/locale
 #usr/include/signal.h
 #usr/include/spawn.h
 #usr/include/stab.h
+#usr/include/stdc-predef.h
 #usr/include/stdint.h
 #usr/include/stdio.h
 #usr/include/stdio_ext.h
 #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/auxv.h
 #usr/include/sys/bitypes.h
 #usr/include/sys/cdefs.h
 #usr/include/sys/debugreg.h
 #usr/include/sys/dir.h
+#usr/include/sys/elf.h
 #usr/include/sys/epoll.h
 #usr/include/sys/errno.h
 #usr/include/sys/eventfd.h
+#usr/include/sys/fanotify.h
 #usr/include/sys/fcntl.h
 #usr/include/sys/file.h
 #usr/include/sys/fsuid.h
@@ -389,7 +441,6 @@ usr/bin/locale
 #usr/include/sys/ioctl.h
 #usr/include/sys/ipc.h
 #usr/include/sys/kd.h
-#usr/include/sys/kdaemon.h
 #usr/include/sys/klog.h
 #usr/include/sys/mman.h
 #usr/include/sys/mount.h
@@ -406,6 +457,7 @@ usr/bin/locale
 #usr/include/sys/ptrace.h
 #usr/include/sys/queue.h
 #usr/include/sys/quota.h
+#usr/include/sys/random.h
 #usr/include/sys/raw.h
 #usr/include/sys/reboot.h
 #usr/include/sys/reg.h
@@ -422,6 +474,7 @@ usr/bin/locale
 #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
@@ -447,6 +500,7 @@ usr/bin/locale
 #usr/include/sys/utsname.h
 #usr/include/sys/vfs.h
 #usr/include/sys/vlimit.h
+#usr/include/sys/vm86.h
 #usr/include/sys/vt.h
 #usr/include/sys/vtimes.h
 #usr/include/sys/wait.h
@@ -461,6 +515,7 @@ usr/bin/locale
 #usr/include/thread_db.h
 #usr/include/time.h
 #usr/include/ttyent.h
+#usr/include/uchar.h
 #usr/include/ucontext.h
 #usr/include/ulimit.h
 #usr/include/unistd.h
@@ -476,6 +531,8 @@ usr/bin/locale
 #usr/include/xlocale.h
 #usr/lib/Mcrt1.o
 #usr/lib/Scrt1.o
+#usr/lib/audit
+#usr/lib/audit/sotruss-lib.so
 #usr/lib/crt1.o
 #usr/lib/crti.o
 #usr/lib/crtn.o
@@ -498,6 +555,11 @@ usr/lib/gconv
 #usr/lib/gconv/CP1257.so
 #usr/lib/gconv/CP1258.so
 #usr/lib/gconv/CP737.so
+#usr/lib/gconv/CP770.so
+#usr/lib/gconv/CP771.so
+#usr/lib/gconv/CP772.so
+#usr/lib/gconv/CP773.so
+#usr/lib/gconv/CP774.so
 #usr/lib/gconv/CP775.so
 #usr/lib/gconv/CP932.so
 #usr/lib/gconv/CSN_369103.so
@@ -733,12 +795,11 @@ usr/lib/gconv
 #usr/lib/glibc/getconf
 #usr/lib/glibc/getconf/POSIX_V6_LP64_OFF64
 #usr/lib/glibc/getconf/POSIX_V7_LP64_OFF64
-#usr/lib/glibc/pt_chown
+#usr/lib/glibc/getconf/XBS5_LP64_OFF64
 #usr/lib/libBrokenLocale.a
 #usr/lib/libBrokenLocale.so
 #usr/lib/libanl.a
 #usr/lib/libanl.so
-#usr/lib/libbsd-compat.a
 #usr/lib/libc.a
 #usr/lib/libc.so
 #usr/lib/libc_nonshared.a
@@ -749,12 +810,17 @@ usr/lib/gconv
 #usr/lib/libdl.so
 #usr/lib/libg.a
 #usr/lib/libieee.a
+#usr/lib/libm-2.25.a
 #usr/lib/libm.a
 #usr/lib/libm.so
 #usr/lib/libmcheck.a
+#usr/lib/libmvec.a
+#usr/lib/libmvec.so
+#usr/lib/libmvec_nonshared.a
 #usr/lib/libnsl.a
 #usr/lib/libnsl.so
 #usr/lib/libnss_compat.so
+#usr/lib/libnss_db.so
 #usr/lib/libnss_dns.so
 #usr/lib/libnss_files.so
 #usr/lib/libnss_hesiod.so
@@ -870,6 +936,20 @@ usr/lib/locale
 #usr/lib/locale/af_ZA/LC_PAPER
 #usr/lib/locale/af_ZA/LC_TELEPHONE
 #usr/lib/locale/af_ZA/LC_TIME
+#usr/lib/locale/ak_GH
+#usr/lib/locale/ak_GH/LC_ADDRESS
+#usr/lib/locale/ak_GH/LC_COLLATE
+#usr/lib/locale/ak_GH/LC_CTYPE
+#usr/lib/locale/ak_GH/LC_IDENTIFICATION
+#usr/lib/locale/ak_GH/LC_MEASUREMENT
+#usr/lib/locale/ak_GH/LC_MESSAGES
+#usr/lib/locale/ak_GH/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ak_GH/LC_MONETARY
+#usr/lib/locale/ak_GH/LC_NAME
+#usr/lib/locale/ak_GH/LC_NUMERIC
+#usr/lib/locale/ak_GH/LC_PAPER
+#usr/lib/locale/ak_GH/LC_TELEPHONE
+#usr/lib/locale/ak_GH/LC_TIME
 #usr/lib/locale/am_ET
 #usr/lib/locale/am_ET/LC_ADDRESS
 #usr/lib/locale/am_ET/LC_COLLATE
@@ -912,6 +992,20 @@ usr/lib/locale
 #usr/lib/locale/an_ES/LC_PAPER
 #usr/lib/locale/an_ES/LC_TELEPHONE
 #usr/lib/locale/an_ES/LC_TIME
+#usr/lib/locale/anp_IN
+#usr/lib/locale/anp_IN/LC_ADDRESS
+#usr/lib/locale/anp_IN/LC_COLLATE
+#usr/lib/locale/anp_IN/LC_CTYPE
+#usr/lib/locale/anp_IN/LC_IDENTIFICATION
+#usr/lib/locale/anp_IN/LC_MEASUREMENT
+#usr/lib/locale/anp_IN/LC_MESSAGES
+#usr/lib/locale/anp_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/anp_IN/LC_MONETARY
+#usr/lib/locale/anp_IN/LC_NAME
+#usr/lib/locale/anp_IN/LC_NUMERIC
+#usr/lib/locale/anp_IN/LC_PAPER
+#usr/lib/locale/anp_IN/LC_TELEPHONE
+#usr/lib/locale/anp_IN/LC_TIME
 #usr/lib/locale/ar_AE
 #usr/lib/locale/ar_AE.utf8
 #usr/lib/locale/ar_AE.utf8/LC_ADDRESS
@@ -1318,6 +1412,20 @@ usr/lib/locale
 #usr/lib/locale/ar_SD/LC_PAPER
 #usr/lib/locale/ar_SD/LC_TELEPHONE
 #usr/lib/locale/ar_SD/LC_TIME
+#usr/lib/locale/ar_SS
+#usr/lib/locale/ar_SS/LC_ADDRESS
+#usr/lib/locale/ar_SS/LC_COLLATE
+#usr/lib/locale/ar_SS/LC_CTYPE
+#usr/lib/locale/ar_SS/LC_IDENTIFICATION
+#usr/lib/locale/ar_SS/LC_MEASUREMENT
+#usr/lib/locale/ar_SS/LC_MESSAGES
+#usr/lib/locale/ar_SS/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ar_SS/LC_MONETARY
+#usr/lib/locale/ar_SS/LC_NAME
+#usr/lib/locale/ar_SS/LC_NUMERIC
+#usr/lib/locale/ar_SS/LC_PAPER
+#usr/lib/locale/ar_SS/LC_TELEPHONE
+#usr/lib/locale/ar_SS/LC_TIME
 #usr/lib/locale/ar_SY
 #usr/lib/locale/ar_SY.utf8
 #usr/lib/locale/ar_SY.utf8/LC_ADDRESS
@@ -1444,6 +1552,20 @@ usr/lib/locale
 #usr/lib/locale/ast_ES/LC_PAPER
 #usr/lib/locale/ast_ES/LC_TELEPHONE
 #usr/lib/locale/ast_ES/LC_TIME
+#usr/lib/locale/ayc_PE
+#usr/lib/locale/ayc_PE/LC_ADDRESS
+#usr/lib/locale/ayc_PE/LC_COLLATE
+#usr/lib/locale/ayc_PE/LC_CTYPE
+#usr/lib/locale/ayc_PE/LC_IDENTIFICATION
+#usr/lib/locale/ayc_PE/LC_MEASUREMENT
+#usr/lib/locale/ayc_PE/LC_MESSAGES
+#usr/lib/locale/ayc_PE/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ayc_PE/LC_MONETARY
+#usr/lib/locale/ayc_PE/LC_NAME
+#usr/lib/locale/ayc_PE/LC_NUMERIC
+#usr/lib/locale/ayc_PE/LC_PAPER
+#usr/lib/locale/ayc_PE/LC_TELEPHONE
+#usr/lib/locale/ayc_PE/LC_TIME
 #usr/lib/locale/az_AZ
 #usr/lib/locale/az_AZ/LC_ADDRESS
 #usr/lib/locale/az_AZ/LC_COLLATE
@@ -1500,6 +1622,20 @@ usr/lib/locale
 #usr/lib/locale/be_BY@latin/LC_PAPER
 #usr/lib/locale/be_BY@latin/LC_TELEPHONE
 #usr/lib/locale/be_BY@latin/LC_TIME
+#usr/lib/locale/bem_ZM
+#usr/lib/locale/bem_ZM/LC_ADDRESS
+#usr/lib/locale/bem_ZM/LC_COLLATE
+#usr/lib/locale/bem_ZM/LC_CTYPE
+#usr/lib/locale/bem_ZM/LC_IDENTIFICATION
+#usr/lib/locale/bem_ZM/LC_MEASUREMENT
+#usr/lib/locale/bem_ZM/LC_MESSAGES
+#usr/lib/locale/bem_ZM/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/bem_ZM/LC_MONETARY
+#usr/lib/locale/bem_ZM/LC_NAME
+#usr/lib/locale/bem_ZM/LC_NUMERIC
+#usr/lib/locale/bem_ZM/LC_PAPER
+#usr/lib/locale/bem_ZM/LC_TELEPHONE
+#usr/lib/locale/bem_ZM/LC_TIME
 #usr/lib/locale/ber_DZ
 #usr/lib/locale/ber_DZ/LC_ADDRESS
 #usr/lib/locale/ber_DZ/LC_COLLATE
@@ -1556,6 +1692,34 @@ usr/lib/locale
 #usr/lib/locale/bg_BG/LC_PAPER
 #usr/lib/locale/bg_BG/LC_TELEPHONE
 #usr/lib/locale/bg_BG/LC_TIME
+#usr/lib/locale/bhb_IN.utf8
+#usr/lib/locale/bhb_IN.utf8/LC_ADDRESS
+#usr/lib/locale/bhb_IN.utf8/LC_COLLATE
+#usr/lib/locale/bhb_IN.utf8/LC_CTYPE
+#usr/lib/locale/bhb_IN.utf8/LC_IDENTIFICATION
+#usr/lib/locale/bhb_IN.utf8/LC_MEASUREMENT
+#usr/lib/locale/bhb_IN.utf8/LC_MESSAGES
+#usr/lib/locale/bhb_IN.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/bhb_IN.utf8/LC_MONETARY
+#usr/lib/locale/bhb_IN.utf8/LC_NAME
+#usr/lib/locale/bhb_IN.utf8/LC_NUMERIC
+#usr/lib/locale/bhb_IN.utf8/LC_PAPER
+#usr/lib/locale/bhb_IN.utf8/LC_TELEPHONE
+#usr/lib/locale/bhb_IN.utf8/LC_TIME
+#usr/lib/locale/bho_IN
+#usr/lib/locale/bho_IN/LC_ADDRESS
+#usr/lib/locale/bho_IN/LC_COLLATE
+#usr/lib/locale/bho_IN/LC_CTYPE
+#usr/lib/locale/bho_IN/LC_IDENTIFICATION
+#usr/lib/locale/bho_IN/LC_MEASUREMENT
+#usr/lib/locale/bho_IN/LC_MESSAGES
+#usr/lib/locale/bho_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/bho_IN/LC_MONETARY
+#usr/lib/locale/bho_IN/LC_NAME
+#usr/lib/locale/bho_IN/LC_NUMERIC
+#usr/lib/locale/bho_IN/LC_PAPER
+#usr/lib/locale/bho_IN/LC_TELEPHONE
+#usr/lib/locale/bho_IN/LC_TIME
 #usr/lib/locale/bn_BD
 #usr/lib/locale/bn_BD/LC_ADDRESS
 #usr/lib/locale/bn_BD/LC_COLLATE
@@ -1654,6 +1818,20 @@ usr/lib/locale
 #usr/lib/locale/br_FR@euro/LC_PAPER
 #usr/lib/locale/br_FR@euro/LC_TELEPHONE
 #usr/lib/locale/br_FR@euro/LC_TIME
+#usr/lib/locale/brx_IN
+#usr/lib/locale/brx_IN/LC_ADDRESS
+#usr/lib/locale/brx_IN/LC_COLLATE
+#usr/lib/locale/brx_IN/LC_CTYPE
+#usr/lib/locale/brx_IN/LC_IDENTIFICATION
+#usr/lib/locale/brx_IN/LC_MEASUREMENT
+#usr/lib/locale/brx_IN/LC_MESSAGES
+#usr/lib/locale/brx_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/brx_IN/LC_MONETARY
+#usr/lib/locale/brx_IN/LC_NAME
+#usr/lib/locale/brx_IN/LC_NUMERIC
+#usr/lib/locale/brx_IN/LC_PAPER
+#usr/lib/locale/brx_IN/LC_TELEPHONE
+#usr/lib/locale/brx_IN/LC_TIME
 #usr/lib/locale/bs_BA
 #usr/lib/locale/bs_BA.utf8
 #usr/lib/locale/bs_BA.utf8/LC_ADDRESS
@@ -1822,6 +2000,48 @@ usr/lib/locale
 #usr/lib/locale/ca_IT/LC_PAPER
 #usr/lib/locale/ca_IT/LC_TELEPHONE
 #usr/lib/locale/ca_IT/LC_TIME
+#usr/lib/locale/ce_RU
+#usr/lib/locale/ce_RU/LC_ADDRESS
+#usr/lib/locale/ce_RU/LC_COLLATE
+#usr/lib/locale/ce_RU/LC_CTYPE
+#usr/lib/locale/ce_RU/LC_IDENTIFICATION
+#usr/lib/locale/ce_RU/LC_MEASUREMENT
+#usr/lib/locale/ce_RU/LC_MESSAGES
+#usr/lib/locale/ce_RU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ce_RU/LC_MONETARY
+#usr/lib/locale/ce_RU/LC_NAME
+#usr/lib/locale/ce_RU/LC_NUMERIC
+#usr/lib/locale/ce_RU/LC_PAPER
+#usr/lib/locale/ce_RU/LC_TELEPHONE
+#usr/lib/locale/ce_RU/LC_TIME
+#usr/lib/locale/chr_US
+#usr/lib/locale/chr_US/LC_ADDRESS
+#usr/lib/locale/chr_US/LC_COLLATE
+#usr/lib/locale/chr_US/LC_CTYPE
+#usr/lib/locale/chr_US/LC_IDENTIFICATION
+#usr/lib/locale/chr_US/LC_MEASUREMENT
+#usr/lib/locale/chr_US/LC_MESSAGES
+#usr/lib/locale/chr_US/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/chr_US/LC_MONETARY
+#usr/lib/locale/chr_US/LC_NAME
+#usr/lib/locale/chr_US/LC_NUMERIC
+#usr/lib/locale/chr_US/LC_PAPER
+#usr/lib/locale/chr_US/LC_TELEPHONE
+#usr/lib/locale/chr_US/LC_TIME
+#usr/lib/locale/cmn_TW
+#usr/lib/locale/cmn_TW/LC_ADDRESS
+#usr/lib/locale/cmn_TW/LC_COLLATE
+#usr/lib/locale/cmn_TW/LC_CTYPE
+#usr/lib/locale/cmn_TW/LC_IDENTIFICATION
+#usr/lib/locale/cmn_TW/LC_MEASUREMENT
+#usr/lib/locale/cmn_TW/LC_MESSAGES
+#usr/lib/locale/cmn_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/cmn_TW/LC_MONETARY
+#usr/lib/locale/cmn_TW/LC_NAME
+#usr/lib/locale/cmn_TW/LC_NUMERIC
+#usr/lib/locale/cmn_TW/LC_PAPER
+#usr/lib/locale/cmn_TW/LC_TELEPHONE
+#usr/lib/locale/cmn_TW/LC_TIME
 #usr/lib/locale/crh_UA
 #usr/lib/locale/crh_UA/LC_ADDRESS
 #usr/lib/locale/crh_UA/LC_COLLATE
@@ -1921,20 +2141,6 @@ usr/lib/locale
 #usr/lib/locale/cy_GB/LC_TELEPHONE
 #usr/lib/locale/cy_GB/LC_TIME
 #usr/lib/locale/da_DK
-#usr/lib/locale/da_DK.iso885915
-#usr/lib/locale/da_DK.iso885915/LC_ADDRESS
-#usr/lib/locale/da_DK.iso885915/LC_COLLATE
-#usr/lib/locale/da_DK.iso885915/LC_CTYPE
-#usr/lib/locale/da_DK.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/da_DK.iso885915/LC_MEASUREMENT
-#usr/lib/locale/da_DK.iso885915/LC_MESSAGES
-#usr/lib/locale/da_DK.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/da_DK.iso885915/LC_MONETARY
-#usr/lib/locale/da_DK.iso885915/LC_NAME
-#usr/lib/locale/da_DK.iso885915/LC_NUMERIC
-#usr/lib/locale/da_DK.iso885915/LC_PAPER
-#usr/lib/locale/da_DK.iso885915/LC_TELEPHONE
-#usr/lib/locale/da_DK.iso885915/LC_TIME
 #usr/lib/locale/da_DK.utf8
 #usr/lib/locale/da_DK.utf8/LC_ADDRESS
 #usr/lib/locale/da_DK.utf8/LC_COLLATE
@@ -2116,6 +2322,48 @@ usr/lib/locale
 #usr/lib/locale/de_DE@euro/LC_PAPER
 #usr/lib/locale/de_DE@euro/LC_TELEPHONE
 #usr/lib/locale/de_DE@euro/LC_TIME
+#usr/lib/locale/de_IT
+#usr/lib/locale/de_IT.utf8
+#usr/lib/locale/de_IT.utf8/LC_ADDRESS
+#usr/lib/locale/de_IT.utf8/LC_COLLATE
+#usr/lib/locale/de_IT.utf8/LC_CTYPE
+#usr/lib/locale/de_IT.utf8/LC_IDENTIFICATION
+#usr/lib/locale/de_IT.utf8/LC_MEASUREMENT
+#usr/lib/locale/de_IT.utf8/LC_MESSAGES
+#usr/lib/locale/de_IT.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/de_IT.utf8/LC_MONETARY
+#usr/lib/locale/de_IT.utf8/LC_NAME
+#usr/lib/locale/de_IT.utf8/LC_NUMERIC
+#usr/lib/locale/de_IT.utf8/LC_PAPER
+#usr/lib/locale/de_IT.utf8/LC_TELEPHONE
+#usr/lib/locale/de_IT.utf8/LC_TIME
+#usr/lib/locale/de_IT/LC_ADDRESS
+#usr/lib/locale/de_IT/LC_COLLATE
+#usr/lib/locale/de_IT/LC_CTYPE
+#usr/lib/locale/de_IT/LC_IDENTIFICATION
+#usr/lib/locale/de_IT/LC_MEASUREMENT
+#usr/lib/locale/de_IT/LC_MESSAGES
+#usr/lib/locale/de_IT/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/de_IT/LC_MONETARY
+#usr/lib/locale/de_IT/LC_NAME
+#usr/lib/locale/de_IT/LC_NUMERIC
+#usr/lib/locale/de_IT/LC_PAPER
+#usr/lib/locale/de_IT/LC_TELEPHONE
+#usr/lib/locale/de_IT/LC_TIME
+#usr/lib/locale/de_LI.utf8
+#usr/lib/locale/de_LI.utf8/LC_ADDRESS
+#usr/lib/locale/de_LI.utf8/LC_COLLATE
+#usr/lib/locale/de_LI.utf8/LC_CTYPE
+#usr/lib/locale/de_LI.utf8/LC_IDENTIFICATION
+#usr/lib/locale/de_LI.utf8/LC_MEASUREMENT
+#usr/lib/locale/de_LI.utf8/LC_MESSAGES
+#usr/lib/locale/de_LI.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/de_LI.utf8/LC_MONETARY
+#usr/lib/locale/de_LI.utf8/LC_NAME
+#usr/lib/locale/de_LI.utf8/LC_NUMERIC
+#usr/lib/locale/de_LI.utf8/LC_PAPER
+#usr/lib/locale/de_LI.utf8/LC_TELEPHONE
+#usr/lib/locale/de_LI.utf8/LC_TIME
 #usr/lib/locale/de_LU
 #usr/lib/locale/de_LU.utf8
 #usr/lib/locale/de_LU.utf8/LC_ADDRESS
@@ -2158,6 +2406,20 @@ usr/lib/locale
 #usr/lib/locale/de_LU@euro/LC_PAPER
 #usr/lib/locale/de_LU@euro/LC_TELEPHONE
 #usr/lib/locale/de_LU@euro/LC_TIME
+#usr/lib/locale/doi_IN
+#usr/lib/locale/doi_IN/LC_ADDRESS
+#usr/lib/locale/doi_IN/LC_COLLATE
+#usr/lib/locale/doi_IN/LC_CTYPE
+#usr/lib/locale/doi_IN/LC_IDENTIFICATION
+#usr/lib/locale/doi_IN/LC_MEASUREMENT
+#usr/lib/locale/doi_IN/LC_MESSAGES
+#usr/lib/locale/doi_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/doi_IN/LC_MONETARY
+#usr/lib/locale/doi_IN/LC_NAME
+#usr/lib/locale/doi_IN/LC_NUMERIC
+#usr/lib/locale/doi_IN/LC_PAPER
+#usr/lib/locale/doi_IN/LC_TELEPHONE
+#usr/lib/locale/doi_IN/LC_TIME
 #usr/lib/locale/dv_MV
 #usr/lib/locale/dv_MV/LC_ADDRESS
 #usr/lib/locale/dv_MV/LC_COLLATE
@@ -2369,20 +2631,6 @@ usr/lib/locale
 #usr/lib/locale/en_DK/LC_TELEPHONE
 #usr/lib/locale/en_DK/LC_TIME
 #usr/lib/locale/en_GB
-#usr/lib/locale/en_GB.iso885915
-#usr/lib/locale/en_GB.iso885915/LC_ADDRESS
-#usr/lib/locale/en_GB.iso885915/LC_COLLATE
-#usr/lib/locale/en_GB.iso885915/LC_CTYPE
-#usr/lib/locale/en_GB.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/en_GB.iso885915/LC_MEASUREMENT
-#usr/lib/locale/en_GB.iso885915/LC_MESSAGES
-#usr/lib/locale/en_GB.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/en_GB.iso885915/LC_MONETARY
-#usr/lib/locale/en_GB.iso885915/LC_NAME
-#usr/lib/locale/en_GB.iso885915/LC_NUMERIC
-#usr/lib/locale/en_GB.iso885915/LC_PAPER
-#usr/lib/locale/en_GB.iso885915/LC_TELEPHONE
-#usr/lib/locale/en_GB.iso885915/LC_TIME
 #usr/lib/locale/en_GB.utf8
 #usr/lib/locale/en_GB.utf8/LC_ADDRESS
 #usr/lib/locale/en_GB.utf8/LC_COLLATE
@@ -2480,6 +2728,20 @@ usr/lib/locale
 #usr/lib/locale/en_IE@euro/LC_PAPER
 #usr/lib/locale/en_IE@euro/LC_TELEPHONE
 #usr/lib/locale/en_IE@euro/LC_TIME
+#usr/lib/locale/en_IL
+#usr/lib/locale/en_IL/LC_ADDRESS
+#usr/lib/locale/en_IL/LC_COLLATE
+#usr/lib/locale/en_IL/LC_CTYPE
+#usr/lib/locale/en_IL/LC_IDENTIFICATION
+#usr/lib/locale/en_IL/LC_MEASUREMENT
+#usr/lib/locale/en_IL/LC_MESSAGES
+#usr/lib/locale/en_IL/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/en_IL/LC_MONETARY
+#usr/lib/locale/en_IL/LC_NAME
+#usr/lib/locale/en_IL/LC_NUMERIC
+#usr/lib/locale/en_IL/LC_PAPER
+#usr/lib/locale/en_IL/LC_TELEPHONE
+#usr/lib/locale/en_IL/LC_TIME
 #usr/lib/locale/en_IN
 #usr/lib/locale/en_IN/LC_ADDRESS
 #usr/lib/locale/en_IN/LC_COLLATE
@@ -2593,20 +2855,6 @@ usr/lib/locale
 #usr/lib/locale/en_SG/LC_TELEPHONE
 #usr/lib/locale/en_SG/LC_TIME
 #usr/lib/locale/en_US
-#usr/lib/locale/en_US.iso885915
-#usr/lib/locale/en_US.iso885915/LC_ADDRESS
-#usr/lib/locale/en_US.iso885915/LC_COLLATE
-#usr/lib/locale/en_US.iso885915/LC_CTYPE
-#usr/lib/locale/en_US.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/en_US.iso885915/LC_MEASUREMENT
-#usr/lib/locale/en_US.iso885915/LC_MESSAGES
-#usr/lib/locale/en_US.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/en_US.iso885915/LC_MONETARY
-#usr/lib/locale/en_US.iso885915/LC_NAME
-#usr/lib/locale/en_US.iso885915/LC_NUMERIC
-#usr/lib/locale/en_US.iso885915/LC_PAPER
-#usr/lib/locale/en_US.iso885915/LC_TELEPHONE
-#usr/lib/locale/en_US.iso885915/LC_TIME
 #usr/lib/locale/en_US.utf8
 #usr/lib/locale/en_US.utf8/LC_ADDRESS
 #usr/lib/locale/en_US.utf8/LC_COLLATE
@@ -2662,6 +2910,20 @@ usr/lib/locale
 #usr/lib/locale/en_ZA/LC_PAPER
 #usr/lib/locale/en_ZA/LC_TELEPHONE
 #usr/lib/locale/en_ZA/LC_TIME
+#usr/lib/locale/en_ZM
+#usr/lib/locale/en_ZM/LC_ADDRESS
+#usr/lib/locale/en_ZM/LC_COLLATE
+#usr/lib/locale/en_ZM/LC_CTYPE
+#usr/lib/locale/en_ZM/LC_IDENTIFICATION
+#usr/lib/locale/en_ZM/LC_MEASUREMENT
+#usr/lib/locale/en_ZM/LC_MESSAGES
+#usr/lib/locale/en_ZM/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/en_ZM/LC_MONETARY
+#usr/lib/locale/en_ZM/LC_NAME
+#usr/lib/locale/en_ZM/LC_NUMERIC
+#usr/lib/locale/en_ZM/LC_PAPER
+#usr/lib/locale/en_ZM/LC_TELEPHONE
+#usr/lib/locale/en_ZM/LC_TIME
 #usr/lib/locale/en_ZW
 #usr/lib/locale/en_ZW.utf8
 #usr/lib/locale/en_ZW.utf8/LC_ADDRESS
@@ -2690,6 +2952,20 @@ usr/lib/locale
 #usr/lib/locale/en_ZW/LC_PAPER
 #usr/lib/locale/en_ZW/LC_TELEPHONE
 #usr/lib/locale/en_ZW/LC_TIME
+#usr/lib/locale/eo
+#usr/lib/locale/eo/LC_ADDRESS
+#usr/lib/locale/eo/LC_COLLATE
+#usr/lib/locale/eo/LC_CTYPE
+#usr/lib/locale/eo/LC_IDENTIFICATION
+#usr/lib/locale/eo/LC_MEASUREMENT
+#usr/lib/locale/eo/LC_MESSAGES
+#usr/lib/locale/eo/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/eo/LC_MONETARY
+#usr/lib/locale/eo/LC_NAME
+#usr/lib/locale/eo/LC_NUMERIC
+#usr/lib/locale/eo/LC_PAPER
+#usr/lib/locale/eo/LC_TELEPHONE
+#usr/lib/locale/eo/LC_TIME
 #usr/lib/locale/es_AR
 #usr/lib/locale/es_AR.utf8
 #usr/lib/locale/es_AR.utf8/LC_ADDRESS
@@ -2830,6 +3106,20 @@ usr/lib/locale
 #usr/lib/locale/es_CR/LC_PAPER
 #usr/lib/locale/es_CR/LC_TELEPHONE
 #usr/lib/locale/es_CR/LC_TIME
+#usr/lib/locale/es_CU
+#usr/lib/locale/es_CU/LC_ADDRESS
+#usr/lib/locale/es_CU/LC_COLLATE
+#usr/lib/locale/es_CU/LC_CTYPE
+#usr/lib/locale/es_CU/LC_IDENTIFICATION
+#usr/lib/locale/es_CU/LC_MEASUREMENT
+#usr/lib/locale/es_CU/LC_MESSAGES
+#usr/lib/locale/es_CU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/es_CU/LC_MONETARY
+#usr/lib/locale/es_CU/LC_NAME
+#usr/lib/locale/es_CU/LC_NUMERIC
+#usr/lib/locale/es_CU/LC_PAPER
+#usr/lib/locale/es_CU/LC_TELEPHONE
+#usr/lib/locale/es_CU/LC_TIME
 #usr/lib/locale/es_DO
 #usr/lib/locale/es_DO.utf8
 #usr/lib/locale/es_DO.utf8/LC_ADDRESS
@@ -3362,6 +3652,20 @@ usr/lib/locale
 #usr/lib/locale/fa_IR/LC_PAPER
 #usr/lib/locale/fa_IR/LC_TELEPHONE
 #usr/lib/locale/fa_IR/LC_TIME
+#usr/lib/locale/ff_SN
+#usr/lib/locale/ff_SN/LC_ADDRESS
+#usr/lib/locale/ff_SN/LC_COLLATE
+#usr/lib/locale/ff_SN/LC_CTYPE
+#usr/lib/locale/ff_SN/LC_IDENTIFICATION
+#usr/lib/locale/ff_SN/LC_MEASUREMENT
+#usr/lib/locale/ff_SN/LC_MESSAGES
+#usr/lib/locale/ff_SN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ff_SN/LC_MONETARY
+#usr/lib/locale/ff_SN/LC_NAME
+#usr/lib/locale/ff_SN/LC_NUMERIC
+#usr/lib/locale/ff_SN/LC_PAPER
+#usr/lib/locale/ff_SN/LC_TELEPHONE
+#usr/lib/locale/ff_SN/LC_TIME
 #usr/lib/locale/fi_FI
 #usr/lib/locale/fi_FI.utf8
 #usr/lib/locale/fi_FI.utf8/LC_ADDRESS
@@ -3894,6 +4198,20 @@ usr/lib/locale
 #usr/lib/locale/ha_NG/LC_PAPER
 #usr/lib/locale/ha_NG/LC_TELEPHONE
 #usr/lib/locale/ha_NG/LC_TIME
+#usr/lib/locale/hak_TW
+#usr/lib/locale/hak_TW/LC_ADDRESS
+#usr/lib/locale/hak_TW/LC_COLLATE
+#usr/lib/locale/hak_TW/LC_CTYPE
+#usr/lib/locale/hak_TW/LC_IDENTIFICATION
+#usr/lib/locale/hak_TW/LC_MEASUREMENT
+#usr/lib/locale/hak_TW/LC_MESSAGES
+#usr/lib/locale/hak_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/hak_TW/LC_MONETARY
+#usr/lib/locale/hak_TW/LC_NAME
+#usr/lib/locale/hak_TW/LC_NUMERIC
+#usr/lib/locale/hak_TW/LC_PAPER
+#usr/lib/locale/hak_TW/LC_TELEPHONE
+#usr/lib/locale/hak_TW/LC_TIME
 #usr/lib/locale/he_IL
 #usr/lib/locale/he_IL.utf8
 #usr/lib/locale/he_IL.utf8/LC_ADDRESS
@@ -4076,6 +4394,20 @@ usr/lib/locale
 #usr/lib/locale/hy_AM/LC_PAPER
 #usr/lib/locale/hy_AM/LC_TELEPHONE
 #usr/lib/locale/hy_AM/LC_TIME
+#usr/lib/locale/ia_FR
+#usr/lib/locale/ia_FR/LC_ADDRESS
+#usr/lib/locale/ia_FR/LC_COLLATE
+#usr/lib/locale/ia_FR/LC_CTYPE
+#usr/lib/locale/ia_FR/LC_IDENTIFICATION
+#usr/lib/locale/ia_FR/LC_MEASUREMENT
+#usr/lib/locale/ia_FR/LC_MESSAGES
+#usr/lib/locale/ia_FR/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ia_FR/LC_MONETARY
+#usr/lib/locale/ia_FR/LC_NAME
+#usr/lib/locale/ia_FR/LC_NUMERIC
+#usr/lib/locale/ia_FR/LC_PAPER
+#usr/lib/locale/ia_FR/LC_TELEPHONE
+#usr/lib/locale/ia_FR/LC_TIME
 #usr/lib/locale/id_ID
 #usr/lib/locale/id_ID.utf8
 #usr/lib/locale/id_ID.utf8/LC_ADDRESS
@@ -4244,34 +4576,6 @@ usr/lib/locale
 #usr/lib/locale/iu_CA/LC_PAPER
 #usr/lib/locale/iu_CA/LC_TELEPHONE
 #usr/lib/locale/iu_CA/LC_TIME
-#usr/lib/locale/iw_IL
-#usr/lib/locale/iw_IL.utf8
-#usr/lib/locale/iw_IL.utf8/LC_ADDRESS
-#usr/lib/locale/iw_IL.utf8/LC_COLLATE
-#usr/lib/locale/iw_IL.utf8/LC_CTYPE
-#usr/lib/locale/iw_IL.utf8/LC_IDENTIFICATION
-#usr/lib/locale/iw_IL.utf8/LC_MEASUREMENT
-#usr/lib/locale/iw_IL.utf8/LC_MESSAGES
-#usr/lib/locale/iw_IL.utf8/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/iw_IL.utf8/LC_MONETARY
-#usr/lib/locale/iw_IL.utf8/LC_NAME
-#usr/lib/locale/iw_IL.utf8/LC_NUMERIC
-#usr/lib/locale/iw_IL.utf8/LC_PAPER
-#usr/lib/locale/iw_IL.utf8/LC_TELEPHONE
-#usr/lib/locale/iw_IL.utf8/LC_TIME
-#usr/lib/locale/iw_IL/LC_ADDRESS
-#usr/lib/locale/iw_IL/LC_COLLATE
-#usr/lib/locale/iw_IL/LC_CTYPE
-#usr/lib/locale/iw_IL/LC_IDENTIFICATION
-#usr/lib/locale/iw_IL/LC_MEASUREMENT
-#usr/lib/locale/iw_IL/LC_MESSAGES
-#usr/lib/locale/iw_IL/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/iw_IL/LC_MONETARY
-#usr/lib/locale/iw_IL/LC_NAME
-#usr/lib/locale/iw_IL/LC_NUMERIC
-#usr/lib/locale/iw_IL/LC_PAPER
-#usr/lib/locale/iw_IL/LC_TELEPHONE
-#usr/lib/locale/iw_IL/LC_TIME
 #usr/lib/locale/ja_JP.eucjp
 #usr/lib/locale/ja_JP.eucjp/LC_ADDRESS
 #usr/lib/locale/ja_JP.eucjp/LC_COLLATE
@@ -4552,6 +4856,20 @@ usr/lib/locale
 #usr/lib/locale/ky_KG/LC_PAPER
 #usr/lib/locale/ky_KG/LC_TELEPHONE
 #usr/lib/locale/ky_KG/LC_TIME
+#usr/lib/locale/lb_LU
+#usr/lib/locale/lb_LU/LC_ADDRESS
+#usr/lib/locale/lb_LU/LC_COLLATE
+#usr/lib/locale/lb_LU/LC_CTYPE
+#usr/lib/locale/lb_LU/LC_IDENTIFICATION
+#usr/lib/locale/lb_LU/LC_MEASUREMENT
+#usr/lib/locale/lb_LU/LC_MESSAGES
+#usr/lib/locale/lb_LU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/lb_LU/LC_MONETARY
+#usr/lib/locale/lb_LU/LC_NAME
+#usr/lib/locale/lb_LU/LC_NUMERIC
+#usr/lib/locale/lb_LU/LC_PAPER
+#usr/lib/locale/lb_LU/LC_TELEPHONE
+#usr/lib/locale/lb_LU/LC_TIME
 #usr/lib/locale/lg_UG
 #usr/lib/locale/lg_UG.utf8
 #usr/lib/locale/lg_UG.utf8/LC_ADDRESS
@@ -4608,6 +4926,34 @@ usr/lib/locale
 #usr/lib/locale/li_NL/LC_PAPER
 #usr/lib/locale/li_NL/LC_TELEPHONE
 #usr/lib/locale/li_NL/LC_TIME
+#usr/lib/locale/lij_IT
+#usr/lib/locale/lij_IT/LC_ADDRESS
+#usr/lib/locale/lij_IT/LC_COLLATE
+#usr/lib/locale/lij_IT/LC_CTYPE
+#usr/lib/locale/lij_IT/LC_IDENTIFICATION
+#usr/lib/locale/lij_IT/LC_MEASUREMENT
+#usr/lib/locale/lij_IT/LC_MESSAGES
+#usr/lib/locale/lij_IT/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/lij_IT/LC_MONETARY
+#usr/lib/locale/lij_IT/LC_NAME
+#usr/lib/locale/lij_IT/LC_NUMERIC
+#usr/lib/locale/lij_IT/LC_PAPER
+#usr/lib/locale/lij_IT/LC_TELEPHONE
+#usr/lib/locale/lij_IT/LC_TIME
+#usr/lib/locale/ln_CD
+#usr/lib/locale/ln_CD/LC_ADDRESS
+#usr/lib/locale/ln_CD/LC_COLLATE
+#usr/lib/locale/ln_CD/LC_CTYPE
+#usr/lib/locale/ln_CD/LC_IDENTIFICATION
+#usr/lib/locale/ln_CD/LC_MEASUREMENT
+#usr/lib/locale/ln_CD/LC_MESSAGES
+#usr/lib/locale/ln_CD/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ln_CD/LC_MONETARY
+#usr/lib/locale/ln_CD/LC_NAME
+#usr/lib/locale/ln_CD/LC_NUMERIC
+#usr/lib/locale/ln_CD/LC_PAPER
+#usr/lib/locale/ln_CD/LC_TELEPHONE
+#usr/lib/locale/ln_CD/LC_TIME
 #usr/lib/locale/lo_LA
 #usr/lib/locale/lo_LA/LC_ADDRESS
 #usr/lib/locale/lo_LA/LC_COLLATE
@@ -4678,6 +5024,34 @@ usr/lib/locale
 #usr/lib/locale/lv_LV/LC_PAPER
 #usr/lib/locale/lv_LV/LC_TELEPHONE
 #usr/lib/locale/lv_LV/LC_TIME
+#usr/lib/locale/lzh_TW
+#usr/lib/locale/lzh_TW/LC_ADDRESS
+#usr/lib/locale/lzh_TW/LC_COLLATE
+#usr/lib/locale/lzh_TW/LC_CTYPE
+#usr/lib/locale/lzh_TW/LC_IDENTIFICATION
+#usr/lib/locale/lzh_TW/LC_MEASUREMENT
+#usr/lib/locale/lzh_TW/LC_MESSAGES
+#usr/lib/locale/lzh_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/lzh_TW/LC_MONETARY
+#usr/lib/locale/lzh_TW/LC_NAME
+#usr/lib/locale/lzh_TW/LC_NUMERIC
+#usr/lib/locale/lzh_TW/LC_PAPER
+#usr/lib/locale/lzh_TW/LC_TELEPHONE
+#usr/lib/locale/lzh_TW/LC_TIME
+#usr/lib/locale/mag_IN
+#usr/lib/locale/mag_IN/LC_ADDRESS
+#usr/lib/locale/mag_IN/LC_COLLATE
+#usr/lib/locale/mag_IN/LC_CTYPE
+#usr/lib/locale/mag_IN/LC_IDENTIFICATION
+#usr/lib/locale/mag_IN/LC_MEASUREMENT
+#usr/lib/locale/mag_IN/LC_MESSAGES
+#usr/lib/locale/mag_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/mag_IN/LC_MONETARY
+#usr/lib/locale/mag_IN/LC_NAME
+#usr/lib/locale/mag_IN/LC_NUMERIC
+#usr/lib/locale/mag_IN/LC_PAPER
+#usr/lib/locale/mag_IN/LC_TELEPHONE
+#usr/lib/locale/mag_IN/LC_TIME
 #usr/lib/locale/mai_IN
 #usr/lib/locale/mai_IN/LC_ADDRESS
 #usr/lib/locale/mai_IN/LC_COLLATE
@@ -4720,6 +5094,20 @@ usr/lib/locale
 #usr/lib/locale/mg_MG/LC_PAPER
 #usr/lib/locale/mg_MG/LC_TELEPHONE
 #usr/lib/locale/mg_MG/LC_TIME
+#usr/lib/locale/mhr_RU
+#usr/lib/locale/mhr_RU/LC_ADDRESS
+#usr/lib/locale/mhr_RU/LC_COLLATE
+#usr/lib/locale/mhr_RU/LC_CTYPE
+#usr/lib/locale/mhr_RU/LC_IDENTIFICATION
+#usr/lib/locale/mhr_RU/LC_MEASUREMENT
+#usr/lib/locale/mhr_RU/LC_MESSAGES
+#usr/lib/locale/mhr_RU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/mhr_RU/LC_MONETARY
+#usr/lib/locale/mhr_RU/LC_NAME
+#usr/lib/locale/mhr_RU/LC_NUMERIC
+#usr/lib/locale/mhr_RU/LC_PAPER
+#usr/lib/locale/mhr_RU/LC_TELEPHONE
+#usr/lib/locale/mhr_RU/LC_TIME
 #usr/lib/locale/mi_NZ
 #usr/lib/locale/mi_NZ.utf8
 #usr/lib/locale/mi_NZ.utf8/LC_ADDRESS
@@ -4804,6 +5192,20 @@ usr/lib/locale
 #usr/lib/locale/mn_MN/LC_PAPER
 #usr/lib/locale/mn_MN/LC_TELEPHONE
 #usr/lib/locale/mn_MN/LC_TIME
+#usr/lib/locale/mni_IN
+#usr/lib/locale/mni_IN/LC_ADDRESS
+#usr/lib/locale/mni_IN/LC_COLLATE
+#usr/lib/locale/mni_IN/LC_CTYPE
+#usr/lib/locale/mni_IN/LC_IDENTIFICATION
+#usr/lib/locale/mni_IN/LC_MEASUREMENT
+#usr/lib/locale/mni_IN/LC_MESSAGES
+#usr/lib/locale/mni_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/mni_IN/LC_MONETARY
+#usr/lib/locale/mni_IN/LC_NAME
+#usr/lib/locale/mni_IN/LC_NUMERIC
+#usr/lib/locale/mni_IN/LC_PAPER
+#usr/lib/locale/mni_IN/LC_TELEPHONE
+#usr/lib/locale/mni_IN/LC_TIME
 #usr/lib/locale/mr_IN
 #usr/lib/locale/mr_IN/LC_ADDRESS
 #usr/lib/locale/mr_IN/LC_COLLATE
@@ -4888,6 +5290,20 @@ usr/lib/locale
 #usr/lib/locale/my_MM/LC_PAPER
 #usr/lib/locale/my_MM/LC_TELEPHONE
 #usr/lib/locale/my_MM/LC_TIME
+#usr/lib/locale/nan_TW
+#usr/lib/locale/nan_TW/LC_ADDRESS
+#usr/lib/locale/nan_TW/LC_COLLATE
+#usr/lib/locale/nan_TW/LC_CTYPE
+#usr/lib/locale/nan_TW/LC_IDENTIFICATION
+#usr/lib/locale/nan_TW/LC_MEASUREMENT
+#usr/lib/locale/nan_TW/LC_MESSAGES
+#usr/lib/locale/nan_TW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/nan_TW/LC_MONETARY
+#usr/lib/locale/nan_TW/LC_NAME
+#usr/lib/locale/nan_TW/LC_NUMERIC
+#usr/lib/locale/nan_TW/LC_PAPER
+#usr/lib/locale/nan_TW/LC_TELEPHONE
+#usr/lib/locale/nan_TW/LC_TIME
 #usr/lib/locale/nan_TW@latin
 #usr/lib/locale/nan_TW@latin/LC_ADDRESS
 #usr/lib/locale/nan_TW@latin/LC_COLLATE
@@ -4972,6 +5388,48 @@ usr/lib/locale
 #usr/lib/locale/ne_NP/LC_PAPER
 #usr/lib/locale/ne_NP/LC_TELEPHONE
 #usr/lib/locale/ne_NP/LC_TIME
+#usr/lib/locale/nhn_MX
+#usr/lib/locale/nhn_MX/LC_ADDRESS
+#usr/lib/locale/nhn_MX/LC_COLLATE
+#usr/lib/locale/nhn_MX/LC_CTYPE
+#usr/lib/locale/nhn_MX/LC_IDENTIFICATION
+#usr/lib/locale/nhn_MX/LC_MEASUREMENT
+#usr/lib/locale/nhn_MX/LC_MESSAGES
+#usr/lib/locale/nhn_MX/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/nhn_MX/LC_MONETARY
+#usr/lib/locale/nhn_MX/LC_NAME
+#usr/lib/locale/nhn_MX/LC_NUMERIC
+#usr/lib/locale/nhn_MX/LC_PAPER
+#usr/lib/locale/nhn_MX/LC_TELEPHONE
+#usr/lib/locale/nhn_MX/LC_TIME
+#usr/lib/locale/niu_NU
+#usr/lib/locale/niu_NU/LC_ADDRESS
+#usr/lib/locale/niu_NU/LC_COLLATE
+#usr/lib/locale/niu_NU/LC_CTYPE
+#usr/lib/locale/niu_NU/LC_IDENTIFICATION
+#usr/lib/locale/niu_NU/LC_MEASUREMENT
+#usr/lib/locale/niu_NU/LC_MESSAGES
+#usr/lib/locale/niu_NU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/niu_NU/LC_MONETARY
+#usr/lib/locale/niu_NU/LC_NAME
+#usr/lib/locale/niu_NU/LC_NUMERIC
+#usr/lib/locale/niu_NU/LC_PAPER
+#usr/lib/locale/niu_NU/LC_TELEPHONE
+#usr/lib/locale/niu_NU/LC_TIME
+#usr/lib/locale/niu_NZ
+#usr/lib/locale/niu_NZ/LC_ADDRESS
+#usr/lib/locale/niu_NZ/LC_COLLATE
+#usr/lib/locale/niu_NZ/LC_CTYPE
+#usr/lib/locale/niu_NZ/LC_IDENTIFICATION
+#usr/lib/locale/niu_NZ/LC_MEASUREMENT
+#usr/lib/locale/niu_NZ/LC_MESSAGES
+#usr/lib/locale/niu_NZ/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/niu_NZ/LC_MONETARY
+#usr/lib/locale/niu_NZ/LC_NAME
+#usr/lib/locale/niu_NZ/LC_NUMERIC
+#usr/lib/locale/niu_NZ/LC_PAPER
+#usr/lib/locale/niu_NZ/LC_TELEPHONE
+#usr/lib/locale/niu_NZ/LC_TIME
 #usr/lib/locale/nl_AW
 #usr/lib/locale/nl_AW/LC_ADDRESS
 #usr/lib/locale/nl_AW/LC_COLLATE
@@ -5098,34 +5556,6 @@ usr/lib/locale
 #usr/lib/locale/nn_NO/LC_PAPER
 #usr/lib/locale/nn_NO/LC_TELEPHONE
 #usr/lib/locale/nn_NO/LC_TIME
-#usr/lib/locale/no_NO
-#usr/lib/locale/no_NO.utf8
-#usr/lib/locale/no_NO.utf8/LC_ADDRESS
-#usr/lib/locale/no_NO.utf8/LC_COLLATE
-#usr/lib/locale/no_NO.utf8/LC_CTYPE
-#usr/lib/locale/no_NO.utf8/LC_IDENTIFICATION
-#usr/lib/locale/no_NO.utf8/LC_MEASUREMENT
-#usr/lib/locale/no_NO.utf8/LC_MESSAGES
-#usr/lib/locale/no_NO.utf8/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/no_NO.utf8/LC_MONETARY
-#usr/lib/locale/no_NO.utf8/LC_NAME
-#usr/lib/locale/no_NO.utf8/LC_NUMERIC
-#usr/lib/locale/no_NO.utf8/LC_PAPER
-#usr/lib/locale/no_NO.utf8/LC_TELEPHONE
-#usr/lib/locale/no_NO.utf8/LC_TIME
-#usr/lib/locale/no_NO/LC_ADDRESS
-#usr/lib/locale/no_NO/LC_COLLATE
-#usr/lib/locale/no_NO/LC_CTYPE
-#usr/lib/locale/no_NO/LC_IDENTIFICATION
-#usr/lib/locale/no_NO/LC_MEASUREMENT
-#usr/lib/locale/no_NO/LC_MESSAGES
-#usr/lib/locale/no_NO/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/no_NO/LC_MONETARY
-#usr/lib/locale/no_NO/LC_NAME
-#usr/lib/locale/no_NO/LC_NUMERIC
-#usr/lib/locale/no_NO/LC_PAPER
-#usr/lib/locale/no_NO/LC_TELEPHONE
-#usr/lib/locale/no_NO/LC_TIME
 #usr/lib/locale/nr_ZA
 #usr/lib/locale/nr_ZA/LC_ADDRESS
 #usr/lib/locale/nr_ZA/LC_COLLATE
@@ -5238,6 +5668,20 @@ usr/lib/locale
 #usr/lib/locale/or_IN/LC_PAPER
 #usr/lib/locale/or_IN/LC_TELEPHONE
 #usr/lib/locale/or_IN/LC_TIME
+#usr/lib/locale/os_RU
+#usr/lib/locale/os_RU/LC_ADDRESS
+#usr/lib/locale/os_RU/LC_COLLATE
+#usr/lib/locale/os_RU/LC_CTYPE
+#usr/lib/locale/os_RU/LC_IDENTIFICATION
+#usr/lib/locale/os_RU/LC_MEASUREMENT
+#usr/lib/locale/os_RU/LC_MESSAGES
+#usr/lib/locale/os_RU/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/os_RU/LC_MONETARY
+#usr/lib/locale/os_RU/LC_NAME
+#usr/lib/locale/os_RU/LC_NUMERIC
+#usr/lib/locale/os_RU/LC_PAPER
+#usr/lib/locale/os_RU/LC_TELEPHONE
+#usr/lib/locale/os_RU/LC_TIME
 #usr/lib/locale/pa_IN
 #usr/lib/locale/pa_IN/LC_ADDRESS
 #usr/lib/locale/pa_IN/LC_COLLATE
@@ -5266,20 +5710,34 @@ usr/lib/locale
 #usr/lib/locale/pa_PK/LC_PAPER
 #usr/lib/locale/pa_PK/LC_TELEPHONE
 #usr/lib/locale/pa_PK/LC_TIME
-#usr/lib/locale/pap_AN
-#usr/lib/locale/pap_AN/LC_ADDRESS
-#usr/lib/locale/pap_AN/LC_COLLATE
-#usr/lib/locale/pap_AN/LC_CTYPE
-#usr/lib/locale/pap_AN/LC_IDENTIFICATION
-#usr/lib/locale/pap_AN/LC_MEASUREMENT
-#usr/lib/locale/pap_AN/LC_MESSAGES
-#usr/lib/locale/pap_AN/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/pap_AN/LC_MONETARY
-#usr/lib/locale/pap_AN/LC_NAME
-#usr/lib/locale/pap_AN/LC_NUMERIC
-#usr/lib/locale/pap_AN/LC_PAPER
-#usr/lib/locale/pap_AN/LC_TELEPHONE
-#usr/lib/locale/pap_AN/LC_TIME
+#usr/lib/locale/pap_AW
+#usr/lib/locale/pap_AW/LC_ADDRESS
+#usr/lib/locale/pap_AW/LC_COLLATE
+#usr/lib/locale/pap_AW/LC_CTYPE
+#usr/lib/locale/pap_AW/LC_IDENTIFICATION
+#usr/lib/locale/pap_AW/LC_MEASUREMENT
+#usr/lib/locale/pap_AW/LC_MESSAGES
+#usr/lib/locale/pap_AW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/pap_AW/LC_MONETARY
+#usr/lib/locale/pap_AW/LC_NAME
+#usr/lib/locale/pap_AW/LC_NUMERIC
+#usr/lib/locale/pap_AW/LC_PAPER
+#usr/lib/locale/pap_AW/LC_TELEPHONE
+#usr/lib/locale/pap_AW/LC_TIME
+#usr/lib/locale/pap_CW
+#usr/lib/locale/pap_CW/LC_ADDRESS
+#usr/lib/locale/pap_CW/LC_COLLATE
+#usr/lib/locale/pap_CW/LC_CTYPE
+#usr/lib/locale/pap_CW/LC_IDENTIFICATION
+#usr/lib/locale/pap_CW/LC_MEASUREMENT
+#usr/lib/locale/pap_CW/LC_MESSAGES
+#usr/lib/locale/pap_CW/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/pap_CW/LC_MONETARY
+#usr/lib/locale/pap_CW/LC_NAME
+#usr/lib/locale/pap_CW/LC_NUMERIC
+#usr/lib/locale/pap_CW/LC_PAPER
+#usr/lib/locale/pap_CW/LC_TELEPHONE
+#usr/lib/locale/pap_CW/LC_TIME
 #usr/lib/locale/pl_PL
 #usr/lib/locale/pl_PL.utf8
 #usr/lib/locale/pl_PL.utf8/LC_ADDRESS
@@ -5392,6 +5850,34 @@ usr/lib/locale
 #usr/lib/locale/pt_PT@euro/LC_PAPER
 #usr/lib/locale/pt_PT@euro/LC_TELEPHONE
 #usr/lib/locale/pt_PT@euro/LC_TIME
+#usr/lib/locale/quz_PE
+#usr/lib/locale/quz_PE/LC_ADDRESS
+#usr/lib/locale/quz_PE/LC_COLLATE
+#usr/lib/locale/quz_PE/LC_CTYPE
+#usr/lib/locale/quz_PE/LC_IDENTIFICATION
+#usr/lib/locale/quz_PE/LC_MEASUREMENT
+#usr/lib/locale/quz_PE/LC_MESSAGES
+#usr/lib/locale/quz_PE/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/quz_PE/LC_MONETARY
+#usr/lib/locale/quz_PE/LC_NAME
+#usr/lib/locale/quz_PE/LC_NUMERIC
+#usr/lib/locale/quz_PE/LC_PAPER
+#usr/lib/locale/quz_PE/LC_TELEPHONE
+#usr/lib/locale/quz_PE/LC_TIME
+#usr/lib/locale/raj_IN
+#usr/lib/locale/raj_IN/LC_ADDRESS
+#usr/lib/locale/raj_IN/LC_COLLATE
+#usr/lib/locale/raj_IN/LC_CTYPE
+#usr/lib/locale/raj_IN/LC_IDENTIFICATION
+#usr/lib/locale/raj_IN/LC_MEASUREMENT
+#usr/lib/locale/raj_IN/LC_MESSAGES
+#usr/lib/locale/raj_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/raj_IN/LC_MONETARY
+#usr/lib/locale/raj_IN/LC_NAME
+#usr/lib/locale/raj_IN/LC_NUMERIC
+#usr/lib/locale/raj_IN/LC_PAPER
+#usr/lib/locale/raj_IN/LC_TELEPHONE
+#usr/lib/locale/raj_IN/LC_TIME
 #usr/lib/locale/ro_RO
 #usr/lib/locale/ro_RO.utf8
 #usr/lib/locale/ro_RO.utf8/LC_ADDRESS
@@ -5518,6 +6004,20 @@ usr/lib/locale
 #usr/lib/locale/sa_IN/LC_PAPER
 #usr/lib/locale/sa_IN/LC_TELEPHONE
 #usr/lib/locale/sa_IN/LC_TIME
+#usr/lib/locale/sat_IN
+#usr/lib/locale/sat_IN/LC_ADDRESS
+#usr/lib/locale/sat_IN/LC_COLLATE
+#usr/lib/locale/sat_IN/LC_CTYPE
+#usr/lib/locale/sat_IN/LC_IDENTIFICATION
+#usr/lib/locale/sat_IN/LC_MEASUREMENT
+#usr/lib/locale/sat_IN/LC_MESSAGES
+#usr/lib/locale/sat_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sat_IN/LC_MONETARY
+#usr/lib/locale/sat_IN/LC_NAME
+#usr/lib/locale/sat_IN/LC_NUMERIC
+#usr/lib/locale/sat_IN/LC_PAPER
+#usr/lib/locale/sat_IN/LC_TELEPHONE
+#usr/lib/locale/sat_IN/LC_TIME
 #usr/lib/locale/sc_IT
 #usr/lib/locale/sc_IT/LC_ADDRESS
 #usr/lib/locale/sc_IT/LC_COLLATE
@@ -5574,6 +6074,20 @@ usr/lib/locale
 #usr/lib/locale/se_NO/LC_PAPER
 #usr/lib/locale/se_NO/LC_TELEPHONE
 #usr/lib/locale/se_NO/LC_TIME
+#usr/lib/locale/sgs_LT
+#usr/lib/locale/sgs_LT/LC_ADDRESS
+#usr/lib/locale/sgs_LT/LC_COLLATE
+#usr/lib/locale/sgs_LT/LC_CTYPE
+#usr/lib/locale/sgs_LT/LC_IDENTIFICATION
+#usr/lib/locale/sgs_LT/LC_MEASUREMENT
+#usr/lib/locale/sgs_LT/LC_MESSAGES
+#usr/lib/locale/sgs_LT/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sgs_LT/LC_MONETARY
+#usr/lib/locale/sgs_LT/LC_NAME
+#usr/lib/locale/sgs_LT/LC_NUMERIC
+#usr/lib/locale/sgs_LT/LC_PAPER
+#usr/lib/locale/sgs_LT/LC_TELEPHONE
+#usr/lib/locale/sgs_LT/LC_TIME
 #usr/lib/locale/shs_CA
 #usr/lib/locale/shs_CA/LC_ADDRESS
 #usr/lib/locale/shs_CA/LC_COLLATE
@@ -5939,20 +6453,6 @@ usr/lib/locale
 #usr/lib/locale/sv_FI@euro/LC_TELEPHONE
 #usr/lib/locale/sv_FI@euro/LC_TIME
 #usr/lib/locale/sv_SE
-#usr/lib/locale/sv_SE.iso885915
-#usr/lib/locale/sv_SE.iso885915/LC_ADDRESS
-#usr/lib/locale/sv_SE.iso885915/LC_COLLATE
-#usr/lib/locale/sv_SE.iso885915/LC_CTYPE
-#usr/lib/locale/sv_SE.iso885915/LC_IDENTIFICATION
-#usr/lib/locale/sv_SE.iso885915/LC_MEASUREMENT
-#usr/lib/locale/sv_SE.iso885915/LC_MESSAGES
-#usr/lib/locale/sv_SE.iso885915/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/sv_SE.iso885915/LC_MONETARY
-#usr/lib/locale/sv_SE.iso885915/LC_NAME
-#usr/lib/locale/sv_SE.iso885915/LC_NUMERIC
-#usr/lib/locale/sv_SE.iso885915/LC_PAPER
-#usr/lib/locale/sv_SE.iso885915/LC_TELEPHONE
-#usr/lib/locale/sv_SE.iso885915/LC_TIME
 #usr/lib/locale/sv_SE.utf8
 #usr/lib/locale/sv_SE.utf8/LC_ADDRESS
 #usr/lib/locale/sv_SE.utf8/LC_COLLATE
@@ -5980,6 +6480,48 @@ usr/lib/locale
 #usr/lib/locale/sv_SE/LC_PAPER
 #usr/lib/locale/sv_SE/LC_TELEPHONE
 #usr/lib/locale/sv_SE/LC_TIME
+#usr/lib/locale/sw_KE
+#usr/lib/locale/sw_KE/LC_ADDRESS
+#usr/lib/locale/sw_KE/LC_COLLATE
+#usr/lib/locale/sw_KE/LC_CTYPE
+#usr/lib/locale/sw_KE/LC_IDENTIFICATION
+#usr/lib/locale/sw_KE/LC_MEASUREMENT
+#usr/lib/locale/sw_KE/LC_MESSAGES
+#usr/lib/locale/sw_KE/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sw_KE/LC_MONETARY
+#usr/lib/locale/sw_KE/LC_NAME
+#usr/lib/locale/sw_KE/LC_NUMERIC
+#usr/lib/locale/sw_KE/LC_PAPER
+#usr/lib/locale/sw_KE/LC_TELEPHONE
+#usr/lib/locale/sw_KE/LC_TIME
+#usr/lib/locale/sw_TZ
+#usr/lib/locale/sw_TZ/LC_ADDRESS
+#usr/lib/locale/sw_TZ/LC_COLLATE
+#usr/lib/locale/sw_TZ/LC_CTYPE
+#usr/lib/locale/sw_TZ/LC_IDENTIFICATION
+#usr/lib/locale/sw_TZ/LC_MEASUREMENT
+#usr/lib/locale/sw_TZ/LC_MESSAGES
+#usr/lib/locale/sw_TZ/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/sw_TZ/LC_MONETARY
+#usr/lib/locale/sw_TZ/LC_NAME
+#usr/lib/locale/sw_TZ/LC_NUMERIC
+#usr/lib/locale/sw_TZ/LC_PAPER
+#usr/lib/locale/sw_TZ/LC_TELEPHONE
+#usr/lib/locale/sw_TZ/LC_TIME
+#usr/lib/locale/szl_PL
+#usr/lib/locale/szl_PL/LC_ADDRESS
+#usr/lib/locale/szl_PL/LC_COLLATE
+#usr/lib/locale/szl_PL/LC_CTYPE
+#usr/lib/locale/szl_PL/LC_IDENTIFICATION
+#usr/lib/locale/szl_PL/LC_MEASUREMENT
+#usr/lib/locale/szl_PL/LC_MESSAGES
+#usr/lib/locale/szl_PL/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/szl_PL/LC_MONETARY
+#usr/lib/locale/szl_PL/LC_NAME
+#usr/lib/locale/szl_PL/LC_NUMERIC
+#usr/lib/locale/szl_PL/LC_PAPER
+#usr/lib/locale/szl_PL/LC_TELEPHONE
+#usr/lib/locale/szl_PL/LC_TIME
 #usr/lib/locale/ta_IN
 #usr/lib/locale/ta_IN/LC_ADDRESS
 #usr/lib/locale/ta_IN/LC_COLLATE
@@ -5994,6 +6536,34 @@ usr/lib/locale
 #usr/lib/locale/ta_IN/LC_PAPER
 #usr/lib/locale/ta_IN/LC_TELEPHONE
 #usr/lib/locale/ta_IN/LC_TIME
+#usr/lib/locale/ta_LK
+#usr/lib/locale/ta_LK/LC_ADDRESS
+#usr/lib/locale/ta_LK/LC_COLLATE
+#usr/lib/locale/ta_LK/LC_CTYPE
+#usr/lib/locale/ta_LK/LC_IDENTIFICATION
+#usr/lib/locale/ta_LK/LC_MEASUREMENT
+#usr/lib/locale/ta_LK/LC_MESSAGES
+#usr/lib/locale/ta_LK/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ta_LK/LC_MONETARY
+#usr/lib/locale/ta_LK/LC_NAME
+#usr/lib/locale/ta_LK/LC_NUMERIC
+#usr/lib/locale/ta_LK/LC_PAPER
+#usr/lib/locale/ta_LK/LC_TELEPHONE
+#usr/lib/locale/ta_LK/LC_TIME
+#usr/lib/locale/tcy_IN.utf8
+#usr/lib/locale/tcy_IN.utf8/LC_ADDRESS
+#usr/lib/locale/tcy_IN.utf8/LC_COLLATE
+#usr/lib/locale/tcy_IN.utf8/LC_CTYPE
+#usr/lib/locale/tcy_IN.utf8/LC_IDENTIFICATION
+#usr/lib/locale/tcy_IN.utf8/LC_MEASUREMENT
+#usr/lib/locale/tcy_IN.utf8/LC_MESSAGES
+#usr/lib/locale/tcy_IN.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/tcy_IN.utf8/LC_MONETARY
+#usr/lib/locale/tcy_IN.utf8/LC_NAME
+#usr/lib/locale/tcy_IN.utf8/LC_NUMERIC
+#usr/lib/locale/tcy_IN.utf8/LC_PAPER
+#usr/lib/locale/tcy_IN.utf8/LC_TELEPHONE
+#usr/lib/locale/tcy_IN.utf8/LC_TIME
 #usr/lib/locale/te_IN
 #usr/lib/locale/te_IN/LC_ADDRESS
 #usr/lib/locale/te_IN/LC_COLLATE
@@ -6064,6 +6634,20 @@ usr/lib/locale
 #usr/lib/locale/th_TH/LC_PAPER
 #usr/lib/locale/th_TH/LC_TELEPHONE
 #usr/lib/locale/th_TH/LC_TIME
+#usr/lib/locale/the_NP
+#usr/lib/locale/the_NP/LC_ADDRESS
+#usr/lib/locale/the_NP/LC_COLLATE
+#usr/lib/locale/the_NP/LC_CTYPE
+#usr/lib/locale/the_NP/LC_IDENTIFICATION
+#usr/lib/locale/the_NP/LC_MEASUREMENT
+#usr/lib/locale/the_NP/LC_MESSAGES
+#usr/lib/locale/the_NP/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/the_NP/LC_MONETARY
+#usr/lib/locale/the_NP/LC_NAME
+#usr/lib/locale/the_NP/LC_NUMERIC
+#usr/lib/locale/the_NP/LC_PAPER
+#usr/lib/locale/the_NP/LC_TELEPHONE
+#usr/lib/locale/the_NP/LC_TIME
 #usr/lib/locale/ti_ER
 #usr/lib/locale/ti_ER/LC_ADDRESS
 #usr/lib/locale/ti_ER/LC_COLLATE
@@ -6302,6 +6886,34 @@ usr/lib/locale
 #usr/lib/locale/uk_UA/LC_PAPER
 #usr/lib/locale/uk_UA/LC_TELEPHONE
 #usr/lib/locale/uk_UA/LC_TIME
+#usr/lib/locale/unm_US
+#usr/lib/locale/unm_US/LC_ADDRESS
+#usr/lib/locale/unm_US/LC_COLLATE
+#usr/lib/locale/unm_US/LC_CTYPE
+#usr/lib/locale/unm_US/LC_IDENTIFICATION
+#usr/lib/locale/unm_US/LC_MEASUREMENT
+#usr/lib/locale/unm_US/LC_MESSAGES
+#usr/lib/locale/unm_US/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/unm_US/LC_MONETARY
+#usr/lib/locale/unm_US/LC_NAME
+#usr/lib/locale/unm_US/LC_NUMERIC
+#usr/lib/locale/unm_US/LC_PAPER
+#usr/lib/locale/unm_US/LC_TELEPHONE
+#usr/lib/locale/unm_US/LC_TIME
+#usr/lib/locale/ur_IN
+#usr/lib/locale/ur_IN/LC_ADDRESS
+#usr/lib/locale/ur_IN/LC_COLLATE
+#usr/lib/locale/ur_IN/LC_CTYPE
+#usr/lib/locale/ur_IN/LC_IDENTIFICATION
+#usr/lib/locale/ur_IN/LC_MEASUREMENT
+#usr/lib/locale/ur_IN/LC_MESSAGES
+#usr/lib/locale/ur_IN/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/ur_IN/LC_MONETARY
+#usr/lib/locale/ur_IN/LC_NAME
+#usr/lib/locale/ur_IN/LC_NUMERIC
+#usr/lib/locale/ur_IN/LC_PAPER
+#usr/lib/locale/ur_IN/LC_TELEPHONE
+#usr/lib/locale/ur_IN/LC_TIME
 #usr/lib/locale/ur_PK
 #usr/lib/locale/ur_PK/LC_ADDRESS
 #usr/lib/locale/ur_PK/LC_COLLATE
@@ -6317,6 +6929,20 @@ usr/lib/locale
 #usr/lib/locale/ur_PK/LC_TELEPHONE
 #usr/lib/locale/ur_PK/LC_TIME
 #usr/lib/locale/uz_UZ
+#usr/lib/locale/uz_UZ.utf8
+#usr/lib/locale/uz_UZ.utf8/LC_ADDRESS
+#usr/lib/locale/uz_UZ.utf8/LC_COLLATE
+#usr/lib/locale/uz_UZ.utf8/LC_CTYPE
+#usr/lib/locale/uz_UZ.utf8/LC_IDENTIFICATION
+#usr/lib/locale/uz_UZ.utf8/LC_MEASUREMENT
+#usr/lib/locale/uz_UZ.utf8/LC_MESSAGES
+#usr/lib/locale/uz_UZ.utf8/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/uz_UZ.utf8/LC_MONETARY
+#usr/lib/locale/uz_UZ.utf8/LC_NAME
+#usr/lib/locale/uz_UZ.utf8/LC_NUMERIC
+#usr/lib/locale/uz_UZ.utf8/LC_PAPER
+#usr/lib/locale/uz_UZ.utf8/LC_TELEPHONE
+#usr/lib/locale/uz_UZ.utf8/LC_TIME
 #usr/lib/locale/uz_UZ/LC_ADDRESS
 #usr/lib/locale/uz_UZ/LC_COLLATE
 #usr/lib/locale/uz_UZ/LC_CTYPE
@@ -6359,20 +6985,6 @@ usr/lib/locale
 #usr/lib/locale/ve_ZA/LC_TELEPHONE
 #usr/lib/locale/ve_ZA/LC_TIME
 #usr/lib/locale/vi_VN
-#usr/lib/locale/vi_VN.tcvn
-#usr/lib/locale/vi_VN.tcvn/LC_ADDRESS
-#usr/lib/locale/vi_VN.tcvn/LC_COLLATE
-#usr/lib/locale/vi_VN.tcvn/LC_CTYPE
-#usr/lib/locale/vi_VN.tcvn/LC_IDENTIFICATION
-#usr/lib/locale/vi_VN.tcvn/LC_MEASUREMENT
-#usr/lib/locale/vi_VN.tcvn/LC_MESSAGES
-#usr/lib/locale/vi_VN.tcvn/LC_MESSAGES/SYS_LC_MESSAGES
-#usr/lib/locale/vi_VN.tcvn/LC_MONETARY
-#usr/lib/locale/vi_VN.tcvn/LC_NAME
-#usr/lib/locale/vi_VN.tcvn/LC_NUMERIC
-#usr/lib/locale/vi_VN.tcvn/LC_PAPER
-#usr/lib/locale/vi_VN.tcvn/LC_TELEPHONE
-#usr/lib/locale/vi_VN.tcvn/LC_TIME
 #usr/lib/locale/vi_VN/LC_ADDRESS
 #usr/lib/locale/vi_VN/LC_COLLATE
 #usr/lib/locale/vi_VN/LC_CTYPE
@@ -6428,6 +7040,34 @@ usr/lib/locale
 #usr/lib/locale/wa_BE@euro/LC_PAPER
 #usr/lib/locale/wa_BE@euro/LC_TELEPHONE
 #usr/lib/locale/wa_BE@euro/LC_TIME
+#usr/lib/locale/wae_CH
+#usr/lib/locale/wae_CH/LC_ADDRESS
+#usr/lib/locale/wae_CH/LC_COLLATE
+#usr/lib/locale/wae_CH/LC_CTYPE
+#usr/lib/locale/wae_CH/LC_IDENTIFICATION
+#usr/lib/locale/wae_CH/LC_MEASUREMENT
+#usr/lib/locale/wae_CH/LC_MESSAGES
+#usr/lib/locale/wae_CH/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/wae_CH/LC_MONETARY
+#usr/lib/locale/wae_CH/LC_NAME
+#usr/lib/locale/wae_CH/LC_NUMERIC
+#usr/lib/locale/wae_CH/LC_PAPER
+#usr/lib/locale/wae_CH/LC_TELEPHONE
+#usr/lib/locale/wae_CH/LC_TIME
+#usr/lib/locale/wal_ET
+#usr/lib/locale/wal_ET/LC_ADDRESS
+#usr/lib/locale/wal_ET/LC_COLLATE
+#usr/lib/locale/wal_ET/LC_CTYPE
+#usr/lib/locale/wal_ET/LC_IDENTIFICATION
+#usr/lib/locale/wal_ET/LC_MEASUREMENT
+#usr/lib/locale/wal_ET/LC_MESSAGES
+#usr/lib/locale/wal_ET/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/wal_ET/LC_MONETARY
+#usr/lib/locale/wal_ET/LC_NAME
+#usr/lib/locale/wal_ET/LC_NUMERIC
+#usr/lib/locale/wal_ET/LC_PAPER
+#usr/lib/locale/wal_ET/LC_TELEPHONE
+#usr/lib/locale/wal_ET/LC_TIME
 #usr/lib/locale/wo_SN
 #usr/lib/locale/wo_SN/LC_ADDRESS
 #usr/lib/locale/wo_SN/LC_COLLATE
@@ -6512,6 +7152,20 @@ usr/lib/locale
 #usr/lib/locale/yo_NG/LC_PAPER
 #usr/lib/locale/yo_NG/LC_TELEPHONE
 #usr/lib/locale/yo_NG/LC_TIME
+#usr/lib/locale/yue_HK
+#usr/lib/locale/yue_HK/LC_ADDRESS
+#usr/lib/locale/yue_HK/LC_COLLATE
+#usr/lib/locale/yue_HK/LC_CTYPE
+#usr/lib/locale/yue_HK/LC_IDENTIFICATION
+#usr/lib/locale/yue_HK/LC_MEASUREMENT
+#usr/lib/locale/yue_HK/LC_MESSAGES
+#usr/lib/locale/yue_HK/LC_MESSAGES/SYS_LC_MESSAGES
+#usr/lib/locale/yue_HK/LC_MONETARY
+#usr/lib/locale/yue_HK/LC_NAME
+#usr/lib/locale/yue_HK/LC_NUMERIC
+#usr/lib/locale/yue_HK/LC_PAPER
+#usr/lib/locale/yue_HK/LC_TELEPHONE
+#usr/lib/locale/yue_HK/LC_TIME
 #usr/lib/locale/zh_CN
 #usr/lib/locale/zh_CN.gb18030
 #usr/lib/locale/zh_CN.gb18030/LC_ADDRESS
@@ -6710,7 +7364,6 @@ usr/lib/locale
 #usr/lib/locale/zu_ZA/LC_TIME
 #usr/sbin/iconvconfig
 #usr/sbin/nscd
-#usr/sbin/rpcinfo
 #usr/sbin/zdump
 #usr/sbin/zic
 #usr/share/i18n
@@ -6736,6 +7389,11 @@ usr/lib/locale
 #usr/share/i18n/charmaps/CP1257.gz
 #usr/share/i18n/charmaps/CP1258.gz
 #usr/share/i18n/charmaps/CP737.gz
+#usr/share/i18n/charmaps/CP770.gz
+#usr/share/i18n/charmaps/CP771.gz
+#usr/share/i18n/charmaps/CP772.gz
+#usr/share/i18n/charmaps/CP773.gz
+#usr/share/i18n/charmaps/CP774.gz
 #usr/share/i18n/charmaps/CP775.gz
 #usr/share/i18n/charmaps/CP949.gz
 #usr/share/i18n/charmaps/CSA_Z243.4-1985-1.gz
@@ -6949,8 +7607,10 @@ usr/lib/locale
 #usr/share/i18n/locales/aa_ER@saaho
 #usr/share/i18n/locales/aa_ET
 #usr/share/i18n/locales/af_ZA
+#usr/share/i18n/locales/ak_GH
 #usr/share/i18n/locales/am_ET
 #usr/share/i18n/locales/an_ES
+#usr/share/i18n/locales/anp_IN
 #usr/share/i18n/locales/ar_AE
 #usr/share/i18n/locales/ar_BH
 #usr/share/i18n/locales/ar_DZ
@@ -6966,23 +7626,29 @@ usr/lib/locale
 #usr/share/i18n/locales/ar_QA
 #usr/share/i18n/locales/ar_SA
 #usr/share/i18n/locales/ar_SD
+#usr/share/i18n/locales/ar_SS
 #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/ayc_PE
 #usr/share/i18n/locales/az_AZ
 #usr/share/i18n/locales/be_BY
 #usr/share/i18n/locales/be_BY@latin
+#usr/share/i18n/locales/bem_ZM
 #usr/share/i18n/locales/ber_DZ
 #usr/share/i18n/locales/ber_MA
 #usr/share/i18n/locales/bg_BG
+#usr/share/i18n/locales/bhb_IN
+#usr/share/i18n/locales/bho_IN
 #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/brx_IN
 #usr/share/i18n/locales/bs_BA
 #usr/share/i18n/locales/byn_ER
 #usr/share/i18n/locales/ca_AD
@@ -6990,6 +7656,9 @@ usr/lib/locale
 #usr/share/i18n/locales/ca_ES@euro
 #usr/share/i18n/locales/ca_FR
 #usr/share/i18n/locales/ca_IT
+#usr/share/i18n/locales/ce_RU
+#usr/share/i18n/locales/chr_US
+#usr/share/i18n/locales/cmn_TW
 #usr/share/i18n/locales/crh_UA
 #usr/share/i18n/locales/cs_CZ
 #usr/share/i18n/locales/csb_PL
@@ -7003,8 +7672,11 @@ usr/lib/locale
 #usr/share/i18n/locales/de_CH
 #usr/share/i18n/locales/de_DE
 #usr/share/i18n/locales/de_DE@euro
+#usr/share/i18n/locales/de_IT
+#usr/share/i18n/locales/de_LI
 #usr/share/i18n/locales/de_LU
 #usr/share/i18n/locales/de_LU@euro
+#usr/share/i18n/locales/doi_IN
 #usr/share/i18n/locales/dv_MV
 #usr/share/i18n/locales/dz_BT
 #usr/share/i18n/locales/el_CY
@@ -7019,6 +7691,7 @@ usr/lib/locale
 #usr/share/i18n/locales/en_HK
 #usr/share/i18n/locales/en_IE
 #usr/share/i18n/locales/en_IE@euro
+#usr/share/i18n/locales/en_IL
 #usr/share/i18n/locales/en_IN
 #usr/share/i18n/locales/en_NG
 #usr/share/i18n/locales/en_NZ
@@ -7026,12 +7699,15 @@ usr/lib/locale
 #usr/share/i18n/locales/en_SG
 #usr/share/i18n/locales/en_US
 #usr/share/i18n/locales/en_ZA
+#usr/share/i18n/locales/en_ZM
 #usr/share/i18n/locales/en_ZW
+#usr/share/i18n/locales/eo
 #usr/share/i18n/locales/es_AR
 #usr/share/i18n/locales/es_BO
 #usr/share/i18n/locales/es_CL
 #usr/share/i18n/locales/es_CO
 #usr/share/i18n/locales/es_CR
+#usr/share/i18n/locales/es_CU
 #usr/share/i18n/locales/es_DO
 #usr/share/i18n/locales/es_EC
 #usr/share/i18n/locales/es_ES
@@ -7052,8 +7728,8 @@ usr/lib/locale
 #usr/share/i18n/locales/eu_ES
 #usr/share/i18n/locales/eu_ES@euro
 #usr/share/i18n/locales/fa_IR
+#usr/share/i18n/locales/ff_SN
 #usr/share/i18n/locales/fi_FI
-#usr/share/i18n/locales/fi_FI.orig
 #usr/share/i18n/locales/fi_FI@euro
 #usr/share/i18n/locales/fil_PH
 #usr/share/i18n/locales/fo_FO
@@ -7080,6 +7756,7 @@ usr/lib/locale
 #usr/share/i18n/locales/gu_IN
 #usr/share/i18n/locales/gv_GB
 #usr/share/i18n/locales/ha_NG
+#usr/share/i18n/locales/hak_TW
 #usr/share/i18n/locales/he_IL
 #usr/share/i18n/locales/hi_IN
 #usr/share/i18n/locales/hne_IN
@@ -7089,6 +7766,7 @@ usr/lib/locale
 #usr/share/i18n/locales/hu_HU
 #usr/share/i18n/locales/hy_AM
 #usr/share/i18n/locales/i18n
+#usr/share/i18n/locales/ia_FR
 #usr/share/i18n/locales/id_ID
 #usr/share/i18n/locales/ig_NG
 #usr/share/i18n/locales/ik_CA
@@ -7100,7 +7778,6 @@ usr/lib/locale
 #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
@@ -7114,57 +7791,73 @@ usr/lib/locale
 #usr/share/i18n/locales/ku_TR
 #usr/share/i18n/locales/kw_GB
 #usr/share/i18n/locales/ky_KG
+#usr/share/i18n/locales/lb_LU
 #usr/share/i18n/locales/lg_UG
 #usr/share/i18n/locales/li_BE
 #usr/share/i18n/locales/li_NL
+#usr/share/i18n/locales/lij_IT
+#usr/share/i18n/locales/ln_CD
 #usr/share/i18n/locales/lo_LA
 #usr/share/i18n/locales/lt_LT
 #usr/share/i18n/locales/lv_LV
+#usr/share/i18n/locales/lzh_TW
+#usr/share/i18n/locales/mag_IN
 #usr/share/i18n/locales/mai_IN
 #usr/share/i18n/locales/mg_MG
+#usr/share/i18n/locales/mhr_RU
 #usr/share/i18n/locales/mi_NZ
 #usr/share/i18n/locales/mk_MK
 #usr/share/i18n/locales/ml_IN
 #usr/share/i18n/locales/mn_MN
+#usr/share/i18n/locales/mni_IN
 #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
 #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/nhn_MX
+#usr/share/i18n/locales/niu_NU
+#usr/share/i18n/locales/niu_NZ
 #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/os_RU
 #usr/share/i18n/locales/pa_IN
 #usr/share/i18n/locales/pa_PK
-#usr/share/i18n/locales/pap_AN
+#usr/share/i18n/locales/pap_AW
+#usr/share/i18n/locales/pap_CW
 #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/quz_PE
+#usr/share/i18n/locales/raj_IN
 #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/sat_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/sgs_LT
 #usr/share/i18n/locales/shs_CA
 #usr/share/i18n/locales/si_LK
 #usr/share/i18n/locales/sid_ET
@@ -7184,10 +7877,16 @@ usr/lib/locale
 #usr/share/i18n/locales/sv_FI
 #usr/share/i18n/locales/sv_FI@euro
 #usr/share/i18n/locales/sv_SE
+#usr/share/i18n/locales/sw_KE
+#usr/share/i18n/locales/sw_TZ
+#usr/share/i18n/locales/szl_PL
 #usr/share/i18n/locales/ta_IN
+#usr/share/i18n/locales/ta_LK
+#usr/share/i18n/locales/tcy_IN
 #usr/share/i18n/locales/te_IN
 #usr/share/i18n/locales/tg_TJ
 #usr/share/i18n/locales/th_TH
+#usr/share/i18n/locales/the_NP
 #usr/share/i18n/locales/ti_ER
 #usr/share/i18n/locales/ti_ET
 #usr/share/i18n/locales/tig_ER
@@ -7213,6 +7912,7 @@ usr/lib/locale
 #usr/share/i18n/locales/tt_RU@iqtelif
 #usr/share/i18n/locales/ug_CN
 #usr/share/i18n/locales/uk_UA
+#usr/share/i18n/locales/unm_US
 #usr/share/i18n/locales/ur_IN
 #usr/share/i18n/locales/ur_PK
 #usr/share/i18n/locales/uz_UZ
@@ -7221,11 +7921,13 @@ usr/lib/locale
 #usr/share/i18n/locales/vi_VN
 #usr/share/i18n/locales/wa_BE
 #usr/share/i18n/locales/wa_BE@euro
+#usr/share/i18n/locales/wae_CH
 #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/yue_HK
 #usr/share/i18n/locales/zh_CN
 #usr/share/i18n/locales/zh_HK
 #usr/share/i18n/locales/zh_SG
@@ -7236,6 +7938,10 @@ usr/lib/locale
 #usr/share/info/libc.info-1
 #usr/share/info/libc.info-10
 #usr/share/info/libc.info-11
+#usr/share/info/libc.info-12
+#usr/share/info/libc.info-13
+#usr/share/info/libc.info-14
+#usr/share/info/libc.info-15
 #usr/share/info/libc.info-2
 #usr/share/info/libc.info-3
 #usr/share/info/libc.info-4
@@ -7268,6 +7974,9 @@ usr/lib/locale
 #usr/share/locale/en_GB
 #usr/share/locale/en_GB/LC_MESSAGES
 #usr/share/locale/en_GB/LC_MESSAGES/libc.mo
+#usr/share/locale/eo
+#usr/share/locale/eo/LC_MESSAGES
+#usr/share/locale/eo/LC_MESSAGES/libc.mo
 #usr/share/locale/es
 #usr/share/locale/es/LC_MESSAGES
 #usr/share/locale/es/LC_MESSAGES/libc.mo
@@ -7286,6 +7995,9 @@ usr/lib/locale
 #usr/share/locale/hu
 #usr/share/locale/hu/LC_MESSAGES
 #usr/share/locale/hu/LC_MESSAGES/libc.mo
+#usr/share/locale/ia
+#usr/share/locale/ia/LC_MESSAGES
+#usr/share/locale/ia/LC_MESSAGES/libc.mo
 #usr/share/locale/id
 #usr/share/locale/id/LC_MESSAGES
 #usr/share/locale/id/LC_MESSAGES/libc.mo
@@ -7323,12 +8035,18 @@ usr/lib/locale
 #usr/share/locale/sk
 #usr/share/locale/sk/LC_MESSAGES
 #usr/share/locale/sk/LC_MESSAGES/libc.mo
+#usr/share/locale/sl
+#usr/share/locale/sl/LC_MESSAGES
+#usr/share/locale/sl/LC_MESSAGES/libc.mo
 #usr/share/locale/sv
 #usr/share/locale/sv/LC_MESSAGES
 #usr/share/locale/sv/LC_MESSAGES/libc.mo
 #usr/share/locale/tr
 #usr/share/locale/tr/LC_MESSAGES
 #usr/share/locale/tr/LC_MESSAGES/libc.mo
+#usr/share/locale/uk
+#usr/share/locale/uk/LC_MESSAGES
+#usr/share/locale/uk/LC_MESSAGES/libc.mo
 #usr/share/locale/vi
 #usr/share/locale/vi/LC_MESSAGES
 #usr/share/locale/vi/LC_MESSAGES/libc.mo
@@ -7340,3 +8058,5 @@ usr/lib/locale
 #usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
 #var/cache/ldconfig
 #var/cache/ldconfig/aux-cache
+#var/db
+#var/db/Makefile
index de549fcf448148f9d0bcca30b92e494b9ef1d406..919b0845aadce0b7bba495c62884ef9c1c7b5442 100644 (file)
@@ -4,12 +4,12 @@
 #usr/lib/libgmp.la
 #usr/lib/libgmp.so
 usr/lib/libgmp.so.10
-usr/lib/libgmp.so.10.3.0
+usr/lib/libgmp.so.10.3.2
 #usr/lib/libgmpxx.a
 #usr/lib/libgmpxx.la
 #usr/lib/libgmpxx.so
 usr/lib/libgmpxx.so.4
-usr/lib/libgmpxx.so.4.5.0
+usr/lib/libgmpxx.so.4.5.2
 #usr/share/info/gmp.info
 #usr/share/info/gmp.info-1
 #usr/share/info/gmp.info-2
index 75aad1783ffc21510d507dfb9795d2d704388a4f..760a12869cf829c375f1833d31e084b95964feba 100644 (file)
@@ -4,66 +4,30 @@ etc/init.d
 etc/rc.d/helper/getdnsfromdhcpc.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
-#etc/rc.d/init.d/apcupsd
-#etc/rc.d/init.d/applejuice
-#etc/rc.d/init.d/asterisk
 etc/rc.d/init.d/beep
-#etc/rc.d/init.d/bluetooth
 etc/rc.d/init.d/checkfs
-#etc/rc.d/init.d/clamav
 etc/rc.d/init.d/cleanfs
-#etc/rc.d/init.d/client175
 etc/rc.d/init.d/collectd
 etc/rc.d/init.d/connectd
 etc/rc.d/init.d/console
-#etc/rc.d/init.d/cpufreq
-#etc/rc.d/init.d/cups
-#etc/rc.d/init.d/cyrus-imapd
-#etc/rc.d/init.d/cyrus-sasl
 etc/rc.d/init.d/dhcp
 etc/rc.d/init.d/dhcrelay
-#etc/rc.d/init.d/dnsdist
 etc/rc.d/init.d/fcron
-#etc/rc.d/init.d/fetchmail
 etc/rc.d/init.d/fireinfo
 etc/rc.d/init.d/firewall
 etc/rc.d/init.d/firstsetup
-#etc/rc.d/init.d/freeradius
 etc/rc.d/init.d/fsresize
 etc/rc.d/init.d/functions
-#etc/rc.d/init.d/gnump3d
-#etc/rc.d/init.d/guardian
 etc/rc.d/init.d/halt
-#etc/rc.d/init.d/haproxy
-#etc/rc.d/init.d/hostapd
-#etc/rc.d/init.d/imspector
 etc/rc.d/init.d/ipsec
-#etc/rc.d/init.d/keepalived
-#etc/rc.d/init.d/lcd4linux
-#etc/rc.d/init.d/lcdproc
-#etc/rc.d/init.d/lcr
 etc/rc.d/init.d/leds
-#etc/rc.d/init.d/libvirt-guests
-#etc/rc.d/init.d/libvirtd
 etc/rc.d/init.d/localnet
 etc/rc.d/init.d/mISDN
-#etc/rc.d/init.d/mediatomb
-#etc/rc.d/init.d/messagebus
-#etc/rc.d/init.d/miau
-#etc/rc.d/init.d/minidlna
-#etc/rc.d/init.d/miniupnpd
 etc/rc.d/init.d/modules
-#etc/rc.d/init.d/monit
-#etc/rc.d/init.d/motion
 etc/rc.d/init.d/mountfs
 etc/rc.d/init.d/mountkernfs
 etc/rc.d/init.d/mounttmpfs
-#etc/rc.d/init.d/mpd
-#etc/rc.d/init.d/mysql
-#etc/rc.d/init.d/netsnmpd
 etc/rc.d/init.d/network
 etc/rc.d/init.d/network-trigger
 #etc/rc.d/init.d/networking
@@ -100,51 +64,30 @@ etc/rc.d/init.d/networking/red.up/99-fireinfo
 etc/rc.d/init.d/networking/red.up/99-geoip-database
 etc/rc.d/init.d/networking/red.up/99-pakfire-update
 etc/rc.d/init.d/networking/wpa_supplicant.exe
-#etc/rc.d/init.d/nfs-server
 etc/rc.d/init.d/ntp
-#etc/rc.d/init.d/nut
-#etc/rc.d/init.d/openvmtools
 etc/rc.d/init.d/partresize
-#etc/rc.d/init.d/postfix
-#etc/rc.d/init.d/pound
 etc/rc.d/init.d/random
 etc/rc.d/init.d/rc
 etc/rc.d/init.d/reboot
 etc/rc.d/init.d/rngd
-#etc/rc.d/init.d/rpcbind
-#etc/rc.d/init.d/rtpproxy
-#etc/rc.d/init.d/samba
-#etc/rc.d/init.d/sane
 etc/rc.d/init.d/sendsignals
 etc/rc.d/init.d/setclock
 etc/rc.d/init.d/smartenabler
 etc/rc.d/init.d/snort
-#etc/rc.d/init.d/spamassassin
 etc/rc.d/init.d/squid
 etc/rc.d/init.d/sshd
-#etc/rc.d/init.d/sslh
 etc/rc.d/init.d/static-routes
-#etc/rc.d/init.d/stunnel
 etc/rc.d/init.d/swap
 etc/rc.d/init.d/sysctl
 etc/rc.d/init.d/sysklogd
 etc/rc.d/init.d/template
-#etc/rc.d/init.d/tftpd
-#etc/rc.d/init.d/tor
-#etc/rc.d/init.d/transmission
 etc/rc.d/init.d/udev
 etc/rc.d/init.d/udev_retry
 etc/rc.d/init.d/unbound
 etc/rc.d/init.d/upnpd
-#etc/rc.d/init.d/vdr
-#etc/rc.d/init.d/vdradmin
-#etc/rc.d/init.d/virtlogd
 etc/rc.d/init.d/vnstat
-#etc/rc.d/init.d/vsftpd
 etc/rc.d/init.d/waitdrives
-#etc/rc.d/init.d/watchdog
 etc/rc.d/init.d/wlanclient
-#etc/rc.d/init.d/xinetd
 #etc/rc.d/rc0.d
 #etc/rc.d/rc0.d/K01imspetor
 #etc/rc.d/rc0.d/K01motion
index f23b97c2b0fb07bd872e5c99db68c7244b412d3e..9936e0466add34e3def3b18353099735a09ba0f1 100644 (file)
@@ -8,7 +8,7 @@ usr/bin/sensors-conf-convert
 #usr/lib/libsensors.a
 usr/lib/libsensors.so
 usr/lib/libsensors.so.4
-usr/lib/libsensors.so.4.3.2
+usr/lib/libsensors.so.4.4.0
 #usr/man/man1/sensors.1
 #usr/man/man3/libsensors.3
 #usr/man/man5/sensors.conf.5
@@ -17,6 +17,7 @@ usr/lib/libsensors.so.4.3.2
 #usr/man/man8/isadump.8
 #usr/man/man8/isaset.8
 #usr/man/man8/pwmconfig.8
+#usr/man/man8/sensors-conf-convert.8
 #usr/man/man8/sensors-detect.8
 usr/sbin/fancontrol
 usr/sbin/isadump
index 0155f244b30dfec427a16fd39ae46cc8a317cc13..9824e19cbd287db8f2432d505377a5aa4ccbaf33 100644 (file)
@@ -1463,8 +1463,8 @@ usr/lib/python2.7/encodings/zlib_codec.pyc
 #usr/lib/python2.7/ensurepip/__main__.pyc
 #usr/lib/python2.7/ensurepip/__main__.pyo
 #usr/lib/python2.7/ensurepip/_bundled
-#usr/lib/python2.7/ensurepip/_bundled/pip-6.1.1-py2.py3-none-any.whl
-#usr/lib/python2.7/ensurepip/_bundled/setuptools-15.2-py2.py3-none-any.whl
+#usr/lib/python2.7/ensurepip/_bundled/pip-9.0.1-py2.py3-none-any.whl
+#usr/lib/python2.7/ensurepip/_bundled/setuptools-28.8.0-py2.py3-none-any.whl
 #usr/lib/python2.7/ensurepip/_uninstall.py
 #usr/lib/python2.7/ensurepip/_uninstall.pyc
 #usr/lib/python2.7/ensurepip/_uninstall.pyo
@@ -1718,6 +1718,10 @@ usr/lib/python2.7/httplib.pyc
 #usr/lib/python2.7/idlelib/dynOptionMenuWidget.pyc
 #usr/lib/python2.7/idlelib/dynOptionMenuWidget.pyo
 #usr/lib/python2.7/idlelib/extend.txt
+#usr/lib/python2.7/idlelib/help.html
+#usr/lib/python2.7/idlelib/help.py
+#usr/lib/python2.7/idlelib/help.pyc
+#usr/lib/python2.7/idlelib/help.pyo
 #usr/lib/python2.7/idlelib/help.txt
 #usr/lib/python2.7/idlelib/idle.bat
 #usr/lib/python2.7/idlelib/idle.py
@@ -1756,12 +1760,18 @@ usr/lib/python2.7/httplib.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_delegator.py
 #usr/lib/python2.7/idlelib/idle_test/test_delegator.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_delegator.pyo
+#usr/lib/python2.7/idlelib/idle_test/test_editmenu.py
+#usr/lib/python2.7/idlelib/idle_test/test_editmenu.pyc
+#usr/lib/python2.7/idlelib/idle_test/test_editmenu.pyo
 #usr/lib/python2.7/idlelib/idle_test/test_formatparagraph.py
 #usr/lib/python2.7/idlelib/idle_test/test_formatparagraph.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_formatparagraph.pyo
 #usr/lib/python2.7/idlelib/idle_test/test_grep.py
 #usr/lib/python2.7/idlelib/idle_test/test_grep.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_grep.pyo
+#usr/lib/python2.7/idlelib/idle_test/test_helpabout.py
+#usr/lib/python2.7/idlelib/idle_test/test_helpabout.pyc
+#usr/lib/python2.7/idlelib/idle_test/test_helpabout.pyo
 #usr/lib/python2.7/idlelib/idle_test/test_hyperparser.py
 #usr/lib/python2.7/idlelib/idle_test/test_hyperparser.pyc
 #usr/lib/python2.7/idlelib/idle_test/test_hyperparser.pyo
@@ -1916,7 +1926,7 @@ usr/lib/python2.7/json/tool.pyc
 usr/lib/python2.7/keyword.pyc
 #usr/lib/python2.7/keyword.pyo
 #usr/lib/python2.7/lib-dynload
-#usr/lib/python2.7/lib-dynload/Python-2.7.10-py2.7.egg-info
+#usr/lib/python2.7/lib-dynload/Python-2.7.13-py2.7.egg-info
 usr/lib/python2.7/lib-dynload/_bisect.so
 usr/lib/python2.7/lib-dynload/_bsddb.so
 usr/lib/python2.7/lib-dynload/_codecs_cn.so
@@ -2090,9 +2100,9 @@ usr/lib/python2.7/lib-dynload/zlib.so
 #usr/lib/python2.7/lib-tk/turtle.pyo
 #usr/lib/python2.7/lib2to3
 #usr/lib/python2.7/lib2to3/Grammar.txt
-#usr/lib/python2.7/lib2to3/Grammar2.7.10.final.0.pickle
+#usr/lib/python2.7/lib2to3/Grammar2.7.13.final.0.pickle
 #usr/lib/python2.7/lib2to3/PatternGrammar.txt
-#usr/lib/python2.7/lib2to3/PatternGrammar2.7.10.final.0.pickle
+#usr/lib/python2.7/lib2to3/PatternGrammar2.7.13.final.0.pickle
 #usr/lib/python2.7/lib2to3/__init__.py
 #usr/lib/python2.7/lib2to3/__init__.pyc
 #usr/lib/python2.7/lib2to3/__init__.pyo
@@ -2127,9 +2137,6 @@ usr/lib/python2.7/lib-dynload/zlib.so
 #usr/lib/python2.7/lib2to3/fixes/fix_buffer.py
 #usr/lib/python2.7/lib2to3/fixes/fix_buffer.pyc
 #usr/lib/python2.7/lib2to3/fixes/fix_buffer.pyo
-#usr/lib/python2.7/lib2to3/fixes/fix_callable.py
-#usr/lib/python2.7/lib2to3/fixes/fix_callable.pyc
-#usr/lib/python2.7/lib2to3/fixes/fix_callable.pyo
 #usr/lib/python2.7/lib2to3/fixes/fix_dict.py
 #usr/lib/python2.7/lib2to3/fixes/fix_dict.pyc
 #usr/lib/python2.7/lib2to3/fixes/fix_dict.pyo
@@ -2748,6 +2755,7 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/_mock_backport.py
 #usr/lib/python2.7/test/_mock_backport.pyc
 #usr/lib/python2.7/test/_mock_backport.pyo
+#usr/lib/python2.7/test/allsans.pem
 #usr/lib/python2.7/test/audiodata
 #usr/lib/python2.7/test/audiodata/pluck-pcm16.aiff
 #usr/lib/python2.7/test/audiodata/pluck-pcm16.au
@@ -2782,16 +2790,14 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/badsyntax_future8.py
 #usr/lib/python2.7/test/badsyntax_future9.py
 #usr/lib/python2.7/test/badsyntax_nocaret.py
-#usr/lib/python2.7/test/buffer_tests.py
-#usr/lib/python2.7/test/buffer_tests.pyc
-#usr/lib/python2.7/test/buffer_tests.pyo
 #usr/lib/python2.7/test/capath
+#usr/lib/python2.7/test/capath/0e4015b9.0
 #usr/lib/python2.7/test/capath/4e1295a3.0
 #usr/lib/python2.7/test/capath/5ed36f99.0
 #usr/lib/python2.7/test/capath/6e88d7b8.0
 #usr/lib/python2.7/test/capath/99d0fa06.0
+#usr/lib/python2.7/test/capath/ce7b8643.0
 #usr/lib/python2.7/test/cfgparser.1
-#usr/lib/python2.7/test/check_soundcard.vbs
 #usr/lib/python2.7/test/cjkencodings
 #usr/lib/python2.7/test/cjkencodings/big5-utf8.txt
 #usr/lib/python2.7/test/cjkencodings/big5.txt
@@ -2991,7 +2997,6 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/gdb_sample.pyc
 #usr/lib/python2.7/test/gdb_sample.pyo
 #usr/lib/python2.7/test/greyrgb.uue
-#usr/lib/python2.7/test/https_svn_python_org_root.pem
 #usr/lib/python2.7/test/ieee754.txt
 #usr/lib/python2.7/test/imghdrdata
 #usr/lib/python2.7/test/imghdrdata/python.bmp
@@ -3103,6 +3108,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/ssl_servers.py
 #usr/lib/python2.7/test/ssl_servers.pyc
 #usr/lib/python2.7/test/ssl_servers.pyo
+#usr/lib/python2.7/test/ssltests.py
+#usr/lib/python2.7/test/ssltests.pyc
+#usr/lib/python2.7/test/ssltests.pyo
 #usr/lib/python2.7/test/string_tests.py
 #usr/lib/python2.7/test/string_tests.pyc
 #usr/lib/python2.7/test/string_tests.pyo
@@ -3317,9 +3325,6 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_codeop.py
 #usr/lib/python2.7/test/test_codeop.pyc
 #usr/lib/python2.7/test/test_codeop.pyo
-#usr/lib/python2.7/test/test_coding.py
-#usr/lib/python2.7/test/test_coding.pyc
-#usr/lib/python2.7/test/test_coding.pyo
 #usr/lib/python2.7/test/test_coercion.py
 #usr/lib/python2.7/test/test_coercion.pyc
 #usr/lib/python2.7/test/test_coercion.pyo
@@ -3835,6 +3840,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_optparse.py
 #usr/lib/python2.7/test/test_optparse.pyc
 #usr/lib/python2.7/test/test_optparse.pyo
+#usr/lib/python2.7/test/test_ordered_dict.py
+#usr/lib/python2.7/test/test_ordered_dict.pyc
+#usr/lib/python2.7/test/test_ordered_dict.pyo
 #usr/lib/python2.7/test/test_os.py
 #usr/lib/python2.7/test/test_os.pyc
 #usr/lib/python2.7/test/test_os.pyo
@@ -3853,15 +3861,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_pep247.py
 #usr/lib/python2.7/test/test_pep247.pyc
 #usr/lib/python2.7/test/test_pep247.pyo
-#usr/lib/python2.7/test/test_pep263.py
-#usr/lib/python2.7/test/test_pep263.pyc
-#usr/lib/python2.7/test/test_pep263.pyo
 #usr/lib/python2.7/test/test_pep277.py
 #usr/lib/python2.7/test/test_pep277.pyc
 #usr/lib/python2.7/test/test_pep277.pyo
-#usr/lib/python2.7/test/test_pep292.py
-#usr/lib/python2.7/test/test_pep292.pyc
-#usr/lib/python2.7/test/test_pep292.pyo
 #usr/lib/python2.7/test/test_pep352.py
 #usr/lib/python2.7/test/test_pep352.pyc
 #usr/lib/python2.7/test/test_pep352.pyo
@@ -4045,6 +4047,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_sort.py
 #usr/lib/python2.7/test/test_sort.pyc
 #usr/lib/python2.7/test/test_sort.pyo
+#usr/lib/python2.7/test/test_source_encoding.py
+#usr/lib/python2.7/test/test_source_encoding.pyc
+#usr/lib/python2.7/test/test_source_encoding.pyo
 #usr/lib/python2.7/test/test_spwd.py
 #usr/lib/python2.7/test/test_spwd.pyc
 #usr/lib/python2.7/test/test_spwd.pyo
@@ -4192,6 +4197,9 @@ usr/lib/python2.7/tempfile.pyc
 #usr/lib/python2.7/test/test_tuple.py
 #usr/lib/python2.7/test/test_tuple.pyc
 #usr/lib/python2.7/test/test_tuple.pyo
+#usr/lib/python2.7/test/test_turtle.py
+#usr/lib/python2.7/test/test_turtle.pyc
+#usr/lib/python2.7/test/test_turtle.pyo
 #usr/lib/python2.7/test/test_typechecks.py
 #usr/lib/python2.7/test/test_typechecks.pyc
 #usr/lib/python2.7/test/test_typechecks.pyo
index 28a5699f2e35e0e455d24371da25083542df0249..039f87158b079686a0cabae9e2bccb6d2e67aff4 100644 (file)
@@ -8,8 +8,12 @@ bin/wdctl
 #etc/fcron.daily
 etc/fcron.daily/trim
 lib/libblkid.so.1.1.0
+lib/libfdisk.so.1
+lib/libfdisk.so.1.1.0
 lib/libmount.so.1
 lib/libmount.so.1.1.0
+lib/libsmartcols.so.1
+lib/libsmartcols.so.1.1.0
 lib/libuuid.so.1.3.0
 sbin/agetty
 sbin/blkdiscard
@@ -29,7 +33,6 @@ sbin/mkfs
 #sbin/mkfs.cramfs
 sbin/mkfs.minix
 sbin/mkswap
-sbin/nologin
 #sbin/pivot_root
 sbin/raw
 sbin/sfdisk
@@ -38,13 +41,13 @@ sbin/swapoff
 sbin/swapon
 sbin/switch_root
 sbin/wipefs
+sbin/zramctl
 #usr/bin/cal
 #usr/bin/chrt
 #usr/bin/col
 #usr/bin/colcrt
 #usr/bin/colrm
 #usr/bin/column
-#usr/bin/cytune
 usr/bin/eject
 usr/bin/fallocate
 usr/bin/flock
@@ -61,7 +64,10 @@ usr/bin/ionice
 usr/bin/logger
 #usr/bin/look
 usr/bin/lscpu
+usr/bin/lsipc
 usr/bin/lslocks
+usr/bin/lslogins
+usr/bin/lsns
 #usr/bin/mcookie
 #usr/bin/namei
 #usr/bin/nsenter
@@ -78,17 +84,27 @@ usr/bin/setsid
 usr/bin/tailf
 #usr/bin/taskset
 #usr/bin/ul
+#usr/bin/uname26
 #usr/bin/unshare
 #usr/bin/whereis
-#usr/bin/x86_64
+usr/bin/x86_64
+#usr/include/libfdisk
+#usr/include/libfdisk/libfdisk.h
 #usr/include/libmount
 #usr/include/libmount/libmount.h
+#usr/include/libsmartcols
+#usr/include/libsmartcols/libsmartcols.h
 #usr/lib/libblkid.la
-#usr/lib/libmount.a
+#usr/lib/libfdisk.la
+#usr/lib/libfdisk.so
 #usr/lib/libmount.la
 #usr/lib/libmount.so
+#usr/lib/libsmartcols.la
+#usr/lib/libsmartcols.so
 #usr/lib/libuuid.la
+#usr/lib/pkgconfig/fdisk.pc
 #usr/lib/pkgconfig/mount.pc
+#usr/lib/pkgconfig/smartcols.pc
 usr/sbin/addpart
 usr/sbin/delpart
 usr/sbin/fdformat
@@ -97,8 +113,6 @@ usr/sbin/partx
 #usr/sbin/readprofile
 usr/sbin/resizepart
 usr/sbin/rtcwake
-usr/share/bash-completion
-#usr/share/bash-completion/completions
 #usr/share/bash-completion/completions/addpart
 #usr/share/bash-completion/completions/blkdiscard
 #usr/share/bash-completion/completions/blkid
@@ -112,7 +126,6 @@ usr/share/bash-completion
 #usr/share/bash-completion/completions/colrm
 #usr/share/bash-completion/completions/column
 #usr/share/bash-completion/completions/ctrlaltdel
-#usr/share/bash-completion/completions/cytune
 #usr/share/bash-completion/completions/delpart
 #usr/share/bash-completion/completions/dmesg
 #usr/share/bash-completion/completions/eject
@@ -130,16 +143,21 @@ usr/share/bash-completion
 #usr/share/bash-completion/completions/hexdump
 #usr/share/bash-completion/completions/hwclock
 #usr/share/bash-completion/completions/ionice
+#usr/share/bash-completion/completions/ipcmk
 #usr/share/bash-completion/completions/ipcrm
 #usr/share/bash-completion/completions/ipcs
 #usr/share/bash-completion/completions/isosize
+#usr/share/bash-completion/completions/last
 #usr/share/bash-completion/completions/ldattach
 #usr/share/bash-completion/completions/logger
 #usr/share/bash-completion/completions/look
 #usr/share/bash-completion/completions/losetup
 #usr/share/bash-completion/completions/lsblk
 #usr/share/bash-completion/completions/lscpu
+#usr/share/bash-completion/completions/lsipc
 #usr/share/bash-completion/completions/lslocks
+#usr/share/bash-completion/completions/lslogins
+#usr/share/bash-completion/completions/lsns
 #usr/share/bash-completion/completions/mcookie
 #usr/share/bash-completion/completions/mesg
 #usr/share/bash-completion/completions/mkfs
@@ -148,6 +166,7 @@ usr/share/bash-completion
 #usr/share/bash-completion/completions/mkfs.minix
 #usr/share/bash-completion/completions/mkswap
 #usr/share/bash-completion/completions/more
+#usr/share/bash-completion/completions/mount
 #usr/share/bash-completion/completions/mountpoint
 #usr/share/bash-completion/completions/namei
 #usr/share/bash-completion/completions/nsenter
@@ -169,10 +188,12 @@ usr/share/bash-completion
 #usr/share/bash-completion/completions/setterm
 #usr/share/bash-completion/completions/sfdisk
 #usr/share/bash-completion/completions/swaplabel
+#usr/share/bash-completion/completions/swapoff
 #usr/share/bash-completion/completions/swapon
 #usr/share/bash-completion/completions/tailf
 #usr/share/bash-completion/completions/taskset
 #usr/share/bash-completion/completions/ul
+#usr/share/bash-completion/completions/umount
 #usr/share/bash-completion/completions/unshare
 #usr/share/bash-completion/completions/utmpdump
 #usr/share/bash-completion/completions/uuidd
@@ -181,36 +202,11 @@ usr/share/bash-completion
 #usr/share/bash-completion/completions/wdctl
 #usr/share/bash-completion/completions/whereis
 #usr/share/bash-completion/completions/wipefs
+#usr/share/bash-completion/completions/zramctl
 #usr/share/doc/util-linux
 #usr/share/doc/util-linux/getopt
 #usr/share/doc/util-linux/getopt/getopt-parse.bash
 #usr/share/doc/util-linux/getopt/getopt-parse.tcsh
-#usr/share/locale/ca/LC_MESSAGES/util-linux.mo
-#usr/share/locale/cs/LC_MESSAGES/util-linux.mo
-#usr/share/locale/da/LC_MESSAGES/util-linux.mo
-#usr/share/locale/de/LC_MESSAGES/util-linux.mo
-#usr/share/locale/es/LC_MESSAGES/util-linux.mo
-#usr/share/locale/et/LC_MESSAGES/util-linux.mo
-#usr/share/locale/eu/LC_MESSAGES/util-linux.mo
-#usr/share/locale/fi/LC_MESSAGES/util-linux.mo
-#usr/share/locale/fr/LC_MESSAGES/util-linux.mo
-#usr/share/locale/gl/LC_MESSAGES/util-linux.mo
-#usr/share/locale/hr/LC_MESSAGES/util-linux.mo
-#usr/share/locale/hu/LC_MESSAGES/util-linux.mo
-#usr/share/locale/id/LC_MESSAGES/util-linux.mo
-#usr/share/locale/it/LC_MESSAGES/util-linux.mo
-#usr/share/locale/ja/LC_MESSAGES/util-linux.mo
-#usr/share/locale/nl/LC_MESSAGES/util-linux.mo
-#usr/share/locale/pl/LC_MESSAGES/util-linux.mo
-#usr/share/locale/pt_BR/LC_MESSAGES/util-linux.mo
-#usr/share/locale/ru/LC_MESSAGES/util-linux.mo
-#usr/share/locale/sl/LC_MESSAGES/util-linux.mo
-#usr/share/locale/sv/LC_MESSAGES/util-linux.mo
-#usr/share/locale/tr/LC_MESSAGES/util-linux.mo
-#usr/share/locale/uk/LC_MESSAGES/util-linux.mo
-#usr/share/locale/vi/LC_MESSAGES/util-linux.mo
-#usr/share/locale/zh_CN/LC_MESSAGES/util-linux.mo
-#usr/share/locale/zh_TW/LC_MESSAGES/util-linux.mo
 #usr/share/man/man1/cal.1
 #usr/share/man/man1/chrt.1
 #usr/share/man/man1/col.1
@@ -230,6 +226,8 @@ usr/share/bash-completion
 #usr/share/man/man1/logger.1
 #usr/share/man/man1/look.1
 #usr/share/man/man1/lscpu.1
+#usr/share/man/man1/lsipc.1
+#usr/share/man/man1/lslogins.1
 #usr/share/man/man1/mcookie.1
 #usr/share/man/man1/more.1
 #usr/share/man/man1/namei.1
@@ -250,6 +248,7 @@ usr/share/bash-completion
 #usr/share/man/man1/whereis.1
 #usr/share/man/man3/uuid_generate_time_safe.3
 #usr/share/man/man5/fstab.5
+#usr/share/man/man5/terminal-colors.d.5
 #usr/share/man/man8/addpart.8
 #usr/share/man/man8/agetty.8
 #usr/share/man/man8/blkdiscard.8
@@ -257,7 +256,6 @@ usr/share/bash-completion
 #usr/share/man/man8/cfdisk.8
 #usr/share/man/man8/chcpu.8
 #usr/share/man/man8/ctrlaltdel.8
-#usr/share/man/man8/cytune.8
 #usr/share/man/man8/delpart.8
 #usr/share/man/man8/fdformat.8
 #usr/share/man/man8/fdisk.8
@@ -275,13 +273,13 @@ usr/share/bash-completion
 #usr/share/man/man8/losetup.8
 #usr/share/man/man8/lsblk.8
 #usr/share/man/man8/lslocks.8
+#usr/share/man/man8/lsns.8
 #usr/share/man/man8/mkfs.8
 #usr/share/man/man8/mkfs.bfs.8
 #usr/share/man/man8/mkfs.cramfs.8
 #usr/share/man/man8/mkfs.minix.8
 #usr/share/man/man8/mkswap.8
 #usr/share/man/man8/mount.8
-#usr/share/man/man8/nologin.8
 #usr/share/man/man8/partx.8
 #usr/share/man/man8/pivot_root.8
 #usr/share/man/man8/raw.8
@@ -295,6 +293,8 @@ usr/share/bash-completion
 #usr/share/man/man8/swapon.8
 #usr/share/man/man8/switch_root.8
 #usr/share/man/man8/umount.8
+#usr/share/man/man8/uname26.8
 #usr/share/man/man8/wdctl.8
 #usr/share/man/man8/wipefs.8
 #usr/share/man/man8/x86_64.8
+#usr/share/man/man8/zramctl.8
diff --git a/config/rootfiles/core/112/filelists/armv5tel/binutils b/config/rootfiles/core/112/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/112/filelists/armv5tel/gcc b/config/rootfiles/core/112/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/112/filelists/armv5tel/glibc b/config/rootfiles/core/112/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/112/filelists/armv5tel/util-linux b/config/rootfiles/core/112/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/112/filelists/autoconf b/config/rootfiles/core/112/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/112/filelists/bc b/config/rootfiles/core/112/filelists/bc
new file mode 120000 (symlink)
index 0000000..a729f5d
--- /dev/null
@@ -0,0 +1 @@
+../../../common/bc
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/boost b/config/rootfiles/core/112/filelists/boost
new file mode 120000 (symlink)
index 0000000..05246f0
--- /dev/null
@@ -0,0 +1 @@
+../../../common/boost
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/cmake b/config/rootfiles/core/112/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/112/filelists/files b/config/rootfiles/core/112/filelists/files
new file mode 100644 (file)
index 0000000..9337d4a
--- /dev/null
@@ -0,0 +1,7 @@
+etc/system-release
+etc/issue
+srv/web/ipfire/cgi-bin/fwhosts.cgi
+srv/web/ipfire/cgi-bin/ids.cgi
+srv/web/ipfire/cgi-bin/logs.cgi/log.dat
+var/ipfire/langs
+var/ipfire/general-functions.pl
diff --git a/config/rootfiles/core/112/filelists/flex b/config/rootfiles/core/112/filelists/flex
new file mode 120000 (symlink)
index 0000000..feb0390
--- /dev/null
@@ -0,0 +1 @@
+../../../common/flex
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/fuse b/config/rootfiles/core/112/filelists/fuse
new file mode 120000 (symlink)
index 0000000..570edaa
--- /dev/null
@@ -0,0 +1 @@
+../../../common/fuse
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/gawk b/config/rootfiles/core/112/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/112/filelists/gnutls b/config/rootfiles/core/112/filelists/gnutls
new file mode 120000 (symlink)
index 0000000..8dbe60b
--- /dev/null
@@ -0,0 +1 @@
+../../../common/gnutls
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/i586/binutils b/config/rootfiles/core/112/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/112/filelists/i586/gcc b/config/rootfiles/core/112/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/112/filelists/i586/glibc b/config/rootfiles/core/112/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/112/filelists/i586/python b/config/rootfiles/core/112/filelists/i586/python
new file mode 120000 (symlink)
index 0000000..a2b842b
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/python
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/i586/util-linux b/config/rootfiles/core/112/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/112/filelists/kbd b/config/rootfiles/core/112/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/112/filelists/libarchive b/config/rootfiles/core/112/filelists/libarchive
new file mode 120000 (symlink)
index 0000000..551f1f7
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libarchive
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/libgcrypt b/config/rootfiles/core/112/filelists/libgcrypt
new file mode 120000 (symlink)
index 0000000..2df12a2
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libgcrypt
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/libgpg-error b/config/rootfiles/core/112/filelists/libgpg-error
new file mode 120000 (symlink)
index 0000000..cad4313
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libgpg-error
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/libxml2 b/config/rootfiles/core/112/filelists/libxml2
new file mode 120000 (symlink)
index 0000000..242e69f
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libxml2
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/ncurses b/config/rootfiles/core/112/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/112/filelists/reiserfsprogs b/config/rootfiles/core/112/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/112/filelists/sudo b/config/rootfiles/core/112/filelists/sudo
new file mode 120000 (symlink)
index 0000000..0d3c45e
--- /dev/null
@@ -0,0 +1 @@
+../../../common/sudo
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/tzdata b/config/rootfiles/core/112/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/112/filelists/web-user-interface b/config/rootfiles/core/112/filelists/web-user-interface
new file mode 120000 (symlink)
index 0000000..70c74b4
--- /dev/null
@@ -0,0 +1 @@
+../../../common/web-user-interface
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/x86_64/binutils b/config/rootfiles/core/112/filelists/x86_64/binutils
new file mode 120000 (symlink)
index 0000000..7d0fda5
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64/binutils
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/x86_64/gcc b/config/rootfiles/core/112/filelists/x86_64/gcc
new file mode 120000 (symlink)
index 0000000..d1616d3
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64/gcc
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/x86_64/glibc b/config/rootfiles/core/112/filelists/x86_64/glibc
new file mode 120000 (symlink)
index 0000000..1119099
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64/glibc
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/x86_64/python b/config/rootfiles/core/112/filelists/x86_64/python
new file mode 120000 (symlink)
index 0000000..a593187
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64/python
\ No newline at end of file
diff --git a/config/rootfiles/core/112/filelists/x86_64/util-linux b/config/rootfiles/core/112/filelists/x86_64/util-linux
new file mode 120000 (symlink)
index 0000000..7b5558d
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64/util-linux
\ No newline at end of file
similarity index 64%
rename from src/paks/avahi/install.sh
rename to config/rootfiles/core/112/update.sh
index cb0266bae8ff4f0825b14c87f4ae55fcc61807d9..cb9f0cfdffc7831f559111d3bf1651536924098f 100644 (file)
@@ -5,7 +5,7 @@
 #                                                                          #
 # 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        #
+# 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,                #
 # 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) 2017 IPFire-Team <info@ipfire.org>.                        #
 #                                                                          #
 ############################################################################
 #
 . /opt/pakfire/lib/functions.sh
+/usr/local/bin/backupctrl exclude >/dev/null 2>&1
 
-# Create Username and group.
-getent group avahi >/dev/null || groupadd -r avahi
-getent passwd avahi >/dev/null || \
-      useradd -r -g avahi -d /var/run/avahi-daemon -s /sbin/nologin \
-      -c "Avahi mDNS daemon" avahi
+core=112
 
+# Remove old core updates from pakfire cache to save space...
+for (( i=1; i<=$core; i++ )); do
+       rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
+done
+
+# Stop services
+/etc/init.d/unbound stop
+
+# Extract files
 extract_files
-ln -svf  ../init.d/avahi /etc/rc.d/rc3.d/S65avahi
-ln -svf  ../init.d/avahi /etc/rc.d/rc0.d/K35avahi
-ln -svf  ../init.d/avahi /etc/rc.d/rc6.d/K35avahi
-restore_backup ${NAME}
-start_service --background ${NAME}
+
+# update linker config
+ldconfig
+
+# reload init
+telinit u
+
+# Update Language cache
+/usr/local/bin/update-lang-cache
+
+# Start services
+/etc/init.d/unbound start
+
+# This update need a reboot...
+touch /var/run/need_reboot
+
+# Finish
+/etc/init.d/fireinfo start
+sendprofile
+
+# Update grub config to display new core version
+if [ -e /boot/grub/grub.cfg ]; then
+       grub-mkconfig -o /boot/grub/grub.cfg
+fi
+
+sync
+
+# Don't report the exitcode last command
+exit 0
index 6cce4ead17b9418b4ff49521ace395e7cf83786b..99fa9688d87f887978c5fcb4341cb6f8702614cb 100644 (file)
@@ -5,3 +5,4 @@ etc/syslog.conf
 etc/unbound/unbound.conf
 srv/web/ipfire/cgi-bin/fwhosts.cgi
 srv/web/ipfire/cgi-bin/logs.cgi/config.dat
+usr/local/bin/syslogdctrl
diff --git a/config/rootfiles/oldcore/109/exclude b/config/rootfiles/oldcore/109/exclude
new file mode 100644 (file)
index 0000000..d6fd053
--- /dev/null
@@ -0,0 +1,30 @@
+boot/config.txt
+boot/grub/grub.cfg
+boot/grub/grubenv
+etc/alternatives
+etc/collectd.custom
+etc/default/grub
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
+etc/localtime
+etc/shadow
+etc/snort/snort.conf
+etc/ssh/ssh_config
+etc/ssh/sshd_config
+etc/ssl/openssl.cnf
+etc/sudoers
+etc/sysconfig/firewall.local
+etc/sysconfig/rc.local
+etc/udev/rules.d/30-persistent-network.rules
+srv/web/ipfire/html/proxy.pac
+var/ipfire/dma
+var/ipfire/time
+var/ipfire/ovpn
+var/lib/alternatives
+var/log/cache
+var/log/dhcpcd.log
+var/log/messages
+var/state/dhcp/dhcpd.leases
+var/updatecache
diff --git a/config/rootfiles/oldcore/109/filelists/unbound b/config/rootfiles/oldcore/109/filelists/unbound
new file mode 120000 (symlink)
index 0000000..66adf09
--- /dev/null
@@ -0,0 +1 @@
+../../../common/unbound
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/109/meta b/config/rootfiles/oldcore/109/meta
new file mode 100644 (file)
index 0000000..d547fa8
--- /dev/null
@@ -0,0 +1 @@
+DEPS=""
diff --git a/config/rootfiles/oldcore/110/exclude b/config/rootfiles/oldcore/110/exclude
new file mode 100644 (file)
index 0000000..d6fd053
--- /dev/null
@@ -0,0 +1,30 @@
+boot/config.txt
+boot/grub/grub.cfg
+boot/grub/grubenv
+etc/alternatives
+etc/collectd.custom
+etc/default/grub
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
+etc/localtime
+etc/shadow
+etc/snort/snort.conf
+etc/ssh/ssh_config
+etc/ssh/sshd_config
+etc/ssl/openssl.cnf
+etc/sudoers
+etc/sysconfig/firewall.local
+etc/sysconfig/rc.local
+etc/udev/rules.d/30-persistent-network.rules
+srv/web/ipfire/html/proxy.pac
+var/ipfire/dma
+var/ipfire/time
+var/ipfire/ovpn
+var/lib/alternatives
+var/log/cache
+var/log/dhcpcd.log
+var/log/messages
+var/state/dhcp/dhcpd.leases
+var/updatecache
diff --git a/config/rootfiles/oldcore/110/filelists/armv5tel/lm_sensors b/config/rootfiles/oldcore/110/filelists/armv5tel/lm_sensors
new file mode 120000 (symlink)
index 0000000..eec84cd
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/lm_sensors
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/bind b/config/rootfiles/oldcore/110/filelists/bind
new file mode 120000 (symlink)
index 0000000..48a0eba
--- /dev/null
@@ -0,0 +1 @@
+../../../common/bind
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/cairo b/config/rootfiles/oldcore/110/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/oldcore/110/filelists/conntrack-tools b/config/rootfiles/oldcore/110/filelists/conntrack-tools
new file mode 120000 (symlink)
index 0000000..88fbe06
--- /dev/null
@@ -0,0 +1 @@
+../../../common/conntrack-tools
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/files b/config/rootfiles/oldcore/110/filelists/files
new file mode 100644 (file)
index 0000000..0664e7f
--- /dev/null
@@ -0,0 +1,25 @@
+etc/system-release
+etc/issue
+etc/httpd/conf/server-tuning.conf
+etc/rc.d/init.d/unbound
+etc/sysctl.conf
+opt/pakfire/lib/functions.pl
+srv/web/ipfire/cgi-bin/entropy.cgi
+srv/web/ipfire/cgi-bin/hardwaregraphs.cgi
+srv/web/ipfire/cgi-bin/index.cgi
+srv/web/ipfire/cgi-bin/netovpnsrv.cgi
+srv/web/ipfire/cgi-bin/qos.cgi
+srv/web/ipfire/cgi-bin/system.cgi
+srv/web/ipfire/cgi-bin/vpnmain.cgi
+srv/web/ipfire/html/themes/darkdos/include/style.css
+srv/web/ipfire/html/themes/ipfire/include/css/style.css
+srv/web/ipfire/html/themes/ipfire-legacy/include/style.css
+srv/web/ipfire/html/themes/maniac/include/style.css
+usr/lib/firewall/ipsec-block
+usr/lib/libssp.so.0
+usr/lib/libssp.so.0.0.0
+usr/local/bin/xt_geoip_update
+usr/sbin/setup
+var/ipfire/langs
+var/ipfire/general-functions.pl
+var/ipfire/graphs.pl
diff --git a/config/rootfiles/oldcore/110/filelists/fontconfig b/config/rootfiles/oldcore/110/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/oldcore/110/filelists/freetype b/config/rootfiles/oldcore/110/filelists/freetype
new file mode 120000 (symlink)
index 0000000..79ec5c4
--- /dev/null
@@ -0,0 +1 @@
+../../../common/freetype
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/gnutls b/config/rootfiles/oldcore/110/filelists/gnutls
new file mode 120000 (symlink)
index 0000000..8dbe60b
--- /dev/null
@@ -0,0 +1 @@
+../../../common/gnutls
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/i586/lm_sensors b/config/rootfiles/oldcore/110/filelists/i586/lm_sensors
new file mode 120000 (symlink)
index 0000000..b7f0101
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586//lm_sensors
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/lcms2 b/config/rootfiles/oldcore/110/filelists/lcms2
new file mode 120000 (symlink)
index 0000000..f72a394
--- /dev/null
@@ -0,0 +1 @@
+../../../common/lcms2
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/nettle b/config/rootfiles/oldcore/110/filelists/nettle
new file mode 120000 (symlink)
index 0000000..f0dba7a
--- /dev/null
@@ -0,0 +1 @@
+../../../common/nettle
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/ntp b/config/rootfiles/oldcore/110/filelists/ntp
new file mode 120000 (symlink)
index 0000000..7542d86
--- /dev/null
@@ -0,0 +1 @@
+../../../common/ntp
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/openssh b/config/rootfiles/oldcore/110/filelists/openssh
new file mode 120000 (symlink)
index 0000000..d8c77fd
--- /dev/null
@@ -0,0 +1 @@
+../../../common/openssh
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/pixman b/config/rootfiles/oldcore/110/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/oldcore/110/filelists/poppler b/config/rootfiles/oldcore/110/filelists/poppler
new file mode 120000 (symlink)
index 0000000..39aa6c2
--- /dev/null
@@ -0,0 +1 @@
+../../../common/poppler
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/qpdf b/config/rootfiles/oldcore/110/filelists/qpdf
new file mode 120000 (symlink)
index 0000000..2d6c43d
--- /dev/null
@@ -0,0 +1 @@
+../../../common/qpdf
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/squid b/config/rootfiles/oldcore/110/filelists/squid
new file mode 120000 (symlink)
index 0000000..2dc8372
--- /dev/null
@@ -0,0 +1 @@
+../../../common/squid
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/strongswan b/config/rootfiles/oldcore/110/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/oldcore/110/filelists/unbound b/config/rootfiles/oldcore/110/filelists/unbound
new file mode 120000 (symlink)
index 0000000..66adf09
--- /dev/null
@@ -0,0 +1 @@
+../../../common/unbound
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/filelists/wget b/config/rootfiles/oldcore/110/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/oldcore/110/filelists/x86_64/lm_sensors b/config/rootfiles/oldcore/110/filelists/x86_64/lm_sensors
new file mode 120000 (symlink)
index 0000000..fd435d4
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64//lm_sensors
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/110/meta b/config/rootfiles/oldcore/110/meta
new file mode 100644 (file)
index 0000000..d547fa8
--- /dev/null
@@ -0,0 +1 @@
+DEPS=""
similarity index 55%
rename from src/paks/vdr_vnsiserver5/update.sh
rename to config/rootfiles/oldcore/110/update.sh
index 89c40d0d7c5d3dd57b5944f3af4977d5f8d76760..ada4fc59cdc0b502a3311eb4d4bf5fd70427987d 100644 (file)
@@ -5,7 +5,7 @@
 #                                                                          #
 # 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        #
+# 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,                #
 # 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) 2017 IPFire-Team <info@ipfire.org>.                        #
 #                                                                          #
 ############################################################################
 #
 . /opt/pakfire/lib/functions.sh
-./uninstall.sh
-./install.sh
+/usr/local/bin/backupctrl exclude >/dev/null 2>&1
+
+core=110
+
+# Remove old core updates from pakfire cache to save space...
+for (( i=1; i<=$core; i++ )); do
+       rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
+done
+
+# Stop services
+/etc/init.d/squid stop
+/etc/init.d/unbound stop
+
+# Extract files
+extract_files
+
+# update linker config
+ldconfig
+
+# Update Language cache
+/usr/local/bin/update-lang-cache
+
+# Remove deprecated options
+sed -e "/^RSAAuthentication/d" -i /etc/ssh/sshd_config
+
+# Remove avahi from system and pakfire db
+for i in $(cat /opt/pakfire/db/rootfiles/avahi); do
+    rm -rfv /${i}
+done
+rm -fv /opt/pakfire/db/rootfiles/avahi
+rm -fv /opt/pakfire/db/*/meta-avahi
+rm -fv /etc/rc.d/rc*.d/???avahi
+
+# Start services
+/etc/init.d/unbound start
+/etc/init.d/sshd restart
+/etc/init.d/squid start
+
+# This update need a reboot...
+#touch /var/run/need_reboot
+
+# Finish
+/etc/init.d/fireinfo start
+sendprofile
+
+# Update grub config to display new core version
+if [ -e /boot/grub/grub.cfg ]; then
+       grub-mkconfig -o /boot/grub/grub.cfg
+fi
+
+sync
+
+# Don't report the exitcode last command
+exit 0
diff --git a/config/rootfiles/oldcore/111/exclude b/config/rootfiles/oldcore/111/exclude
new file mode 100644 (file)
index 0000000..d6fd053
--- /dev/null
@@ -0,0 +1,30 @@
+boot/config.txt
+boot/grub/grub.cfg
+boot/grub/grubenv
+etc/alternatives
+etc/collectd.custom
+etc/default/grub
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
+etc/localtime
+etc/shadow
+etc/snort/snort.conf
+etc/ssh/ssh_config
+etc/ssh/sshd_config
+etc/ssl/openssl.cnf
+etc/sudoers
+etc/sysconfig/firewall.local
+etc/sysconfig/rc.local
+etc/udev/rules.d/30-persistent-network.rules
+srv/web/ipfire/html/proxy.pac
+var/ipfire/dma
+var/ipfire/time
+var/ipfire/ovpn
+var/lib/alternatives
+var/log/cache
+var/log/dhcpcd.log
+var/log/messages
+var/state/dhcp/dhcpd.leases
+var/updatecache
diff --git a/config/rootfiles/oldcore/111/filelists/armv5tel/gcc b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/armv5tel/gmp b/config/rootfiles/oldcore/111/filelists/armv5tel/gmp
new file mode 120000 (symlink)
index 0000000..2bdf30d
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/gmp
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/bind b/config/rootfiles/oldcore/111/filelists/bind
new file mode 120000 (symlink)
index 0000000..48a0eba
--- /dev/null
@@ -0,0 +1 @@
+../../../common/bind
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/coreutils b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/cpio b/config/rootfiles/oldcore/111/filelists/cpio
new file mode 120000 (symlink)
index 0000000..fbab21a
--- /dev/null
@@ -0,0 +1 @@
+../../../common/cpio
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/dhcp b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/file b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/files b/config/rootfiles/oldcore/111/filelists/files
new file mode 100644 (file)
index 0000000..f1e9746
--- /dev/null
@@ -0,0 +1,24 @@
+etc/system-release
+etc/issue
+etc/rc.d/init.d/networking/dhcpcd.exe
+etc/rc.d/init.d/networking/red
+etc/rc.d/init.d/wlanclient
+srv/web/ipfire/cgi-bin/index.cgi
+srv/web/ipfire/cgi-bin/ipinfo.cgi
+srv/web/ipfire/cgi-bin/iptables.cgi
+srv/web/ipfire/cgi-bin/logs.cgi/firewalllogcountry.dat
+srv/web/ipfire/cgi-bin/logs.cgi/firewalllogip.dat
+srv/web/ipfire/cgi-bin/logs.cgi/firewalllogport.dat
+srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromcountry.dat
+srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromip.dat
+srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromport.dat
+srv/web/ipfire/cgi-bin/ovpnmain.cgi
+srv/web/ipfire/cgi-bin/vpnmain.cgi
+srv/web/ipfire/cgi-bin/wirelessclient.cgi
+srv/web/ipfire/html/images/back.png
+usr/local/bin/getipstat
+usr/local/bin/ipsecctrl
+var/ipfire/langs
+var/ipfire/graphs.pl
+var/ipfire/network-functions.pl
+var/ipfire/qos/bin/makeqosscripts.pl
diff --git a/config/rootfiles/oldcore/111/filelists/gzip b/config/rootfiles/oldcore/111/filelists/gzip
new file mode 120000 (symlink)
index 0000000..aebcccd
--- /dev/null
@@ -0,0 +1 @@
+../../../common/gzip
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/i586/gcc b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/i586/gmp b/config/rootfiles/oldcore/111/filelists/i586/gmp
new file mode 120000 (symlink)
index 0000000..52a09cd
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/gmp
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/i586/openssl-sse2 b/config/rootfiles/oldcore/111/filelists/i586/openssl-sse2
new file mode 120000 (symlink)
index 0000000..f424713
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/openssl-sse2
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/i586/strongswan-padlock b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/libevent2 b/config/rootfiles/oldcore/111/filelists/libevent2
new file mode 120000 (symlink)
index 0000000..42edc99
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libevent2
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/libevent2-compat b/config/rootfiles/oldcore/111/filelists/libevent2-compat
new file mode 120000 (symlink)
index 0000000..4ea809b
--- /dev/null
@@ -0,0 +1 @@
+../../../common/libevent2-compat
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/logrotate b/config/rootfiles/oldcore/111/filelists/logrotate
new file mode 120000 (symlink)
index 0000000..bc192c0
--- /dev/null
@@ -0,0 +1 @@
+../../../common/logrotate
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/logwatch b/config/rootfiles/oldcore/111/filelists/logwatch
new file mode 120000 (symlink)
index 0000000..f14eabd
--- /dev/null
@@ -0,0 +1 @@
+../../../common/logwatch
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/mpfr b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/openssl b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/openvpn b/config/rootfiles/oldcore/111/filelists/openvpn
new file mode 120000 (symlink)
index 0000000..493f3f7
--- /dev/null
@@ -0,0 +1 @@
+../../../common/openvpn
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/pcre b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/php b/config/rootfiles/oldcore/111/filelists/php
new file mode 120000 (symlink)
index 0000000..1ae48d7
--- /dev/null
@@ -0,0 +1 @@
+../../../common/php
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/rrdtool b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/strongswan b/config/rootfiles/oldcore/111/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/oldcore/111/filelists/unbound b/config/rootfiles/oldcore/111/filelists/unbound
new file mode 120000 (symlink)
index 0000000..66adf09
--- /dev/null
@@ -0,0 +1 @@
+../../../common/unbound
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/vnstat b/config/rootfiles/oldcore/111/filelists/vnstat
new file mode 120000 (symlink)
index 0000000..2e2e610
--- /dev/null
@@ -0,0 +1 @@
+../../../common/vnstat
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/x86_64/gcc b/config/rootfiles/oldcore/111/filelists/x86_64/gcc
new file mode 120000 (symlink)
index 0000000..d1616d3
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64/gcc
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/filelists/x86_64/gmp b/config/rootfiles/oldcore/111/filelists/x86_64/gmp
new file mode 120000 (symlink)
index 0000000..7c59c60
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/x86_64/gmp
\ No newline at end of file
diff --git a/config/rootfiles/oldcore/111/meta b/config/rootfiles/oldcore/111/meta
new file mode 100644 (file)
index 0000000..d547fa8
--- /dev/null
@@ -0,0 +1 @@
+DEPS=""
similarity index 63%
rename from src/paks/vdr_vnsiserver5/install.sh
rename to config/rootfiles/oldcore/111/update.sh
index 3bb613eab1d5938a39c4c91bdbda716f0c1684af..1c3cc2795f3b0fa29842f45fe0fc67c46b5b43a7 100644 (file)
@@ -5,7 +5,7 @@
 #                                                                          #
 # 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        #
+# 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,                #
 # 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) 2017 IPFire-Team <info@ipfire.org>.                        #
 #                                                                          #
 ############################################################################
 #
 . /opt/pakfire/lib/functions.sh
-stop_service vdr
+/usr/local/bin/backupctrl exclude >/dev/null 2>&1
+
+core=111
+
+# Remove old core updates from pakfire cache to save space...
+for (( i=1; i<=$core; i++ )); do
+       rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
+done
+
+# Stop services
+ipsec stop
+/etc/init.d/unbound stop
+
+# Extract files
 extract_files
-start_service --background vdr
+
+# update linker config
+ldconfig
+
+# Update Language cache
+/usr/local/bin/update-lang-cache
+
+# Start services
+/etc/init.d/unbound start
+
+if grep -q "ENABLED=on" /var/ipfire/vpn/settings; then
+       ipsec start
+fi
+
+# This update need a reboot...
+touch /var/run/need_reboot
+
+# Finish
+/etc/init.d/fireinfo start
+sendprofile
+
+# Update grub config to display new core version
+if [ -e /boot/grub/grub.cfg ]; then
+       grub-mkconfig -o /boot/grub/grub.cfg
+fi
+
+sync
+
+# Don't report the exitcode last command
+exit 0
index d3a5c38f3e55c7d6c13152b2e96a5eff1523f685..bcf0322d69fab812034bbed5aeb98432661e1091 100644 (file)
-usr/local/bin/7z
-usr/local/lib/p7zip
-#usr/local/lib/p7zip/7z
-#usr/local/lib/p7zip/7z.so
-#usr/local/lib/p7zip/Codecs
-usr/local/lib/p7zip/Codecs/Rar.so
-#usr/local/man/man1/7z.1
-#usr/local/man/man1/7za.1
-#usr/local/man/man1/7zr.1
-#usr/local/share/doc/p7zip
-#usr/local/share/doc/p7zip/ChangeLog
-#usr/local/share/doc/p7zip/DOC
-#usr/local/share/doc/p7zip/DOC/7zC.txt
-#usr/local/share/doc/p7zip/DOC/7zFormat.txt
-#usr/local/share/doc/p7zip/DOC/License.txt
-#usr/local/share/doc/p7zip/DOC/MANUAL
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/add.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/bench.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/delete.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/extract.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/extract_full.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/hash.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/index.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/list.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/rename.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/style.css
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/test.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/commands/update.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/exit_codes.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/index.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/style.css
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/ar_exclude.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/ar_include.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/ar_no.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/bb.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/bs.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/charset.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/email.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/exclude.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/include.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/index.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/large_pages.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/list_tech.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/output_dir.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/overwrite.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/password.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/recurse.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/sa.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/scc.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/scrc.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/sdel.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/sfx.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/shared.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/sni.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/sns.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/spf.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/ssc.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/stdin.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/stdout.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/stl.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/stop_switch.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/stx.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/style.css
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/type.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/update.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/volume.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/working_dir.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/switches/yes.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/cmdline/syntax.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/about.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/benchmark.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/index.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/menu.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/options.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/plugins
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/plugins/7-zip
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/plugins/7-zip/add.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/plugins/7-zip/extract.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/plugins/7-zip/index.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/plugins/7-zip/style.css
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/plugins/index.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/plugins/style.css
-#usr/local/share/doc/p7zip/DOC/MANUAL/fm/style.css
-#usr/local/share/doc/p7zip/DOC/MANUAL/general
-#usr/local/share/doc/p7zip/DOC/MANUAL/general/7z.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/general/faq.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/general/formats.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/general/index.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/general/license.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/general/performance.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/general/style.css
-#usr/local/share/doc/p7zip/DOC/MANUAL/general/thanks.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/start.htm
-#usr/local/share/doc/p7zip/DOC/MANUAL/style.css
-#usr/local/share/doc/p7zip/DOC/Methods.txt
-#usr/local/share/doc/p7zip/DOC/copying.txt
-#usr/local/share/doc/p7zip/DOC/lzma.txt
-#usr/local/share/doc/p7zip/DOC/readme.txt
-#usr/local/share/doc/p7zip/DOC/src-history.txt
-#usr/local/share/doc/p7zip/DOC/unRarLicense.txt
-#usr/local/share/doc/p7zip/README
+usr/bin/7z
+usr/lib/p7zip
+#usr/lib/p7zip/7z
+#usr/lib/p7zip/7z.so
+#usr/lib/p7zip/Codecs
+usr/lib/p7zip/Codecs/Rar.so
+#usr/man/man1/7z.1
+#usr/man/man1/7za.1
+#usr/man/man1/7zr.1
+#usr/share/doc/p7zip
+#usr/share/doc/p7zip/ChangeLog
+#usr/share/doc/p7zip/DOC
+#usr/share/doc/p7zip/DOC/7zC.txt
+#usr/share/doc/p7zip/DOC/7zFormat.txt
+#usr/share/doc/p7zip/DOC/License.txt
+#usr/share/doc/p7zip/DOC/MANUAL
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/add.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/bench.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/delete.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/extract.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/extract_full.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/hash.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/index.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/list.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/rename.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/style.css
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/test.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/update.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/exit_codes.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/index.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/style.css
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/ar_exclude.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/ar_include.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/ar_no.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/bb.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/bs.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/charset.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/email.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/exclude.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/include.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/index.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/large_pages.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/list_tech.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/output_dir.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/overwrite.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/password.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/recurse.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/sa.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/scc.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/scrc.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/sdel.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/sfx.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/shared.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/sni.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/sns.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/spf.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/ssc.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/stdin.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/stdout.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/stl.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/stop_switch.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/stx.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/style.css
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/type.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/update.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/volume.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/working_dir.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/yes.htm
+#usr/share/doc/p7zip/DOC/MANUAL/cmdline/syntax.htm
+#usr/share/doc/p7zip/DOC/MANUAL/fm
+#usr/share/doc/p7zip/DOC/MANUAL/fm/about.htm
+#usr/share/doc/p7zip/DOC/MANUAL/fm/benchmark.htm
+#usr/share/doc/p7zip/DOC/MANUAL/fm/index.htm
+#usr/share/doc/p7zip/DOC/MANUAL/fm/menu.htm
+#usr/share/doc/p7zip/DOC/MANUAL/fm/options.htm
+#usr/share/doc/p7zip/DOC/MANUAL/fm/plugins
+#usr/share/doc/p7zip/DOC/MANUAL/fm/plugins/7-zip
+#usr/share/doc/p7zip/DOC/MANUAL/fm/plugins/7-zip/add.htm
+#usr/share/doc/p7zip/DOC/MANUAL/fm/plugins/7-zip/extract.htm
+#usr/share/doc/p7zip/DOC/MANUAL/fm/plugins/7-zip/index.htm
+#usr/share/doc/p7zip/DOC/MANUAL/fm/plugins/7-zip/style.css
+#usr/share/doc/p7zip/DOC/MANUAL/fm/plugins/index.htm
+#usr/share/doc/p7zip/DOC/MANUAL/fm/plugins/style.css
+#usr/share/doc/p7zip/DOC/MANUAL/fm/style.css
+#usr/share/doc/p7zip/DOC/MANUAL/general
+#usr/share/doc/p7zip/DOC/MANUAL/general/7z.htm
+#usr/share/doc/p7zip/DOC/MANUAL/general/faq.htm
+#usr/share/doc/p7zip/DOC/MANUAL/general/formats.htm
+#usr/share/doc/p7zip/DOC/MANUAL/general/index.htm
+#usr/share/doc/p7zip/DOC/MANUAL/general/license.htm
+#usr/share/doc/p7zip/DOC/MANUAL/general/performance.htm
+#usr/share/doc/p7zip/DOC/MANUAL/general/style.css
+#usr/share/doc/p7zip/DOC/MANUAL/general/thanks.htm
+#usr/share/doc/p7zip/DOC/MANUAL/start.htm
+#usr/share/doc/p7zip/DOC/MANUAL/style.css
+#usr/share/doc/p7zip/DOC/Methods.txt
+#usr/share/doc/p7zip/DOC/copying.txt
+#usr/share/doc/p7zip/DOC/lzma.txt
+#usr/share/doc/p7zip/DOC/readme.txt
+#usr/share/doc/p7zip/DOC/src-history.txt
+#usr/share/doc/p7zip/DOC/unRarLicense.txt
+#usr/share/doc/p7zip/README
index 574ba93d2548ebfd49e1440a739f04254a80cf95..d77367ba05f24d2689c97a54fa4db3ad04aefbcc 100644 (file)
@@ -1,30 +1,97 @@
+usr/bin/c64xdump
 usr/bin/dfbdump
+usr/bin/dfbdumpinput
 usr/bin/dfbfx
 usr/bin/dfbg
 usr/bin/dfbinfo
 usr/bin/dfbinput
+usr/bin/dfbinspector
 usr/bin/dfblayer
+usr/bin/dfbmaster
 usr/bin/dfbpenmount
+usr/bin/dfbplay
 usr/bin/dfbscreen
+usr/bin/dfbshow
+usr/bin/dfbswitch
 usr/bin/directfb-config
 usr/bin/directfb-csource
 usr/bin/mkdfiff
 usr/bin/mkdgiff
+usr/bin/mkdgifft
+usr/bin/pxa3xx_dump
+#usr/include/++dfb
+#usr/include/++dfb/++dfb.h
+#usr/include/++dfb/++dfb_mangle.h
+#usr/include/++dfb/++dfb_unmangle.h
+#usr/include/++dfb/idirectfb.h
+#usr/include/++dfb/idirectfbdatabuffer.h
+#usr/include/++dfb/idirectfbdisplaylayer.h
+#usr/include/++dfb/idirectfbeventbuffer.h
+#usr/include/++dfb/idirectfbfont.h
+#usr/include/++dfb/idirectfbimageprovider.h
+#usr/include/++dfb/idirectfbinputdevice.h
+#usr/include/++dfb/idirectfbpalette.h
+#usr/include/++dfb/idirectfbscreen.h
+#usr/include/++dfb/idirectfbsurface.h
+#usr/include/++dfb/idirectfbvideoprovider.h
+#usr/include/++dfb/idirectfbwindow.h
 #usr/include/directfb
 #usr/include/directfb-internal
 #usr/include/directfb-internal/core
+#usr/include/directfb-internal/core/CoreDFB.h
+#usr/include/directfb-internal/core/CoreDFB_CallMode.h
+#usr/include/directfb-internal/core/CoreDFB_includes.h
+#usr/include/directfb-internal/core/CoreGraphicsState.h
+#usr/include/directfb-internal/core/CoreGraphicsStateClient.h
+#usr/include/directfb-internal/core/CoreGraphicsState_includes.h
+#usr/include/directfb-internal/core/CoreInputDevice.h
+#usr/include/directfb-internal/core/CoreInputDevice_includes.h
+#usr/include/directfb-internal/core/CoreLayer.h
+#usr/include/directfb-internal/core/CoreLayerContext.h
+#usr/include/directfb-internal/core/CoreLayerContext_includes.h
+#usr/include/directfb-internal/core/CoreLayerRegion.h
+#usr/include/directfb-internal/core/CoreLayerRegion_includes.h
+#usr/include/directfb-internal/core/CoreLayer_includes.h
+#usr/include/directfb-internal/core/CorePalette.h
+#usr/include/directfb-internal/core/CorePalette_includes.h
+#usr/include/directfb-internal/core/CoreScreen.h
+#usr/include/directfb-internal/core/CoreScreen_includes.h
+#usr/include/directfb-internal/core/CoreSlave.h
+#usr/include/directfb-internal/core/CoreSlave_includes.h
+#usr/include/directfb-internal/core/CoreSurface.h
+#usr/include/directfb-internal/core/CoreSurfaceClient.h
+#usr/include/directfb-internal/core/CoreSurfaceClient_includes.h
+#usr/include/directfb-internal/core/CoreSurface_includes.h
+#usr/include/directfb-internal/core/CoreWindow.h
+#usr/include/directfb-internal/core/CoreWindowStack.h
+#usr/include/directfb-internal/core/CoreWindowStack_includes.h
+#usr/include/directfb-internal/core/CoreWindow_includes.h
+#usr/include/directfb-internal/core/Debug.h
+#usr/include/directfb-internal/core/DisplayTask.h
+#usr/include/directfb-internal/core/Fifo.h
+#usr/include/directfb-internal/core/Interface.h
+#usr/include/directfb-internal/core/PacketBuffer.h
+#usr/include/directfb-internal/core/Renderer.h
+#usr/include/directfb-internal/core/SurfaceTask.h
+#usr/include/directfb-internal/core/Task.h
+#usr/include/directfb-internal/core/TaskManager.h
+#usr/include/directfb-internal/core/TaskThreadsQ.h
+#usr/include/directfb-internal/core/Util.h
 #usr/include/directfb-internal/core/clipboard.h
 #usr/include/directfb-internal/core/colorhash.h
 #usr/include/directfb-internal/core/core.h
 #usr/include/directfb-internal/core/core_parts.h
+#usr/include/directfb-internal/core/core_strings.h
 #usr/include/directfb-internal/core/core_system.h
 #usr/include/directfb-internal/core/coredefs.h
 #usr/include/directfb-internal/core/coretypes.h
 #usr/include/directfb-internal/core/fonts.h
 #usr/include/directfb-internal/core/gfxcard.h
 #usr/include/directfb-internal/core/graphics_driver.h
+#usr/include/directfb-internal/core/graphics_state.h
 #usr/include/directfb-internal/core/input.h
 #usr/include/directfb-internal/core/input_driver.h
+#usr/include/directfb-internal/core/input_hub.h
 #usr/include/directfb-internal/core/layer_context.h
 #usr/include/directfb-internal/core/layer_control.h
 #usr/include/directfb-internal/core/layer_region.h
@@ -36,8 +103,12 @@ usr/bin/mkdgiff
 #usr/include/directfb-internal/core/screens_internal.h
 #usr/include/directfb-internal/core/state.h
 #usr/include/directfb-internal/core/surface.h
+#usr/include/directfb-internal/core/surface_allocation.h
 #usr/include/directfb-internal/core/surface_buffer.h
+#usr/include/directfb-internal/core/surface_client.h
+#usr/include/directfb-internal/core/surface_core.h
 #usr/include/directfb-internal/core/surface_pool.h
+#usr/include/directfb-internal/core/surface_pool_bridge.h
 #usr/include/directfb-internal/core/system.h
 #usr/include/directfb-internal/core/windows.h
 #usr/include/directfb-internal/core/windows_internal.h
@@ -54,6 +125,8 @@ usr/bin/mkdgiff
 #usr/include/directfb-internal/display/idirectfbsurface.h
 #usr/include/directfb-internal/display/idirectfbsurface_layer.h
 #usr/include/directfb-internal/display/idirectfbsurface_window.h
+#usr/include/directfb-internal/dummy
+#usr/include/directfb-internal/dummy/dummy.h
 #usr/include/directfb-internal/fbdev
 #usr/include/directfb-internal/fbdev/agp.h
 #usr/include/directfb-internal/fbdev/fb.h
@@ -67,13 +140,16 @@ usr/bin/mkdgiff
 #usr/include/directfb-internal/gfx/generic/generic.h
 #usr/include/directfb-internal/gfx/util.h
 #usr/include/directfb-internal/idirectfb.h
+#usr/include/directfb-internal/init.h
 #usr/include/directfb-internal/input
 #usr/include/directfb-internal/input/idirectfbinputbuffer.h
 #usr/include/directfb-internal/input/idirectfbinputdevice.h
 #usr/include/directfb-internal/media
 #usr/include/directfb-internal/media/idirectfbdatabuffer.h
+#usr/include/directfb-internal/media/idirectfbdatabuffer_client.h
 #usr/include/directfb-internal/media/idirectfbfont.h
 #usr/include/directfb-internal/media/idirectfbimageprovider.h
+#usr/include/directfb-internal/media/idirectfbimageprovider_client.h
 #usr/include/directfb-internal/media/idirectfbvideoprovider.h
 #usr/include/directfb-internal/misc
 #usr/include/directfb-internal/misc/conf.h
@@ -85,20 +161,60 @@ usr/bin/mkdgiff
 #usr/include/directfb/dfiff.h
 #usr/include/directfb/dgiff.h
 #usr/include/directfb/direct
+#usr/include/directfb/direct/Lists.h
+#usr/include/directfb/direct/LockWQ.h
+#usr/include/directfb/direct/Magic.h
+#usr/include/directfb/direct/Mutex.h
+#usr/include/directfb/direct/Performer.h
+#usr/include/directfb/direct/String.h
+#usr/include/directfb/direct/TLSObject.h
+#usr/include/directfb/direct/ToString.h
+#usr/include/directfb/direct/Types++.h
+#usr/include/directfb/direct/atomic.h
 #usr/include/directfb/direct/build.h
 #usr/include/directfb/direct/clock.h
+#usr/include/directfb/direct/compiler.h
 #usr/include/directfb/direct/conf.h
 #usr/include/directfb/direct/debug.h
 #usr/include/directfb/direct/direct.h
+#usr/include/directfb/direct/fastlz.h
+#usr/include/directfb/direct/fifo.h
+#usr/include/directfb/direct/filesystem.h
+#usr/include/directfb/direct/flz.h
 #usr/include/directfb/direct/hash.h
+#usr/include/directfb/direct/init.h
 #usr/include/directfb/direct/interface.h
 #usr/include/directfb/direct/interface_implementation.h
 #usr/include/directfb/direct/list.h
 #usr/include/directfb/direct/log.h
+#usr/include/directfb/direct/log_domain.h
+#usr/include/directfb/direct/map.h
 #usr/include/directfb/direct/mem.h
 #usr/include/directfb/direct/memcpy.h
 #usr/include/directfb/direct/messages.h
 #usr/include/directfb/direct/modules.h
+#usr/include/directfb/direct/os
+#usr/include/directfb/direct/os/clock.h
+#usr/include/directfb/direct/os/filesystem.h
+#usr/include/directfb/direct/os/linux
+#usr/include/directfb/direct/os/linux/glibc
+#usr/include/directfb/direct/os/linux/glibc/filesystem.h
+#usr/include/directfb/direct/os/linux/glibc/mutex.h
+#usr/include/directfb/direct/os/linux/glibc/thread.h
+#usr/include/directfb/direct/os/linux/glibc/types.h
+#usr/include/directfb/direct/os/linux/glibc/waitqueue.h
+#usr/include/directfb/direct/os/log.h
+#usr/include/directfb/direct/os/mem.h
+#usr/include/directfb/direct/os/mutex.h
+#usr/include/directfb/direct/os/signals.h
+#usr/include/directfb/direct/os/system.h
+#usr/include/directfb/direct/os/thread.h
+#usr/include/directfb/direct/os/types.h
+#usr/include/directfb/direct/os/waitqueue.h
+#usr/include/directfb/direct/perf.h
+#usr/include/directfb/direct/print.h
+#usr/include/directfb/direct/processor.h
+#usr/include/directfb/direct/result.h
 #usr/include/directfb/direct/serial.h
 #usr/include/directfb/direct/signals.h
 #usr/include/directfb/direct/stream.h
@@ -109,14 +225,23 @@ usr/bin/mkdgiff
 #usr/include/directfb/direct/types.h
 #usr/include/directfb/direct/utf8.h
 #usr/include/directfb/direct/util.h
+#usr/include/directfb/direct/uuid.h
+#usr/include/directfb/directfb++.h
 #usr/include/directfb/directfb.h
+#usr/include/directfb/directfb_build.h
+#usr/include/directfb/directfb_graphics.h
 #usr/include/directfb/directfb_keyboard.h
 #usr/include/directfb/directfb_keynames.h
 #usr/include/directfb/directfb_strings.h
 #usr/include/directfb/directfb_util.h
 #usr/include/directfb/directfb_version.h
+#usr/include/directfb/directfb_water.h
+#usr/include/directfb/directfb_water_strings.h
+#usr/include/directfb/directfb_windows.h
 #usr/include/directfb/directfbgl.h
+#usr/include/directfb/directfbgl2.h
 #usr/include/directfb/fusion
+#usr/include/directfb/fusion/Debug.h
 #usr/include/directfb/fusion/arena.h
 #usr/include/directfb/fusion/build.h
 #usr/include/directfb/fusion/call.h
@@ -124,6 +249,7 @@ usr/bin/mkdgiff
 #usr/include/directfb/fusion/fusion.h
 #usr/include/directfb/fusion/fusion_internal.h
 #usr/include/directfb/fusion/hash.h
+#usr/include/directfb/fusion/init.h
 #usr/include/directfb/fusion/lock.h
 #usr/include/directfb/fusion/object.h
 #usr/include/directfb/fusion/property.h
@@ -137,105 +263,140 @@ usr/bin/mkdgiff
 #usr/include/directfb/fusion/shmalloc.h
 #usr/include/directfb/fusion/types.h
 #usr/include/directfb/fusion/vector.h
-#usr/lib/directfb-1.1-0
-#usr/lib/directfb-1.1-0/gfxdrivers
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_ati128.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_ati128.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_cyber5k.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_cyber5k.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_davinci.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_davinci.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_mach64.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_mach64.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nsc.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nsc.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nvidia.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nvidia.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_radeon.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_radeon.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sdlgraphics.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sdlgraphics.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sh7722.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sh7722.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sis315.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sis315.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_tdfx.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_tdfx.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_vmware.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_vmware.so
-#usr/lib/directfb-1.1-0/inputdrivers
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_joystick.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_joystick.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_keyboard.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_keyboard.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_linux_input.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_linux_input.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_lirc.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_lirc.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_mutouch.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_mutouch.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_penmount.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_penmount.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_ps2mouse.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_ps2mouse.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sdlinput.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sdlinput.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_serialmouse.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_serialmouse.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sonypi.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sonypi.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_ucb1x00_ts.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_ucb1x00_ts.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_wm97xx_ts.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_wm97xx_ts.so
-#usr/lib/directfb-1.1-0/interfaces
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBFont
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_default.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_default.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_ft2.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_ft2.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBVideoProvider
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so
-#usr/lib/directfb-1.1-0/systems
-#usr/lib/directfb-1.1-0/systems/libdirectfb_devmem.la
-usr/lib/directfb-1.1-0/systems/libdirectfb_devmem.so
-#usr/lib/directfb-1.1-0/systems/libdirectfb_fbdev.la
-usr/lib/directfb-1.1-0/systems/libdirectfb_fbdev.so
-#usr/lib/directfb-1.1-0/systems/libdirectfb_sdl.la
-usr/lib/directfb-1.1-0/systems/libdirectfb_sdl.so
-#usr/lib/directfb-1.1-0/wm
-#usr/lib/directfb-1.1-0/wm/libdirectfbwm_default.la
-usr/lib/directfb-1.1-0/wm/libdirectfbwm_default.so
-usr/lib/libdirect-1.1.so.0
-usr/lib/libdirect-1.1.so.0.1.0
+#usr/lib/directfb-1.7-7
+#usr/lib/directfb-1.7-7/gfxdrivers
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ati128.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ati128.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_davinci.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_davinci.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ep9x.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ep9x.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_mach64.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_mach64.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_matrox.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_matrox.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nsc.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nsc.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nvidia.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nvidia.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_omap.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_omap.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_pxa3xx.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_pxa3xx.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sdlgraphics.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sdlgraphics.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sis315.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sis315.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_tdfx.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_tdfx.so
+#usr/lib/directfb-1.7-7/inputdrivers
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_input_hub.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_input_hub.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_joystick.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_joystick.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_keyboard.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_keyboard.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_linux_input.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_linux_input.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_lirc.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_lirc.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_mutouch.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_mutouch.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_penmount.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_penmount.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ps2mouse.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ps2mouse.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sdlinput.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sdlinput.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_serialmouse.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_serialmouse.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sonypi.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sonypi.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ucb1x00_ts.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ucb1x00_ts.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_wm97xx_ts.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_wm97xx_ts.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_zytronic.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_zytronic.so
+#usr/lib/directfb-1.7-7/interfaces
+#usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager
+#usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager/libicoreresourcemanager_test.la
+usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager/libicoreresourcemanager_test.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_dgiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_dgiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_ft2.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_ft2.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_bmp.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_bmp.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_pnm.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_pnm.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_tiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_tiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows/libidirectfbwindows_default.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows/libidirectfbwindows_default.so
+#usr/lib/directfb-1.7-7/interfaces/IWater
+#usr/lib/directfb-1.7-7/interfaces/IWater/libiwater_default.la
+usr/lib/directfb-1.7-7/interfaces/IWater/libiwater_default.so
+#usr/lib/directfb-1.7-7/systems
+#usr/lib/directfb-1.7-7/systems/libdirectfb_devmem.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_devmem.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_dummy.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_dummy.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_fbdev.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_fbdev.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_sdl.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_sdl.so
+#usr/lib/directfb-1.7-7/wm
+#usr/lib/directfb-1.7-7/wm/libdirectfbwm_default.la
+usr/lib/directfb-1.7-7/wm/libdirectfbwm_default.so
+usr/lib/lib++dfb-1.7.so.7
+usr/lib/lib++dfb-1.7.so.7.0.0
+#usr/lib/lib++dfb.la
+#usr/lib/lib++dfb.so
+#usr/lib/libdavinci_c64x.la
+#usr/lib/libdavinci_c64x.so
+usr/lib/libdavinci_c64x.so.0
+usr/lib/libdavinci_c64x.so.0.0.0
+usr/lib/libdirect-1.7.so.7
+usr/lib/libdirect-1.7.so.7.0.0
 #usr/lib/libdirect.la
 usr/lib/libdirect.so
-usr/lib/libdirectfb-1.1.so.0
-usr/lib/libdirectfb-1.1.so.0.1.0
+usr/lib/libdirectfb-1.7.so.7
+usr/lib/libdirectfb-1.7.so.7.0.0
 #usr/lib/libdirectfb.la
 usr/lib/libdirectfb.so
-usr/lib/libfusion-1.1.so.0
-usr/lib/libfusion-1.1.so.0.1.0
+usr/lib/libfusion-1.7.so.7
+usr/lib/libfusion-1.7.so.7.0.0
 #usr/lib/libfusion.la
 usr/lib/libfusion.so
+#usr/lib/pkgconfig/++dfb.pc
 #usr/lib/pkgconfig/direct.pc
 #usr/lib/pkgconfig/directfb-internal.pc
 #usr/lib/pkgconfig/directfb.pc
 #usr/lib/pkgconfig/fusion.pc
-#usr/share/directfb-1.1.1
-usr/share/directfb-1.1.1/cursor.dat
+#usr/share/directfb-1.7.7
+usr/share/directfb-1.7.7/cursor.dat
+usr/share/directfb-1.7.7/cursor.png
+usr/share/directfb-1.7.7/decker.dgiff
+usr/share/directfb-1.7.7/decker.ttf
 #usr/share/man/man1/dfbg.1
 #usr/share/man/man1/directfb-csource.1
 #usr/share/man/man5/directfbrc.5
index b9cee323a1bc986fd76a0837c143beea2f244d18..38fbcb8eb0274a3a102f4fb04331a1f2fd5bb061 100644 (file)
@@ -2765,9 +2765,9 @@ usr/lib/python3.6/lib-dynload/xxlimited.cpython-36m-arm-linux-gnueabi.so
 usr/lib/python3.6/lib-dynload/zlib.cpython-36m-arm-linux-gnueabi.so
 #usr/lib/python3.6/lib2to3
 usr/lib/python3.6/lib2to3/Grammar.txt
-usr/lib/python3.6/lib2to3/Grammar3.6.0.final.0.pickle
+usr/lib/python3.6/lib2to3/Grammar3.6.1.final.0.pickle
 usr/lib/python3.6/lib2to3/PatternGrammar.txt
-usr/lib/python3.6/lib2to3/PatternGrammar3.6.0.final.0.pickle
+usr/lib/python3.6/lib2to3/PatternGrammar3.6.1.final.0.pickle
 usr/lib/python3.6/lib2to3/__init__.py
 usr/lib/python3.6/lib2to3/__main__.py
 #usr/lib/python3.6/lib2to3/__pycache__
@@ -3297,8 +3297,7 @@ usr/lib/python3.6/shelve.py
 usr/lib/python3.6/shlex.py
 usr/lib/python3.6/shutil.py
 usr/lib/python3.6/signal.py
-usr/lib/python3.6/site-packages
-usr/lib/python3.6/site-packages/README
+#usr/lib/python3.6/site-packages
 usr/lib/python3.6/site-packages/README.txt
 #usr/lib/python3.6/site-packages/__pycache__
 usr/lib/python3.6/site-packages/__pycache__/easy_install.cpython-36.pyc
@@ -7447,7 +7446,6 @@ usr/lib/python3.6/venv/__pycache__/__main__.cpython-36.opt-2.pyc
 usr/lib/python3.6/venv/__pycache__/__main__.cpython-36.pyc
 usr/lib/python3.6/venv/scripts
 usr/lib/python3.6/venv/scripts/posix
-usr/lib/python3.6/venv/scripts/posix/activate
 usr/lib/python3.6/venv/scripts/posix/activate.csh
 usr/lib/python3.6/venv/scripts/posix/activate.fish
 usr/lib/python3.6/warnings.py
@@ -7597,3 +7595,13 @@ usr/lib/python3.6/zipapp.py
 usr/lib/python3.6/zipfile.py
 #usr/share/man/man1/python3.1
 #usr/share/man/man1/python3.6.1
+usr/lib/python3.6/test/mod_generics_cache.py
+usr/lib/python3.6/test/mp_preload.py
+usr/lib/python3.6/venv/scripts/common
+usr/lib/python3.6/venv/scripts/common/activate
+#usr/lib/python3.6/test/__pycache__/mod_generics_cache.cpython-36.opt-1.pyc
+#usr/lib/python3.6/test/__pycache__/mod_generics_cache.cpython-36.opt-2.pyc
+#usr/lib/python3.6/test/__pycache__/mod_generics_cache.cpython-36.pyc
+#usr/lib/python3.6/test/__pycache__/mp_preload.cpython-36.opt-1.pyc
+#usr/lib/python3.6/test/__pycache__/mp_preload.cpython-36.opt-2.pyc
+#usr/lib/python3.6/test/__pycache__/mp_preload.cpython-36.pyc
diff --git a/config/rootfiles/packages/armv7hl/directfb b/config/rootfiles/packages/armv7hl/directfb
new file mode 100644 (file)
index 0000000..9863c68
--- /dev/null
@@ -0,0 +1,402 @@
+usr/bin/c64xdump
+usr/bin/dfbdump
+usr/bin/dfbdumpinput
+usr/bin/dfbfx
+usr/bin/dfbg
+usr/bin/dfbinfo
+usr/bin/dfbinput
+usr/bin/dfbinspector
+usr/bin/dfblayer
+usr/bin/dfbmaster
+usr/bin/dfbpenmount
+usr/bin/dfbplay
+usr/bin/dfbscreen
+usr/bin/dfbshow
+usr/bin/dfbswitch
+usr/bin/directfb-config
+usr/bin/directfb-csource
+usr/bin/mkdfiff
+usr/bin/mkdgiff
+usr/bin/mkdgifft
+usr/bin/pxa3xx_dump
+#usr/include/++dfb
+#usr/include/++dfb/++dfb.h
+#usr/include/++dfb/++dfb_mangle.h
+#usr/include/++dfb/++dfb_unmangle.h
+#usr/include/++dfb/idirectfb.h
+#usr/include/++dfb/idirectfbdatabuffer.h
+#usr/include/++dfb/idirectfbdisplaylayer.h
+#usr/include/++dfb/idirectfbeventbuffer.h
+#usr/include/++dfb/idirectfbfont.h
+#usr/include/++dfb/idirectfbimageprovider.h
+#usr/include/++dfb/idirectfbinputdevice.h
+#usr/include/++dfb/idirectfbpalette.h
+#usr/include/++dfb/idirectfbscreen.h
+#usr/include/++dfb/idirectfbsurface.h
+#usr/include/++dfb/idirectfbvideoprovider.h
+#usr/include/++dfb/idirectfbwindow.h
+#usr/include/directfb
+#usr/include/directfb-internal
+#usr/include/directfb-internal/core
+#usr/include/directfb-internal/core/CoreDFB.h
+#usr/include/directfb-internal/core/CoreDFB_CallMode.h
+#usr/include/directfb-internal/core/CoreDFB_includes.h
+#usr/include/directfb-internal/core/CoreGraphicsState.h
+#usr/include/directfb-internal/core/CoreGraphicsStateClient.h
+#usr/include/directfb-internal/core/CoreGraphicsState_includes.h
+#usr/include/directfb-internal/core/CoreInputDevice.h
+#usr/include/directfb-internal/core/CoreInputDevice_includes.h
+#usr/include/directfb-internal/core/CoreLayer.h
+#usr/include/directfb-internal/core/CoreLayerContext.h
+#usr/include/directfb-internal/core/CoreLayerContext_includes.h
+#usr/include/directfb-internal/core/CoreLayerRegion.h
+#usr/include/directfb-internal/core/CoreLayerRegion_includes.h
+#usr/include/directfb-internal/core/CoreLayer_includes.h
+#usr/include/directfb-internal/core/CorePalette.h
+#usr/include/directfb-internal/core/CorePalette_includes.h
+#usr/include/directfb-internal/core/CoreScreen.h
+#usr/include/directfb-internal/core/CoreScreen_includes.h
+#usr/include/directfb-internal/core/CoreSlave.h
+#usr/include/directfb-internal/core/CoreSlave_includes.h
+#usr/include/directfb-internal/core/CoreSurface.h
+#usr/include/directfb-internal/core/CoreSurfaceClient.h
+#usr/include/directfb-internal/core/CoreSurfaceClient_includes.h
+#usr/include/directfb-internal/core/CoreSurface_includes.h
+#usr/include/directfb-internal/core/CoreWindow.h
+#usr/include/directfb-internal/core/CoreWindowStack.h
+#usr/include/directfb-internal/core/CoreWindowStack_includes.h
+#usr/include/directfb-internal/core/CoreWindow_includes.h
+#usr/include/directfb-internal/core/Debug.h
+#usr/include/directfb-internal/core/DisplayTask.h
+#usr/include/directfb-internal/core/Fifo.h
+#usr/include/directfb-internal/core/Interface.h
+#usr/include/directfb-internal/core/PacketBuffer.h
+#usr/include/directfb-internal/core/Renderer.h
+#usr/include/directfb-internal/core/SurfaceTask.h
+#usr/include/directfb-internal/core/Task.h
+#usr/include/directfb-internal/core/TaskManager.h
+#usr/include/directfb-internal/core/TaskThreadsQ.h
+#usr/include/directfb-internal/core/Util.h
+#usr/include/directfb-internal/core/clipboard.h
+#usr/include/directfb-internal/core/colorhash.h
+#usr/include/directfb-internal/core/core.h
+#usr/include/directfb-internal/core/core_parts.h
+#usr/include/directfb-internal/core/core_strings.h
+#usr/include/directfb-internal/core/core_system.h
+#usr/include/directfb-internal/core/coredefs.h
+#usr/include/directfb-internal/core/coretypes.h
+#usr/include/directfb-internal/core/fonts.h
+#usr/include/directfb-internal/core/gfxcard.h
+#usr/include/directfb-internal/core/graphics_driver.h
+#usr/include/directfb-internal/core/graphics_state.h
+#usr/include/directfb-internal/core/input.h
+#usr/include/directfb-internal/core/input_driver.h
+#usr/include/directfb-internal/core/input_hub.h
+#usr/include/directfb-internal/core/layer_context.h
+#usr/include/directfb-internal/core/layer_control.h
+#usr/include/directfb-internal/core/layer_region.h
+#usr/include/directfb-internal/core/layers.h
+#usr/include/directfb-internal/core/layers_internal.h
+#usr/include/directfb-internal/core/palette.h
+#usr/include/directfb-internal/core/screen.h
+#usr/include/directfb-internal/core/screens.h
+#usr/include/directfb-internal/core/screens_internal.h
+#usr/include/directfb-internal/core/state.h
+#usr/include/directfb-internal/core/surface.h
+#usr/include/directfb-internal/core/surface_allocation.h
+#usr/include/directfb-internal/core/surface_buffer.h
+#usr/include/directfb-internal/core/surface_client.h
+#usr/include/directfb-internal/core/surface_core.h
+#usr/include/directfb-internal/core/surface_pool.h
+#usr/include/directfb-internal/core/surface_pool_bridge.h
+#usr/include/directfb-internal/core/system.h
+#usr/include/directfb-internal/core/windows.h
+#usr/include/directfb-internal/core/windows_internal.h
+#usr/include/directfb-internal/core/windowstack.h
+#usr/include/directfb-internal/core/wm.h
+#usr/include/directfb-internal/core/wm_module.h
+#usr/include/directfb-internal/devmem
+#usr/include/directfb-internal/devmem/devmem.h
+#usr/include/directfb-internal/devmem/surfacemanager.h
+#usr/include/directfb-internal/display
+#usr/include/directfb-internal/display/idirectfbdisplaylayer.h
+#usr/include/directfb-internal/display/idirectfbpalette.h
+#usr/include/directfb-internal/display/idirectfbscreen.h
+#usr/include/directfb-internal/display/idirectfbsurface.h
+#usr/include/directfb-internal/display/idirectfbsurface_layer.h
+#usr/include/directfb-internal/display/idirectfbsurface_window.h
+#usr/include/directfb-internal/dummy
+#usr/include/directfb-internal/dummy/dummy.h
+#usr/include/directfb-internal/fbdev
+#usr/include/directfb-internal/fbdev/agp.h
+#usr/include/directfb-internal/fbdev/fb.h
+#usr/include/directfb-internal/fbdev/fbdev.h
+#usr/include/directfb-internal/fbdev/surfacemanager.h
+#usr/include/directfb-internal/fbdev/vt.h
+#usr/include/directfb-internal/gfx
+#usr/include/directfb-internal/gfx/clip.h
+#usr/include/directfb-internal/gfx/convert.h
+#usr/include/directfb-internal/gfx/generic
+#usr/include/directfb-internal/gfx/generic/generic.h
+#usr/include/directfb-internal/gfx/util.h
+#usr/include/directfb-internal/idirectfb.h
+#usr/include/directfb-internal/init.h
+#usr/include/directfb-internal/input
+#usr/include/directfb-internal/input/idirectfbinputbuffer.h
+#usr/include/directfb-internal/input/idirectfbinputdevice.h
+#usr/include/directfb-internal/media
+#usr/include/directfb-internal/media/idirectfbdatabuffer.h
+#usr/include/directfb-internal/media/idirectfbdatabuffer_client.h
+#usr/include/directfb-internal/media/idirectfbfont.h
+#usr/include/directfb-internal/media/idirectfbimageprovider.h
+#usr/include/directfb-internal/media/idirectfbimageprovider_client.h
+#usr/include/directfb-internal/media/idirectfbvideoprovider.h
+#usr/include/directfb-internal/misc
+#usr/include/directfb-internal/misc/conf.h
+#usr/include/directfb-internal/misc/gfx_util.h
+#usr/include/directfb-internal/misc/util.h
+#usr/include/directfb-internal/windows
+#usr/include/directfb-internal/windows/idirectfbwindow.h
+#usr/include/directfb/dfb_types.h
+#usr/include/directfb/dfiff.h
+#usr/include/directfb/dgiff.h
+#usr/include/directfb/direct
+#usr/include/directfb/direct/Lists.h
+#usr/include/directfb/direct/LockWQ.h
+#usr/include/directfb/direct/Magic.h
+#usr/include/directfb/direct/Mutex.h
+#usr/include/directfb/direct/Performer.h
+#usr/include/directfb/direct/String.h
+#usr/include/directfb/direct/TLSObject.h
+#usr/include/directfb/direct/ToString.h
+#usr/include/directfb/direct/Types++.h
+#usr/include/directfb/direct/atomic.h
+#usr/include/directfb/direct/build.h
+#usr/include/directfb/direct/clock.h
+#usr/include/directfb/direct/compiler.h
+#usr/include/directfb/direct/conf.h
+#usr/include/directfb/direct/debug.h
+#usr/include/directfb/direct/direct.h
+#usr/include/directfb/direct/fastlz.h
+#usr/include/directfb/direct/fifo.h
+#usr/include/directfb/direct/filesystem.h
+#usr/include/directfb/direct/flz.h
+#usr/include/directfb/direct/hash.h
+#usr/include/directfb/direct/init.h
+#usr/include/directfb/direct/interface.h
+#usr/include/directfb/direct/interface_implementation.h
+#usr/include/directfb/direct/list.h
+#usr/include/directfb/direct/log.h
+#usr/include/directfb/direct/log_domain.h
+#usr/include/directfb/direct/map.h
+#usr/include/directfb/direct/mem.h
+#usr/include/directfb/direct/memcpy.h
+#usr/include/directfb/direct/messages.h
+#usr/include/directfb/direct/modules.h
+#usr/include/directfb/direct/os
+#usr/include/directfb/direct/os/clock.h
+#usr/include/directfb/direct/os/filesystem.h
+#usr/include/directfb/direct/os/linux
+#usr/include/directfb/direct/os/linux/glibc
+#usr/include/directfb/direct/os/linux/glibc/filesystem.h
+#usr/include/directfb/direct/os/linux/glibc/mutex.h
+#usr/include/directfb/direct/os/linux/glibc/thread.h
+#usr/include/directfb/direct/os/linux/glibc/types.h
+#usr/include/directfb/direct/os/linux/glibc/waitqueue.h
+#usr/include/directfb/direct/os/log.h
+#usr/include/directfb/direct/os/mem.h
+#usr/include/directfb/direct/os/mutex.h
+#usr/include/directfb/direct/os/signals.h
+#usr/include/directfb/direct/os/system.h
+#usr/include/directfb/direct/os/thread.h
+#usr/include/directfb/direct/os/types.h
+#usr/include/directfb/direct/os/waitqueue.h
+#usr/include/directfb/direct/perf.h
+#usr/include/directfb/direct/print.h
+#usr/include/directfb/direct/processor.h
+#usr/include/directfb/direct/result.h
+#usr/include/directfb/direct/serial.h
+#usr/include/directfb/direct/signals.h
+#usr/include/directfb/direct/stream.h
+#usr/include/directfb/direct/system.h
+#usr/include/directfb/direct/thread.h
+#usr/include/directfb/direct/trace.h
+#usr/include/directfb/direct/tree.h
+#usr/include/directfb/direct/types.h
+#usr/include/directfb/direct/utf8.h
+#usr/include/directfb/direct/util.h
+#usr/include/directfb/direct/uuid.h
+#usr/include/directfb/directfb++.h
+#usr/include/directfb/directfb.h
+#usr/include/directfb/directfb_build.h
+#usr/include/directfb/directfb_graphics.h
+#usr/include/directfb/directfb_keyboard.h
+#usr/include/directfb/directfb_keynames.h
+#usr/include/directfb/directfb_strings.h
+#usr/include/directfb/directfb_util.h
+#usr/include/directfb/directfb_version.h
+#usr/include/directfb/directfb_water.h
+#usr/include/directfb/directfb_water_strings.h
+#usr/include/directfb/directfb_windows.h
+#usr/include/directfb/directfbgl.h
+#usr/include/directfb/directfbgl2.h
+#usr/include/directfb/fusion
+#usr/include/directfb/fusion/Debug.h
+#usr/include/directfb/fusion/arena.h
+#usr/include/directfb/fusion/build.h
+#usr/include/directfb/fusion/call.h
+#usr/include/directfb/fusion/conf.h
+#usr/include/directfb/fusion/fusion.h
+#usr/include/directfb/fusion/fusion_internal.h
+#usr/include/directfb/fusion/hash.h
+#usr/include/directfb/fusion/init.h
+#usr/include/directfb/fusion/lock.h
+#usr/include/directfb/fusion/object.h
+#usr/include/directfb/fusion/property.h
+#usr/include/directfb/fusion/protocol.h
+#usr/include/directfb/fusion/reactor.h
+#usr/include/directfb/fusion/ref.h
+#usr/include/directfb/fusion/shm
+#usr/include/directfb/fusion/shm/pool.h
+#usr/include/directfb/fusion/shm/shm.h
+#usr/include/directfb/fusion/shm/shm_internal.h
+#usr/include/directfb/fusion/shmalloc.h
+#usr/include/directfb/fusion/types.h
+#usr/include/directfb/fusion/vector.h
+#usr/lib/directfb-1.7-7
+#usr/lib/directfb-1.7-7/gfxdrivers
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ati128.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ati128.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_davinci.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_davinci.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ep9x.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ep9x.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_mach64.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_mach64.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_matrox.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_matrox.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nsc.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nsc.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nvidia.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nvidia.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_omap.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_omap.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_pxa3xx.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_pxa3xx.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sdlgraphics.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sdlgraphics.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sis315.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sis315.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_tdfx.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_tdfx.so
+#usr/lib/directfb-1.7-7/inputdrivers
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_input_hub.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_input_hub.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_joystick.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_joystick.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_keyboard.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_keyboard.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_linux_input.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_linux_input.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_lirc.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_lirc.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_mutouch.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_mutouch.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_penmount.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_penmount.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ps2mouse.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ps2mouse.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sdlinput.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sdlinput.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_serialmouse.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_serialmouse.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sonypi.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sonypi.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ucb1x00_ts.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ucb1x00_ts.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_wm97xx_ts.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_wm97xx_ts.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_zytronic.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_zytronic.so
+#usr/lib/directfb-1.7-7/interfaces
+#usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager
+#usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager/libicoreresourcemanager_test.la
+usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager/libicoreresourcemanager_test.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_dgiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_dgiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_ft2.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_ft2.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_bmp.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_bmp.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_pnm.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_pnm.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_tiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_tiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows/libidirectfbwindows_default.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows/libidirectfbwindows_default.so
+#usr/lib/directfb-1.7-7/interfaces/IWater
+#usr/lib/directfb-1.7-7/interfaces/IWater/libiwater_default.la
+usr/lib/directfb-1.7-7/interfaces/IWater/libiwater_default.so
+#usr/lib/directfb-1.7-7/systems
+#usr/lib/directfb-1.7-7/systems/libdirectfb_devmem.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_devmem.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_dummy.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_dummy.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_fbdev.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_fbdev.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_sdl.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_sdl.so
+#usr/lib/directfb-1.7-7/wm
+#usr/lib/directfb-1.7-7/wm/libdirectfbwm_default.la
+usr/lib/directfb-1.7-7/wm/libdirectfbwm_default.so
+usr/lib/lib++dfb-1.7.so.7
+usr/lib/lib++dfb-1.7.so.7.0.0
+#usr/lib/lib++dfb.la
+#usr/lib/lib++dfb.so
+#usr/lib/libdavinci_c64x.la
+#usr/lib/libdavinci_c64x.so
+usr/lib/libdavinci_c64x.so.0
+usr/lib/libdavinci_c64x.so.0.0.0
+usr/lib/libdirect-1.7.so.7
+usr/lib/libdirect-1.7.so.7.0.0
+#usr/lib/libdirect.la
+#usr/lib/libdirect.so
+usr/lib/libdirectfb-1.7.so.7
+usr/lib/libdirectfb-1.7.so.7.0.0
+#usr/lib/libdirectfb.la
+#usr/lib/libdirectfb.so
+usr/lib/libfusion-1.7.so.7
+usr/lib/libfusion-1.7.so.7.0.0
+#usr/lib/libfusion.la
+#usr/lib/libfusion.so
+#usr/lib/pkgconfig/++dfb.pc
+#usr/lib/pkgconfig/direct.pc
+#usr/lib/pkgconfig/directfb-internal.pc
+#usr/lib/pkgconfig/directfb.pc
+#usr/lib/pkgconfig/fusion.pc
+#usr/share/directfb-1.7.7
+usr/share/directfb-1.7.7/cursor.dat
+usr/share/directfb-1.7.7/cursor.png
+usr/share/directfb-1.7.7/decker.dgiff
+usr/share/directfb-1.7.7/decker.ttf
+#usr/share/man/man1/dfbg.1
+#usr/share/man/man1/directfb-csource.1
+#usr/share/man/man5/directfbrc.5
diff --git a/config/rootfiles/packages/avahi b/config/rootfiles/packages/avahi
deleted file mode 100644 (file)
index dc2c56d..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-etc/avahi
-etc/avahi/avahi-autoipd.action
-etc/avahi/avahi-daemon.conf
-etc/avahi/avahi-dnsconfd.action
-etc/avahi/hosts
-etc/avahi/services
-etc/avahi/services/sftp-ssh.service
-etc/avahi/services/smb.service
-etc/avahi/services/ssh.service
-#etc/dbus-1/system.d/avahi-dbus.conf
-etc/rc.d/init.d/avahi
-usr/bin/avahi-browse
-usr/bin/avahi-browse-domains
-usr/bin/avahi-publish
-usr/bin/avahi-publish-address
-usr/bin/avahi-publish-service
-usr/bin/avahi-resolve
-usr/bin/avahi-resolve-address
-usr/bin/avahi-resolve-host-name
-usr/bin/avahi-set-host-name
-#usr/include/avahi-client
-#usr/include/avahi-client/client.h
-#usr/include/avahi-client/lookup.h
-#usr/include/avahi-client/publish.h
-#usr/include/avahi-common
-#usr/include/avahi-common/address.h
-#usr/include/avahi-common/alternative.h
-#usr/include/avahi-common/cdecl.h
-#usr/include/avahi-common/defs.h
-#usr/include/avahi-common/domain.h
-#usr/include/avahi-common/error.h
-#usr/include/avahi-common/gccmacro.h
-#usr/include/avahi-common/llist.h
-#usr/include/avahi-common/malloc.h
-#usr/include/avahi-common/rlist.h
-#usr/include/avahi-common/simple-watch.h
-#usr/include/avahi-common/strlst.h
-#usr/include/avahi-common/thread-watch.h
-#usr/include/avahi-common/timeval.h
-#usr/include/avahi-common/watch.h
-#usr/include/avahi-core
-#usr/include/avahi-core/core.h
-#usr/include/avahi-core/log.h
-#usr/include/avahi-core/lookup.h
-#usr/include/avahi-core/publish.h
-#usr/include/avahi-core/rr.h
-#usr/include/avahi-glib
-#usr/include/avahi-glib/glib-malloc.h
-#usr/include/avahi-glib/glib-watch.h
-#usr/include/avahi-gobject
-#usr/include/avahi-gobject/ga-client.h
-#usr/include/avahi-gobject/ga-entry-group.h
-#usr/include/avahi-gobject/ga-enums.h
-#usr/include/avahi-gobject/ga-error.h
-#usr/include/avahi-gobject/ga-record-browser.h
-#usr/include/avahi-gobject/ga-service-browser.h
-#usr/include/avahi-gobject/ga-service-resolver.h
-#usr/lib/avahi
-usr/lib/avahi/service-types.db
-#usr/lib/libavahi-client.a
-#usr/lib/libavahi-client.la
-#usr/lib/libavahi-client.so
-usr/lib/libavahi-client.so.3
-usr/lib/libavahi-client.so.3.2.9
-#usr/lib/libavahi-common.a
-#usr/lib/libavahi-common.la
-#usr/lib/libavahi-common.so
-usr/lib/libavahi-common.so.3
-usr/lib/libavahi-common.so.3.5.3
-#usr/lib/libavahi-core.a
-#usr/lib/libavahi-core.la
-#usr/lib/libavahi-core.so
-usr/lib/libavahi-core.so.7
-usr/lib/libavahi-core.so.7.0.2
-#usr/lib/libavahi-glib.a
-#usr/lib/libavahi-glib.la
-#usr/lib/libavahi-glib.so
-usr/lib/libavahi-glib.so.1
-usr/lib/libavahi-glib.so.1.0.2
-#usr/lib/libavahi-gobject.a
-#usr/lib/libavahi-gobject.la
-#usr/lib/libavahi-gobject.so
-usr/lib/libavahi-gobject.so.0
-usr/lib/libavahi-gobject.so.0.0.4
-#usr/lib/pkgconfig/avahi-client.pc
-#usr/lib/pkgconfig/avahi-core.pc
-#usr/lib/pkgconfig/avahi-glib.pc
-#usr/lib/pkgconfig/avahi-gobject.pc
-usr/lib/python2.7/site-packages/avahi
-usr/lib/python2.7/site-packages/avahi/ServiceTypeDatabase.py
-usr/sbin/avahi-autoipd
-usr/sbin/avahi-daemon
-usr/sbin/avahi-dnsconfd
-usr/share/avahi
-usr/share/avahi/avahi-service.dtd
-usr/share/avahi/service-types
-#usr/share/dbus-1/interfaces
-#usr/share/dbus-1/interfaces/org.freedesktop.Avahi.AddressResolver.xml
-#usr/share/dbus-1/interfaces/org.freedesktop.Avahi.DomainBrowser.xml
-#usr/share/dbus-1/interfaces/org.freedesktop.Avahi.EntryGroup.xml
-#usr/share/dbus-1/interfaces/org.freedesktop.Avahi.HostNameResolver.xml
-#usr/share/dbus-1/interfaces/org.freedesktop.Avahi.RecordBrowser.xml
-#usr/share/dbus-1/interfaces/org.freedesktop.Avahi.Server.xml
-#usr/share/dbus-1/interfaces/org.freedesktop.Avahi.ServiceBrowser.xml
-#usr/share/dbus-1/interfaces/org.freedesktop.Avahi.ServiceResolver.xml
-#usr/share/dbus-1/interfaces/org.freedesktop.Avahi.ServiceTypeBrowser.xml
-#usr/share/dbus-1/system-services
-#usr/share/locale/bg/LC_MESSAGES/avahi.mo
-#usr/share/locale/ca/LC_MESSAGES/avahi.mo
-#usr/share/locale/cs/LC_MESSAGES/avahi.mo
-#usr/share/locale/da/LC_MESSAGES/avahi.mo
-#usr/share/locale/de/LC_MESSAGES/avahi.mo
-#usr/share/locale/el/LC_MESSAGES/avahi.mo
-#usr/share/locale/en_AU/LC_MESSAGES/avahi.mo
-#usr/share/locale/en_CA/LC_MESSAGES/avahi.mo
-#usr/share/locale/en_GB/LC_MESSAGES/avahi.mo
-#usr/share/locale/en_NZ
-#usr/share/locale/en_NZ/LC_MESSAGES
-#usr/share/locale/en_NZ/LC_MESSAGES/avahi.mo
-#usr/share/locale/es/LC_MESSAGES/avahi.mo
-#usr/share/locale/fi/LC_MESSAGES/avahi.mo
-#usr/share/locale/fo
-#usr/share/locale/fo/LC_MESSAGES
-#usr/share/locale/fo/LC_MESSAGES/avahi.mo
-#usr/share/locale/fr/LC_MESSAGES/avahi.mo
-#usr/share/locale/gl/LC_MESSAGES/avahi.mo
-#usr/share/locale/he/LC_MESSAGES/avahi.mo
-#usr/share/locale/hu/LC_MESSAGES/avahi.mo
-#usr/share/locale/id/LC_MESSAGES/avahi.mo
-#usr/share/locale/it/LC_MESSAGES/avahi.mo
-#usr/share/locale/ja/LC_MESSAGES/avahi.mo
-#usr/share/locale/ms/LC_MESSAGES/avahi.mo
-#usr/share/locale/nl/LC_MESSAGES/avahi.mo
-#usr/share/locale/pl/LC_MESSAGES/avahi.mo
-#usr/share/locale/pt_BR/LC_MESSAGES/avahi.mo
-#usr/share/locale/ro/LC_MESSAGES/avahi.mo
-#usr/share/locale/ru/LC_MESSAGES/avahi.mo
-#usr/share/locale/sl/LC_MESSAGES/avahi.mo
-#usr/share/locale/sr/LC_MESSAGES/avahi.mo
-#usr/share/locale/sr@latin/LC_MESSAGES/avahi.mo
-#usr/share/locale/sv/LC_MESSAGES/avahi.mo
-#usr/share/locale/uk/LC_MESSAGES/avahi.mo
-#usr/share/locale/zh_CN/LC_MESSAGES/avahi.mo
-#usr/share/locale/zh_TW/LC_MESSAGES/avahi.mo
-#usr/share/man/man1/avahi-bookmarks.1
-#usr/share/man/man1/avahi-browse-domains.1
-#usr/share/man/man1/avahi-browse.1
-#usr/share/man/man1/avahi-publish-address.1
-#usr/share/man/man1/avahi-publish-service.1
-#usr/share/man/man1/avahi-publish.1
-#usr/share/man/man1/avahi-resolve-address.1
-#usr/share/man/man1/avahi-resolve-host-name.1
-#usr/share/man/man1/avahi-resolve.1
-#usr/share/man/man1/avahi-set-host-name.1
-#usr/share/man/man5/avahi-daemon.conf.5
-#usr/share/man/man5/avahi.hosts.5
-#usr/share/man/man5/avahi.service.5
-#usr/share/man/man8/avahi-autoipd.8
-#usr/share/man/man8/avahi-autoipd.action.8
-#usr/share/man/man8/avahi-daemon.8
-#usr/share/man/man8/avahi-dnsconfd.8
-#usr/share/man/man8/avahi-dnsconfd.action.8
-#usr/var/run
-etc/rc.d/init.d/avahi
index 0604867e9c4e5a93dc76c68cf1cfcd32586f04b1..05a618dd317f9d9dfebc4706d65860d60016b344 100644 (file)
@@ -1,3 +1,5 @@
+#etc/dbus-1/system.d
+etc/dbus-1/system.d/cups.conf
 etc/pam.d/cups
 etc/rc.d/init.d/cups
 #etc/rc0.d
@@ -31,17 +33,13 @@ usr/bin/ppdpo
 #usr/include/cups/adminutil.h
 #usr/include/cups/array.h
 #usr/include/cups/backend.h
-#usr/include/cups/cgi.h
 #usr/include/cups/cups.h
 #usr/include/cups/dir.h
 #usr/include/cups/file.h
-#usr/include/cups/help-index.h
 #usr/include/cups/http.h
 #usr/include/cups/ipp.h
 #usr/include/cups/language.h
-#usr/include/cups/mime.h
 #usr/include/cups/ppd.h
-#usr/include/cups/ppdc.h
 #usr/include/cups/pwg.h
 #usr/include/cups/raster.h
 #usr/include/cups/sidechannel.h
@@ -50,7 +48,9 @@ usr/bin/ppdpo
 usr/lib/cups
 usr/lib/cups/backend
 usr/lib/cups/backend/http
+usr/lib/cups/backend/https
 usr/lib/cups/backend/ipp
+usr/lib/cups/backend/ipps
 usr/lib/cups/backend/lpd
 usr/lib/cups/backend/smb
 usr/lib/cups/backend/snmp
@@ -81,6 +81,7 @@ usr/lib/cups/monitor
 usr/lib/cups/monitor/bcp
 usr/lib/cups/monitor/tbcp
 usr/lib/cups/notifier
+usr/lib/cups/notifier/dbus
 usr/lib/cups/notifier/mailto
 usr/lib/cups/notifier/rss
 #usr/lib/libcups.so
@@ -109,14 +110,7 @@ usr/sbin/lpmove
 usr/sbin/reject
 usr/share/cups
 usr/share/cups/banners
-usr/share/cups/banners/classified
-usr/share/cups/banners/confidential
-usr/share/cups/banners/secret
-usr/share/cups/banners/standard
-usr/share/cups/banners/topsecret
-usr/share/cups/banners/unclassified
 usr/share/cups/data
-usr/share/cups/data/testprint
 usr/share/cups/drv
 usr/share/cups/drv/sample.drv
 usr/share/cups/examples
@@ -218,6 +212,7 @@ usr/share/cups/templates/de/error.tmpl
 usr/share/cups/templates/de/header.tmpl
 usr/share/cups/templates/de/help-header.tmpl
 usr/share/cups/templates/de/help-printable.tmpl
+usr/share/cups/templates/de/help-trailer.tmpl
 usr/share/cups/templates/de/job-cancel.tmpl
 usr/share/cups/templates/de/job-hold.tmpl
 usr/share/cups/templates/de/job-move.tmpl
@@ -446,6 +441,77 @@ usr/share/cups/templates/printer-stop.tmpl
 usr/share/cups/templates/printer.tmpl
 usr/share/cups/templates/printers-header.tmpl
 usr/share/cups/templates/printers.tmpl
+usr/share/cups/templates/pt_BR
+usr/share/cups/templates/pt_BR/add-class.tmpl
+usr/share/cups/templates/pt_BR/add-printer.tmpl
+usr/share/cups/templates/pt_BR/add-rss-subscription.tmpl
+usr/share/cups/templates/pt_BR/admin.tmpl
+usr/share/cups/templates/pt_BR/choose-device.tmpl
+usr/share/cups/templates/pt_BR/choose-make.tmpl
+usr/share/cups/templates/pt_BR/choose-model.tmpl
+usr/share/cups/templates/pt_BR/choose-serial.tmpl
+usr/share/cups/templates/pt_BR/choose-uri.tmpl
+usr/share/cups/templates/pt_BR/class-added.tmpl
+usr/share/cups/templates/pt_BR/class-confirm.tmpl
+usr/share/cups/templates/pt_BR/class-deleted.tmpl
+usr/share/cups/templates/pt_BR/class-jobs-header.tmpl
+usr/share/cups/templates/pt_BR/class-modified.tmpl
+usr/share/cups/templates/pt_BR/class.tmpl
+usr/share/cups/templates/pt_BR/classes-header.tmpl
+usr/share/cups/templates/pt_BR/classes.tmpl
+usr/share/cups/templates/pt_BR/command.tmpl
+usr/share/cups/templates/pt_BR/edit-config.tmpl
+usr/share/cups/templates/pt_BR/error-op.tmpl
+usr/share/cups/templates/pt_BR/error.tmpl
+usr/share/cups/templates/pt_BR/header.tmpl
+usr/share/cups/templates/pt_BR/help-header.tmpl
+usr/share/cups/templates/pt_BR/help-printable.tmpl
+usr/share/cups/templates/pt_BR/help-trailer.tmpl
+usr/share/cups/templates/pt_BR/job-cancel.tmpl
+usr/share/cups/templates/pt_BR/job-hold.tmpl
+usr/share/cups/templates/pt_BR/job-move.tmpl
+usr/share/cups/templates/pt_BR/job-moved.tmpl
+usr/share/cups/templates/pt_BR/job-release.tmpl
+usr/share/cups/templates/pt_BR/job-restart.tmpl
+usr/share/cups/templates/pt_BR/jobs-header.tmpl
+usr/share/cups/templates/pt_BR/jobs.tmpl
+usr/share/cups/templates/pt_BR/list-available-printers.tmpl
+usr/share/cups/templates/pt_BR/modify-class.tmpl
+usr/share/cups/templates/pt_BR/modify-printer.tmpl
+usr/share/cups/templates/pt_BR/norestart.tmpl
+usr/share/cups/templates/pt_BR/option-boolean.tmpl
+usr/share/cups/templates/pt_BR/option-conflict.tmpl
+usr/share/cups/templates/pt_BR/option-header.tmpl
+usr/share/cups/templates/pt_BR/option-pickmany.tmpl
+usr/share/cups/templates/pt_BR/option-pickone.tmpl
+usr/share/cups/templates/pt_BR/option-trailer.tmpl
+usr/share/cups/templates/pt_BR/pager.tmpl
+usr/share/cups/templates/pt_BR/printer-accept.tmpl
+usr/share/cups/templates/pt_BR/printer-added.tmpl
+usr/share/cups/templates/pt_BR/printer-cancel-jobs.tmpl
+usr/share/cups/templates/pt_BR/printer-configured.tmpl
+usr/share/cups/templates/pt_BR/printer-confirm.tmpl
+usr/share/cups/templates/pt_BR/printer-default.tmpl
+usr/share/cups/templates/pt_BR/printer-deleted.tmpl
+usr/share/cups/templates/pt_BR/printer-jobs-header.tmpl
+usr/share/cups/templates/pt_BR/printer-modified.tmpl
+usr/share/cups/templates/pt_BR/printer-reject.tmpl
+usr/share/cups/templates/pt_BR/printer-start.tmpl
+usr/share/cups/templates/pt_BR/printer-stop.tmpl
+usr/share/cups/templates/pt_BR/printer.tmpl
+usr/share/cups/templates/pt_BR/printers-header.tmpl
+usr/share/cups/templates/pt_BR/printers.tmpl
+usr/share/cups/templates/pt_BR/restart.tmpl
+usr/share/cups/templates/pt_BR/samba-export.tmpl
+usr/share/cups/templates/pt_BR/samba-exported.tmpl
+usr/share/cups/templates/pt_BR/search.tmpl
+usr/share/cups/templates/pt_BR/set-printer-options-header.tmpl
+usr/share/cups/templates/pt_BR/set-printer-options-trailer.tmpl
+usr/share/cups/templates/pt_BR/subscription-added.tmpl
+usr/share/cups/templates/pt_BR/subscription-canceled.tmpl
+usr/share/cups/templates/pt_BR/test-page.tmpl
+usr/share/cups/templates/pt_BR/trailer.tmpl
+usr/share/cups/templates/pt_BR/users.tmpl
 usr/share/cups/templates/restart.tmpl
 usr/share/cups/templates/ru
 usr/share/cups/templates/ru/add-class.tmpl
@@ -472,6 +538,7 @@ usr/share/cups/templates/ru/error.tmpl
 usr/share/cups/templates/ru/header.tmpl
 usr/share/cups/templates/ru/help-header.tmpl
 usr/share/cups/templates/ru/help-printable.tmpl
+usr/share/cups/templates/ru/help-trailer.tmpl
 usr/share/cups/templates/ru/job-cancel.tmpl
 usr/share/cups/templates/ru/job-hold.tmpl
 usr/share/cups/templates/ru/job-move.tmpl
@@ -539,19 +606,17 @@ usr/share/doc/cups/es
 usr/share/doc/cups/es/index.html
 usr/share/doc/cups/help
 usr/share/doc/cups/help/accounting.html
+usr/share/doc/cups/help/api-admin.html
 usr/share/doc/cups/help/api-array.html
-usr/share/doc/cups/help/api-cgi.html
 usr/share/doc/cups/help/api-cups.html
-usr/share/doc/cups/help/api-driver.html
 usr/share/doc/cups/help/api-filedir.html
 usr/share/doc/cups/help/api-filter.html
 usr/share/doc/cups/help/api-httpipp.html
-usr/share/doc/cups/help/api-mime.html
 usr/share/doc/cups/help/api-overview.html
 usr/share/doc/cups/help/api-ppd.html
-usr/share/doc/cups/help/api-ppdc.html
 usr/share/doc/cups/help/api-raster.html
 usr/share/doc/cups/help/cgi.html
+usr/share/doc/cups/help/encryption.html
 usr/share/doc/cups/help/glossary.html
 usr/share/doc/cups/help/kerberos.html
 usr/share/doc/cups/help/license.html
@@ -607,7 +672,6 @@ usr/share/doc/cups/help/ref-ppdcfile.html
 usr/share/doc/cups/help/security.html
 usr/share/doc/cups/help/sharing.html
 usr/share/doc/cups/help/spec-banner.html
-usr/share/doc/cups/help/spec-cmp.html
 usr/share/doc/cups/help/spec-command.html
 usr/share/doc/cups/help/spec-design.html
 usr/share/doc/cups/help/spec-ipp.html
@@ -638,6 +702,8 @@ usr/share/doc/cups/images/wait.gif
 usr/share/doc/cups/index.html
 usr/share/doc/cups/ja
 usr/share/doc/cups/ja/index.html
+usr/share/doc/cups/pt_BR
+usr/share/doc/cups/pt_BR/index.html
 usr/share/doc/cups/robots.txt
 usr/share/doc/cups/ru
 usr/share/doc/cups/ru/index.html
@@ -648,6 +714,7 @@ usr/share/locale/es/cups_es.po
 usr/share/locale/fr/cups_fr.po
 usr/share/locale/it/cups_it.po
 usr/share/locale/ja/cups_ja.po
+usr/share/locale/pt_BR/cups_pt_BR.po
 usr/share/locale/ru/cups_ru.po
 #usr/share/man/man1/cancel.1.gz
 #usr/share/man/man1/cups-config.1.gz
@@ -706,11 +773,12 @@ var/cache/cups
 var/cache/cups/rss
 #var/ipfire/cups
 var/ipfire/cups/cups-files.conf
+var/ipfire/cups/cups-files.conf.default
 var/ipfire/cups/cupsd.conf
 #var/ipfire/cups/cupsd.conf.default
-var/ipfire/cups/interfaces
 var/ipfire/cups/ppd
 var/ipfire/cups/snmp.conf
+var/ipfire/cups/snmp.conf.default
 var/ipfire/cups/ssl
 var/log/cups
 var/spool/cups
diff --git a/config/rootfiles/packages/cups-filters b/config/rootfiles/packages/cups-filters
new file mode 100644 (file)
index 0000000..85564ce
--- /dev/null
@@ -0,0 +1,144 @@
+etc/fonts/conf.d/99pdftoopvp.conf
+#etc/rc.d/init.d/cups-browsed
+#etc/rc0.d/K35cups-browsed
+#etc/rc2.d/K35cups-browsed
+#etc/rc2.d/S82cups-browsed
+#etc/rc3.d/K35cups-browsed
+#etc/rc3.d/S82cups-browsed
+#etc/rc5.d/K35cups-browsed
+#etc/rc5.d/S82cups-browsed
+usr/bin/driverless
+usr/bin/foomatic-rip
+usr/bin/ttfread
+#usr/include/cupsfilters
+#usr/include/cupsfilters/colord.h
+#usr/include/cupsfilters/colormanager.h
+#usr/include/cupsfilters/driver.h
+#usr/include/cupsfilters/image.h
+#usr/include/cupsfilters/ppdgenerator.h
+#usr/include/cupsfilters/raster.h
+#usr/include/fontembed
+#usr/include/fontembed/bitset.h
+#usr/include/fontembed/embed.h
+#usr/include/fontembed/fontfile.h
+#usr/include/fontembed/iofn.h
+#usr/include/fontembed/sfnt.h
+usr/lib/cups/backend/beh
+usr/lib/cups/backend/driverless
+usr/lib/cups/backend/implicitclass
+usr/lib/cups/backend/parallel
+usr/lib/cups/backend/serial
+usr/lib/cups/driver/driverless
+usr/lib/cups/filter/bannertopdf
+usr/lib/cups/filter/brftoembosser
+usr/lib/cups/filter/commandtoescpx
+usr/lib/cups/filter/commandtopclx
+usr/lib/cups/filter/foomatic-rip
+usr/lib/cups/filter/gstopdf
+usr/lib/cups/filter/gstopxl
+usr/lib/cups/filter/gstoraster
+usr/lib/cups/filter/imagetobrf
+usr/lib/cups/filter/imagetopdf
+usr/lib/cups/filter/imagetops
+usr/lib/cups/filter/imagetoraster
+usr/lib/cups/filter/imagetoubrl
+usr/lib/cups/filter/imageubrltoindexv3
+usr/lib/cups/filter/imageubrltoindexv4
+usr/lib/cups/filter/pdftoopvp
+usr/lib/cups/filter/pdftopdf
+usr/lib/cups/filter/pdftops
+usr/lib/cups/filter/pdftoraster
+usr/lib/cups/filter/rastertoescpx
+usr/lib/cups/filter/rastertopclx
+usr/lib/cups/filter/rastertopdf
+usr/lib/cups/filter/rastertops
+usr/lib/cups/filter/sys5ippprinter
+usr/lib/cups/filter/textbrftoindexv3
+usr/lib/cups/filter/textbrftoindexv4
+usr/lib/cups/filter/texttobrf
+usr/lib/cups/filter/texttopdf
+usr/lib/cups/filter/texttops
+usr/lib/cups/filter/texttotext
+#usr/lib/libcupsfilters.a
+#usr/lib/libcupsfilters.la
+#usr/lib/libcupsfilters.so
+usr/lib/libcupsfilters.so.1
+usr/lib/libcupsfilters.so.1.0.0
+#usr/lib/libfontembed.a
+#usr/lib/libfontembed.la
+#usr/lib/libfontembed.so
+usr/lib/libfontembed.so.1
+usr/lib/libfontembed.so.1.0.0
+#usr/lib/pkgconfig/libcupsfilters.pc
+#usr/lib/pkgconfig/libfontembed.pc
+#usr/sbin/cups-browsed
+usr/share/cups/banners/classified
+usr/share/cups/banners/confidential
+usr/share/cups/banners/form
+usr/share/cups/banners/secret
+usr/share/cups/banners/standard
+usr/share/cups/banners/topsecret
+usr/share/cups/banners/unclassified
+usr/share/cups/braille
+usr/share/cups/braille/cups-braille.sh
+usr/share/cups/braille/index.sh
+usr/share/cups/braille/indexv3.sh
+usr/share/cups/braille/indexv4.sh
+usr/share/cups/charsets
+usr/share/cups/charsets/pdf.utf-8
+usr/share/cups/charsets/pdf.utf-8.heavy
+usr/share/cups/charsets/pdf.utf-8.simple
+usr/share/cups/data/classified.pdf
+usr/share/cups/data/confidential.pdf
+usr/share/cups/data/default-testpage.pdf
+usr/share/cups/data/default.pdf
+usr/share/cups/data/form_english.pdf
+usr/share/cups/data/form_english_in.odt
+usr/share/cups/data/form_russian.pdf
+usr/share/cups/data/form_russian_in.odt
+usr/share/cups/data/secret.pdf
+usr/share/cups/data/standard.pdf
+usr/share/cups/data/testprint
+usr/share/cups/data/topsecret.pdf
+usr/share/cups/data/unclassified.pdf
+usr/share/cups/drv/cupsfilters.drv
+usr/share/cups/drv/generic-brf.drv
+usr/share/cups/drv/indexv3.drv
+usr/share/cups/drv/indexv4.drv
+usr/share/cups/mime/braille.convs
+usr/share/cups/mime/braille.types
+usr/share/cups/mime/cupsfilters-ghostscript.convs
+usr/share/cups/mime/cupsfilters-poppler.convs
+usr/share/cups/mime/cupsfilters.convs
+usr/share/cups/mime/cupsfilters.types
+usr/share/cups/ppdc/braille.defs
+usr/share/cups/ppdc/escp.h
+usr/share/cups/ppdc/fr-braille.po
+usr/share/cups/ppdc/imagemagick.defs
+usr/share/cups/ppdc/index.defs
+usr/share/cups/ppdc/liblouis.defs
+usr/share/cups/ppdc/liblouis1.defs
+usr/share/cups/ppdc/liblouis2.defs
+usr/share/cups/ppdc/liblouis3.defs
+usr/share/cups/ppdc/liblouis4.defs
+usr/share/cups/ppdc/media-braille.defs
+usr/share/cups/ppdc/pcl.h
+#usr/share/doc/cups-filters
+#usr/share/doc/cups-filters/AUTHORS
+#usr/share/doc/cups-filters/COPYING
+#usr/share/doc/cups-filters/INSTALL
+#usr/share/doc/cups-filters/NEWS
+#usr/share/doc/cups-filters/README
+#usr/share/man/man1/driverless.1
+#usr/share/man/man1/foomatic-rip.1
+#usr/share/man/man5/cups-browsed.conf.5
+#usr/share/man/man8/cups-browsed.8
+#usr/share/ppd
+usr/share/ppd/cupsfilters
+usr/share/ppd/cupsfilters/Fuji_Xerox-DocuPrint_CM305_df-PDF.ppd
+usr/share/ppd/cupsfilters/Generic-PDF_Printer-PDF.ppd
+usr/share/ppd/cupsfilters/HP-Color_LaserJet_CM3530_MFP-PDF.ppd
+usr/share/ppd/cupsfilters/Ricoh-PDF_Printer-PDF.ppd
+usr/share/ppd/cupsfilters/pxlcolor.ppd
+usr/share/ppd/cupsfilters/pxlmono.ppd
+#var/ipfire/cups/cups-browsed.conf
index bbaec3ffb05ca2690c2a0d48863a0403f1f8d5ed..a8c156e5cb8c15ee2c382320dfc166564555878e 100644 (file)
@@ -1,3 +1,4 @@
+etc/rc.d/init.d/cyrus-imapd
 usr/bin/cyradm
 usr/bin/imtest
 usr/bin/installsieve
@@ -9,48 +10,70 @@ usr/bin/pop3test
 usr/bin/sieveshell
 usr/bin/sivtest
 usr/bin/smtptest
+usr/bin/synctest
 #usr/include/cyrus
 #usr/include/cyrus/acl.h
+#usr/include/cyrus/arrayu64.h
 #usr/include/cyrus/assert.h
 #usr/include/cyrus/auth.h
+#usr/include/cyrus/auth_pts.h
+#usr/include/cyrus/bitvector.h
 #usr/include/cyrus/bsearch.h
 #usr/include/cyrus/charset.h
+#usr/include/cyrus/chartable.h
+#usr/include/cyrus/command.h
+#usr/include/cyrus/crc32.h
+#usr/include/cyrus/cyr_lock.h
 #usr/include/cyrus/cyrusdb.h
+#usr/include/cyrus/exitcodes.h
 #usr/include/cyrus/glob.h
 #usr/include/cyrus/gmtoff.h
 #usr/include/cyrus/hash.h
+#usr/include/cyrus/hashu64.h
 #usr/include/cyrus/imapopts.h
 #usr/include/cyrus/imapurl.h
 #usr/include/cyrus/imclient.h
 #usr/include/cyrus/imparse.h
+#usr/include/cyrus/iostat.h
 #usr/include/cyrus/iptostring.h
-#usr/include/cyrus/libconfig.h
 #usr/include/cyrus/libcyr_cfg.h
-#usr/include/cyrus/lock.h
 #usr/include/cyrus/lsort.h
 #usr/include/cyrus/map.h
+#usr/include/cyrus/mappedfile.h
 #usr/include/cyrus/mkgmtime.h
 #usr/include/cyrus/mpool.h
 #usr/include/cyrus/nonblock.h
 #usr/include/cyrus/parseaddr.h
-#usr/include/cyrus/prot.h
 #usr/include/cyrus/retry.h
-#usr/include/cyrus/rfc822date.h
+#usr/include/cyrus/rfc822tok.h
+#usr/include/cyrus/sieve
+#usr/include/cyrus/sieve/sieve_err.h
+#usr/include/cyrus/sieve/sieve_interface.h
+#usr/include/cyrus/signals.h
+#usr/include/cyrus/strarray.h
 #usr/include/cyrus/strhash.h
-#usr/include/cyrus/strhash.o
 #usr/include/cyrus/stristr.h
 #usr/include/cyrus/sysexits.h
-#usr/include/cyrus/util.h
+#usr/include/cyrus/times.h
+#usr/include/cyrus/tok.h
+#usr/include/cyrus/vparse.h
+#usr/include/cyrus/wildmat.h
 #usr/include/cyrus/xmalloc.h
 #usr/lib/cyrus
 usr/lib/cyrus/arbitron
 usr/lib/cyrus/chk_cyrus
-usr/lib/cyrus/compile_sieve
 usr/lib/cyrus/ctl_cyrusdb
 usr/lib/cyrus/ctl_deliver
 usr/lib/cyrus/ctl_mboxlist
 usr/lib/cyrus/cvt_cyrusdb
+usr/lib/cyrus/cyr_dbtool
+usr/lib/cyrus/cyr_deny
+usr/lib/cyrus/cyr_df
 usr/lib/cyrus/cyr_expire
+usr/lib/cyrus/cyr_info
+usr/lib/cyrus/cyr_sequence
+usr/lib/cyrus/cyr_synclog
+usr/lib/cyrus/cyr_userseen
 usr/lib/cyrus/cyrdump
 usr/lib/cyrus/deliver
 usr/lib/cyrus/fud
@@ -58,21 +81,44 @@ usr/lib/cyrus/idled
 usr/lib/cyrus/imapd
 usr/lib/cyrus/ipurge
 usr/lib/cyrus/lmtpd
+usr/lib/cyrus/lmtpproxyd
 usr/lib/cyrus/master
 usr/lib/cyrus/mbexamine
 usr/lib/cyrus/mbpath
+usr/lib/cyrus/mbtool
 usr/lib/cyrus/notifyd
 usr/lib/cyrus/pop3d
 usr/lib/cyrus/pop3proxyd
+usr/lib/cyrus/proxyd
 usr/lib/cyrus/quota
 usr/lib/cyrus/reconstruct
 usr/lib/cyrus/sievec
+usr/lib/cyrus/sieved
 usr/lib/cyrus/smmapd
 usr/lib/cyrus/squatter
 usr/lib/cyrus/timsieved
 usr/lib/cyrus/tls_prune
-#usr/lib/libcyrus.a
-#usr/lib/libcyrus_min.a
+usr/lib/cyrus/unexpunge
+#usr/lib/libcyrus.la
+#usr/lib/libcyrus.so
+usr/lib/libcyrus.so.0
+usr/lib/libcyrus.so.0.0.0
+#usr/lib/libcyrus_imap.la
+#usr/lib/libcyrus_imap.so
+usr/lib/libcyrus_imap.so.0
+usr/lib/libcyrus_imap.so.0.0.0
+#usr/lib/libcyrus_min.la
+#usr/lib/libcyrus_min.so
+usr/lib/libcyrus_min.so.0
+usr/lib/libcyrus_min.so.0.0.0
+#usr/lib/libcyrus_sieve.la
+#usr/lib/libcyrus_sieve.so
+usr/lib/libcyrus_sieve.so.0
+usr/lib/libcyrus_sieve.so.0.0.0
+#usr/lib/perl5/site_perl/5.12.3/Cyrus
+#usr/lib/perl5/site_perl/5.12.3/Cyrus/Annotator
+usr/lib/perl5/site_perl/5.12.3/Cyrus/Annotator/Daemon.pm
+usr/lib/perl5/site_perl/5.12.3/Cyrus/Annotator/Message.pm
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Cyrus
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Cyrus/IMAP
 usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Cyrus/IMAP.pm
@@ -82,6 +128,9 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Cyrus/IMAP/Shell.pm
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Cyrus/SIEVE
 usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Cyrus/SIEVE/managesieve.pm
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus/Annotator
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus/Annotator/Daemon
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus/Annotator/Daemon/.packlist
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus/IMAP
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus/IMAP/.packlist
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus/IMAP/IMAP.bs
@@ -91,53 +140,63 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus/IMAP/IMAP.s
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus/SIEVE/managesieve/.packlist
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus/SIEVE/managesieve/managesieve.bs
 usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Cyrus/SIEVE/managesieve/managesieve.so
-#usr/man/man1/imtest.1
-#usr/man/man1/installsieve.1
-#usr/man/man1/lmtptest.1
-#usr/man/man1/mupdatetest.1
-#usr/man/man1/nntptest.1
-#usr/man/man1/pop3test.1
-#usr/man/man1/sieveshell.1
-#usr/man/man1/sivtest.1
-#usr/man/man1/smtptest.1
-#usr/man/man3/imclient.3
-#usr/man/man5/cyrus.conf.5
-#usr/man/man5/imapd.conf.5
-#usr/man/man5/krb.equiv.5
-#usr/man/man8/arbitron.8
-#usr/man/man8/chk_cyrus.8
-#usr/man/man8/ctl_cyrusdb.8
-#usr/man/man8/ctl_deliver.8
-#usr/man/man8/ctl_mboxlist.8
-#usr/man/man8/cvt_cyrusdb.8
-#usr/man/man8/cyr_expire.8
-#usr/man/man8/deliver.8
-#usr/man/man8/fetchnews.8
-#usr/man/man8/fud.8
-#usr/man/man8/idled.8
-#usr/man/man8/imapd.8
-#usr/man/man8/ipurge.8
-#usr/man/man8/lmtpd.8
-#usr/man/man8/master.8
-#usr/man/man8/mbexamine.8
-#usr/man/man8/mbpath.8
-#usr/man/man8/nntpd.8
-#usr/man/man8/notifyd.8
-#usr/man/man8/pop3d.8
-#usr/man/man8/quota.8
-#usr/man/man8/reconstruct.8
-#usr/man/man8/rmnews.8
-#usr/man/man8/smmapd.8
-#usr/man/man8/squatter.8
-#usr/man/man8/syncnews.8
-#usr/man/man8/timsieved.8
-#usr/man/man8/tls_prune.8
+#usr/lib/pkgconfig/libcyrus.pc
+#usr/lib/pkgconfig/libcyrus_min.pc
+#usr/lib/pkgconfig/libcyrus_sieve.pc
 #usr/share/man/man1/cyradm.1
+#usr/share/man/man1/imtest.1
+#usr/share/man/man1/installsieve.1
+#usr/share/man/man1/lmtptest.1
+#usr/share/man/man1/mupdatetest.1
+#usr/share/man/man1/nntptest.1
+#usr/share/man/man1/pop3test.1
+#usr/share/man/man1/sieveshell.1
+#usr/share/man/man1/sivtest.1
+#usr/share/man/man1/smtptest.1
+#usr/share/man/man3/Cyrus::Annotator::Daemon.3
+#usr/share/man/man3/Cyrus::Annotator::Message.3
 #usr/share/man/man3/Cyrus::IMAP.3
 #usr/share/man/man3/Cyrus::IMAP::Admin.3
 #usr/share/man/man3/Cyrus::IMAP::IMSP.3
 #usr/share/man/man3/Cyrus::IMAP::Shell.3
 #usr/share/man/man3/Cyrus::SIEVE::managesieve.3
+#usr/share/man/man3/imclient.3
+#usr/share/man/man5/cyrus.conf.5
+#usr/share/man/man5/imapd.conf.5
+#usr/share/man/man5/krb.equiv.5
+#usr/share/man/man8/arbitron.8
+#usr/share/man/man8/chk_cyrus.8
+#usr/share/man/man8/ctl_cyrusdb.8
+#usr/share/man/man8/ctl_deliver.8
+#usr/share/man/man8/ctl_mboxlist.8
+#usr/share/man/man8/cvt_cyrusdb.8
+#usr/share/man/man8/cyr_dbtool.8
+#usr/share/man/man8/cyr_deny.8
+#usr/share/man/man8/cyr_df.8
+#usr/share/man/man8/cyr_expire.8
+#usr/share/man/man8/cyr_info.8
+#usr/share/man/man8/cyr_synclog.8
+#usr/share/man/man8/deliver.8
+#usr/share/man/man8/fud.8
+#usr/share/man/man8/idled.8
+#usr/share/man/man8/imapd.8
+#usr/share/man/man8/ipurge.8
+#usr/share/man/man8/lmtpd.8
+#usr/share/man/man8/mbexamine.8
+#usr/share/man/man8/mbpath.8
+#usr/share/man/man8/notifyd.8
+#usr/share/man/man8/pop3d.8
+#usr/share/man/man8/quota.8
+#usr/share/man/man8/reconstruct.8
+#usr/share/man/man8/rmnews.8
+#usr/share/man/man8/smmapd.8
+#usr/share/man/man8/squatter.8
+#usr/share/man/man8/sync_client.8
+#usr/share/man/man8/sync_reset.8
+#usr/share/man/man8/sync_server.8
+#usr/share/man/man8/timsieved.8
+#usr/share/man/man8/tls_prune.8
+#usr/share/man/man8/unexpunge.8
 usr/sieve
 var/imap
 var/imap/db
@@ -146,10 +205,11 @@ var/imap/msg
 var/imap/proc
 var/imap/ptclient
 var/imap/socket
+var/imap/sync
 var/ipfire/backup/addons/includes/cyrus-imapd
 var/ipfire/cyrusimap
 var/ipfire/cyrusimap/cyrus.conf
 var/ipfire/cyrusimap/imapd.conf
 var/log/imap
 var/log/imap/stage.
-etc/rc.d/init.d/cyrus-imapd
+var/log/imap/sync.
index b25265321d8a55427fa0140a47b50c11f57ba795..21967684152d73186006cf17326da0fd55705e81 100644 (file)
@@ -1,17 +1,15 @@
-etc/rc.d/init.d/messagebus
-etc/rc.d/rc3.d/S15messagebus
-etc/rc.d/rc0.d/K85messagebus
-etc/rc.d/rc6.d/K85messagebus
 #etc/dbus-1
 etc/dbus-1/session.conf
-etc/dbus-1/session.d
 etc/dbus-1/system.conf
-etc/dbus-1/system.d
+etc/rc.d/init.d/messagebus
 usr/bin/dbus-cleanup-sockets
 usr/bin/dbus-daemon
 usr/bin/dbus-launch
 usr/bin/dbus-monitor
+usr/bin/dbus-run-session
 usr/bin/dbus-send
+usr/bin/dbus-test-tool
+usr/bin/dbus-update-activation-environment
 usr/bin/dbus-uuidgen
 #usr/include/dbus-1.0
 #usr/include/dbus-1.0/dbus
@@ -28,9 +26,13 @@ usr/bin/dbus-uuidgen
 #usr/include/dbus-1.0/dbus/dbus-server.h
 #usr/include/dbus-1.0/dbus/dbus-shared.h
 #usr/include/dbus-1.0/dbus/dbus-signature.h
+#usr/include/dbus-1.0/dbus/dbus-syntax.h
 #usr/include/dbus-1.0/dbus/dbus-threads.h
 #usr/include/dbus-1.0/dbus/dbus-types.h
 #usr/include/dbus-1.0/dbus/dbus.h
+#usr/lib/cmake/DBus1
+#usr/lib/cmake/DBus1/DBus1Config.cmake
+#usr/lib/cmake/DBus1/DBus1ConfigVersion.cmake
 #usr/lib/dbus-1.0
 #usr/lib/dbus-1.0/include
 #usr/lib/dbus-1.0/include/dbus
@@ -39,15 +41,25 @@ usr/bin/dbus-uuidgen
 #usr/lib/libdbus-1.la
 usr/lib/libdbus-1.so
 usr/lib/libdbus-1.so.3
-usr/lib/libdbus-1.so.3.2.0
+usr/lib/libdbus-1.so.3.16.4
 #usr/lib/pkgconfig/dbus-1.pc
+usr/libexec/dbus-daemon-launch-helper
 #usr/share/dbus-1
 usr/share/dbus-1/services
-#usr/share/man/man1/dbus-cleanup-sockets.1
-#usr/share/man/man1/dbus-daemon.1
-#usr/share/man/man1/dbus-launch.1
-#usr/share/man/man1/dbus-monitor.1
-#usr/share/man/man1/dbus-send.1
-#usr/share/man/man1/dbus-uuidgen.1
+usr/share/dbus-1/session.conf
+usr/share/dbus-1/session.d
+usr/share/dbus-1/system-services
+usr/share/dbus-1/system.conf
+usr/share/dbus-1/system.d
+#usr/share/doc/dbus
+#usr/share/doc/dbus/diagram.png
+#usr/share/doc/dbus/diagram.svg
+#usr/share/doc/dbus/examples
+#usr/share/doc/dbus/examples/GetAllMatchRules.py
+#usr/share/doc/dbus/examples/example-session-disable-stats.conf
+#usr/share/doc/dbus/examples/example-system-enable-stats.conf
+#usr/share/doc/dbus/system-activation.txt
+#usr/share/xml/dbus-1
+#usr/share/xml/dbus-1/busconfig.dtd
+#usr/share/xml/dbus-1/introspect.dtd
 var/lib/dbus
-#var/run/dbus
diff --git a/config/rootfiles/packages/dfb++ b/config/rootfiles/packages/dfb++
deleted file mode 100644 (file)
index 04a323d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-usr/bin/dfb++-config
-usr/bin/dfbshow
-usr/bin/dfbswitch
-#usr/include/dfb++
-#usr/include/dfb++/dfb++.h
-#usr/include/dfb++/idirectfb.h
-#usr/include/dfb++/idirectfbdatabuffer.h
-#usr/include/dfb++/idirectfbdisplaylayer.h
-#usr/include/dfb++/idirectfbeventbuffer.h
-#usr/include/dfb++/idirectfbfont.h
-#usr/include/dfb++/idirectfbimageprovider.h
-#usr/include/dfb++/idirectfbinputdevice.h
-#usr/include/dfb++/idirectfbpalette.h
-#usr/include/dfb++/idirectfbscreen.h
-#usr/include/dfb++/idirectfbsurface.h
-#usr/include/dfb++/idirectfbvideoprovider.h
-#usr/include/dfb++/idirectfbwindow.h
-usr/lib/libdfb++-1.0.so.0
-usr/lib/libdfb++-1.0.so.0.0.0
-#usr/lib/libdfb++.la
-usr/lib/libdfb++.so
-#usr/lib/pkgconfig/dfb++.pc
diff --git a/config/rootfiles/packages/elfutils b/config/rootfiles/packages/elfutils
new file mode 100644 (file)
index 0000000..ac6d1cc
--- /dev/null
@@ -0,0 +1,80 @@
+usr/bin/eu-addr2line
+usr/bin/eu-ar
+usr/bin/eu-elfcmp
+usr/bin/eu-elfcompress
+usr/bin/eu-elflint
+usr/bin/eu-findtextrel
+usr/bin/eu-make-debug-archive
+usr/bin/eu-nm
+usr/bin/eu-objdump
+usr/bin/eu-ranlib
+usr/bin/eu-readelf
+usr/bin/eu-size
+usr/bin/eu-stack
+usr/bin/eu-strings
+usr/bin/eu-strip
+usr/bin/eu-unstrip
+#usr/include/dwarf.h
+#usr/include/elfutils
+#usr/include/elfutils/elf-knowledge.h
+#usr/include/elfutils/known-dwarf.h
+#usr/include/elfutils/libasm.h
+#usr/include/elfutils/libdw.h
+#usr/include/elfutils/libdwelf.h
+#usr/include/elfutils/libdwfl.h
+#usr/include/elfutils/libebl.h
+#usr/include/elfutils/version.h
+#usr/include/gelf.h
+#usr/include/libelf.h
+#usr/include/nlist.h
+usr/lib/elfutils
+#usr/lib/elfutils/libebl_aarch64-0.168.so
+#usr/lib/elfutils/libebl_aarch64.so
+#usr/lib/elfutils/libebl_alpha-0.168.so
+#usr/lib/elfutils/libebl_alpha.so
+#usr/lib/elfutils/libebl_arm-0.168.so
+#usr/lib/elfutils/libebl_arm.so
+#usr/lib/elfutils/libebl_bpf-0.168.so
+#usr/lib/elfutils/libebl_bpf.so
+#usr/lib/elfutils/libebl_i386-0.168.so
+#usr/lib/elfutils/libebl_i386.so
+#usr/lib/elfutils/libebl_ia64-0.168.so
+#usr/lib/elfutils/libebl_ia64.so
+#usr/lib/elfutils/libebl_m68k-0.168.so
+#usr/lib/elfutils/libebl_m68k.so
+#usr/lib/elfutils/libebl_ppc-0.168.so
+#usr/lib/elfutils/libebl_ppc.so
+#usr/lib/elfutils/libebl_ppc64-0.168.so
+#usr/lib/elfutils/libebl_ppc64.so
+#usr/lib/elfutils/libebl_s390-0.168.so
+#usr/lib/elfutils/libebl_s390.so
+#usr/lib/elfutils/libebl_sh-0.168.so
+#usr/lib/elfutils/libebl_sh.so
+#usr/lib/elfutils/libebl_sparc-0.168.so
+#usr/lib/elfutils/libebl_sparc.so
+#usr/lib/elfutils/libebl_tilegx-0.168.so
+#usr/lib/elfutils/libebl_tilegx.so
+#usr/lib/elfutils/libebl_x86_64-0.168.so
+#usr/lib/elfutils/libebl_x86_64.so
+usr/lib/libasm-0.168.so
+#usr/lib/libasm.a
+usr/lib/libasm.so
+usr/lib/libasm.so.1
+usr/lib/libdw-0.168.so
+#usr/lib/libdw.a
+usr/lib/libdw.so
+usr/lib/libdw.so.1
+#usr/lib/libebl.a
+usr/lib/libelf-0.168.so
+#usr/lib/libelf.a
+usr/lib/libelf.so
+usr/lib/libelf.so.1
+#usr/lib/pkgconfig/libdw.pc
+#usr/lib/pkgconfig/libelf.pc
+#usr/share/locale/de/LC_MESSAGES/elfutils.mo
+#usr/share/locale/en@boldquot/LC_MESSAGES/elfutils.mo
+#usr/share/locale/en@quot/LC_MESSAGES/elfutils.mo
+#usr/share/locale/es/LC_MESSAGES/elfutils.mo
+#usr/share/locale/ja/LC_MESSAGES/elfutils.mo
+#usr/share/locale/pl/LC_MESSAGES/elfutils.mo
+#usr/share/locale/uk/LC_MESSAGES/elfutils.mo
diff --git a/config/rootfiles/packages/epson-inkjet-printer-escpr b/config/rootfiles/packages/epson-inkjet-printer-escpr
new file mode 100644 (file)
index 0000000..0039203
--- /dev/null
@@ -0,0 +1,515 @@
+usr/lib/cups/filter/epson-escpr
+usr/lib/cups/filter/epson-escpr-wrapper
+#usr/lib/libescpr.a
+#usr/lib/libescpr.la
+#usr/lib/libescpr.so
+usr/lib/libescpr.so.1
+usr/lib/libescpr.so.1.0.0
+usr/share/ppd/Epson
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Artisan_1430-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Artisan_630-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Artisan_700-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Artisan_710-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Artisan_720-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Artisan_730-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Artisan_800-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Artisan_810-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Artisan_830-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Artisan_837-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-150-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-200-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-300-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-330-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-330S-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-340-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-350-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-360_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-370_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-500-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-520-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-530-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-600-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-700-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-720-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-800-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-810-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-820-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-830_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-840_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-E-850_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-10VA_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-306_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-30VA_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-4004-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-702A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-703A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-704A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-705A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-706A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-707A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-708A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-709A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-774A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-775A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-776A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-777A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-801A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-802A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-803A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-804A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-805A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-806A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-807A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-808A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-901A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-901F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-902A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-903A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-903F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-904A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-904F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-905A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-905F_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-906F_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-907F_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-976A3_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-977A3_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-978A3_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-979A3_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EP-M570T_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ET-16500_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ET-2500_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ET-2550_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ET-2600_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ET-2650_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ET-4500_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ET-4550_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-EW-M660FT_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-K200-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-K300-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L1455_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L364_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L375_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L380_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L382_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L385_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L386_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L395_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L455_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L475_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L485_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L486_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L495_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L565_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L575_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L605_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L655_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L805_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L810_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-L850_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-M200_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-M205_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME-301_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME-303_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME-400_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_200-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_510-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_520-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_530-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_560W-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_570-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_620F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_650FN-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_700FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_900WD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_940FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_OFFICE_960FWD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-ME_Office_600F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-NX230_TX230-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-NX430_TX435-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PF-70_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PF-71_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PF-81_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-400_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-A750-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-A820-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-A840-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-A840S-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-A890-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-A920-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-A940-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-A950-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-A970-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-D600-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-D800-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-D870-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-G4500-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-G850-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-T960-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PM-T990-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-046A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-047A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-048A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-049A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-1600F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-1700F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-205_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-404A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-405A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-434A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-435A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-436A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-437A_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-501A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-502A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-503A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-504A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-505F_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-535F_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-5600-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-5V-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-601F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-602F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-603F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-605F_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-673F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-675F_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-7V-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-A620-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-A640-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-A650-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-A720-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-A740-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-B700-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-B750F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-FA700-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-G5300-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M160T_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M350F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M5040F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M5041F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M650A-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M650F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M7050FP-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M7050FX-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M7050_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M740F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M741F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M840F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M840FX-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-M860F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S05_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S160T_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S350-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S5040-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S7050PS-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S7050X-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S7050_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S740-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S840-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S840X-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PX-S860-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_500-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_Deluxe-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_Express-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_200-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_210-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_215-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_225-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_235-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_240-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_245-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_250-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_260-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_270-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_280-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_290-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_300-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-PictureMate_PM_310-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX2800-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX2900-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX3700-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX3800-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX3900-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX4200-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX4800-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX4900-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX5000-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX5900-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX6000-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX7300-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX7400-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX7700-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX7800-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX8300-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX8400-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX9300F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_CX9400Fax-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_DX3800-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_DX4000-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_DX4200-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_DX4800-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_DX5000-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_DX7400-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_DX8400-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_DX9400F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX200-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX210-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX230-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX300-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX330-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX400-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX410-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX420-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX430-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX510-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX530-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX620-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_NX635-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX300F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX305-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX305_Plus-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX310FN-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX320FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX525WD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX535WD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX600FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX610FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX620FWD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX630FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX635FWD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX925-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_BX935-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_TX300F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_TX320F-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_TX510FN-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_TX515FN-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_TX525FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_TX600FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_TX610FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Office_TX620FWD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_1400-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_1410-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_1430-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_1500-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_PX650-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_PX660-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_PX700W-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_PX710W-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_PX720WD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_PX730-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_PX800FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_PX810FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_PX820FWD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_PX830-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R1900-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R2000-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R240-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R250-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R260-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R265-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R270-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R2880-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R3000-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R340-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R350-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R360-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R380-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_R390-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX520-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX530-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX560-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX580-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX585-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX590-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX595-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX610-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX640-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX650-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX680-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX685-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_RX690-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_TX650-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_TX700W-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_TX710W-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_TX720WD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_TX730-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_TX800FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_Photo_TX810FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX200-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX210-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX218-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX230-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX235-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX400-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX410-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX420W-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX430-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX440-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX510W-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX525WD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX535WD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX600FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX610FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_SX620FW-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX200-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX210-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX220-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX230-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX235-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX400-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX410-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX420W-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX430-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX550W-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-Stylus_TX560WD-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-TX220_NX220-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-TX320_WorkForce320-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-TX420_NX420-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-TX720_Artisan720-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-TX820_Artisan830-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-100_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-2510_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-2520_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-2530_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-2540_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-2630_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-2650_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-2660_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-2750_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-2760_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-3010_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-3520_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-3530_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-3540_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-3620_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-3640_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-4630_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-4640_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-5110_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-5190_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-5620_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-5690_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-6090_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-6530-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-6590_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-7110_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-7510_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-7511_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-7515_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-7520_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-7521_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-7525_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-7610_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-7620_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-8010_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-8090_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-8510_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-8590_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-M1560_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-M5190_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-M5690_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-R4640_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-R5190_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-R5690_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WF-R8590_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4010_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4011_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4015_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4020_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4022_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4023_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4025_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4090_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4091_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4092_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4095_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4511_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4515_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4520_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4521_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4525_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4530_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4531_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4532_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4533_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4535_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4540_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4545_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4590_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4592_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-4595_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-M4011_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-M4015_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-M4095_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-M4521_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-M4525_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WP-M4595_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_310-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_320-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_435-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_500-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_520-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_545-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_600-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_610-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_620-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_630-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_645-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_840-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-WorkForce_845-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-200_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-201_204_208_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-202_203_206_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-205_207_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-211_214_216_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-212_213_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-215_217_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-220_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-225_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-235_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-240_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-243_245_247_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-300_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-302_303_305_306_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-310_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-312_313_315_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-320_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-322_323_325_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-330_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-332_335_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-340_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-342_343_345_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-400_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-402_403_405_406_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-410_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-412_413_415_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-420_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-422_423_425_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-430_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-432_435_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-440_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-442_445_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-510_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-520_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-530_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-55_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-600_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-610_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-620_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-630_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-700_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-710_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-720_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-750_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-760_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-800_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-810_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-820_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-830_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-850_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-860_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-900_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-950_Series-epson-escpr-en.ppd
+#usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-960_Series-epson-escpr-en.ppd
index d403ca13f36fd45c66260f16ebab34bdc95e03cf..7fc5e1494d5d28f0a33a50ee12032cd84f90b84c 100644 (file)
 usr/bin/ffmpeg
-usr/bin/ffplay
+usr/bin/ffprobe
 usr/bin/ffserver
 #usr/include/libavcodec
 #usr/include/libavcodec/avcodec.h
-#usr/include/libavcodec/opt.h
+#usr/include/libavcodec/avdct.h
+#usr/include/libavcodec/avfft.h
+#usr/include/libavcodec/d3d11va.h
+#usr/include/libavcodec/dirac.h
+#usr/include/libavcodec/dv_profile.h
+#usr/include/libavcodec/dxva2.h
+#usr/include/libavcodec/jni.h
+#usr/include/libavcodec/mediacodec.h
+#usr/include/libavcodec/qsv.h
+#usr/include/libavcodec/vaapi.h
+#usr/include/libavcodec/vda.h
+#usr/include/libavcodec/vdpau.h
+#usr/include/libavcodec/version.h
+#usr/include/libavcodec/videotoolbox.h
+#usr/include/libavcodec/vorbis_parser.h
+#usr/include/libavcodec/xvmc.h
 #usr/include/libavdevice
 #usr/include/libavdevice/avdevice.h
+#usr/include/libavdevice/version.h
+#usr/include/libavfilter
+#usr/include/libavfilter/avfilter.h
+#usr/include/libavfilter/avfiltergraph.h
+#usr/include/libavfilter/buffersink.h
+#usr/include/libavfilter/buffersrc.h
+#usr/include/libavfilter/version.h
 #usr/include/libavformat
 #usr/include/libavformat/avformat.h
 #usr/include/libavformat/avio.h
-#usr/include/libavformat/rtsp.h
-#usr/include/libavformat/rtspcodes.h
+#usr/include/libavformat/version.h
 #usr/include/libavutil
 #usr/include/libavutil/adler32.h
+#usr/include/libavutil/aes.h
+#usr/include/libavutil/aes_ctr.h
+#usr/include/libavutil/attributes.h
+#usr/include/libavutil/audio_fifo.h
+#usr/include/libavutil/avassert.h
+#usr/include/libavutil/avconfig.h
 #usr/include/libavutil/avstring.h
 #usr/include/libavutil/avutil.h
 #usr/include/libavutil/base64.h
+#usr/include/libavutil/blowfish.h
+#usr/include/libavutil/bprint.h
+#usr/include/libavutil/bswap.h
+#usr/include/libavutil/buffer.h
+#usr/include/libavutil/camellia.h
+#usr/include/libavutil/cast5.h
+#usr/include/libavutil/channel_layout.h
 #usr/include/libavutil/common.h
+#usr/include/libavutil/cpu.h
 #usr/include/libavutil/crc.h
+#usr/include/libavutil/des.h
+#usr/include/libavutil/dict.h
+#usr/include/libavutil/display.h
+#usr/include/libavutil/downmix_info.h
+#usr/include/libavutil/error.h
+#usr/include/libavutil/eval.h
+#usr/include/libavutil/ffversion.h
 #usr/include/libavutil/fifo.h
-#usr/include/libavutil/intfloat_readwrite.h
+#usr/include/libavutil/file.h
+#usr/include/libavutil/frame.h
+#usr/include/libavutil/hash.h
+#usr/include/libavutil/hmac.h
+#usr/include/libavutil/hwcontext.h
+#usr/include/libavutil/hwcontext_cuda.h
+#usr/include/libavutil/hwcontext_dxva2.h
+#usr/include/libavutil/hwcontext_qsv.h
+#usr/include/libavutil/hwcontext_vaapi.h
+#usr/include/libavutil/hwcontext_vdpau.h
+#usr/include/libavutil/imgutils.h
+#usr/include/libavutil/intfloat.h
+#usr/include/libavutil/intreadwrite.h
+#usr/include/libavutil/lfg.h
 #usr/include/libavutil/log.h
 #usr/include/libavutil/lzo.h
+#usr/include/libavutil/macros.h
+#usr/include/libavutil/mastering_display_metadata.h
 #usr/include/libavutil/mathematics.h
 #usr/include/libavutil/md5.h
 #usr/include/libavutil/mem.h
-#usr/include/libavutil/random.h
+#usr/include/libavutil/motion_vector.h
+#usr/include/libavutil/murmur3.h
+#usr/include/libavutil/opt.h
+#usr/include/libavutil/parseutils.h
+#usr/include/libavutil/pixdesc.h
+#usr/include/libavutil/pixelutils.h
+#usr/include/libavutil/pixfmt.h
+#usr/include/libavutil/random_seed.h
 #usr/include/libavutil/rational.h
-#usr/include/libavutil/sha1.h
+#usr/include/libavutil/rc4.h
+#usr/include/libavutil/replaygain.h
+#usr/include/libavutil/ripemd.h
+#usr/include/libavutil/samplefmt.h
+#usr/include/libavutil/sha.h
+#usr/include/libavutil/sha512.h
+#usr/include/libavutil/stereo3d.h
+#usr/include/libavutil/tea.h
+#usr/include/libavutil/threadmessage.h
+#usr/include/libavutil/time.h
+#usr/include/libavutil/timecode.h
+#usr/include/libavutil/timestamp.h
+#usr/include/libavutil/tree.h
+#usr/include/libavutil/twofish.h
+#usr/include/libavutil/version.h
+#usr/include/libavutil/xtea.h
+#usr/include/libpostproc
+#usr/include/libpostproc/postprocess.h
+#usr/include/libpostproc/version.h
+#usr/include/libswresample
+#usr/include/libswresample/swresample.h
+#usr/include/libswresample/version.h
+#usr/include/libswscale
+#usr/include/libswscale/swscale.h
+#usr/include/libswscale/version.h
 #usr/lib/libavcodec.a
 #usr/lib/libavcodec.so
-#usr/lib/libavcodec.so.51
-#usr/lib/libavcodec.so.51.54.0
+#usr/lib/libavcodec.so.57
+#usr/lib/libavcodec.so.57.64.101
 #usr/lib/libavdevice.a
 #usr/lib/libavdevice.so
-#usr/lib/libavdevice.so.52
-#usr/lib/libavdevice.so.52.0.0
+#usr/lib/libavdevice.so.57
+#usr/lib/libavdevice.so.57.1.100
+#usr/lib/libavfilter.a
+#usr/lib/libavfilter.so
+#usr/lib/libavfilter.so.6
+#usr/lib/libavfilter.so.6.65.100
 #usr/lib/libavformat.a
 #usr/lib/libavformat.so
-#usr/lib/libavformat.so.52
-#usr/lib/libavformat.so.52.13.0
+#usr/lib/libavformat.so.57
+#usr/lib/libavformat.so.57.56.101
 #usr/lib/libavutil.a
 #usr/lib/libavutil.so
-#usr/lib/libavutil.so.49
-#usr/lib/libavutil.so.49.6.0
-#usr/lib/pkgconfig
+#usr/lib/libavutil.so.55
+#usr/lib/libavutil.so.55.34.101
+#usr/lib/libpostproc.a
+#usr/lib/libpostproc.so
+#usr/lib/libpostproc.so.54
+#usr/lib/libpostproc.so.54.1.100
+#usr/lib/libswresample.a
+#usr/lib/libswresample.so
+#usr/lib/libswresample.so.2
+#usr/lib/libswresample.so.2.3.100
+#usr/lib/libswscale.a
+#usr/lib/libswscale.so
+#usr/lib/libswscale.so.4
+#usr/lib/libswscale.so.4.2.100
 #usr/lib/pkgconfig/libavcodec.pc
 #usr/lib/pkgconfig/libavdevice.pc
+#usr/lib/pkgconfig/libavfilter.pc
 #usr/lib/pkgconfig/libavformat.pc
 #usr/lib/pkgconfig/libavutil.pc
-#usr/lib/vhook
-#usr/lib/vhook/drawtext.so
-#usr/lib/vhook/fish.so
-#usr/lib/vhook/null.so
-#usr/lib/vhook/ppm.so
-#usr/lib/vhook/watermark.so
-#usr/include/libpostproc
-#usr/include/libpostproc/postprocess.h
-#usr/lib/libpostproc.a
-#usr/lib/libpostproc.so
-#usr/lib/libpostproc.so.51
-#usr/lib/libpostproc.so.51.1.0
 #usr/lib/pkgconfig/libpostproc.pc
+#usr/lib/pkgconfig/libswresample.pc
+#usr/lib/pkgconfig/libswscale.pc
+#usr/share/doc/ffmpeg
+#usr/share/doc/ffmpeg/developer.html
+#usr/share/doc/ffmpeg/faq.html
+#usr/share/doc/ffmpeg/fate.html
+#usr/share/doc/ffmpeg/ffmpeg-all.html
+#usr/share/doc/ffmpeg/ffmpeg-bitstream-filters.html
+#usr/share/doc/ffmpeg/ffmpeg-codecs.html
+#usr/share/doc/ffmpeg/ffmpeg-devices.html
+#usr/share/doc/ffmpeg/ffmpeg-filters.html
+#usr/share/doc/ffmpeg/ffmpeg-formats.html
+#usr/share/doc/ffmpeg/ffmpeg-protocols.html
+#usr/share/doc/ffmpeg/ffmpeg-resampler.html
+#usr/share/doc/ffmpeg/ffmpeg-scaler.html
+#usr/share/doc/ffmpeg/ffmpeg-utils.html
+#usr/share/doc/ffmpeg/ffmpeg.html
+#usr/share/doc/ffmpeg/ffprobe-all.html
+#usr/share/doc/ffmpeg/ffprobe.html
+#usr/share/doc/ffmpeg/ffserver-all.html
+#usr/share/doc/ffmpeg/ffserver.html
+#usr/share/doc/ffmpeg/general.html
+#usr/share/doc/ffmpeg/git-howto.html
+#usr/share/doc/ffmpeg/libavcodec.html
+#usr/share/doc/ffmpeg/libavdevice.html
+#usr/share/doc/ffmpeg/libavfilter.html
+#usr/share/doc/ffmpeg/libavformat.html
+#usr/share/doc/ffmpeg/libavutil.html
+#usr/share/doc/ffmpeg/libswresample.html
+#usr/share/doc/ffmpeg/libswscale.html
+#usr/share/doc/ffmpeg/nut.html
+#usr/share/doc/ffmpeg/platform.html
+#usr/share/ffmpeg
+#usr/share/ffmpeg/examples
+#usr/share/ffmpeg/examples/Makefile
+#usr/share/ffmpeg/examples/README
+#usr/share/ffmpeg/examples/avio_dir_cmd.c
+#usr/share/ffmpeg/examples/avio_reading.c
+#usr/share/ffmpeg/examples/decoding_encoding.c
+#usr/share/ffmpeg/examples/demuxing_decoding.c
+#usr/share/ffmpeg/examples/extract_mvs.c
+#usr/share/ffmpeg/examples/filter_audio.c
+#usr/share/ffmpeg/examples/filtering_audio.c
+#usr/share/ffmpeg/examples/filtering_video.c
+#usr/share/ffmpeg/examples/http_multiclient.c
+#usr/share/ffmpeg/examples/metadata.c
+#usr/share/ffmpeg/examples/muxing.c
+#usr/share/ffmpeg/examples/qsvdec.c
+#usr/share/ffmpeg/examples/remuxing.c
+#usr/share/ffmpeg/examples/resampling_audio.c
+#usr/share/ffmpeg/examples/scaling_video.c
+#usr/share/ffmpeg/examples/transcode_aac.c
+#usr/share/ffmpeg/examples/transcoding.c
+#usr/share/ffmpeg/ffprobe.xsd
+#usr/share/ffmpeg/libvpx-1080p.ffpreset
+#usr/share/ffmpeg/libvpx-1080p50_60.ffpreset
+#usr/share/ffmpeg/libvpx-360p.ffpreset
+#usr/share/ffmpeg/libvpx-720p.ffpreset
+#usr/share/ffmpeg/libvpx-720p50_60.ffpreset
+#usr/share/man/man1/ffmpeg-all.1
+#usr/share/man/man1/ffmpeg-bitstream-filters.1
+#usr/share/man/man1/ffmpeg-codecs.1
+#usr/share/man/man1/ffmpeg-devices.1
+#usr/share/man/man1/ffmpeg-filters.1
+#usr/share/man/man1/ffmpeg-formats.1
+#usr/share/man/man1/ffmpeg-protocols.1
+#usr/share/man/man1/ffmpeg-resampler.1
+#usr/share/man/man1/ffmpeg-scaler.1
+#usr/share/man/man1/ffmpeg-utils.1
+#usr/share/man/man1/ffmpeg.1
+#usr/share/man/man1/ffprobe-all.1
+#usr/share/man/man1/ffprobe.1
+#usr/share/man/man1/ffserver-all.1
+#usr/share/man/man1/ffserver.1
+#usr/share/man/man3/libavcodec.3
+#usr/share/man/man3/libavdevice.3
+#usr/share/man/man3/libavfilter.3
+#usr/share/man/man3/libavformat.3
+#usr/share/man/man3/libavutil.3
+#usr/share/man/man3/libswresample.3
+#usr/share/man/man3/libswscale.3
index a58dcd523171cd35de94c083f4b060849528b2cd..7a512f9daedc2ba7b8c5cd9dc2ed405faabe1800 100644 (file)
 #usr/bin/ffmpeg
-#usr/bin/ffplay
+#usr/bin/ffprobe
 #usr/bin/ffserver
 #usr/include/libavcodec
 #usr/include/libavcodec/avcodec.h
-#usr/include/libavcodec/opt.h
+#usr/include/libavcodec/avdct.h
+#usr/include/libavcodec/avfft.h
+#usr/include/libavcodec/d3d11va.h
+#usr/include/libavcodec/dirac.h
+#usr/include/libavcodec/dv_profile.h
+#usr/include/libavcodec/dxva2.h
+#usr/include/libavcodec/jni.h
+#usr/include/libavcodec/mediacodec.h
+#usr/include/libavcodec/qsv.h
+#usr/include/libavcodec/vaapi.h
+#usr/include/libavcodec/vda.h
+#usr/include/libavcodec/vdpau.h
+#usr/include/libavcodec/version.h
+#usr/include/libavcodec/videotoolbox.h
+#usr/include/libavcodec/vorbis_parser.h
+#usr/include/libavcodec/xvmc.h
 #usr/include/libavdevice
 #usr/include/libavdevice/avdevice.h
+#usr/include/libavdevice/version.h
+#usr/include/libavfilter
+#usr/include/libavfilter/avfilter.h
+#usr/include/libavfilter/avfiltergraph.h
+#usr/include/libavfilter/buffersink.h
+#usr/include/libavfilter/buffersrc.h
+#usr/include/libavfilter/version.h
 #usr/include/libavformat
 #usr/include/libavformat/avformat.h
 #usr/include/libavformat/avio.h
-#usr/include/libavformat/rtsp.h
-#usr/include/libavformat/rtspcodes.h
+#usr/include/libavformat/version.h
 #usr/include/libavutil
 #usr/include/libavutil/adler32.h
+#usr/include/libavutil/aes.h
+#usr/include/libavutil/aes_ctr.h
+#usr/include/libavutil/attributes.h
+#usr/include/libavutil/audio_fifo.h
+#usr/include/libavutil/avassert.h
+#usr/include/libavutil/avconfig.h
 #usr/include/libavutil/avstring.h
 #usr/include/libavutil/avutil.h
 #usr/include/libavutil/base64.h
+#usr/include/libavutil/blowfish.h
+#usr/include/libavutil/bprint.h
+#usr/include/libavutil/bswap.h
+#usr/include/libavutil/buffer.h
+#usr/include/libavutil/camellia.h
+#usr/include/libavutil/cast5.h
+#usr/include/libavutil/channel_layout.h
 #usr/include/libavutil/common.h
+#usr/include/libavutil/cpu.h
 #usr/include/libavutil/crc.h
+#usr/include/libavutil/des.h
+#usr/include/libavutil/dict.h
+#usr/include/libavutil/display.h
+#usr/include/libavutil/downmix_info.h
+#usr/include/libavutil/error.h
+#usr/include/libavutil/eval.h
+#usr/include/libavutil/ffversion.h
 #usr/include/libavutil/fifo.h
-#usr/include/libavutil/intfloat_readwrite.h
+#usr/include/libavutil/file.h
+#usr/include/libavutil/frame.h
+#usr/include/libavutil/hash.h
+#usr/include/libavutil/hmac.h
+#usr/include/libavutil/hwcontext.h
+#usr/include/libavutil/hwcontext_cuda.h
+#usr/include/libavutil/hwcontext_dxva2.h
+#usr/include/libavutil/hwcontext_qsv.h
+#usr/include/libavutil/hwcontext_vaapi.h
+#usr/include/libavutil/hwcontext_vdpau.h
+#usr/include/libavutil/imgutils.h
+#usr/include/libavutil/intfloat.h
+#usr/include/libavutil/intreadwrite.h
+#usr/include/libavutil/lfg.h
 #usr/include/libavutil/log.h
 #usr/include/libavutil/lzo.h
+#usr/include/libavutil/macros.h
+#usr/include/libavutil/mastering_display_metadata.h
 #usr/include/libavutil/mathematics.h
 #usr/include/libavutil/md5.h
 #usr/include/libavutil/mem.h
-#usr/include/libavutil/random.h
+#usr/include/libavutil/motion_vector.h
+#usr/include/libavutil/murmur3.h
+#usr/include/libavutil/opt.h
+#usr/include/libavutil/parseutils.h
+#usr/include/libavutil/pixdesc.h
+#usr/include/libavutil/pixelutils.h
+#usr/include/libavutil/pixfmt.h
+#usr/include/libavutil/random_seed.h
 #usr/include/libavutil/rational.h
-#usr/include/libavutil/sha1.h
+#usr/include/libavutil/rc4.h
+#usr/include/libavutil/replaygain.h
+#usr/include/libavutil/ripemd.h
+#usr/include/libavutil/samplefmt.h
+#usr/include/libavutil/sha.h
+#usr/include/libavutil/sha512.h
+#usr/include/libavutil/stereo3d.h
+#usr/include/libavutil/tea.h
+#usr/include/libavutil/threadmessage.h
+#usr/include/libavutil/time.h
+#usr/include/libavutil/timecode.h
+#usr/include/libavutil/timestamp.h
+#usr/include/libavutil/tree.h
+#usr/include/libavutil/twofish.h
+#usr/include/libavutil/version.h
+#usr/include/libavutil/xtea.h
+#usr/include/libpostproc
+#usr/include/libpostproc/postprocess.h
+#usr/include/libpostproc/version.h
+#usr/include/libswresample
+#usr/include/libswresample/swresample.h
+#usr/include/libswresample/version.h
+#usr/include/libswscale
+#usr/include/libswscale/swscale.h
+#usr/include/libswscale/version.h
 #usr/lib/libavcodec.a
-usr/lib/libavcodec.so
-usr/lib/libavcodec.so.51
-usr/lib/libavcodec.so.51.54.0
+#usr/lib/libavcodec.so
+usr/lib/libavcodec.so.57
+usr/lib/libavcodec.so.57.64.101
 #usr/lib/libavdevice.a
-usr/lib/libavdevice.so
-usr/lib/libavdevice.so.52
-usr/lib/libavdevice.so.52.0.0
+#usr/lib/libavdevice.so
+usr/lib/libavdevice.so.57
+usr/lib/libavdevice.so.57.1.100
+#usr/lib/libavfilter.a
+#usr/lib/libavfilter.so
+usr/lib/libavfilter.so.6
+usr/lib/libavfilter.so.6.65.100
 #usr/lib/libavformat.a
-usr/lib/libavformat.so
-usr/lib/libavformat.so.52
-usr/lib/libavformat.so.52.13.0
+#usr/lib/libavformat.so
+usr/lib/libavformat.so.57
+usr/lib/libavformat.so.57.56.101
 #usr/lib/libavutil.a
-usr/lib/libavutil.so
-usr/lib/libavutil.so.49
-usr/lib/libavutil.so.49.6.0
-#usr/lib/pkgconfig
-usr/lib/pkgconfig/libavcodec.pc
-usr/lib/pkgconfig/libavdevice.pc
-usr/lib/pkgconfig/libavformat.pc
-usr/lib/pkgconfig/libavutil.pc
-#usr/lib/vhook
-usr/lib/vhook/drawtext.so
-usr/lib/vhook/fish.so
-usr/lib/vhook/null.so
-usr/lib/vhook/ppm.so
-usr/lib/vhook/watermark.so
-#usr/include/libpostproc
-#usr/include/libpostproc/postprocess.h
+#usr/lib/libavutil.so
+usr/lib/libavutil.so.55
+usr/lib/libavutil.so.55.34.101
 #usr/lib/libpostproc.a
-usr/lib/libpostproc.so
-usr/lib/libpostproc.so.51
-usr/lib/libpostproc.so.51.1.0
-usr/lib/pkgconfig/libpostproc.pc
+#usr/lib/libpostproc.so
+usr/lib/libpostproc.so.54
+usr/lib/libpostproc.so.54.1.100
+#usr/lib/libswresample.a
+#usr/lib/libswresample.so
+usr/lib/libswresample.so.2
+usr/lib/libswresample.so.2.3.100
+#usr/lib/libswscale.a
+#usr/lib/libswscale.so
+usr/lib/libswscale.so.4
+usr/lib/libswscale.so.4.2.100
+#usr/lib/pkgconfig/libavcodec.pc
+#usr/lib/pkgconfig/libavdevice.pc
+#usr/lib/pkgconfig/libavfilter.pc
+#usr/lib/pkgconfig/libavformat.pc
+#usr/lib/pkgconfig/libavutil.pc
+#usr/lib/pkgconfig/libpostproc.pc
+#usr/lib/pkgconfig/libswresample.pc
+#usr/lib/pkgconfig/libswscale.pc
+#usr/share/doc/ffmpeg
+#usr/share/doc/ffmpeg/developer.html
+#usr/share/doc/ffmpeg/faq.html
+#usr/share/doc/ffmpeg/fate.html
+#usr/share/doc/ffmpeg/ffmpeg-all.html
+#usr/share/doc/ffmpeg/ffmpeg-bitstream-filters.html
+#usr/share/doc/ffmpeg/ffmpeg-codecs.html
+#usr/share/doc/ffmpeg/ffmpeg-devices.html
+#usr/share/doc/ffmpeg/ffmpeg-filters.html
+#usr/share/doc/ffmpeg/ffmpeg-formats.html
+#usr/share/doc/ffmpeg/ffmpeg-protocols.html
+#usr/share/doc/ffmpeg/ffmpeg-resampler.html
+#usr/share/doc/ffmpeg/ffmpeg-scaler.html
+#usr/share/doc/ffmpeg/ffmpeg-utils.html
+#usr/share/doc/ffmpeg/ffmpeg.html
+#usr/share/doc/ffmpeg/ffprobe-all.html
+#usr/share/doc/ffmpeg/ffprobe.html
+#usr/share/doc/ffmpeg/ffserver-all.html
+#usr/share/doc/ffmpeg/ffserver.html
+#usr/share/doc/ffmpeg/general.html
+#usr/share/doc/ffmpeg/git-howto.html
+#usr/share/doc/ffmpeg/libavcodec.html
+#usr/share/doc/ffmpeg/libavdevice.html
+#usr/share/doc/ffmpeg/libavfilter.html
+#usr/share/doc/ffmpeg/libavformat.html
+#usr/share/doc/ffmpeg/libavutil.html
+#usr/share/doc/ffmpeg/libswresample.html
+#usr/share/doc/ffmpeg/libswscale.html
+#usr/share/doc/ffmpeg/nut.html
+#usr/share/doc/ffmpeg/platform.html
+#usr/share/ffmpeg
+#usr/share/ffmpeg/examples
+#usr/share/ffmpeg/examples/Makefile
+#usr/share/ffmpeg/examples/README
+#usr/share/ffmpeg/examples/avio_dir_cmd.c
+#usr/share/ffmpeg/examples/avio_reading.c
+#usr/share/ffmpeg/examples/decoding_encoding.c
+#usr/share/ffmpeg/examples/demuxing_decoding.c
+#usr/share/ffmpeg/examples/extract_mvs.c
+#usr/share/ffmpeg/examples/filter_audio.c
+#usr/share/ffmpeg/examples/filtering_audio.c
+#usr/share/ffmpeg/examples/filtering_video.c
+#usr/share/ffmpeg/examples/http_multiclient.c
+#usr/share/ffmpeg/examples/metadata.c
+#usr/share/ffmpeg/examples/muxing.c
+#usr/share/ffmpeg/examples/qsvdec.c
+#usr/share/ffmpeg/examples/remuxing.c
+#usr/share/ffmpeg/examples/resampling_audio.c
+#usr/share/ffmpeg/examples/scaling_video.c
+#usr/share/ffmpeg/examples/transcode_aac.c
+#usr/share/ffmpeg/examples/transcoding.c
+#usr/share/ffmpeg/ffprobe.xsd
+#usr/share/ffmpeg/libvpx-1080p.ffpreset
+#usr/share/ffmpeg/libvpx-1080p50_60.ffpreset
+#usr/share/ffmpeg/libvpx-360p.ffpreset
+#usr/share/ffmpeg/libvpx-720p.ffpreset
+#usr/share/ffmpeg/libvpx-720p50_60.ffpreset
+#usr/share/man/man1/ffmpeg-all.1
+#usr/share/man/man1/ffmpeg-bitstream-filters.1
+#usr/share/man/man1/ffmpeg-codecs.1
+#usr/share/man/man1/ffmpeg-devices.1
+#usr/share/man/man1/ffmpeg-filters.1
+#usr/share/man/man1/ffmpeg-formats.1
+#usr/share/man/man1/ffmpeg-protocols.1
+#usr/share/man/man1/ffmpeg-resampler.1
+#usr/share/man/man1/ffmpeg-scaler.1
+#usr/share/man/man1/ffmpeg-utils.1
+#usr/share/man/man1/ffmpeg.1
+#usr/share/man/man1/ffprobe-all.1
+#usr/share/man/man1/ffprobe.1
+#usr/share/man/man1/ffserver-all.1
+#usr/share/man/man1/ffserver.1
+#usr/share/man/man3/libavcodec.3
+#usr/share/man/man3/libavdevice.3
+#usr/share/man/man3/libavfilter.3
+#usr/share/man/man3/libavformat.3
+#usr/share/man/man3/libavutil.3
+#usr/share/man/man3/libswresample.3
+#usr/share/man/man3/libswscale.3
index 9bcd3a4ff63a0527c26ff1bc11e5bd8631be4d96..7cf77606466942b0d048ead639c07b7bb120306a 100644 (file)
@@ -46,6 +46,7 @@ etc/raddb
 #etc/raddb/mods-available/logintime
 #etc/raddb/mods-available/mac2ip
 #etc/raddb/mods-available/mac2vlan
+#etc/raddb/mods-available/moonshot-targeted-ids
 #etc/raddb/mods-available/mschap
 #etc/raddb/mods-available/ntlm_auth
 #etc/raddb/mods-available/opendirectory
@@ -163,12 +164,23 @@ etc/raddb
 #etc/raddb/mods-config/sql/main/sqlite
 #etc/raddb/mods-config/sql/main/sqlite/queries.conf
 #etc/raddb/mods-config/sql/main/sqlite/schema.sql
+#etc/raddb/mods-config/sql/moonshot-targeted-ids
+#etc/raddb/mods-config/sql/moonshot-targeted-ids/mysql
+#etc/raddb/mods-config/sql/moonshot-targeted-ids/mysql/queries.conf
+#etc/raddb/mods-config/sql/moonshot-targeted-ids/mysql/schema.sql
+#etc/raddb/mods-config/sql/moonshot-targeted-ids/postgresql
+#etc/raddb/mods-config/sql/moonshot-targeted-ids/postgresql/queries.conf
+#etc/raddb/mods-config/sql/moonshot-targeted-ids/postgresql/schema.sql
+#etc/raddb/mods-config/sql/moonshot-targeted-ids/sqlite
+#etc/raddb/mods-config/sql/moonshot-targeted-ids/sqlite/queries.conf
+#etc/raddb/mods-config/sql/moonshot-targeted-ids/sqlite/schema.sql
 #etc/raddb/mods-config/unbound
 #etc/raddb/mods-enabled
 #etc/raddb/mods-enabled/always
 #etc/raddb/mods-enabled/attr_filter
 #etc/raddb/mods-enabled/cache_eap
 #etc/raddb/mods-enabled/chap
+#etc/raddb/mods-enabled/date
 #etc/raddb/mods-enabled/detail
 #etc/raddb/mods-enabled/detail.log
 #etc/raddb/mods-enabled/dhcp
@@ -205,6 +217,7 @@ etc/raddb
 #etc/raddb/policy.d/dhcp
 #etc/raddb/policy.d/eap
 #etc/raddb/policy.d/filter
+#etc/raddb/policy.d/moonshot-targeted-ids
 #etc/raddb/policy.d/operator-name
 #etc/raddb/proxy.conf
 #etc/raddb/radiusd.conf
@@ -311,6 +324,7 @@ usr/bin/smbencrypt
 #usr/include/freeradius/rfc7155.h
 #usr/include/freeradius/rfc7268.h
 #usr/include/freeradius/rfc7499.h
+#usr/include/freeradius/rfc7930.h
 #usr/include/freeradius/sha1.h
 #usr/include/freeradius/stats.h
 #usr/include/freeradius/sysutmp.h
@@ -376,6 +390,9 @@ usr/lib/freeradius/rlm_dynamic_clients.so
 #usr/lib/freeradius/rlm_eap.a
 #usr/lib/freeradius/rlm_eap.la
 usr/lib/freeradius/rlm_eap.so
+#usr/lib/freeradius/rlm_eap_fast.a
+#usr/lib/freeradius/rlm_eap_fast.la
+usr/lib/freeradius/rlm_eap_fast.so
 #usr/lib/freeradius/rlm_eap_gtc.a
 #usr/lib/freeradius/rlm_eap_gtc.la
 usr/lib/freeradius/rlm_eap_gtc.so
@@ -641,7 +658,6 @@ usr/sbin/radmin
 #usr/share/doc/freeradius/schemas/ldap/openldap/freeradius.schema
 #usr/share/doc/freeradius/schemas/logstash
 #usr/share/doc/freeradius/schemas/logstash/README
-#usr/share/doc/freeradius/schemas/logstash/kibana3-dashboard.json
 #usr/share/doc/freeradius/schemas/logstash/kibana4-dashboard.json
 #usr/share/doc/freeradius/schemas/logstash/log-courier.conf
 #usr/share/doc/freeradius/schemas/logstash/logstash-radius.conf
@@ -660,6 +676,7 @@ usr/share/freeradius
 #usr/share/freeradius/dictionary.acc
 #usr/share/freeradius/dictionary.acme
 #usr/share/freeradius/dictionary.actelis
+#usr/share/freeradius/dictionary.adtran
 #usr/share/freeradius/dictionary.aerohive
 #usr/share/freeradius/dictionary.airespace
 #usr/share/freeradius/dictionary.alcatel
@@ -694,6 +711,7 @@ usr/share/freeradius
 #usr/share/freeradius/dictionary.cablelabs
 #usr/share/freeradius/dictionary.cabletron
 #usr/share/freeradius/dictionary.camiant
+#usr/share/freeradius/dictionary.checkpoint
 #usr/share/freeradius/dictionary.chillispot
 #usr/share/freeradius/dictionary.cisco
 #usr/share/freeradius/dictionary.cisco.asa
@@ -702,12 +720,14 @@ usr/share/freeradius
 #usr/share/freeradius/dictionary.cisco.vpn5000
 #usr/share/freeradius/dictionary.citrix
 #usr/share/freeradius/dictionary.clavister
+#usr/share/freeradius/dictionary.cnergee
 #usr/share/freeradius/dictionary.colubris
 #usr/share/freeradius/dictionary.columbia_university
 #usr/share/freeradius/dictionary.compat
 #usr/share/freeradius/dictionary.compatible
 #usr/share/freeradius/dictionary.cosine
 #usr/share/freeradius/dictionary.dante
+#usr/share/freeradius/dictionary.dellemc
 #usr/share/freeradius/dictionary.dhcp
 #usr/share/freeradius/dictionary.digium
 #usr/share/freeradius/dictionary.dlink
@@ -756,6 +776,7 @@ usr/share/freeradius
 #usr/share/freeradius/dictionary.meraki
 #usr/share/freeradius/dictionary.merit
 #usr/share/freeradius/dictionary.meru
+#usr/share/freeradius/dictionary.microsemi
 #usr/share/freeradius/dictionary.microsoft
 #usr/share/freeradius/dictionary.mikrotik
 #usr/share/freeradius/dictionary.motorola
@@ -813,11 +834,13 @@ usr/share/freeradius
 #usr/share/freeradius/dictionary.rfc7155
 #usr/share/freeradius/dictionary.rfc7268
 #usr/share/freeradius/dictionary.rfc7499
+#usr/share/freeradius/dictionary.rfc7930
 #usr/share/freeradius/dictionary.riverbed
 #usr/share/freeradius/dictionary.riverstone
 #usr/share/freeradius/dictionary.roaringpenguin
 #usr/share/freeradius/dictionary.ruckus
 #usr/share/freeradius/dictionary.ruggedcom
+#usr/share/freeradius/dictionary.sangoma
 #usr/share/freeradius/dictionary.sg
 #usr/share/freeradius/dictionary.shasta
 #usr/share/freeradius/dictionary.shiva
@@ -859,6 +882,8 @@ usr/share/freeradius
 #usr/share/freeradius/dictionary.zeus
 #usr/share/freeradius/dictionary.zte
 #usr/share/freeradius/dictionary.zyxel
+#usr/share/man/man1/dhcpclient.1
+#usr/share/man/man1/rad_counter.1
 #usr/share/man/man1/radclient.1
 #usr/share/man/man1/radeapclient.1
 #usr/share/man/man1/radlast.1
index a94877c73b38f1b910761af44bc8a1e4d6bb7d6f..c15ec1a5e124dd0880d4fe946a754f0cf5365199 100644 (file)
@@ -1,7 +1,5 @@
-usr/bin/bdftops
 usr/bin/dvipdf
 usr/bin/eps2eps
-usr/bin/fixmswrd.pl
 usr/bin/font2c
 usr/bin/gs
 usr/bin/gsbj
@@ -13,9 +11,9 @@ usr/bin/gsnd
 usr/bin/lprsetup.sh
 usr/bin/pdf2dsc
 usr/bin/pdf2ps
-usr/bin/pdfopt
 usr/bin/pf2afm
 usr/bin/pfbtopfa
+usr/bin/pphs
 usr/bin/printafm
 usr/bin/ps2ascii
 usr/bin/ps2epsi
@@ -25,512 +23,272 @@ usr/bin/ps2pdf13
 usr/bin/ps2pdf14
 usr/bin/ps2pdfwr
 usr/bin/ps2ps
-usr/bin/pv.sh
+usr/bin/ps2ps2
 usr/bin/unix-lpr.sh
 usr/bin/wftopfa
-usr/lib/cups/filter/pstopxl
-usr/lib/cups/filter/pstoraster
-#usr/man/de
-#usr/man/de/man1
-#usr/man/de/man1/dvipdf.1
-#usr/man/de/man1/eps2eps.1
-#usr/man/de/man1/font2c.1
-#usr/man/de/man1/gsbj.1
-#usr/man/de/man1/gsdj.1
-#usr/man/de/man1/gsdj500.1
-#usr/man/de/man1/gslj.1
-#usr/man/de/man1/gsnd.1
-#usr/man/de/man1/pdf2dsc.1
-#usr/man/de/man1/pdf2ps.1
-#usr/man/de/man1/pdfopt.1
-#usr/man/de/man1/printafm.1
-#usr/man/de/man1/ps2ascii.1
-#usr/man/de/man1/ps2pdf.1
-#usr/man/de/man1/ps2pdf12.1
-#usr/man/de/man1/ps2pdf13.1
-#usr/man/de/man1/ps2ps.1
-#usr/man/de/man1/wftopfa.1
-#usr/man/man1/dvipdf.1
-#usr/man/man1/eps2eps.1
-#usr/man/man1/font2c.1
-#usr/man/man1/gs.1
-#usr/man/man1/gsbj.1
-#usr/man/man1/gsdj.1
-#usr/man/man1/gsdj500.1
-#usr/man/man1/gslj.1
-#usr/man/man1/gslp.1
-#usr/man/man1/gsnd.1
-#usr/man/man1/pdf2dsc.1
-#usr/man/man1/pdf2ps.1
-#usr/man/man1/pdfopt.1
-#usr/man/man1/pf2afm.1
-#usr/man/man1/pfbtopfa.1
-#usr/man/man1/printafm.1
-#usr/man/man1/ps2ascii.1
-#usr/man/man1/ps2epsi.1
-#usr/man/man1/ps2pdf.1
-#usr/man/man1/ps2pdf12.1
-#usr/man/man1/ps2pdf13.1
-#usr/man/man1/ps2pdfwr.1
-#usr/man/man1/ps2ps.1
-#usr/man/man1/wftopfa.1
-usr/share/cups/model/pxlcolor.ppd
-usr/share/cups/model/pxlmono.ppd
 #usr/share/ghostscript
-#usr/share/ghostscript/8.15
-#usr/share/ghostscript/8.15/Resource
-#usr/share/ghostscript/8.15/Resource/CMap
-usr/share/ghostscript/8.15/Resource/CMap/78-EUC-H
-usr/share/ghostscript/8.15/Resource/CMap/78-EUC-V
-usr/share/ghostscript/8.15/Resource/CMap/78-H
-usr/share/ghostscript/8.15/Resource/CMap/78-RKSJ-H
-usr/share/ghostscript/8.15/Resource/CMap/78-RKSJ-V
-usr/share/ghostscript/8.15/Resource/CMap/78-V
-usr/share/ghostscript/8.15/Resource/CMap/78ms-RKSJ-H
-usr/share/ghostscript/8.15/Resource/CMap/78ms-RKSJ-V
-usr/share/ghostscript/8.15/Resource/CMap/83pv-RKSJ-H
-usr/share/ghostscript/8.15/Resource/CMap/90ms-RKSJ-H
-usr/share/ghostscript/8.15/Resource/CMap/90ms-RKSJ-UCS2
-usr/share/ghostscript/8.15/Resource/CMap/90ms-RKSJ-V
-usr/share/ghostscript/8.15/Resource/CMap/90msp-RKSJ-H
-usr/share/ghostscript/8.15/Resource/CMap/90msp-RKSJ-V
-usr/share/ghostscript/8.15/Resource/CMap/90pv-RKSJ-H
-usr/share/ghostscript/8.15/Resource/CMap/90pv-RKSJ-UCS2
-usr/share/ghostscript/8.15/Resource/CMap/90pv-RKSJ-UCS2C
-usr/share/ghostscript/8.15/Resource/CMap/90pv-RKSJ-V
-usr/share/ghostscript/8.15/Resource/CMap/Add-H
-usr/share/ghostscript/8.15/Resource/CMap/Add-RKSJ-H
-usr/share/ghostscript/8.15/Resource/CMap/Add-RKSJ-V
-usr/share/ghostscript/8.15/Resource/CMap/Add-V
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-CNS1-B5pc
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-CNS1-H-CID
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-CNS1-H-Host
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-CNS1-H-Mac
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-GB1-GBK-EUC
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-GB1-GBpc-EUC
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-GB1-H-CID
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-GB1-H-Host
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-GB1-H-Mac
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-0
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-1
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-2
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-90ms-RKSJ
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-90pv-RKSJ
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-H-CID
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-H-Host
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-H-Mac
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-PS-H
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-PS-V
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Japan1-UCS2
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Korea1-H-CID
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Korea1-H-Host
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Korea1-KSCms-UHC
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Korea1-KSCpc-EUC
-usr/share/ghostscript/8.15/Resource/CMap/Adobe-Korea1-UCS2
-usr/share/ghostscript/8.15/Resource/CMap/B5pc-H
-usr/share/ghostscript/8.15/Resource/CMap/B5pc-UCS2
-usr/share/ghostscript/8.15/Resource/CMap/B5pc-UCS2C
-usr/share/ghostscript/8.15/Resource/CMap/B5pc-V
-usr/share/ghostscript/8.15/Resource/CMap/CNS-EUC-H
-usr/share/ghostscript/8.15/Resource/CMap/CNS-EUC-V
-usr/share/ghostscript/8.15/Resource/CMap/ETHK-B5-H
-usr/share/ghostscript/8.15/Resource/CMap/ETHK-B5-V
-usr/share/ghostscript/8.15/Resource/CMap/ETen-B5-H
-usr/share/ghostscript/8.15/Resource/CMap/ETen-B5-UCS2
-usr/share/ghostscript/8.15/Resource/CMap/ETen-B5-V
-usr/share/ghostscript/8.15/Resource/CMap/ETenms-B5-H
-usr/share/ghostscript/8.15/Resource/CMap/ETenms-B5-V
-usr/share/ghostscript/8.15/Resource/CMap/EUC-H
-usr/share/ghostscript/8.15/Resource/CMap/EUC-V
-usr/share/ghostscript/8.15/Resource/CMap/Ext-H
-usr/share/ghostscript/8.15/Resource/CMap/Ext-RKSJ-H
-usr/share/ghostscript/8.15/Resource/CMap/Ext-RKSJ-V
-usr/share/ghostscript/8.15/Resource/CMap/Ext-V
-usr/share/ghostscript/8.15/Resource/CMap/GB-EUC-H
-usr/share/ghostscript/8.15/Resource/CMap/GB-EUC-V
-usr/share/ghostscript/8.15/Resource/CMap/GBK-EUC-H
-usr/share/ghostscript/8.15/Resource/CMap/GBK-EUC-UCS2
-usr/share/ghostscript/8.15/Resource/CMap/GBK-EUC-V
-usr/share/ghostscript/8.15/Resource/CMap/GBK2K-H
-usr/share/ghostscript/8.15/Resource/CMap/GBK2K-V
-usr/share/ghostscript/8.15/Resource/CMap/GBKp-EUC-H
-usr/share/ghostscript/8.15/Resource/CMap/GBKp-EUC-V
-usr/share/ghostscript/8.15/Resource/CMap/GBT-EUC-H
-usr/share/ghostscript/8.15/Resource/CMap/GBT-EUC-V
-usr/share/ghostscript/8.15/Resource/CMap/GBpc-EUC-H
-usr/share/ghostscript/8.15/Resource/CMap/GBpc-EUC-UCS2
-usr/share/ghostscript/8.15/Resource/CMap/GBpc-EUC-UCS2C
-usr/share/ghostscript/8.15/Resource/CMap/GBpc-EUC-V
-usr/share/ghostscript/8.15/Resource/CMap/H
-usr/share/ghostscript/8.15/Resource/CMap/HKdla-B5-H
-usr/share/ghostscript/8.15/Resource/CMap/HKdla-B5-V
-usr/share/ghostscript/8.15/Resource/CMap/HKdlb-B5-H
-usr/share/ghostscript/8.15/Resource/CMap/HKdlb-B5-V
-usr/share/ghostscript/8.15/Resource/CMap/HKgccs-B5-H
-usr/share/ghostscript/8.15/Resource/CMap/HKgccs-B5-V
-usr/share/ghostscript/8.15/Resource/CMap/HKm314-B5-H
-usr/share/ghostscript/8.15/Resource/CMap/HKm314-B5-V
-usr/share/ghostscript/8.15/Resource/CMap/HKm471-B5-H
-usr/share/ghostscript/8.15/Resource/CMap/HKm471-B5-V
-usr/share/ghostscript/8.15/Resource/CMap/HKscs-B5-H
-usr/share/ghostscript/8.15/Resource/CMap/HKscs-B5-V
-usr/share/ghostscript/8.15/Resource/CMap/Hankaku
-usr/share/ghostscript/8.15/Resource/CMap/Hiragana
-usr/share/ghostscript/8.15/Resource/CMap/Identity-H
-usr/share/ghostscript/8.15/Resource/CMap/Identity-V
-usr/share/ghostscript/8.15/Resource/CMap/KSC-EUC-H
-usr/share/ghostscript/8.15/Resource/CMap/KSC-EUC-V
-usr/share/ghostscript/8.15/Resource/CMap/KSC-Johab-H
-usr/share/ghostscript/8.15/Resource/CMap/KSC-Johab-V
-usr/share/ghostscript/8.15/Resource/CMap/KSCms-UHC-H
-usr/share/ghostscript/8.15/Resource/CMap/KSCms-UHC-HW-H
-usr/share/ghostscript/8.15/Resource/CMap/KSCms-UHC-HW-V
-usr/share/ghostscript/8.15/Resource/CMap/KSCms-UHC-UCS2
-usr/share/ghostscript/8.15/Resource/CMap/KSCms-UHC-V
-usr/share/ghostscript/8.15/Resource/CMap/KSCpc-EUC-H
-usr/share/ghostscript/8.15/Resource/CMap/KSCpc-EUC-UCS2
-usr/share/ghostscript/8.15/Resource/CMap/KSCpc-EUC-UCS2C
-usr/share/ghostscript/8.15/Resource/CMap/Katakana
-usr/share/ghostscript/8.15/Resource/CMap/NWP-H
-usr/share/ghostscript/8.15/Resource/CMap/NWP-V
-usr/share/ghostscript/8.15/Resource/CMap/RKSJ-H
-usr/share/ghostscript/8.15/Resource/CMap/RKSJ-V
-usr/share/ghostscript/8.15/Resource/CMap/Roman
-usr/share/ghostscript/8.15/Resource/CMap/UCS2-90ms-RKSJ
-usr/share/ghostscript/8.15/Resource/CMap/UCS2-90pv-RKSJ
-usr/share/ghostscript/8.15/Resource/CMap/UCS2-B5pc
-usr/share/ghostscript/8.15/Resource/CMap/UCS2-GBK-EUC
-usr/share/ghostscript/8.15/Resource/CMap/UCS2-GBpc-EUC
-usr/share/ghostscript/8.15/Resource/CMap/UCS2-KSCms-UHC
-usr/share/ghostscript/8.15/Resource/CMap/UCS2-KSCpc-EUC
-usr/share/ghostscript/8.15/Resource/CMap/UniCNS-UCS2-H
-usr/share/ghostscript/8.15/Resource/CMap/UniCNS-UCS2-V
-usr/share/ghostscript/8.15/Resource/CMap/UniGB-UCS2-H
-usr/share/ghostscript/8.15/Resource/CMap/UniGB-UCS2-V
-usr/share/ghostscript/8.15/Resource/CMap/UniHojo-UCS2-H
-usr/share/ghostscript/8.15/Resource/CMap/UniJIS-UCS2-H
-usr/share/ghostscript/8.15/Resource/CMap/UniJIS-UCS2-HW-H
-usr/share/ghostscript/8.15/Resource/CMap/UniJIS-UCS2-HW-V
-usr/share/ghostscript/8.15/Resource/CMap/UniJIS-UCS2-V
-usr/share/ghostscript/8.15/Resource/CMap/UniKS-UCS2-H
-usr/share/ghostscript/8.15/Resource/CMap/UniKS-UCS2-V
-usr/share/ghostscript/8.15/Resource/CMap/V
-usr/share/ghostscript/8.15/Resource/CMap/WP-Symbol
-usr/share/ghostscript/8.15/Resource/ColorSpace
-usr/share/ghostscript/8.15/Resource/ColorSpace/DefaultCMYK
-usr/share/ghostscript/8.15/Resource/ColorSpace/DefaultGray
-usr/share/ghostscript/8.15/Resource/ColorSpace/DefaultRGB
-usr/share/ghostscript/8.15/Resource/Decoding
-usr/share/ghostscript/8.15/Resource/Decoding/Latin1
-usr/share/ghostscript/8.15/Resource/Decoding/StandardEncoding
-usr/share/ghostscript/8.15/Resource/Decoding/Unicode
-#usr/share/ghostscript/8.15/doc
-#usr/share/ghostscript/8.15/doc/API.htm
-#usr/share/ghostscript/8.15/doc/Bug-form.htm
-#usr/share/ghostscript/8.15/doc/Bug-info.htm
-#usr/share/ghostscript/8.15/doc/C-style.htm
-#usr/share/ghostscript/8.15/doc/Changes.htm
-#usr/share/ghostscript/8.15/doc/Commprod.htm
-#usr/share/ghostscript/8.15/doc/DLL.htm
-#usr/share/ghostscript/8.15/doc/Develop.htm
-#usr/share/ghostscript/8.15/doc/Devices.htm
-#usr/share/ghostscript/8.15/doc/Drivers.htm
-#usr/share/ghostscript/8.15/doc/Fonts.htm
-#usr/share/ghostscript/8.15/doc/Helpers.htm
-#usr/share/ghostscript/8.15/doc/Hershey.htm
-#usr/share/ghostscript/8.15/doc/History1.htm
-#usr/share/ghostscript/8.15/doc/History2.htm
-#usr/share/ghostscript/8.15/doc/History3.htm
-#usr/share/ghostscript/8.15/doc/History4.htm
-#usr/share/ghostscript/8.15/doc/History5.htm
-#usr/share/ghostscript/8.15/doc/History6.htm
-#usr/share/ghostscript/8.15/doc/Htmstyle.htm
-#usr/share/ghostscript/8.15/doc/Humor.htm
-#usr/share/ghostscript/8.15/doc/Install.htm
-#usr/share/ghostscript/8.15/doc/Language.htm
-#usr/share/ghostscript/8.15/doc/Lib.htm
-#usr/share/ghostscript/8.15/doc/Maintain.htm
-#usr/share/ghostscript/8.15/doc/Make.htm
-#usr/share/ghostscript/8.15/doc/News.htm
-#usr/share/ghostscript/8.15/doc/Projects.htm
-#usr/share/ghostscript/8.15/doc/Ps-style.htm
-#usr/share/ghostscript/8.15/doc/Ps2epsi.htm
-#usr/share/ghostscript/8.15/doc/Ps2pdf.htm
-#usr/share/ghostscript/8.15/doc/Psfiles.htm
-#usr/share/ghostscript/8.15/doc/README
-#usr/share/ghostscript/8.15/doc/Readme.htm
-#usr/share/ghostscript/8.15/doc/Release.htm
-#usr/share/ghostscript/8.15/doc/Source.htm
-#usr/share/ghostscript/8.15/doc/Tester.htm
-#usr/share/ghostscript/8.15/doc/Unix-lpr.htm
-#usr/share/ghostscript/8.15/doc/Use.htm
-#usr/share/ghostscript/8.15/doc/Xfonts.htm
-#usr/share/ghostscript/8.15/doc/gs.css
-#usr/share/ghostscript/8.15/doc/index.html
-#usr/share/ghostscript/8.15/examples
-#usr/share/ghostscript/8.15/examples/alphabet.ps
-#usr/share/ghostscript/8.15/examples/colorcir.ps
-#usr/share/ghostscript/8.15/examples/doretree.ps
-#usr/share/ghostscript/8.15/examples/escher.ps
-#usr/share/ghostscript/8.15/examples/golfer.eps
-#usr/share/ghostscript/8.15/examples/grayalph.ps
-#usr/share/ghostscript/8.15/examples/ridt91.eps
-#usr/share/ghostscript/8.15/examples/snowflak.ps
-#usr/share/ghostscript/8.15/examples/tiger.eps
-#usr/share/ghostscript/8.15/examples/vasarely.ps
-#usr/share/ghostscript/8.15/examples/waterfal.ps
-#usr/share/ghostscript/8.15/lib
-usr/share/ghostscript/8.15/lib/FAPIcidfmap
-usr/share/ghostscript/8.15/lib/FAPIconfig
-usr/share/ghostscript/8.15/lib/FAPIfontmap
-usr/share/ghostscript/8.15/lib/Fontmap
-usr/share/ghostscript/8.15/lib/Fontmap.GS
-usr/share/ghostscript/8.15/lib/PM760p.upp
-usr/share/ghostscript/8.15/lib/PM760pl.upp
-usr/share/ghostscript/8.15/lib/PM820p.upp
-usr/share/ghostscript/8.15/lib/PM820pl.upp
-usr/share/ghostscript/8.15/lib/Stc670p.upp
-usr/share/ghostscript/8.15/lib/Stc670pl.upp
-usr/share/ghostscript/8.15/lib/Stc680p.upp
-usr/share/ghostscript/8.15/lib/Stc680pl.upp
-usr/share/ghostscript/8.15/lib/Stc740p.upp
-usr/share/ghostscript/8.15/lib/Stc740pl.upp
-usr/share/ghostscript/8.15/lib/Stc760p.upp
-usr/share/ghostscript/8.15/lib/Stc760pl.upp
-usr/share/ghostscript/8.15/lib/Stc777p.upp
-usr/share/ghostscript/8.15/lib/Stc777pl.upp
-usr/share/ghostscript/8.15/lib/Stp720p.upp
-usr/share/ghostscript/8.15/lib/Stp720pl.upp
-usr/share/ghostscript/8.15/lib/Stp870p.upp
-usr/share/ghostscript/8.15/lib/Stp870pl.upp
-usr/share/ghostscript/8.15/lib/acctest.ps
-usr/share/ghostscript/8.15/lib/addxchar.ps
-usr/share/ghostscript/8.15/lib/align.ps
-usr/share/ghostscript/8.15/lib/bdftops.ps
-usr/share/ghostscript/8.15/lib/bj8.rpd
-usr/share/ghostscript/8.15/lib/bj8gc12f.upp
-usr/share/ghostscript/8.15/lib/bj8hg12f.upp
-usr/share/ghostscript/8.15/lib/bj8oh06n.upp
-usr/share/ghostscript/8.15/lib/bj8pa06n.upp
-usr/share/ghostscript/8.15/lib/bj8pp12f.upp
-usr/share/ghostscript/8.15/lib/bj8ts06n.upp
-usr/share/ghostscript/8.15/lib/bjc6000a1.upp
-usr/share/ghostscript/8.15/lib/bjc6000b1.upp
-usr/share/ghostscript/8.15/lib/bjc610a0.upp
-usr/share/ghostscript/8.15/lib/bjc610a1.upp
-usr/share/ghostscript/8.15/lib/bjc610a2.upp
-usr/share/ghostscript/8.15/lib/bjc610a3.upp
-usr/share/ghostscript/8.15/lib/bjc610a4.upp
-usr/share/ghostscript/8.15/lib/bjc610a5.upp
-usr/share/ghostscript/8.15/lib/bjc610a6.upp
-usr/share/ghostscript/8.15/lib/bjc610a7.upp
-usr/share/ghostscript/8.15/lib/bjc610a8.upp
-usr/share/ghostscript/8.15/lib/bjc610b1.upp
-usr/share/ghostscript/8.15/lib/bjc610b2.upp
-usr/share/ghostscript/8.15/lib/bjc610b3.upp
-usr/share/ghostscript/8.15/lib/bjc610b4.upp
-usr/share/ghostscript/8.15/lib/bjc610b6.upp
-usr/share/ghostscript/8.15/lib/bjc610b7.upp
-usr/share/ghostscript/8.15/lib/bjc610b8.upp
-usr/share/ghostscript/8.15/lib/caption.ps
-usr/share/ghostscript/8.15/lib/cbjc600.ppd
-usr/share/ghostscript/8.15/lib/cbjc800.ppd
-usr/share/ghostscript/8.15/lib/cdj550.upp
-usr/share/ghostscript/8.15/lib/cdj690.upp
-usr/share/ghostscript/8.15/lib/cdj690ec.upp
-usr/share/ghostscript/8.15/lib/cid2code.ps
-usr/share/ghostscript/8.15/lib/cidfmap
-usr/share/ghostscript/8.15/lib/decrypt.ps
-usr/share/ghostscript/8.15/lib/dmp_init.ps
-usr/share/ghostscript/8.15/lib/dmp_site.ps
-usr/share/ghostscript/8.15/lib/dnj750c.upp
-usr/share/ghostscript/8.15/lib/dnj750m.upp
-usr/share/ghostscript/8.15/lib/docie.ps
-usr/share/ghostscript/8.15/lib/errpage.ps
-usr/share/ghostscript/8.15/lib/escp_24.src
-usr/share/ghostscript/8.15/lib/font2c.ps
-usr/share/ghostscript/8.15/lib/font2pcl.ps
-usr/share/ghostscript/8.15/lib/ghostpdf.ppd
-usr/share/ghostscript/8.15/lib/gs_agl.ps
-usr/share/ghostscript/8.15/lib/gs_btokn.ps
-usr/share/ghostscript/8.15/lib/gs_ccfnt.ps
-usr/share/ghostscript/8.15/lib/gs_ce_e.ps
-usr/share/ghostscript/8.15/lib/gs_cff.ps
-usr/share/ghostscript/8.15/lib/gs_cidcm.ps
-usr/share/ghostscript/8.15/lib/gs_ciddc.ps
-usr/share/ghostscript/8.15/lib/gs_cidfm.ps
-usr/share/ghostscript/8.15/lib/gs_cidfn.ps
-usr/share/ghostscript/8.15/lib/gs_cidtt.ps
-usr/share/ghostscript/8.15/lib/gs_ciecs2.ps
-usr/share/ghostscript/8.15/lib/gs_ciecs3.ps
-usr/share/ghostscript/8.15/lib/gs_cmap.ps
-usr/share/ghostscript/8.15/lib/gs_cmdl.ps
-usr/share/ghostscript/8.15/lib/gs_cspace.ps
-usr/share/ghostscript/8.15/lib/gs_css_e.ps
-usr/share/ghostscript/8.15/lib/gs_dbt_e.ps
-usr/share/ghostscript/8.15/lib/gs_devcs.ps
-usr/share/ghostscript/8.15/lib/gs_devn.ps
-usr/share/ghostscript/8.15/lib/gs_devpxl.ps
-usr/share/ghostscript/8.15/lib/gs_diskf.ps
-usr/share/ghostscript/8.15/lib/gs_diskn.ps
-usr/share/ghostscript/8.15/lib/gs_dpnxt.ps
-usr/share/ghostscript/8.15/lib/gs_dps.ps
-usr/share/ghostscript/8.15/lib/gs_dps1.ps
-usr/share/ghostscript/8.15/lib/gs_dps2.ps
-usr/share/ghostscript/8.15/lib/gs_dscp.ps
-usr/share/ghostscript/8.15/lib/gs_epsf.ps
-usr/share/ghostscript/8.15/lib/gs_fapi.ps
-usr/share/ghostscript/8.15/lib/gs_fform.ps
-usr/share/ghostscript/8.15/lib/gs_fntem.ps
-usr/share/ghostscript/8.15/lib/gs_fonts.ps
-usr/share/ghostscript/8.15/lib/gs_frsd.ps
-usr/share/ghostscript/8.15/lib/gs_icc.ps
-usr/share/ghostscript/8.15/lib/gs_il1_e.ps
-usr/share/ghostscript/8.15/lib/gs_il2_e.ps
-usr/share/ghostscript/8.15/lib/gs_img.ps
-usr/share/ghostscript/8.15/lib/gs_indxd.ps
-usr/share/ghostscript/8.15/lib/gs_init.ps
-usr/share/ghostscript/8.15/lib/gs_kanji.ps
-usr/share/ghostscript/8.15/lib/gs_ksb_e.ps
-usr/share/ghostscript/8.15/lib/gs_l.xbm
-usr/share/ghostscript/8.15/lib/gs_l.xpm
-usr/share/ghostscript/8.15/lib/gs_l2img.ps
-usr/share/ghostscript/8.15/lib/gs_l_m.xbm
-usr/share/ghostscript/8.15/lib/gs_lev2.ps
-usr/share/ghostscript/8.15/lib/gs_lgo_e.ps
-usr/share/ghostscript/8.15/lib/gs_lgx_e.ps
-usr/share/ghostscript/8.15/lib/gs_ll3.ps
-usr/share/ghostscript/8.15/lib/gs_m.xbm
-usr/share/ghostscript/8.15/lib/gs_m.xpm
-usr/share/ghostscript/8.15/lib/gs_m_m.xbm
-usr/share/ghostscript/8.15/lib/gs_mex_e.ps
-usr/share/ghostscript/8.15/lib/gs_mgl_e.ps
-usr/share/ghostscript/8.15/lib/gs_mro_e.ps
-usr/share/ghostscript/8.15/lib/gs_patrn.ps
-usr/share/ghostscript/8.15/lib/gs_pdf_e.ps
-usr/share/ghostscript/8.15/lib/gs_pdfwr.ps
-usr/share/ghostscript/8.15/lib/gs_pfile.ps
-usr/share/ghostscript/8.15/lib/gs_rdlin.ps
-usr/share/ghostscript/8.15/lib/gs_res.ps
-usr/share/ghostscript/8.15/lib/gs_resmp.ps
-usr/share/ghostscript/8.15/lib/gs_resst.ps
-usr/share/ghostscript/8.15/lib/gs_s.xbm
-usr/share/ghostscript/8.15/lib/gs_s.xpm
-usr/share/ghostscript/8.15/lib/gs_s_m.xbm
-usr/share/ghostscript/8.15/lib/gs_sepr.ps
-usr/share/ghostscript/8.15/lib/gs_setpd.ps
-usr/share/ghostscript/8.15/lib/gs_statd.ps
-usr/share/ghostscript/8.15/lib/gs_std_e.ps
-usr/share/ghostscript/8.15/lib/gs_stres.ps
-usr/share/ghostscript/8.15/lib/gs_sym_e.ps
-usr/share/ghostscript/8.15/lib/gs_t.xbm
-usr/share/ghostscript/8.15/lib/gs_t.xpm
-usr/share/ghostscript/8.15/lib/gs_t_m.xbm
-usr/share/ghostscript/8.15/lib/gs_trap.ps
-usr/share/ghostscript/8.15/lib/gs_ttf.ps
-usr/share/ghostscript/8.15/lib/gs_typ32.ps
-usr/share/ghostscript/8.15/lib/gs_typ42.ps
-usr/share/ghostscript/8.15/lib/gs_type1.ps
-usr/share/ghostscript/8.15/lib/gs_wan_e.ps
-usr/share/ghostscript/8.15/lib/gs_wl1_e.ps
-usr/share/ghostscript/8.15/lib/gs_wl2_e.ps
-usr/share/ghostscript/8.15/lib/gs_wl5_e.ps
-usr/share/ghostscript/8.15/lib/gslp.ps
-usr/share/ghostscript/8.15/lib/gsnup.ps
-usr/share/ghostscript/8.15/lib/ht_ccsto.ps
-usr/share/ghostscript/8.15/lib/image-qa.ps
-usr/share/ghostscript/8.15/lib/impath.ps
-usr/share/ghostscript/8.15/lib/jispaper.ps
-usr/share/ghostscript/8.15/lib/landscap.ps
-usr/share/ghostscript/8.15/lib/level1.ps
-usr/share/ghostscript/8.15/lib/lines.ps
-usr/share/ghostscript/8.15/lib/markhint.ps
-usr/share/ghostscript/8.15/lib/markpath.ps
-usr/share/ghostscript/8.15/lib/necp2x.upp
-usr/share/ghostscript/8.15/lib/necp2x6.upp
-usr/share/ghostscript/8.15/lib/packfile.ps
-usr/share/ghostscript/8.15/lib/pcharstr.ps
-usr/share/ghostscript/8.15/lib/pdf2dsc.ps
-usr/share/ghostscript/8.15/lib/pdf_base.ps
-usr/share/ghostscript/8.15/lib/pdf_draw.ps
-usr/share/ghostscript/8.15/lib/pdf_font.ps
-usr/share/ghostscript/8.15/lib/pdf_main.ps
-usr/share/ghostscript/8.15/lib/pdf_ops.ps
-usr/share/ghostscript/8.15/lib/pdf_rbld.ps
-usr/share/ghostscript/8.15/lib/pdf_sec.ps
-usr/share/ghostscript/8.15/lib/pdfopt.ps
-usr/share/ghostscript/8.15/lib/pdfwrite.ps
-usr/share/ghostscript/8.15/lib/pf2afm.ps
-usr/share/ghostscript/8.15/lib/pfbtopfa.ps
-usr/share/ghostscript/8.15/lib/ppath.ps
-usr/share/ghostscript/8.15/lib/prfont.ps
-usr/share/ghostscript/8.15/lib/printafm.ps
-usr/share/ghostscript/8.15/lib/ps2ai.ps
-usr/share/ghostscript/8.15/lib/ps2ascii.ps
-usr/share/ghostscript/8.15/lib/ps2epsi.ps
-usr/share/ghostscript/8.15/lib/quit.ps
-usr/share/ghostscript/8.15/lib/ras1.upp
-usr/share/ghostscript/8.15/lib/ras24.upp
-usr/share/ghostscript/8.15/lib/ras3.upp
-usr/share/ghostscript/8.15/lib/ras32.upp
-usr/share/ghostscript/8.15/lib/ras4.upp
-usr/share/ghostscript/8.15/lib/ras8m.upp
-usr/share/ghostscript/8.15/lib/rollconv.ps
-usr/share/ghostscript/8.15/lib/s400a1.upp
-usr/share/ghostscript/8.15/lib/s400b1.upp
-usr/share/ghostscript/8.15/lib/sharp.upp
-usr/share/ghostscript/8.15/lib/showchar.ps
-usr/share/ghostscript/8.15/lib/showpage.ps
-usr/share/ghostscript/8.15/lib/st640ih.upp
-usr/share/ghostscript/8.15/lib/st640ihg.upp
-usr/share/ghostscript/8.15/lib/st640p.upp
-usr/share/ghostscript/8.15/lib/st640pg.upp
-usr/share/ghostscript/8.15/lib/st640pl.upp
-usr/share/ghostscript/8.15/lib/st640plg.upp
-usr/share/ghostscript/8.15/lib/stc.upp
-usr/share/ghostscript/8.15/lib/stc1520h.upp
-usr/share/ghostscript/8.15/lib/stc2.upp
-usr/share/ghostscript/8.15/lib/stc200_h.upp
-usr/share/ghostscript/8.15/lib/stc2_h.upp
-usr/share/ghostscript/8.15/lib/stc2s_h.upp
-usr/share/ghostscript/8.15/lib/stc300.upp
-usr/share/ghostscript/8.15/lib/stc300bl.upp
-usr/share/ghostscript/8.15/lib/stc300bm.upp
-usr/share/ghostscript/8.15/lib/stc500p.upp
-usr/share/ghostscript/8.15/lib/stc500ph.upp
-usr/share/ghostscript/8.15/lib/stc600ih.upp
-usr/share/ghostscript/8.15/lib/stc600p.upp
-usr/share/ghostscript/8.15/lib/stc600pl.upp
-usr/share/ghostscript/8.15/lib/stc640p.upp
-usr/share/ghostscript/8.15/lib/stc740ih.upp
-usr/share/ghostscript/8.15/lib/stc800ih.upp
-usr/share/ghostscript/8.15/lib/stc800p.upp
-usr/share/ghostscript/8.15/lib/stc800pl.upp
-usr/share/ghostscript/8.15/lib/stc_h.upp
-usr/share/ghostscript/8.15/lib/stc_l.upp
-usr/share/ghostscript/8.15/lib/stcany.upp
-usr/share/ghostscript/8.15/lib/stcany_h.upp
-usr/share/ghostscript/8.15/lib/stcinfo.ps
-usr/share/ghostscript/8.15/lib/stcolor.ps
-usr/share/ghostscript/8.15/lib/stocht.ps
-usr/share/ghostscript/8.15/lib/traceimg.ps
-usr/share/ghostscript/8.15/lib/traceop.ps
-usr/share/ghostscript/8.15/lib/type1enc.ps
-usr/share/ghostscript/8.15/lib/type1ops.ps
-usr/share/ghostscript/8.15/lib/uninfo.ps
-usr/share/ghostscript/8.15/lib/unprot.ps
-usr/share/ghostscript/8.15/lib/viewcmyk.ps
-usr/share/ghostscript/8.15/lib/viewgif.ps
-usr/share/ghostscript/8.15/lib/viewjpeg.ps
-usr/share/ghostscript/8.15/lib/viewmiff.ps
-usr/share/ghostscript/8.15/lib/viewpbm.ps
-usr/share/ghostscript/8.15/lib/viewpcx.ps
-usr/share/ghostscript/8.15/lib/viewps2a.ps
-usr/share/ghostscript/8.15/lib/wftopfa.ps
-usr/share/ghostscript/8.15/lib/winmaps.ps
-usr/share/ghostscript/8.15/lib/wrfont.ps
-usr/share/ghostscript/8.15/lib/xlatmap
-usr/share/ghostscript/8.15/lib/zeroline.ps
+#usr/share/ghostscript/9.20
+#usr/share/ghostscript/9.20/doc
+#usr/share/ghostscript/9.20/doc/API.htm
+#usr/share/ghostscript/9.20/doc/AUTHORS
+#usr/share/ghostscript/9.20/doc/C-style.htm
+#usr/share/ghostscript/9.20/doc/COPYING
+#usr/share/ghostscript/9.20/doc/Changes.htm
+#usr/share/ghostscript/9.20/doc/Commprod.htm
+#usr/share/ghostscript/9.20/doc/DLL.htm
+#usr/share/ghostscript/9.20/doc/Deprecated.htm
+#usr/share/ghostscript/9.20/doc/Details.htm
+#usr/share/ghostscript/9.20/doc/Details8.htm
+#usr/share/ghostscript/9.20/doc/Details9.htm
+#usr/share/ghostscript/9.20/doc/Develop.htm
+#usr/share/ghostscript/9.20/doc/Devices.htm
+#usr/share/ghostscript/9.20/doc/Drivers.htm
+#usr/share/ghostscript/9.20/doc/Fonts.htm
+#usr/share/ghostscript/9.20/doc/GS9_Color_Management.pdf
+#usr/share/ghostscript/9.20/doc/GS9_Color_Management.tex
+#usr/share/ghostscript/9.20/doc/Helpers.htm
+#usr/share/ghostscript/9.20/doc/Hershey.htm
+#usr/share/ghostscript/9.20/doc/History1.htm
+#usr/share/ghostscript/9.20/doc/History2.htm
+#usr/share/ghostscript/9.20/doc/History3.htm
+#usr/share/ghostscript/9.20/doc/History4.htm
+#usr/share/ghostscript/9.20/doc/History5.htm
+#usr/share/ghostscript/9.20/doc/History6.htm
+#usr/share/ghostscript/9.20/doc/History7.htm
+#usr/share/ghostscript/9.20/doc/History8.htm
+#usr/share/ghostscript/9.20/doc/History9.htm
+#usr/share/ghostscript/9.20/doc/Install.htm
+#usr/share/ghostscript/9.20/doc/Issues.htm
+#usr/share/ghostscript/9.20/doc/Language.htm
+#usr/share/ghostscript/9.20/doc/Lib.htm
+#usr/share/ghostscript/9.20/doc/Make.htm
+#usr/share/ghostscript/9.20/doc/News.htm
+#usr/share/ghostscript/9.20/doc/Projects.htm
+#usr/share/ghostscript/9.20/doc/Ps-style.htm
+#usr/share/ghostscript/9.20/doc/Ps2epsi.htm
+#usr/share/ghostscript/9.20/doc/Psfiles.htm
+#usr/share/ghostscript/9.20/doc/Readme.htm
+#usr/share/ghostscript/9.20/doc/Release.htm
+#usr/share/ghostscript/9.20/doc/Source.htm
+#usr/share/ghostscript/9.20/doc/Unix-lpr.htm
+#usr/share/ghostscript/9.20/doc/Use.htm
+#usr/share/ghostscript/9.20/doc/WhatIsGS.htm
+#usr/share/ghostscript/9.20/doc/Xfonts.htm
+#usr/share/ghostscript/9.20/doc/gs-vms.hlp
+#usr/share/ghostscript/9.20/doc/gs.css
+#usr/share/ghostscript/9.20/doc/gsdoc.el
+#usr/share/ghostscript/9.20/doc/index.html
+#usr/share/ghostscript/9.20/doc/pscet_status.txt
+#usr/share/ghostscript/9.20/doc/thirdparty.htm
+#usr/share/ghostscript/9.20/examples
+#usr/share/ghostscript/9.20/examples/alphabet.ps
+#usr/share/ghostscript/9.20/examples/annots.pdf
+#usr/share/ghostscript/9.20/examples/cjk
+#usr/share/ghostscript/9.20/examples/cjk/all_ac1.ps
+#usr/share/ghostscript/9.20/examples/cjk/all_ag1.ps
+#usr/share/ghostscript/9.20/examples/cjk/all_aj1.ps
+#usr/share/ghostscript/9.20/examples/cjk/all_aj2.ps
+#usr/share/ghostscript/9.20/examples/cjk/all_ak1.ps
+#usr/share/ghostscript/9.20/examples/cjk/article9.ps
+#usr/share/ghostscript/9.20/examples/cjk/gscjk_ac.ps
+#usr/share/ghostscript/9.20/examples/cjk/gscjk_ag.ps
+#usr/share/ghostscript/9.20/examples/cjk/gscjk_aj.ps
+#usr/share/ghostscript/9.20/examples/cjk/gscjk_ak.ps
+#usr/share/ghostscript/9.20/examples/cjk/iso2022.ps
+#usr/share/ghostscript/9.20/examples/cjk/iso2022v.ps
+#usr/share/ghostscript/9.20/examples/colorcir.ps
+#usr/share/ghostscript/9.20/examples/doretree.ps
+#usr/share/ghostscript/9.20/examples/escher.ps
+#usr/share/ghostscript/9.20/examples/golfer.eps
+#usr/share/ghostscript/9.20/examples/grayalph.ps
+#usr/share/ghostscript/9.20/examples/ridt91.eps
+#usr/share/ghostscript/9.20/examples/snowflak.ps
+#usr/share/ghostscript/9.20/examples/text_graph_image_cmyk_rgb.pdf
+#usr/share/ghostscript/9.20/examples/text_graphic_image.pdf
+#usr/share/ghostscript/9.20/examples/tiger.eps
+#usr/share/ghostscript/9.20/examples/transparency_example.ps
+#usr/share/ghostscript/9.20/examples/vasarely.ps
+#usr/share/ghostscript/9.20/examples/waterfal.ps
+#usr/share/ghostscript/9.20/lib
+#usr/share/ghostscript/9.20/lib/PDFA_def.ps
+#usr/share/ghostscript/9.20/lib/PDFX_def.ps
+#usr/share/ghostscript/9.20/lib/PM760p.upp
+#usr/share/ghostscript/9.20/lib/PM760pl.upp
+#usr/share/ghostscript/9.20/lib/PM820p.upp
+#usr/share/ghostscript/9.20/lib/PM820pl.upp
+#usr/share/ghostscript/9.20/lib/Stc670p.upp
+#usr/share/ghostscript/9.20/lib/Stc670pl.upp
+#usr/share/ghostscript/9.20/lib/Stc680p.upp
+#usr/share/ghostscript/9.20/lib/Stc680pl.upp
+#usr/share/ghostscript/9.20/lib/Stc740p.upp
+#usr/share/ghostscript/9.20/lib/Stc740pl.upp
+#usr/share/ghostscript/9.20/lib/Stc760p.upp
+#usr/share/ghostscript/9.20/lib/Stc760pl.upp
+#usr/share/ghostscript/9.20/lib/Stc777p.upp
+#usr/share/ghostscript/9.20/lib/Stc777pl.upp
+#usr/share/ghostscript/9.20/lib/Stp720p.upp
+#usr/share/ghostscript/9.20/lib/Stp720pl.upp
+#usr/share/ghostscript/9.20/lib/Stp870p.upp
+#usr/share/ghostscript/9.20/lib/Stp870pl.upp
+#usr/share/ghostscript/9.20/lib/acctest.ps
+#usr/share/ghostscript/9.20/lib/addxchar.ps
+#usr/share/ghostscript/9.20/lib/align.ps
+#usr/share/ghostscript/9.20/lib/bj8.rpd
+#usr/share/ghostscript/9.20/lib/bj8gc12f.upp
+#usr/share/ghostscript/9.20/lib/bj8hg12f.upp
+#usr/share/ghostscript/9.20/lib/bj8oh06n.upp
+#usr/share/ghostscript/9.20/lib/bj8pa06n.upp
+#usr/share/ghostscript/9.20/lib/bj8pp12f.upp
+#usr/share/ghostscript/9.20/lib/bj8ts06n.upp
+#usr/share/ghostscript/9.20/lib/bjc6000a1.upp
+#usr/share/ghostscript/9.20/lib/bjc6000b1.upp
+#usr/share/ghostscript/9.20/lib/bjc610a0.upp
+#usr/share/ghostscript/9.20/lib/bjc610a1.upp
+#usr/share/ghostscript/9.20/lib/bjc610a2.upp
+#usr/share/ghostscript/9.20/lib/bjc610a3.upp
+#usr/share/ghostscript/9.20/lib/bjc610a4.upp
+#usr/share/ghostscript/9.20/lib/bjc610a5.upp
+#usr/share/ghostscript/9.20/lib/bjc610a6.upp
+#usr/share/ghostscript/9.20/lib/bjc610a7.upp
+#usr/share/ghostscript/9.20/lib/bjc610a8.upp
+#usr/share/ghostscript/9.20/lib/bjc610b1.upp
+#usr/share/ghostscript/9.20/lib/bjc610b2.upp
+#usr/share/ghostscript/9.20/lib/bjc610b3.upp
+#usr/share/ghostscript/9.20/lib/bjc610b4.upp
+#usr/share/ghostscript/9.20/lib/bjc610b6.upp
+#usr/share/ghostscript/9.20/lib/bjc610b7.upp
+#usr/share/ghostscript/9.20/lib/bjc610b8.upp
+#usr/share/ghostscript/9.20/lib/caption.ps
+#usr/share/ghostscript/9.20/lib/cbjc600.ppd
+#usr/share/ghostscript/9.20/lib/cbjc800.ppd
+#usr/share/ghostscript/9.20/lib/cdj550.upp
+#usr/share/ghostscript/9.20/lib/cdj690.upp
+#usr/share/ghostscript/9.20/lib/cdj690ec.upp
+#usr/share/ghostscript/9.20/lib/cid2code.ps
+#usr/share/ghostscript/9.20/lib/decrypt.ps
+#usr/share/ghostscript/9.20/lib/dmp_init.ps
+#usr/share/ghostscript/9.20/lib/dmp_site.ps
+#usr/share/ghostscript/9.20/lib/dnj750c.upp
+#usr/share/ghostscript/9.20/lib/dnj750m.upp
+#usr/share/ghostscript/9.20/lib/docie.ps
+#usr/share/ghostscript/9.20/lib/escp_24.src
+#usr/share/ghostscript/9.20/lib/font2c.ps
+#usr/share/ghostscript/9.20/lib/font2pcl.ps
+#usr/share/ghostscript/9.20/lib/ghostpdf.ppd
+#usr/share/ghostscript/9.20/lib/gs_ce_e.ps
+#usr/share/ghostscript/9.20/lib/gs_cmdl.ps
+#usr/share/ghostscript/9.20/lib/gs_il2_e.ps
+#usr/share/ghostscript/9.20/lib/gs_kanji.ps
+#usr/share/ghostscript/9.20/lib/gs_ksb_e.ps
+#usr/share/ghostscript/9.20/lib/gs_l.xbm
+#usr/share/ghostscript/9.20/lib/gs_l.xpm
+#usr/share/ghostscript/9.20/lib/gs_l_m.xbm
+#usr/share/ghostscript/9.20/lib/gs_lgo_e.ps
+#usr/share/ghostscript/9.20/lib/gs_lgx_e.ps
+#usr/share/ghostscript/9.20/lib/gs_m.xbm
+#usr/share/ghostscript/9.20/lib/gs_m.xpm
+#usr/share/ghostscript/9.20/lib/gs_m_m.xbm
+#usr/share/ghostscript/9.20/lib/gs_pfile.ps
+#usr/share/ghostscript/9.20/lib/gs_rdlin.ps
+#usr/share/ghostscript/9.20/lib/gs_s.xbm
+#usr/share/ghostscript/9.20/lib/gs_s.xpm
+#usr/share/ghostscript/9.20/lib/gs_s_m.xbm
+#usr/share/ghostscript/9.20/lib/gs_t.xbm
+#usr/share/ghostscript/9.20/lib/gs_t.xpm
+#usr/share/ghostscript/9.20/lib/gs_t_m.xbm
+#usr/share/ghostscript/9.20/lib/gs_wl1_e.ps
+#usr/share/ghostscript/9.20/lib/gs_wl2_e.ps
+#usr/share/ghostscript/9.20/lib/gs_wl5_e.ps
+#usr/share/ghostscript/9.20/lib/gslp.ps
+#usr/share/ghostscript/9.20/lib/gsnup.ps
+#usr/share/ghostscript/9.20/lib/ht_ccsto.ps
+#usr/share/ghostscript/9.20/lib/image-qa.ps
+#usr/share/ghostscript/9.20/lib/impath.ps
+#usr/share/ghostscript/9.20/lib/jispaper.ps
+#usr/share/ghostscript/9.20/lib/landscap.ps
+#usr/share/ghostscript/9.20/lib/level1.ps
+#usr/share/ghostscript/9.20/lib/lines.ps
+#usr/share/ghostscript/9.20/lib/markhint.ps
+#usr/share/ghostscript/9.20/lib/markpath.ps
+#usr/share/ghostscript/9.20/lib/mkcidfm.ps
+#usr/share/ghostscript/9.20/lib/necp2x.upp
+#usr/share/ghostscript/9.20/lib/necp2x6.upp
+#usr/share/ghostscript/9.20/lib/packfile.ps
+#usr/share/ghostscript/9.20/lib/pcharstr.ps
+#usr/share/ghostscript/9.20/lib/pdf2dsc.ps
+#usr/share/ghostscript/9.20/lib/pdfwrite.ps
+#usr/share/ghostscript/9.20/lib/pf2afm.ps
+#usr/share/ghostscript/9.20/lib/pfbtopfa.ps
+#usr/share/ghostscript/9.20/lib/ppath.ps
+#usr/share/ghostscript/9.20/lib/pphs.ps
+#usr/share/ghostscript/9.20/lib/prfont.ps
+#usr/share/ghostscript/9.20/lib/printafm.ps
+#usr/share/ghostscript/9.20/lib/ps2ai.ps
+#usr/share/ghostscript/9.20/lib/ps2ascii.ps
+#usr/share/ghostscript/9.20/lib/ps2epsi.ps
+#usr/share/ghostscript/9.20/lib/quit.ps
+#usr/share/ghostscript/9.20/lib/ras1.upp
+#usr/share/ghostscript/9.20/lib/ras24.upp
+#usr/share/ghostscript/9.20/lib/ras3.upp
+#usr/share/ghostscript/9.20/lib/ras32.upp
+#usr/share/ghostscript/9.20/lib/ras4.upp
+#usr/share/ghostscript/9.20/lib/ras8m.upp
+#usr/share/ghostscript/9.20/lib/rollconv.ps
+#usr/share/ghostscript/9.20/lib/s400a1.upp
+#usr/share/ghostscript/9.20/lib/s400b1.upp
+#usr/share/ghostscript/9.20/lib/sharp.upp
+#usr/share/ghostscript/9.20/lib/showchar.ps
+#usr/share/ghostscript/9.20/lib/showpage.ps
+#usr/share/ghostscript/9.20/lib/sipixa6.upp
+#usr/share/ghostscript/9.20/lib/st640ih.upp
+#usr/share/ghostscript/9.20/lib/st640ihg.upp
+#usr/share/ghostscript/9.20/lib/st640p.upp
+#usr/share/ghostscript/9.20/lib/st640pg.upp
+#usr/share/ghostscript/9.20/lib/st640pl.upp
+#usr/share/ghostscript/9.20/lib/st640plg.upp
+#usr/share/ghostscript/9.20/lib/stc.upp
+#usr/share/ghostscript/9.20/lib/stc1520h.upp
+#usr/share/ghostscript/9.20/lib/stc2.upp
+#usr/share/ghostscript/9.20/lib/stc200_h.upp
+#usr/share/ghostscript/9.20/lib/stc2_h.upp
+#usr/share/ghostscript/9.20/lib/stc2s_h.upp
+#usr/share/ghostscript/9.20/lib/stc300.upp
+#usr/share/ghostscript/9.20/lib/stc300bl.upp
+#usr/share/ghostscript/9.20/lib/stc300bm.upp
+#usr/share/ghostscript/9.20/lib/stc500p.upp
+#usr/share/ghostscript/9.20/lib/stc500ph.upp
+#usr/share/ghostscript/9.20/lib/stc600ih.upp
+#usr/share/ghostscript/9.20/lib/stc600p.upp
+#usr/share/ghostscript/9.20/lib/stc600pl.upp
+#usr/share/ghostscript/9.20/lib/stc640p.upp
+#usr/share/ghostscript/9.20/lib/stc740ih.upp
+#usr/share/ghostscript/9.20/lib/stc800ih.upp
+#usr/share/ghostscript/9.20/lib/stc800p.upp
+#usr/share/ghostscript/9.20/lib/stc800pl.upp
+#usr/share/ghostscript/9.20/lib/stc_h.upp
+#usr/share/ghostscript/9.20/lib/stc_l.upp
+#usr/share/ghostscript/9.20/lib/stcany.upp
+#usr/share/ghostscript/9.20/lib/stcany_h.upp
+#usr/share/ghostscript/9.20/lib/stcinfo.ps
+#usr/share/ghostscript/9.20/lib/stcolor.ps
+#usr/share/ghostscript/9.20/lib/stocht.ps
+#usr/share/ghostscript/9.20/lib/traceimg.ps
+#usr/share/ghostscript/9.20/lib/traceop.ps
+#usr/share/ghostscript/9.20/lib/type1enc.ps
+#usr/share/ghostscript/9.20/lib/type1ops.ps
+#usr/share/ghostscript/9.20/lib/uninfo.ps
+#usr/share/ghostscript/9.20/lib/unprot.ps
+#usr/share/ghostscript/9.20/lib/viewcmyk.ps
+#usr/share/ghostscript/9.20/lib/viewgif.ps
+#usr/share/ghostscript/9.20/lib/viewjpeg.ps
+#usr/share/ghostscript/9.20/lib/viewmiff.ps
+#usr/share/ghostscript/9.20/lib/viewpbm.ps
+#usr/share/ghostscript/9.20/lib/viewpcx.ps
+#usr/share/ghostscript/9.20/lib/viewps2a.ps
+#usr/share/ghostscript/9.20/lib/wftopfa.ps
+#usr/share/ghostscript/9.20/lib/winmaps.ps
+#usr/share/ghostscript/9.20/lib/wrfont.ps
+#usr/share/ghostscript/9.20/lib/zeroline.ps
 #usr/share/ghostscript/fonts
 #usr/share/ghostscript/fonts/COPYING
 #usr/share/ghostscript/fonts/ChangeLog
@@ -688,4 +446,41 @@ usr/share/ghostscript/fonts/u004006t.pfm
 usr/share/ghostscript/fonts/z003034l.afm
 usr/share/ghostscript/fonts/z003034l.pfb
 usr/share/ghostscript/fonts/z003034l.pfm
-var/ipfire/cups/pstoraster.convs
+#usr/share/man/de/man1/dvipdf.1
+#usr/share/man/de/man1/eps2eps.1
+#usr/share/man/de/man1/font2c.1
+#usr/share/man/de/man1/gsnd.1
+#usr/share/man/de/man1/pdf2dsc.1
+#usr/share/man/de/man1/pdf2ps.1
+#usr/share/man/de/man1/printafm.1
+#usr/share/man/de/man1/ps2ascii.1
+#usr/share/man/de/man1/ps2pdf.1
+#usr/share/man/de/man1/ps2pdf12.1
+#usr/share/man/de/man1/ps2pdf13.1
+#usr/share/man/de/man1/ps2pdf14.1
+#usr/share/man/de/man1/ps2ps.1
+#usr/share/man/de/man1/wftopfa.1
+#usr/share/man/man1/dvipdf.1
+#usr/share/man/man1/eps2eps.1
+#usr/share/man/man1/font2c.1
+#usr/share/man/man1/gs.1
+#usr/share/man/man1/gsbj.1
+#usr/share/man/man1/gsdj.1
+#usr/share/man/man1/gsdj500.1
+#usr/share/man/man1/gslj.1
+#usr/share/man/man1/gslp.1
+#usr/share/man/man1/gsnd.1
+#usr/share/man/man1/pdf2dsc.1
+#usr/share/man/man1/pdf2ps.1
+#usr/share/man/man1/pf2afm.1
+#usr/share/man/man1/pfbtopfa.1
+#usr/share/man/man1/printafm.1
+#usr/share/man/man1/ps2ascii.1
+#usr/share/man/man1/ps2epsi.1
+#usr/share/man/man1/ps2pdf.1
+#usr/share/man/man1/ps2pdf12.1
+#usr/share/man/man1/ps2pdf13.1
+#usr/share/man/man1/ps2pdf14.1
+#usr/share/man/man1/ps2pdfwr.1
+#usr/share/man/man1/ps2ps.1
+#usr/share/man/man1/wftopfa.1
index ea31b20a1ce3215b3f9c63a7fa01c12280d48121..bf9e3728f578a826ca6b590fe93bc6480dfc5195 100644 (file)
@@ -10,18 +10,18 @@ usr/lib/perl5/site_perl/5.12.3/Error.pm
 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/Git/IndexInfo.pm
-#usr/lib/perl5/site_perl/5.12.3/Git/SVN
-usr/lib/perl5/site_perl/5.12.3/Git/SVN.pm
-usr/lib/perl5/site_perl/5.12.3/Git/SVN/Editor.pm
-usr/lib/perl5/site_perl/5.12.3/Git/SVN/Fetcher.pm
-usr/lib/perl5/site_perl/5.12.3/Git/SVN/GlobSpec.pm
-usr/lib/perl5/site_perl/5.12.3/Git/SVN/Log.pm
-usr/lib/perl5/site_perl/5.12.3/Git/SVN/Memoize
-usr/lib/perl5/site_perl/5.12.3/Git/SVN/Memoize/YAML.pm
-usr/lib/perl5/site_perl/5.12.3/Git/SVN/Migration.pm
-usr/lib/perl5/site_perl/5.12.3/Git/SVN/Prompt.pm
-usr/lib/perl5/site_perl/5.12.3/Git/SVN/Ra.pm
-usr/lib/perl5/site_perl/5.12.3/Git/SVN/Utils.pm
+usr/lib/perl5/site_perl/5.12.3/Git/SVN
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN.pm
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Editor.pm
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Fetcher.pm
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN/GlobSpec.pm
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Log.pm
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Memoize
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Memoize/YAML.pm
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Migration.pm
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Prompt.pm
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Ra.pm
+#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Utils.pm
 #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/libexec/git-core
@@ -138,7 +138,6 @@ usr/libexec/git-core/git-rebase--interactive
 usr/libexec/git-core/git-rebase--merge
 usr/libexec/git-core/git-receive-pack
 usr/libexec/git-core/git-reflog
-usr/libexec/git-core/git-relink
 usr/libexec/git-core/git-remote
 usr/libexec/git-core/git-remote-ext
 usr/libexec/git-core/git-remote-fd
@@ -201,6 +200,7 @@ usr/libexec/git-core/mergetools/diffmerge
 usr/libexec/git-core/mergetools/diffuse
 usr/libexec/git-core/mergetools/ecmerge
 usr/libexec/git-core/mergetools/emerge
+usr/libexec/git-core/mergetools/examdiff
 usr/libexec/git-core/mergetools/gvimdiff
 usr/libexec/git-core/mergetools/gvimdiff2
 usr/libexec/git-core/mergetools/gvimdiff3
@@ -228,6 +228,7 @@ usr/share/git-core/templates/hooks/pre-applypatch.sample
 usr/share/git-core/templates/hooks/pre-commit.sample
 usr/share/git-core/templates/hooks/pre-push.sample
 usr/share/git-core/templates/hooks/pre-rebase.sample
+usr/share/git-core/templates/hooks/pre-receive.sample
 usr/share/git-core/templates/hooks/prepare-commit-msg.sample
 usr/share/git-core/templates/hooks/update.sample
 #usr/share/git-core/templates/info
@@ -270,6 +271,7 @@ usr/share/git-core/templates/info/exclude
 #usr/share/git-gui/lib/msgs/ja.msg
 #usr/share/git-gui/lib/msgs/nb.msg
 #usr/share/git-gui/lib/msgs/pt_br.msg
+#usr/share/git-gui/lib/msgs/pt_pt.msg
 #usr/share/git-gui/lib/msgs/ru.msg
 #usr/share/git-gui/lib/msgs/sv.msg
 #usr/share/git-gui/lib/msgs/vi.msg
@@ -302,6 +304,7 @@ usr/share/git-core/templates/info/exclude
 #usr/share/gitk/lib/msgs/it.msg
 #usr/share/gitk/lib/msgs/ja.msg
 #usr/share/gitk/lib/msgs/pt_br.msg
+#usr/share/gitk/lib/msgs/pt_pt.msg
 #usr/share/gitk/lib/msgs/ru.msg
 #usr/share/gitk/lib/msgs/sv.msg
 #usr/share/gitk/lib/msgs/vi.msg
index f043ed26c14468f0fc2a670cd50b647b1180c1ff..241b14b9b17373c840a75fea73ba1cc63615a69c 100644 (file)
@@ -1,4 +1,5 @@
 usr/bin/netcat
+#usr/info/dir
 #usr/info/netcat.info
 #usr/man/man1/netcat.1
 #usr/share/locale/it/LC_MESSAGES/netcat.mo
index 1f48350dfdcd38e9cc9649e5f9da07543dc75e51..9e61f8bf87f684facab972e001cf45e3c8315e18 100644 (file)
@@ -1,30 +1,96 @@
 usr/bin/dfbdump
+usr/bin/dfbdumpinput
 usr/bin/dfbfx
 usr/bin/dfbg
 usr/bin/dfbinfo
 usr/bin/dfbinput
+usr/bin/dfbinspector
 usr/bin/dfblayer
+usr/bin/dfbmaster
 usr/bin/dfbpenmount
+usr/bin/dfbplay
 usr/bin/dfbscreen
+usr/bin/dfbshow
+usr/bin/dfbswitch
 usr/bin/directfb-config
 usr/bin/directfb-csource
 usr/bin/mkdfiff
 usr/bin/mkdgiff
+usr/bin/mkdgifft
+usr/bin/pxa3xx_dump
+#usr/include/++dfb
+#usr/include/++dfb/++dfb.h
+#usr/include/++dfb/++dfb_mangle.h
+#usr/include/++dfb/++dfb_unmangle.h
+#usr/include/++dfb/idirectfb.h
+#usr/include/++dfb/idirectfbdatabuffer.h
+#usr/include/++dfb/idirectfbdisplaylayer.h
+#usr/include/++dfb/idirectfbeventbuffer.h
+#usr/include/++dfb/idirectfbfont.h
+#usr/include/++dfb/idirectfbimageprovider.h
+#usr/include/++dfb/idirectfbinputdevice.h
+#usr/include/++dfb/idirectfbpalette.h
+#usr/include/++dfb/idirectfbscreen.h
+#usr/include/++dfb/idirectfbsurface.h
+#usr/include/++dfb/idirectfbvideoprovider.h
+#usr/include/++dfb/idirectfbwindow.h
 #usr/include/directfb
 #usr/include/directfb-internal
 #usr/include/directfb-internal/core
+#usr/include/directfb-internal/core/CoreDFB.h
+#usr/include/directfb-internal/core/CoreDFB_CallMode.h
+#usr/include/directfb-internal/core/CoreDFB_includes.h
+#usr/include/directfb-internal/core/CoreGraphicsState.h
+#usr/include/directfb-internal/core/CoreGraphicsStateClient.h
+#usr/include/directfb-internal/core/CoreGraphicsState_includes.h
+#usr/include/directfb-internal/core/CoreInputDevice.h
+#usr/include/directfb-internal/core/CoreInputDevice_includes.h
+#usr/include/directfb-internal/core/CoreLayer.h
+#usr/include/directfb-internal/core/CoreLayerContext.h
+#usr/include/directfb-internal/core/CoreLayerContext_includes.h
+#usr/include/directfb-internal/core/CoreLayerRegion.h
+#usr/include/directfb-internal/core/CoreLayerRegion_includes.h
+#usr/include/directfb-internal/core/CoreLayer_includes.h
+#usr/include/directfb-internal/core/CorePalette.h
+#usr/include/directfb-internal/core/CorePalette_includes.h
+#usr/include/directfb-internal/core/CoreScreen.h
+#usr/include/directfb-internal/core/CoreScreen_includes.h
+#usr/include/directfb-internal/core/CoreSlave.h
+#usr/include/directfb-internal/core/CoreSlave_includes.h
+#usr/include/directfb-internal/core/CoreSurface.h
+#usr/include/directfb-internal/core/CoreSurfaceClient.h
+#usr/include/directfb-internal/core/CoreSurfaceClient_includes.h
+#usr/include/directfb-internal/core/CoreSurface_includes.h
+#usr/include/directfb-internal/core/CoreWindow.h
+#usr/include/directfb-internal/core/CoreWindowStack.h
+#usr/include/directfb-internal/core/CoreWindowStack_includes.h
+#usr/include/directfb-internal/core/CoreWindow_includes.h
+#usr/include/directfb-internal/core/Debug.h
+#usr/include/directfb-internal/core/DisplayTask.h
+#usr/include/directfb-internal/core/Fifo.h
+#usr/include/directfb-internal/core/Interface.h
+#usr/include/directfb-internal/core/PacketBuffer.h
+#usr/include/directfb-internal/core/Renderer.h
+#usr/include/directfb-internal/core/SurfaceTask.h
+#usr/include/directfb-internal/core/Task.h
+#usr/include/directfb-internal/core/TaskManager.h
+#usr/include/directfb-internal/core/TaskThreadsQ.h
+#usr/include/directfb-internal/core/Util.h
 #usr/include/directfb-internal/core/clipboard.h
 #usr/include/directfb-internal/core/colorhash.h
 #usr/include/directfb-internal/core/core.h
 #usr/include/directfb-internal/core/core_parts.h
+#usr/include/directfb-internal/core/core_strings.h
 #usr/include/directfb-internal/core/core_system.h
 #usr/include/directfb-internal/core/coredefs.h
 #usr/include/directfb-internal/core/coretypes.h
 #usr/include/directfb-internal/core/fonts.h
 #usr/include/directfb-internal/core/gfxcard.h
 #usr/include/directfb-internal/core/graphics_driver.h
+#usr/include/directfb-internal/core/graphics_state.h
 #usr/include/directfb-internal/core/input.h
 #usr/include/directfb-internal/core/input_driver.h
+#usr/include/directfb-internal/core/input_hub.h
 #usr/include/directfb-internal/core/layer_context.h
 #usr/include/directfb-internal/core/layer_control.h
 #usr/include/directfb-internal/core/layer_region.h
@@ -36,8 +102,12 @@ usr/bin/mkdgiff
 #usr/include/directfb-internal/core/screens_internal.h
 #usr/include/directfb-internal/core/state.h
 #usr/include/directfb-internal/core/surface.h
+#usr/include/directfb-internal/core/surface_allocation.h
 #usr/include/directfb-internal/core/surface_buffer.h
+#usr/include/directfb-internal/core/surface_client.h
+#usr/include/directfb-internal/core/surface_core.h
 #usr/include/directfb-internal/core/surface_pool.h
+#usr/include/directfb-internal/core/surface_pool_bridge.h
 #usr/include/directfb-internal/core/system.h
 #usr/include/directfb-internal/core/windows.h
 #usr/include/directfb-internal/core/windows_internal.h
@@ -54,6 +124,8 @@ usr/bin/mkdgiff
 #usr/include/directfb-internal/display/idirectfbsurface.h
 #usr/include/directfb-internal/display/idirectfbsurface_layer.h
 #usr/include/directfb-internal/display/idirectfbsurface_window.h
+#usr/include/directfb-internal/dummy
+#usr/include/directfb-internal/dummy/dummy.h
 #usr/include/directfb-internal/fbdev
 #usr/include/directfb-internal/fbdev/agp.h
 #usr/include/directfb-internal/fbdev/fb.h
@@ -67,13 +139,16 @@ usr/bin/mkdgiff
 #usr/include/directfb-internal/gfx/generic/generic.h
 #usr/include/directfb-internal/gfx/util.h
 #usr/include/directfb-internal/idirectfb.h
+#usr/include/directfb-internal/init.h
 #usr/include/directfb-internal/input
 #usr/include/directfb-internal/input/idirectfbinputbuffer.h
 #usr/include/directfb-internal/input/idirectfbinputdevice.h
 #usr/include/directfb-internal/media
 #usr/include/directfb-internal/media/idirectfbdatabuffer.h
+#usr/include/directfb-internal/media/idirectfbdatabuffer_client.h
 #usr/include/directfb-internal/media/idirectfbfont.h
 #usr/include/directfb-internal/media/idirectfbimageprovider.h
+#usr/include/directfb-internal/media/idirectfbimageprovider_client.h
 #usr/include/directfb-internal/media/idirectfbvideoprovider.h
 #usr/include/directfb-internal/misc
 #usr/include/directfb-internal/misc/conf.h
@@ -85,20 +160,60 @@ usr/bin/mkdgiff
 #usr/include/directfb/dfiff.h
 #usr/include/directfb/dgiff.h
 #usr/include/directfb/direct
+#usr/include/directfb/direct/Lists.h
+#usr/include/directfb/direct/LockWQ.h
+#usr/include/directfb/direct/Magic.h
+#usr/include/directfb/direct/Mutex.h
+#usr/include/directfb/direct/Performer.h
+#usr/include/directfb/direct/String.h
+#usr/include/directfb/direct/TLSObject.h
+#usr/include/directfb/direct/ToString.h
+#usr/include/directfb/direct/Types++.h
+#usr/include/directfb/direct/atomic.h
 #usr/include/directfb/direct/build.h
 #usr/include/directfb/direct/clock.h
+#usr/include/directfb/direct/compiler.h
 #usr/include/directfb/direct/conf.h
 #usr/include/directfb/direct/debug.h
 #usr/include/directfb/direct/direct.h
+#usr/include/directfb/direct/fastlz.h
+#usr/include/directfb/direct/fifo.h
+#usr/include/directfb/direct/filesystem.h
+#usr/include/directfb/direct/flz.h
 #usr/include/directfb/direct/hash.h
+#usr/include/directfb/direct/init.h
 #usr/include/directfb/direct/interface.h
 #usr/include/directfb/direct/interface_implementation.h
 #usr/include/directfb/direct/list.h
 #usr/include/directfb/direct/log.h
+#usr/include/directfb/direct/log_domain.h
+#usr/include/directfb/direct/map.h
 #usr/include/directfb/direct/mem.h
 #usr/include/directfb/direct/memcpy.h
 #usr/include/directfb/direct/messages.h
 #usr/include/directfb/direct/modules.h
+#usr/include/directfb/direct/os
+#usr/include/directfb/direct/os/clock.h
+#usr/include/directfb/direct/os/filesystem.h
+#usr/include/directfb/direct/os/linux
+#usr/include/directfb/direct/os/linux/glibc
+#usr/include/directfb/direct/os/linux/glibc/filesystem.h
+#usr/include/directfb/direct/os/linux/glibc/mutex.h
+#usr/include/directfb/direct/os/linux/glibc/thread.h
+#usr/include/directfb/direct/os/linux/glibc/types.h
+#usr/include/directfb/direct/os/linux/glibc/waitqueue.h
+#usr/include/directfb/direct/os/log.h
+#usr/include/directfb/direct/os/mem.h
+#usr/include/directfb/direct/os/mutex.h
+#usr/include/directfb/direct/os/signals.h
+#usr/include/directfb/direct/os/system.h
+#usr/include/directfb/direct/os/thread.h
+#usr/include/directfb/direct/os/types.h
+#usr/include/directfb/direct/os/waitqueue.h
+#usr/include/directfb/direct/perf.h
+#usr/include/directfb/direct/print.h
+#usr/include/directfb/direct/processor.h
+#usr/include/directfb/direct/result.h
 #usr/include/directfb/direct/serial.h
 #usr/include/directfb/direct/signals.h
 #usr/include/directfb/direct/stream.h
@@ -109,14 +224,23 @@ usr/bin/mkdgiff
 #usr/include/directfb/direct/types.h
 #usr/include/directfb/direct/utf8.h
 #usr/include/directfb/direct/util.h
+#usr/include/directfb/direct/uuid.h
+#usr/include/directfb/directfb++.h
 #usr/include/directfb/directfb.h
+#usr/include/directfb/directfb_build.h
+#usr/include/directfb/directfb_graphics.h
 #usr/include/directfb/directfb_keyboard.h
 #usr/include/directfb/directfb_keynames.h
 #usr/include/directfb/directfb_strings.h
 #usr/include/directfb/directfb_util.h
 #usr/include/directfb/directfb_version.h
+#usr/include/directfb/directfb_water.h
+#usr/include/directfb/directfb_water_strings.h
+#usr/include/directfb/directfb_windows.h
 #usr/include/directfb/directfbgl.h
+#usr/include/directfb/directfbgl2.h
 #usr/include/directfb/fusion
+#usr/include/directfb/fusion/Debug.h
 #usr/include/directfb/fusion/arena.h
 #usr/include/directfb/fusion/build.h
 #usr/include/directfb/fusion/call.h
@@ -124,6 +248,7 @@ usr/bin/mkdgiff
 #usr/include/directfb/fusion/fusion.h
 #usr/include/directfb/fusion/fusion_internal.h
 #usr/include/directfb/fusion/hash.h
+#usr/include/directfb/fusion/init.h
 #usr/include/directfb/fusion/lock.h
 #usr/include/directfb/fusion/object.h
 #usr/include/directfb/fusion/property.h
@@ -137,113 +262,136 @@ usr/bin/mkdgiff
 #usr/include/directfb/fusion/shmalloc.h
 #usr/include/directfb/fusion/types.h
 #usr/include/directfb/fusion/vector.h
-#usr/lib/directfb-1.1-0
-#usr/lib/directfb-1.1-0/gfxdrivers
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_ati128.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_ati128.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_cle266.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_cle266.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_cyber5k.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_cyber5k.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_i810.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_i810.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_i830.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_i830.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_mach64.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_mach64.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_neomagic.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_neomagic.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nsc.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nsc.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nvidia.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nvidia.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_radeon.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_radeon.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_savage.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_savage.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sdlgraphics.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sdlgraphics.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sh7722.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sh7722.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sis315.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sis315.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_tdfx.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_tdfx.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_unichrome.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_unichrome.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_vmware.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_vmware.so
-#usr/lib/directfb-1.1-0/inputdrivers
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_joystick.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_joystick.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_keyboard.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_keyboard.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_linux_input.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_linux_input.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_lirc.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_lirc.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_mutouch.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_mutouch.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_penmount.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_penmount.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_ps2mouse.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_ps2mouse.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sdlinput.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sdlinput.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_serialmouse.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_serialmouse.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sonypi.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sonypi.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_wm97xx_ts.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_wm97xx_ts.so
-#usr/lib/directfb-1.1-0/interfaces
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBFont
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_default.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_default.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_ft2.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_ft2.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBVideoProvider
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so
-#usr/lib/directfb-1.1-0/systems
-#usr/lib/directfb-1.1-0/systems/libdirectfb_devmem.la
-usr/lib/directfb-1.1-0/systems/libdirectfb_devmem.so
-#usr/lib/directfb-1.1-0/systems/libdirectfb_fbdev.la
-usr/lib/directfb-1.1-0/systems/libdirectfb_fbdev.so
-#usr/lib/directfb-1.1-0/systems/libdirectfb_sdl.la
-usr/lib/directfb-1.1-0/systems/libdirectfb_sdl.so
-#usr/lib/directfb-1.1-0/wm
-#usr/lib/directfb-1.1-0/wm/libdirectfbwm_default.la
-usr/lib/directfb-1.1-0/wm/libdirectfbwm_default.so
-usr/lib/libdirect-1.1.so.0
-usr/lib/libdirect-1.1.so.0.1.0
+#usr/lib/directfb-1.7-7
+#usr/lib/directfb-1.7-7/gfxdrivers
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ati128.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ati128.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ep9x.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ep9x.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_i810.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_i810.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_i830.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_i830.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_mach64.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_mach64.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_matrox.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_matrox.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_neomagic.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_neomagic.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nsc.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nsc.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nvidia.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nvidia.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_pxa3xx.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_pxa3xx.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sdlgraphics.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sdlgraphics.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sis315.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sis315.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_tdfx.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_tdfx.so
+#usr/lib/directfb-1.7-7/inputdrivers
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_input_hub.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_input_hub.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_joystick.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_joystick.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_keyboard.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_keyboard.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_linux_input.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_linux_input.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_lirc.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_lirc.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_mutouch.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_mutouch.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_penmount.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_penmount.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ps2mouse.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ps2mouse.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sdlinput.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sdlinput.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_serialmouse.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_serialmouse.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sonypi.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sonypi.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_wm97xx_ts.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_wm97xx_ts.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_zytronic.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_zytronic.so
+#usr/lib/directfb-1.7-7/interfaces
+#usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager
+#usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager/libicoreresourcemanager_test.la
+usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager/libicoreresourcemanager_test.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_dgiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_dgiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_ft2.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_ft2.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_bmp.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_bmp.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_pnm.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_pnm.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_tiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_tiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows/libidirectfbwindows_default.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows/libidirectfbwindows_default.so
+#usr/lib/directfb-1.7-7/interfaces/IWater
+#usr/lib/directfb-1.7-7/interfaces/IWater/libiwater_default.la
+usr/lib/directfb-1.7-7/interfaces/IWater/libiwater_default.so
+#usr/lib/directfb-1.7-7/systems
+#usr/lib/directfb-1.7-7/systems/libdirectfb_devmem.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_devmem.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_dummy.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_dummy.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_fbdev.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_fbdev.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_sdl.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_sdl.so
+#usr/lib/directfb-1.7-7/wm
+#usr/lib/directfb-1.7-7/wm/libdirectfbwm_default.la
+usr/lib/directfb-1.7-7/wm/libdirectfbwm_default.so
+usr/lib/lib++dfb-1.7.so.7
+usr/lib/lib++dfb-1.7.so.7.0.0
+#usr/lib/lib++dfb.la
+#usr/lib/lib++dfb.so
+usr/lib/libdirect-1.7.so.7
+usr/lib/libdirect-1.7.so.7.0.0
 #usr/lib/libdirect.la
-usr/lib/libdirect.so
-usr/lib/libdirectfb-1.1.so.0
-usr/lib/libdirectfb-1.1.so.0.1.0
+#usr/lib/libdirect.so
+usr/lib/libdirectfb-1.7.so.7
+usr/lib/libdirectfb-1.7.so.7.0.0
 #usr/lib/libdirectfb.la
 usr/lib/libdirectfb.so
-usr/lib/libfusion-1.1.so.0
-usr/lib/libfusion-1.1.so.0.1.0
+usr/lib/libfusion-1.7.so.7
+usr/lib/libfusion-1.7.so.7.0.0
 #usr/lib/libfusion.la
-usr/lib/libfusion.so
+#usr/lib/libfusion.so
+#usr/lib/pkgconfig/++dfb.pc
 #usr/lib/pkgconfig/direct.pc
 #usr/lib/pkgconfig/directfb-internal.pc
 #usr/lib/pkgconfig/directfb.pc
 #usr/lib/pkgconfig/fusion.pc
-#usr/share/directfb-1.1.1
-usr/share/directfb-1.1.1/cursor.dat
+#usr/share/directfb-1.7.7
+usr/share/directfb-1.7.7/cursor.dat
+usr/share/directfb-1.7.7/cursor.png
+usr/share/directfb-1.7.7/decker.dgiff
+usr/share/directfb-1.7.7/decker.ttf
 #usr/share/man/man1/dfbg.1
 #usr/share/man/man1/directfb-csource.1
 #usr/share/man/man5/directfbrc.5
index 4cf30f596ded6e92f1bae4d398e8f4cce9343187..325391fdde6232b44c8ebd660fd61faa47214e6b 100644 (file)
@@ -2765,9 +2765,9 @@ usr/lib/python3.6/lib-dynload/xxlimited.cpython-36m-i386-linux-gnu.so
 usr/lib/python3.6/lib-dynload/zlib.cpython-36m-i386-linux-gnu.so
 #usr/lib/python3.6/lib2to3
 usr/lib/python3.6/lib2to3/Grammar.txt
-usr/lib/python3.6/lib2to3/Grammar3.6.0.final.0.pickle
+usr/lib/python3.6/lib2to3/Grammar3.6.1.final.0.pickle
 usr/lib/python3.6/lib2to3/PatternGrammar.txt
-usr/lib/python3.6/lib2to3/PatternGrammar3.6.0.final.0.pickle
+usr/lib/python3.6/lib2to3/PatternGrammar3.6.1.final.0.pickle
 usr/lib/python3.6/lib2to3/__init__.py
 usr/lib/python3.6/lib2to3/__main__.py
 #usr/lib/python3.6/lib2to3/__pycache__
@@ -3297,8 +3297,7 @@ usr/lib/python3.6/shelve.py
 usr/lib/python3.6/shlex.py
 usr/lib/python3.6/shutil.py
 usr/lib/python3.6/signal.py
-usr/lib/python3.6/site-packages
-usr/lib/python3.6/site-packages/README
+#usr/lib/python3.6/site-packages
 usr/lib/python3.6/site-packages/README.txt
 #usr/lib/python3.6/site-packages/__pycache__
 usr/lib/python3.6/site-packages/__pycache__/easy_install.cpython-36.pyc
@@ -7447,7 +7446,6 @@ usr/lib/python3.6/venv/__pycache__/__main__.cpython-36.opt-2.pyc
 usr/lib/python3.6/venv/__pycache__/__main__.cpython-36.pyc
 usr/lib/python3.6/venv/scripts
 usr/lib/python3.6/venv/scripts/posix
-usr/lib/python3.6/venv/scripts/posix/activate
 usr/lib/python3.6/venv/scripts/posix/activate.csh
 usr/lib/python3.6/venv/scripts/posix/activate.fish
 usr/lib/python3.6/warnings.py
@@ -7597,3 +7595,13 @@ usr/lib/python3.6/zipapp.py
 usr/lib/python3.6/zipfile.py
 #usr/share/man/man1/python3.1
 #usr/share/man/man1/python3.6.1
+usr/lib/python3.6/test/mod_generics_cache.py
+usr/lib/python3.6/test/mp_preload.py
+usr/lib/python3.6/venv/scripts/common
+usr/lib/python3.6/venv/scripts/common/activate
+#usr/lib/python3.6/test/__pycache__/mod_generics_cache.cpython-36.opt-1.pyc
+#usr/lib/python3.6/test/__pycache__/mod_generics_cache.cpython-36.opt-2.pyc
+#usr/lib/python3.6/test/__pycache__/mod_generics_cache.cpython-36.pyc
+#usr/lib/python3.6/test/__pycache__/mp_preload.cpython-36.opt-1.pyc
+#usr/lib/python3.6/test/__pycache__/mp_preload.cpython-36.opt-2.pyc
+#usr/lib/python3.6/test/__pycache__/mp_preload.cpython-36.pyc
diff --git a/config/rootfiles/packages/i586/python3-libvirt b/config/rootfiles/packages/i586/python3-libvirt
new file mode 100644 (file)
index 0000000..0463ca4
--- /dev/null
@@ -0,0 +1,10 @@
+usr/lib/python3.6/site-packages/__pycache__/libvirt.cpython-36.pyc
+usr/lib/python3.6/site-packages/__pycache__/libvirt_lxc.cpython-36.pyc
+usr/lib/python3.6/site-packages/__pycache__/libvirt_qemu.cpython-36.pyc
+usr/lib/python3.6/site-packages/libvirt.py
+usr/lib/python3.6/site-packages/libvirt_lxc.py
+#usr/lib/python3.6/site-packages/libvirt_python-3.1.0-py3.6.egg-info
+usr/lib/python3.6/site-packages/libvirt_qemu.py
+usr/lib/python3.6/site-packages/libvirtmod.cpython-36m-i386-linux-gnu.so
+usr/lib/python3.6/site-packages/libvirtmod_lxc.cpython-36m-i386-linux-gnu.so
+usr/lib/python3.6/site-packages/libvirtmod_qemu.cpython-36m-i386-linux-gnu.so
diff --git a/config/rootfiles/packages/iftop b/config/rootfiles/packages/iftop
deleted file mode 100644 (file)
index 03b1118..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#usr/man/man8/iftop.8
-usr/sbin/iftop
diff --git a/config/rootfiles/packages/imspector b/config/rootfiles/packages/imspector
deleted file mode 100644 (file)
index 945c377..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-etc/imspector
-etc/imspector.conf
-#etc/imspector/acl.txt
-#etc/imspector/badwords.txt
-#etc/imspector/imspector.conf
-usr/lib/imspector
-usr/lib/imspector/aclfilterplugin.so
-usr/lib/imspector/badwordsfilterplugin.so
-usr/lib/imspector/catsloggingplugin.so
-usr/lib/imspector/censordfilterplugin.so
-usr/lib/imspector/debugloggingplugin.so
-usr/lib/imspector/fileloggingplugin.so
-usr/lib/imspector/ggprotocolplugin.so
-usr/lib/imspector/httpsprotocolplugin.so
-usr/lib/imspector/icqprotocolplugin.so
-usr/lib/imspector/ircprotocolplugin.so
-usr/lib/imspector/jabberprotocolplugin.so
-usr/lib/imspector/miscfilterplugin.so
-usr/lib/imspector/msnprotocolplugin.so
-usr/lib/imspector/yahooprotocolplugin.so
-usr/lib/libimspector.so
-usr/sbin/imspector
-var/ipfire/backup/addons/includes/imspector
-var/lib/imspector
-var/log/imspector
-etc/rc.d/init.d/imspector
-srv/web/ipfire/cgi-bin/imspector.cgi
-var/ipfire/menu.d/EX-imspector.menu
index 88cfeed67a5d80a93916a78424482718bbdcd4bb..fbf5702cb6c8be5fecc47fcdbd44c575e2c7d636 100644 (file)
@@ -27,6 +27,7 @@ etc/keepalived/samples
 #etc/keepalived/samples/root.pem
 #etc/keepalived/samples/sample.misccheck.smbcheck.sh
 #etc/sysconfig/keepalived
+etc/rc.d/init.d/keepalived
 usr/bin/genhash
 usr/sbin/keepalived
 #usr/share/man/man1/genhash.1
index 7285eb62c4be902d8a916aa35c827897ad1fadab..70cfa225771678d7198c7d5ff880e3169541bf5b 100644 (file)
@@ -56,24 +56,23 @@ usr/bin/virt-xml-validate
 #usr/include/libvirt/libvirt.h
 #usr/include/libvirt/virterror.h
 #usr/lib/libnss_libvirt.la
-usr/lib/libnss_libvirt.so.2
 #usr/lib/libvirt
 #usr/lib/libvirt-admin.la
 #usr/lib/libvirt-admin.so
 usr/lib/libvirt-admin.so.0
-usr/lib/libvirt-admin.so.0.2005.0
+usr/lib/libvirt-admin.so.0.3001.0
 #usr/lib/libvirt-lxc.la
 #usr/lib/libvirt-lxc.so
 usr/lib/libvirt-lxc.so.0
-usr/lib/libvirt-lxc.so.0.2005.0
+usr/lib/libvirt-lxc.so.0.3001.0
 #usr/lib/libvirt-qemu.la
 #usr/lib/libvirt-qemu.so
 usr/lib/libvirt-qemu.so.0
-usr/lib/libvirt-qemu.so.0.2005.0
+usr/lib/libvirt-qemu.so.0.3001.0
 #usr/lib/libvirt.la
 #usr/lib/libvirt.so
 usr/lib/libvirt.so.0
-usr/lib/libvirt.so.0.2005.0
+usr/lib/libvirt.so.0.3001.0
 #usr/lib/libvirt/connection-driver
 #usr/lib/libvirt/connection-driver/libvirt_driver_interface.la
 usr/lib/libvirt/connection-driver/libvirt_driver_interface.so
@@ -87,6 +86,9 @@ usr/lib/libvirt/connection-driver/libvirt_driver_qemu.so
 usr/lib/libvirt/connection-driver/libvirt_driver_secret.so
 #usr/lib/libvirt/connection-driver/libvirt_driver_storage.la
 usr/lib/libvirt/connection-driver/libvirt_driver_storage.so
+#usr/lib/libvirt/storage-backend
+usr/lib/libvirt/storage-backend/libvirt_storage_backend_fs.so
+#usr/lib/libvirt/storage-backend/libvirt_storage_backend_fs.la
 #usr/lib/libvirt/lock-driver
 #usr/lib/libvirt/lock-driver/lockd.la
 usr/lib/libvirt/lock-driver/lockd.so
@@ -113,152 +115,152 @@ usr/sbin/virtlogd
 #usr/share/augeas/lenses/tests/test_virtlogd.aug
 #usr/share/augeas/lenses/virtlockd.aug
 #usr/share/augeas/lenses/virtlogd.aug
-#usr/share/doc/libvirt-2.5.0
-#usr/share/doc/libvirt-2.5.0/html
-#usr/share/doc/libvirt-2.5.0/html/32favicon.png
-#usr/share/doc/libvirt-2.5.0/html/404.html
-#usr/share/doc/libvirt-2.5.0/html/acl.html
-#usr/share/doc/libvirt-2.5.0/html/aclpolkit.html
-#usr/share/doc/libvirt-2.5.0/html/api.html
-#usr/share/doc/libvirt-2.5.0/html/api_extension.html
-#usr/share/doc/libvirt-2.5.0/html/apps.html
-#usr/share/doc/libvirt-2.5.0/html/architecture.gif
-#usr/share/doc/libvirt-2.5.0/html/architecture.html
-#usr/share/doc/libvirt-2.5.0/html/auditlog.html
-#usr/share/doc/libvirt-2.5.0/html/auth.html
-#usr/share/doc/libvirt-2.5.0/html/bindings.html
-#usr/share/doc/libvirt-2.5.0/html/bugs.html
-#usr/share/doc/libvirt-2.5.0/html/cgroups.html
-#usr/share/doc/libvirt-2.5.0/html/compiling.html
-#usr/share/doc/libvirt-2.5.0/html/contact.html
-#usr/share/doc/libvirt-2.5.0/html/contribute.html
-#usr/share/doc/libvirt-2.5.0/html/csharp.html
-#usr/share/doc/libvirt-2.5.0/html/devguide.html
-#usr/share/doc/libvirt-2.5.0/html/docs.html
-#usr/share/doc/libvirt-2.5.0/html/downloads.html
-#usr/share/doc/libvirt-2.5.0/html/drivers.html
-#usr/share/doc/libvirt-2.5.0/html/drvbhyve.html
-#usr/share/doc/libvirt-2.5.0/html/drvesx.html
-#usr/share/doc/libvirt-2.5.0/html/drvhyperv.html
-#usr/share/doc/libvirt-2.5.0/html/drvlxc.html
-#usr/share/doc/libvirt-2.5.0/html/drvopenvz.html
-#usr/share/doc/libvirt-2.5.0/html/drvphyp.html
-#usr/share/doc/libvirt-2.5.0/html/drvqemu.html
-#usr/share/doc/libvirt-2.5.0/html/drvremote.html
-#usr/share/doc/libvirt-2.5.0/html/drvtest.html
-#usr/share/doc/libvirt-2.5.0/html/drvuml.html
-#usr/share/doc/libvirt-2.5.0/html/drvvbox.html
-#usr/share/doc/libvirt-2.5.0/html/drvvirtuozzo.html
-#usr/share/doc/libvirt-2.5.0/html/drvvmware.html
-#usr/share/doc/libvirt-2.5.0/html/drvxen.html
-#usr/share/doc/libvirt-2.5.0/html/errors.html
-#usr/share/doc/libvirt-2.5.0/html/firewall.html
-#usr/share/doc/libvirt-2.5.0/html/format.html
-#usr/share/doc/libvirt-2.5.0/html/formatcaps.html
-#usr/share/doc/libvirt-2.5.0/html/formatdomain.html
-#usr/share/doc/libvirt-2.5.0/html/formatdomaincaps.html
-#usr/share/doc/libvirt-2.5.0/html/formatnetwork.html
-#usr/share/doc/libvirt-2.5.0/html/formatnode.html
-#usr/share/doc/libvirt-2.5.0/html/formatnwfilter.html
-#usr/share/doc/libvirt-2.5.0/html/formatsecret.html
-#usr/share/doc/libvirt-2.5.0/html/formatsnapshot.html
-#usr/share/doc/libvirt-2.5.0/html/formatstorage.html
-#usr/share/doc/libvirt-2.5.0/html/formatstorageencryption.html
-#usr/share/doc/libvirt-2.5.0/html/generic.css
-#usr/share/doc/libvirt-2.5.0/html/goals.html
-#usr/share/doc/libvirt-2.5.0/html/governance.html
-#usr/share/doc/libvirt-2.5.0/html/hacking.html
-#usr/share/doc/libvirt-2.5.0/html/hooks.html
-#usr/share/doc/libvirt-2.5.0/html/html
-#usr/share/doc/libvirt-2.5.0/html/html/home.png
-#usr/share/doc/libvirt-2.5.0/html/html/index.html
-#usr/share/doc/libvirt-2.5.0/html/html/left.png
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-common.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-domain-snapshot.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-domain.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-event.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-host.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-interface.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-network.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-nodedev.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-nwfilter.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-secret.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-storage.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-libvirt-stream.html
-#usr/share/doc/libvirt-2.5.0/html/html/libvirt-virterror.html
-#usr/share/doc/libvirt-2.5.0/html/html/right.png
-#usr/share/doc/libvirt-2.5.0/html/html/up.png
-#usr/share/doc/libvirt-2.5.0/html/hvsupport.html
-#usr/share/doc/libvirt-2.5.0/html/index.html
-#usr/share/doc/libvirt-2.5.0/html/internals
-#usr/share/doc/libvirt-2.5.0/html/internals.html
-#usr/share/doc/libvirt-2.5.0/html/internals/command.html
-#usr/share/doc/libvirt-2.5.0/html/internals/eventloop.html
-#usr/share/doc/libvirt-2.5.0/html/internals/locking.html
-#usr/share/doc/libvirt-2.5.0/html/internals/oomtesting.html
-#usr/share/doc/libvirt-2.5.0/html/internals/rpc.html
-#usr/share/doc/libvirt-2.5.0/html/java.html
-#usr/share/doc/libvirt-2.5.0/html/libvirt-daemon-arch.png
-#usr/share/doc/libvirt-2.5.0/html/libvirt-driver-arch.png
-#usr/share/doc/libvirt-2.5.0/html/libvirt-object-model.png
-#usr/share/doc/libvirt-2.5.0/html/libvirt.css
-#usr/share/doc/libvirt-2.5.0/html/locking-lockd.html
-#usr/share/doc/libvirt-2.5.0/html/locking-sanlock.html
-#usr/share/doc/libvirt-2.5.0/html/locking.html
-#usr/share/doc/libvirt-2.5.0/html/logging.html
-#usr/share/doc/libvirt-2.5.0/html/logos
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-banner-dark-256.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-banner-dark-800.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-banner-dark.svg
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-banner-light-256.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-banner-light-800.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-banner-light.svg
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-base.svg
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-square-128.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-square-192.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-square-256.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-square-96.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-square-powered-128.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-square-powered-192.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-square-powered-256.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-square-powered-96.png
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-square-powered.svg
-#usr/share/doc/libvirt-2.5.0/html/logos/logo-square.svg
-#usr/share/doc/libvirt-2.5.0/html/main.css
-#usr/share/doc/libvirt-2.5.0/html/migration-managed-direct.png
-#usr/share/doc/libvirt-2.5.0/html/migration-managed-p2p.png
-#usr/share/doc/libvirt-2.5.0/html/migration-native.png
-#usr/share/doc/libvirt-2.5.0/html/migration-tunnel.png
-#usr/share/doc/libvirt-2.5.0/html/migration-unmanaged-direct.png
-#usr/share/doc/libvirt-2.5.0/html/migration.html
-#usr/share/doc/libvirt-2.5.0/html/news-2005.html
-#usr/share/doc/libvirt-2.5.0/html/news-2006.html
-#usr/share/doc/libvirt-2.5.0/html/news-2007.html
-#usr/share/doc/libvirt-2.5.0/html/news-2008.html
-#usr/share/doc/libvirt-2.5.0/html/news-2009.html
-#usr/share/doc/libvirt-2.5.0/html/news-2010.html
-#usr/share/doc/libvirt-2.5.0/html/news-2011.html
-#usr/share/doc/libvirt-2.5.0/html/news-2012.html
-#usr/share/doc/libvirt-2.5.0/html/news-2013.html
-#usr/share/doc/libvirt-2.5.0/html/news-2014.html
-#usr/share/doc/libvirt-2.5.0/html/news-2015.html
-#usr/share/doc/libvirt-2.5.0/html/news-2016.html
-#usr/share/doc/libvirt-2.5.0/html/news.html
-#usr/share/doc/libvirt-2.5.0/html/node.gif
-#usr/share/doc/libvirt-2.5.0/html/nss.html
-#usr/share/doc/libvirt-2.5.0/html/php.html
-#usr/share/doc/libvirt-2.5.0/html/python.html
-#usr/share/doc/libvirt-2.5.0/html/remote.html
-#usr/share/doc/libvirt-2.5.0/html/secureusage.html
-#usr/share/doc/libvirt-2.5.0/html/securityprocess.html
-#usr/share/doc/libvirt-2.5.0/html/storage.html
-#usr/share/doc/libvirt-2.5.0/html/testapi.html
-#usr/share/doc/libvirt-2.5.0/html/testsuites.html
-#usr/share/doc/libvirt-2.5.0/html/testtck.html
-#usr/share/doc/libvirt-2.5.0/html/todo.html
-#usr/share/doc/libvirt-2.5.0/html/uri.html
-#usr/share/doc/libvirt-2.5.0/html/virshcmdref.html
-#usr/share/doc/libvirt-2.5.0/html/windows.html
+#usr/share/doc/libvirt-3.1.0
+#usr/share/doc/libvirt-3.1.0/html
+#usr/share/doc/libvirt-3.1.0/html/32favicon.png
+#usr/share/doc/libvirt-3.1.0/html/404.html
+#usr/share/doc/libvirt-3.1.0/html/acl.html
+#usr/share/doc/libvirt-3.1.0/html/aclpolkit.html
+#usr/share/doc/libvirt-3.1.0/html/api.html
+#usr/share/doc/libvirt-3.1.0/html/api_extension.html
+#usr/share/doc/libvirt-3.1.0/html/apps.html
+#usr/share/doc/libvirt-3.1.0/html/architecture.gif
+#usr/share/doc/libvirt-3.1.0/html/architecture.html
+#usr/share/doc/libvirt-3.1.0/html/auditlog.html
+#usr/share/doc/libvirt-3.1.0/html/auth.html
+#usr/share/doc/libvirt-3.1.0/html/bindings.html
+#usr/share/doc/libvirt-3.1.0/html/bugs.html
+#usr/share/doc/libvirt-3.1.0/html/cgroups.html
+#usr/share/doc/libvirt-3.1.0/html/compiling.html
+#usr/share/doc/libvirt-3.1.0/html/contact.html
+#usr/share/doc/libvirt-3.1.0/html/contribute.html
+#usr/share/doc/libvirt-3.1.0/html/csharp.html
+#usr/share/doc/libvirt-3.1.0/html/devguide.html
+#usr/share/doc/libvirt-3.1.0/html/docs.html
+#usr/share/doc/libvirt-3.1.0/html/downloads.html
+#usr/share/doc/libvirt-3.1.0/html/drivers.html
+#usr/share/doc/libvirt-3.1.0/html/drvbhyve.html
+#usr/share/doc/libvirt-3.1.0/html/drvesx.html
+#usr/share/doc/libvirt-3.1.0/html/drvhyperv.html
+#usr/share/doc/libvirt-3.1.0/html/drvlxc.html
+#usr/share/doc/libvirt-3.1.0/html/drvopenvz.html
+#usr/share/doc/libvirt-3.1.0/html/drvphyp.html
+#usr/share/doc/libvirt-3.1.0/html/drvqemu.html
+#usr/share/doc/libvirt-3.1.0/html/drvremote.html
+#usr/share/doc/libvirt-3.1.0/html/drvtest.html
+#usr/share/doc/libvirt-3.1.0/html/drvuml.html
+#usr/share/doc/libvirt-3.1.0/html/drvvbox.html
+#usr/share/doc/libvirt-3.1.0/html/drvvirtuozzo.html
+#usr/share/doc/libvirt-3.1.0/html/drvvmware.html
+#usr/share/doc/libvirt-3.1.0/html/drvxen.html
+#usr/share/doc/libvirt-3.1.0/html/errors.html
+#usr/share/doc/libvirt-3.1.0/html/firewall.html
+#usr/share/doc/libvirt-3.1.0/html/format.html
+#usr/share/doc/libvirt-3.1.0/html/formatcaps.html
+#usr/share/doc/libvirt-3.1.0/html/formatdomain.html
+#usr/share/doc/libvirt-3.1.0/html/formatdomaincaps.html
+#usr/share/doc/libvirt-3.1.0/html/formatnetwork.html
+#usr/share/doc/libvirt-3.1.0/html/formatnode.html
+#usr/share/doc/libvirt-3.1.0/html/formatnwfilter.html
+#usr/share/doc/libvirt-3.1.0/html/formatsecret.html
+#usr/share/doc/libvirt-3.1.0/html/formatsnapshot.html
+#usr/share/doc/libvirt-3.1.0/html/formatstorage.html
+#usr/share/doc/libvirt-3.1.0/html/formatstorageencryption.html
+#usr/share/doc/libvirt-3.1.0/html/generic.css
+#usr/share/doc/libvirt-3.1.0/html/goals.html
+#usr/share/doc/libvirt-3.1.0/html/governance.html
+#usr/share/doc/libvirt-3.1.0/html/hacking.html
+#usr/share/doc/libvirt-3.1.0/html/hooks.html
+#usr/share/doc/libvirt-3.1.0/html/html
+#usr/share/doc/libvirt-3.1.0/html/html/home.png
+#usr/share/doc/libvirt-3.1.0/html/html/index.html
+#usr/share/doc/libvirt-3.1.0/html/html/left.png
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-common.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-domain-snapshot.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-domain.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-event.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-host.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-interface.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-network.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-nodedev.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-nwfilter.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-secret.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-storage.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-libvirt-stream.html
+#usr/share/doc/libvirt-3.1.0/html/html/libvirt-virterror.html
+#usr/share/doc/libvirt-3.1.0/html/html/right.png
+#usr/share/doc/libvirt-3.1.0/html/html/up.png
+#usr/share/doc/libvirt-3.1.0/html/hvsupport.html
+#usr/share/doc/libvirt-3.1.0/html/index.html
+#usr/share/doc/libvirt-3.1.0/html/internals
+#usr/share/doc/libvirt-3.1.0/html/internals.html
+#usr/share/doc/libvirt-3.1.0/html/internals/command.html
+#usr/share/doc/libvirt-3.1.0/html/internals/eventloop.html
+#usr/share/doc/libvirt-3.1.0/html/internals/locking.html
+#usr/share/doc/libvirt-3.1.0/html/internals/oomtesting.html
+#usr/share/doc/libvirt-3.1.0/html/internals/rpc.html
+#usr/share/doc/libvirt-3.1.0/html/java.html
+#usr/share/doc/libvirt-3.1.0/html/libvirt-daemon-arch.png
+#usr/share/doc/libvirt-3.1.0/html/libvirt-driver-arch.png
+#usr/share/doc/libvirt-3.1.0/html/libvirt-object-model.png
+#usr/share/doc/libvirt-3.1.0/html/libvirt.css
+#usr/share/doc/libvirt-3.1.0/html/locking-lockd.html
+#usr/share/doc/libvirt-3.1.0/html/locking-sanlock.html
+#usr/share/doc/libvirt-3.1.0/html/locking.html
+#usr/share/doc/libvirt-3.1.0/html/logging.html
+#usr/share/doc/libvirt-3.1.0/html/logos
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-banner-dark-256.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-banner-dark-800.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-banner-dark.svg
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-banner-light-256.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-banner-light-800.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-banner-light.svg
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-base.svg
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-square-128.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-square-192.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-square-256.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-square-96.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-square-powered-128.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-square-powered-192.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-square-powered-256.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-square-powered-96.png
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-square-powered.svg
+#usr/share/doc/libvirt-3.1.0/html/logos/logo-square.svg
+#usr/share/doc/libvirt-3.1.0/html/main.css
+#usr/share/doc/libvirt-3.1.0/html/migration-managed-direct.png
+#usr/share/doc/libvirt-3.1.0/html/migration-managed-p2p.png
+#usr/share/doc/libvirt-3.1.0/html/migration-native.png
+#usr/share/doc/libvirt-3.1.0/html/migration-tunnel.png
+#usr/share/doc/libvirt-3.1.0/html/migration-unmanaged-direct.png
+#usr/share/doc/libvirt-3.1.0/html/migration.html
+#usr/share/doc/libvirt-3.1.0/html/news-2005.html
+#usr/share/doc/libvirt-3.1.0/html/news-2006.html
+#usr/share/doc/libvirt-3.1.0/html/news-2007.html
+#usr/share/doc/libvirt-3.1.0/html/news-2008.html
+#usr/share/doc/libvirt-3.1.0/html/news-2009.html
+#usr/share/doc/libvirt-3.1.0/html/news-2010.html
+#usr/share/doc/libvirt-3.1.0/html/news-2011.html
+#usr/share/doc/libvirt-3.1.0/html/news-2012.html
+#usr/share/doc/libvirt-3.1.0/html/news-2013.html
+#usr/share/doc/libvirt-3.1.0/html/news-2014.html
+#usr/share/doc/libvirt-3.1.0/html/news-2015.html
+#usr/share/doc/libvirt-3.1.0/html/news-2016.html
+#usr/share/doc/libvirt-3.1.0/html/news.html
+#usr/share/doc/libvirt-3.1.0/html/node.gif
+#usr/share/doc/libvirt-3.1.0/html/nss.html
+#usr/share/doc/libvirt-3.1.0/html/php.html
+#usr/share/doc/libvirt-3.1.0/html/python.html
+#usr/share/doc/libvirt-3.1.0/html/remote.html
+#usr/share/doc/libvirt-3.1.0/html/secureusage.html
+#usr/share/doc/libvirt-3.1.0/html/securityprocess.html
+#usr/share/doc/libvirt-3.1.0/html/storage.html
+#usr/share/doc/libvirt-3.1.0/html/testapi.html
+#usr/share/doc/libvirt-3.1.0/html/testsuites.html
+#usr/share/doc/libvirt-3.1.0/html/testtck.html
+#usr/share/doc/libvirt-3.1.0/html/todo.html
+#usr/share/doc/libvirt-3.1.0/html/uri.html
+#usr/share/doc/libvirt-3.1.0/html/virshcmdref.html
+#usr/share/doc/libvirt-3.1.0/html/windows.html
 #usr/share/gtk-doc/html/libvirt
 #usr/share/gtk-doc/html/libvirt/general.html
 #usr/share/gtk-doc/html/libvirt/home.png
@@ -293,6 +295,7 @@ usr/share/libvirt/schemas/secret.rng
 usr/share/libvirt/schemas/storagecommon.rng
 usr/share/libvirt/schemas/storagepool.rng
 usr/share/libvirt/schemas/storagevol.rng
+#usr/share/libvirt/test-screenshot.png
 #usr/share/man/man1/virsh.1
 #usr/share/man/man1/virt-admin.1
 #usr/share/man/man1/virt-host-validate.1
diff --git a/config/rootfiles/packages/ltrace b/config/rootfiles/packages/ltrace
new file mode 100644 (file)
index 0000000..9964a70
--- /dev/null
@@ -0,0 +1,10 @@
+etc/ltrace.conf
+usr/bin/ltrace
+#usr/share/doc/ltrace
+#usr/share/doc/ltrace/COPYING
+#usr/share/doc/ltrace/CREDITS
+#usr/share/doc/ltrace/INSTALL
+#usr/share/doc/ltrace/README
+#usr/share/doc/ltrace/TODO
+#usr/share/man/man1/ltrace.1
+#usr/share/man/man5/ltrace.conf.5
index baf8e06aeb1dafc54085dff1ee92bdea06c6d493..820d23333decc95e64f0a77e7a25d277585e1f30 100644 (file)
@@ -121,7 +121,13 @@ usr/share/mc/skins/modarin256root-defbg.ini
 usr/share/mc/skins/modarin256root.ini
 usr/share/mc/skins/nicedark.ini
 usr/share/mc/skins/sand256.ini
+usr/share/mc/skins/seasons-autumn16M.ini
+usr/share/mc/skins/seasons-spring16M.ini
+usr/share/mc/skins/seasons-summer16M.ini
+usr/share/mc/skins/seasons-winter16M.ini
 usr/share/mc/skins/xoria256.ini
+usr/share/mc/skins/yadt256-defbg.ini
+usr/share/mc/skins/yadt256.ini
 #usr/share/mc/syntax
 usr/share/mc/syntax/PKGBUILD.syntax
 usr/share/mc/syntax/Syntax
@@ -176,6 +182,8 @@ usr/share/mc/syntax/named.syntax
 usr/share/mc/syntax/nemerle.syntax
 usr/share/mc/syntax/nroff.syntax
 usr/share/mc/syntax/octave.syntax
+usr/share/mc/syntax/opencl.syntax
+usr/share/mc/syntax/osl.syntax
 usr/share/mc/syntax/pascal.syntax
 usr/share/mc/syntax/perl.syntax
 usr/share/mc/syntax/php.syntax
@@ -185,6 +193,7 @@ usr/share/mc/syntax/procmail.syntax
 usr/share/mc/syntax/properties.syntax
 usr/share/mc/syntax/puppet.syntax
 usr/share/mc/syntax/python.syntax
+usr/share/mc/syntax/r.syntax
 usr/share/mc/syntax/ruby.syntax
 usr/share/mc/syntax/sh.syntax
 usr/share/mc/syntax/slang.syntax
@@ -201,5 +210,6 @@ usr/share/mc/syntax/unknown.syntax
 usr/share/mc/syntax/verilog.syntax
 usr/share/mc/syntax/vhdl.syntax
 usr/share/mc/syntax/xml.syntax
+usr/share/mc/syntax/yaml.syntax
 usr/share/mc/syntax/yum-repo.syntax
 usr/share/mc/syntax/yxx.syntax
index aa3e5b78b205ab170e5daf3ef3c1021edd34b832..82a80973f8aa5c92fabe49c57d48feba64e3c7f5 100644 (file)
@@ -1,25 +1,32 @@
-#etc/motion-dist.conf
+etc/motion
 etc/motion.conf
+etc/motion/camera1-dist.conf
+etc/motion/camera2-dist.conf
+etc/motion/camera3-dist.conf
+etc/motion/camera4-dist.conf
+#etc/motion/motion-dist.conf
 usr/bin/motion
-#usr/share/doc/motion-3.2.12
-#usr/share/doc/motion-3.2.12/CHANGELOG
-#usr/share/doc/motion-3.2.12/COPYING
-#usr/share/doc/motion-3.2.12/CREDITS
-#usr/share/doc/motion-3.2.12/INSTALL
-#usr/share/doc/motion-3.2.12/README
-#usr/share/doc/motion-3.2.12/motion_guide.html
+#usr/share/doc/motion
+#usr/share/doc/motion/CHANGELOG
+#usr/share/doc/motion/COPYING
+#usr/share/doc/motion/CREDITS
+#usr/share/doc/motion/README.md
+#usr/share/doc/motion/mask1.png
+#usr/share/doc/motion/motion_guide.html
+#usr/share/doc/motion/normal.jpg
+#usr/share/doc/motion/outputmotion1.jpg
+#usr/share/doc/motion/outputnormal1.jpg
 #usr/share/man/man1/motion.1
-#usr/share/motion-3.2.12
-#usr/share/motion-3.2.12/examples
-#usr/share/motion-3.2.12/examples/motion-dist.conf
-#usr/share/motion-3.2.12/examples/motion.init-Debian
-#usr/share/motion-3.2.12/examples/motion.init-Fedora
-#usr/share/motion-3.2.12/examples/motion.init-FreeBSD.sh
-#usr/share/motion-3.2.12/examples/motion.init-RH
-#usr/share/motion-3.2.12/examples/thread1.conf
-#usr/share/motion-3.2.12/examples/thread2.conf
-#usr/share/motion-3.2.12/examples/thread3.conf
-#usr/share/motion-3.2.12/examples/thread4.conf
+#usr/share/motion
+#usr/share/motion/examples
+#usr/share/motion/examples/camera1-dist.conf
+#usr/share/motion/examples/camera2-dist.conf
+#usr/share/motion/examples/camera3-dist.conf
+#usr/share/motion/examples/camera4-dist.conf
+#usr/share/motion/examples/motion-dist.conf
+#usr/share/motion/examples/motion.init-Debian
+#usr/share/motion/examples/motion.init-FreeBSD.sh
+#usr/share/motion/examples/motion.service
 var/ipfire/backup/addons/includes/motion
 etc/rc.d/init.d/motion
 etc/rc.d/rc0.d/K01motion
index ea96b693bacf87185e43a71abea72331053a3a4b..c49d33498f5b61563f0559d76108af33f5cc1275 100644 (file)
@@ -8,6 +8,7 @@ var/log/mpd.log
 #usr/share/doc/mpd/NEWS
 #usr/share/doc/mpd/COMMANDS
 #usr/share/doc/mpd/README
+#usr/share/doc/mpd/README.md
 #usr/share/doc/mpd/TODO
 #usr/share/doc/mpd/UPGRADING
 #usr/share/doc/mpd/mpdconf.example
index 8f1414ae138e5ffa337396e5395b625d52037764..2923246624fafb751caf55da2cc09d60f31ca18b 100644 (file)
@@ -53,7 +53,6 @@ srv/mysql
 #srv/mysql/mysql/user.MYD
 #srv/mysql/mysql/user.MYI
 #srv/mysql/mysql/user.frm
-srv/mysql/test
 usr/bin/comp_err
 usr/bin/innochecksum
 usr/bin/msql2mysql
index f8171b4dfef992f15065703633be522235ae34f7..0e9341d681ea165e6516f060a1b51b23f96545e4 100644 (file)
@@ -1,11 +1,12 @@
 #etc/nano
-etc/nano/nanorc.sample
+etc/nano/sample.nanorc
 usr/bin/nano
 usr/bin/pico
 usr/bin/rnano
 #usr/share/doc/nano
 #usr/share/doc/nano/faq.html
 #usr/share/doc/nano/nano.1.html
+#usr/share/doc/nano/nano.html
 #usr/share/doc/nano/nanorc.5.html
 #usr/share/doc/nano/rnano.1.html
 #usr/share/info/nano.info
diff --git a/config/rootfiles/packages/ncftp b/config/rootfiles/packages/ncftp
deleted file mode 100644 (file)
index 9543ada..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-usr/bin/ncftp
-usr/bin/ncftpbatch
-usr/bin/ncftpbookmarks
-usr/bin/ncftpget
-usr/bin/ncftpls
-usr/bin/ncftpput
-usr/bin/ncftpspooler
-#usr/include/ncftp.h
-#usr/include/ncftp_errno.h
-usr/lib/libncftp.so
-usr/lib/libncftp.so.2
-#usr/share/man/man1/ncftp.1
-#usr/share/man/man1/ncftpbatch.1
-#usr/share/man/man1/ncftpget.1
-#usr/share/man/man1/ncftpls.1
-#usr/share/man/man1/ncftpput.1
-#usr/share/man/man1/ncftpspooler.1
index 63289492223b9c7ee176c023f81dbb766eb2ed60..9d80ec2ad8eddc0f9e2154d4141313e4641810ad 100644 (file)
@@ -542,6 +542,8 @@ usr/share/snmp/mibs/IPV6-MIB.txt
 usr/share/snmp/mibs/IPV6-TC.txt
 usr/share/snmp/mibs/IPV6-TCP-MIB.txt
 usr/share/snmp/mibs/IPV6-UDP-MIB.txt
+usr/share/snmp/mibs/LM-SENSORS-MIB.txt
+usr/share/snmp/mibs/MTA-MIB.txt
 usr/share/snmp/mibs/NET-SNMP-AGENT-MIB.txt
 usr/share/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt
 usr/share/snmp/mibs/NET-SNMP-EXTEND-MIB.txt
@@ -549,6 +551,7 @@ usr/share/snmp/mibs/NET-SNMP-MIB.txt
 usr/share/snmp/mibs/NET-SNMP-PASS-MIB.txt
 usr/share/snmp/mibs/NET-SNMP-TC.txt
 usr/share/snmp/mibs/NET-SNMP-VACM-MIB.txt
+usr/share/snmp/mibs/NETWORK-SERVICES-MIB.txt
 usr/share/snmp/mibs/NOTIFICATION-LOG-MIB.txt
 usr/share/snmp/mibs/RFC-1215.txt
 usr/share/snmp/mibs/RFC1155-SMI.txt
index b91f954775941f8b150eef61f47e25c7d17a1b7c..111610a623cbf159b70fd67acb2564b4601202c0 100644 (file)
@@ -1,6 +1,7 @@
 usr/bin/ndiff
 usr/bin/nmap
 usr/bin/nping
+#usr/bin/uninstall_ndiff
 usr/lib/python2.7/site-packages/ndiff.py
 usr/lib/python2.7/site-packages/ndiff.pyc
 #usr/share/man/de/man1/nmap.1
@@ -13,6 +14,8 @@ usr/lib/python2.7/site-packages/ndiff.pyc
 #usr/share/man/hu/man1
 #usr/share/man/hu/man1/nmap.1
 #usr/share/man/it/man1/nmap.1
+#usr/share/man/ja
+#usr/share/man/ja/man1
 #usr/share/man/ja/man1/nmap.1
 #usr/share/man/man1/ndiff.1
 #usr/share/man/man1/nmap.1
@@ -53,23 +56,28 @@ usr/share/nmap/nse_main.lua
 usr/share/nmap/nselib/afp.lua
 usr/share/nmap/nselib/ajp.lua
 usr/share/nmap/nselib/amqp.lua
+usr/share/nmap/nselib/anyconnect.lua
 usr/share/nmap/nselib/asn1.lua
 usr/share/nmap/nselib/base32.lua
 usr/share/nmap/nselib/base64.lua
-usr/share/nmap/nselib/bin.luadoc
-usr/share/nmap/nselib/bit.luadoc
+usr/share/nmap/nselib/bin.lua
+usr/share/nmap/nselib/bit.lua
 usr/share/nmap/nselib/bitcoin.lua
+usr/share/nmap/nselib/bits.lua
 usr/share/nmap/nselib/bittorrent.lua
 usr/share/nmap/nselib/bjnp.lua
 usr/share/nmap/nselib/brute.lua
 usr/share/nmap/nselib/cassandra.lua
 usr/share/nmap/nselib/citrixxml.lua
+usr/share/nmap/nselib/coap.lua
 usr/share/nmap/nselib/comm.lua
 usr/share/nmap/nselib/creds.lua
 usr/share/nmap/nselib/cvs.lua
 #usr/share/nmap/nselib/data
 usr/share/nmap/nselib/data/dns-srv-names
 usr/share/nmap/nselib/data/drupal-modules.lst
+usr/share/nmap/nselib/data/drupal-themes.lst
+usr/share/nmap/nselib/data/enterprise_numbers.txt
 usr/share/nmap/nselib/data/favicon-db
 usr/share/nmap/nselib/data/http-default-accounts-fingerprints.lua
 usr/share/nmap/nselib/data/http-devframework-fingerprints.lua
@@ -104,14 +112,16 @@ usr/share/nmap/nselib/data/psexec/nmap_service.vcproj
 usr/share/nmap/nselib/data/psexec/pwdump.lua
 usr/share/nmap/nselib/data/rtsp-urls.txt
 usr/share/nmap/nselib/data/snmpcommunities.lst
-usr/share/nmap/nselib/data/ssl-ciphers
 usr/share/nmap/nselib/data/ssl-fingerprints
+usr/share/nmap/nselib/data/targets-ipv6-wordlist
 usr/share/nmap/nselib/data/tftplist.txt
 usr/share/nmap/nselib/data/usernames.lst
 usr/share/nmap/nselib/data/vhosts-default.lst
 usr/share/nmap/nselib/data/vhosts-full.lst
 usr/share/nmap/nselib/data/wp-plugins.lst
+usr/share/nmap/nselib/data/wp-themes.lst
 usr/share/nmap/nselib/datafiles.lua
+usr/share/nmap/nselib/datetime.lua
 usr/share/nmap/nselib/dhcp.lua
 usr/share/nmap/nselib/dhcp6.lua
 usr/share/nmap/nselib/dns.lua
@@ -122,6 +132,7 @@ usr/share/nmap/nselib/eap.lua
 usr/share/nmap/nselib/eigrp.lua
 usr/share/nmap/nselib/formulas.lua
 usr/share/nmap/nselib/ftp.lua
+usr/share/nmap/nselib/geoip.lua
 usr/share/nmap/nselib/giop.lua
 usr/share/nmap/nselib/gps.lua
 usr/share/nmap/nselib/http.lua
@@ -131,6 +142,7 @@ usr/share/nmap/nselib/ike.lua
 usr/share/nmap/nselib/imap.lua
 usr/share/nmap/nselib/informix.lua
 usr/share/nmap/nselib/ipOps.lua
+usr/share/nmap/nselib/ipmi.lua
 usr/share/nmap/nselib/ipp.lua
 usr/share/nmap/nselib/iscsi.lua
 usr/share/nmap/nselib/isns.lua
@@ -139,14 +151,19 @@ usr/share/nmap/nselib/json.lua
 usr/share/nmap/nselib/ldap.lua
 usr/share/nmap/nselib/lfs.luadoc
 usr/share/nmap/nselib/listop.lua
+usr/share/nmap/nselib/lpeg-utility.lua
+usr/share/nmap/nselib/lpeg.luadoc
+usr/share/nmap/nselib/ls.lua
 usr/share/nmap/nselib/match.lua
 usr/share/nmap/nselib/membase.lua
 usr/share/nmap/nselib/mobileme.lua
 usr/share/nmap/nselib/mongodb.lua
+usr/share/nmap/nselib/mqtt.lua
 usr/share/nmap/nselib/msrpc.lua
 usr/share/nmap/nselib/msrpcperformance.lua
 usr/share/nmap/nselib/msrpctypes.lua
 usr/share/nmap/nselib/mssql.lua
+usr/share/nmap/nselib/multicast.lua
 usr/share/nmap/nselib/mysql.lua
 usr/share/nmap/nselib/natpmp.lua
 usr/share/nmap/nselib/ncp.lua
@@ -165,6 +182,7 @@ usr/share/nmap/nselib/pop3.lua
 usr/share/nmap/nselib/pppoe.lua
 usr/share/nmap/nselib/proxy.lua
 usr/share/nmap/nselib/rdp.lua
+usr/share/nmap/nselib/re.lua
 usr/share/nmap/nselib/redis.lua
 usr/share/nmap/nselib/rmi.lua
 usr/share/nmap/nselib/rpc.lua
@@ -174,6 +192,7 @@ usr/share/nmap/nselib/rtsp.lua
 usr/share/nmap/nselib/sasl.lua
 usr/share/nmap/nselib/shortport.lua
 usr/share/nmap/nselib/sip.lua
+usr/share/nmap/nselib/slaxml.lua
 usr/share/nmap/nselib/smb.lua
 usr/share/nmap/nselib/smbauth.lua
 usr/share/nmap/nselib/smtp.lua
@@ -183,6 +202,7 @@ usr/share/nmap/nselib/srvloc.lua
 usr/share/nmap/nselib/ssh1.lua
 usr/share/nmap/nselib/ssh2.lua
 usr/share/nmap/nselib/sslcert.lua
+usr/share/nmap/nselib/sslv2.lua
 usr/share/nmap/nselib/stdnse.lua
 usr/share/nmap/nselib/strbuf.lua
 usr/share/nmap/nselib/strict.lua
@@ -191,6 +211,7 @@ usr/share/nmap/nselib/tab.lua
 usr/share/nmap/nselib/target.lua
 usr/share/nmap/nselib/tftp.lua
 usr/share/nmap/nselib/tls.lua
+usr/share/nmap/nselib/tn3270.lua
 usr/share/nmap/nselib/tns.lua
 usr/share/nmap/nselib/unicode.lua
 usr/share/nmap/nselib/unittest.lua
@@ -224,6 +245,7 @@ usr/share/nmap/scripts/auth-owners.nse
 usr/share/nmap/scripts/auth-spoof.nse
 usr/share/nmap/scripts/backorifice-brute.nse
 usr/share/nmap/scripts/backorifice-info.nse
+usr/share/nmap/scripts/bacnet-info.nse
 usr/share/nmap/scripts/banner.nse
 usr/share/nmap/scripts/bitcoin-getaddr.nse
 usr/share/nmap/scripts/bitcoin-info.nse
@@ -252,6 +274,7 @@ usr/share/nmap/scripts/broadcast-ping.nse
 usr/share/nmap/scripts/broadcast-pppoe-discover.nse
 usr/share/nmap/scripts/broadcast-rip-discover.nse
 usr/share/nmap/scripts/broadcast-ripng-discover.nse
+usr/share/nmap/scripts/broadcast-sonicwall-discover.nse
 usr/share/nmap/scripts/broadcast-sybase-asa-discover.nse
 usr/share/nmap/scripts/broadcast-tellstick-discover.nse
 usr/share/nmap/scripts/broadcast-upnp-info.nse
@@ -263,11 +286,16 @@ usr/share/nmap/scripts/broadcast-xdmcp-discover.nse
 usr/share/nmap/scripts/cassandra-brute.nse
 usr/share/nmap/scripts/cassandra-info.nse
 usr/share/nmap/scripts/cccam-version.nse
+usr/share/nmap/scripts/cics-enum.nse
+usr/share/nmap/scripts/cics-user-enum.nse
 usr/share/nmap/scripts/citrix-brute-xml.nse
 usr/share/nmap/scripts/citrix-enum-apps-xml.nse
 usr/share/nmap/scripts/citrix-enum-apps.nse
 usr/share/nmap/scripts/citrix-enum-servers-xml.nse
 usr/share/nmap/scripts/citrix-enum-servers.nse
+usr/share/nmap/scripts/clamav-exec.nse
+usr/share/nmap/scripts/clock-skew.nse
+usr/share/nmap/scripts/coap-resources.nse
 usr/share/nmap/scripts/couchdb-databases.nse
 usr/share/nmap/scripts/couchdb-stats.nse
 usr/share/nmap/scripts/creds-summary.nse
@@ -278,7 +306,6 @@ usr/share/nmap/scripts/cvs-brute.nse
 usr/share/nmap/scripts/daap-get-library.nse
 usr/share/nmap/scripts/daytime.nse
 usr/share/nmap/scripts/db2-das-info.nse
-usr/share/nmap/scripts/db2-discover.nse
 usr/share/nmap/scripts/dhcp-discover.nse
 usr/share/nmap/scripts/dict-info.nse
 usr/share/nmap/scripts/distcc-cve2004-2687.nse
@@ -300,6 +327,7 @@ usr/share/nmap/scripts/dns-srv-enum.nse
 usr/share/nmap/scripts/dns-update.nse
 usr/share/nmap/scripts/dns-zeustracker.nse
 usr/share/nmap/scripts/dns-zone-transfer.nse
+usr/share/nmap/scripts/docker-version.nse
 usr/share/nmap/scripts/domcon-brute.nse
 usr/share/nmap/scripts/domcon-cmd.nse
 usr/share/nmap/scripts/domino-enum-users.nse
@@ -308,12 +336,16 @@ usr/share/nmap/scripts/drda-brute.nse
 usr/share/nmap/scripts/drda-info.nse
 usr/share/nmap/scripts/duplicates.nse
 usr/share/nmap/scripts/eap-info.nse
+usr/share/nmap/scripts/enip-info.nse
 usr/share/nmap/scripts/epmd-info.nse
 usr/share/nmap/scripts/eppc-enum-processes.nse
+usr/share/nmap/scripts/fcrdns.nse
 usr/share/nmap/scripts/finger.nse
+usr/share/nmap/scripts/fingerprint-strings.nse
 usr/share/nmap/scripts/firewalk.nse
 usr/share/nmap/scripts/firewall-bypass.nse
 usr/share/nmap/scripts/flume-master-info.nse
+usr/share/nmap/scripts/fox-info.nse
 usr/share/nmap/scripts/freelancer-info.nse
 usr/share/nmap/scripts/ftp-anon.nse
 usr/share/nmap/scripts/ftp-bounce.nse
@@ -335,14 +367,18 @@ usr/share/nmap/scripts/hadoop-tasktracker-info.nse
 usr/share/nmap/scripts/hbase-master-info.nse
 usr/share/nmap/scripts/hbase-region-info.nse
 usr/share/nmap/scripts/hddtemp-info.nse
+usr/share/nmap/scripts/hnap-info.nse
 usr/share/nmap/scripts/hostmap-bfk.nse
 usr/share/nmap/scripts/hostmap-ip2hosts.nse
 usr/share/nmap/scripts/hostmap-robtex.nse
 usr/share/nmap/scripts/http-adobe-coldfusion-apsa1301.nse
 usr/share/nmap/scripts/http-affiliate-id.nse
 usr/share/nmap/scripts/http-apache-negotiation.nse
+usr/share/nmap/scripts/http-apache-server-status.nse
+usr/share/nmap/scripts/http-aspnet-debug.nse
 usr/share/nmap/scripts/http-auth-finder.nse
 usr/share/nmap/scripts/http-auth.nse
+usr/share/nmap/scripts/http-avaya-ipoffice-users.nse
 usr/share/nmap/scripts/http-awstatstotals-exec.nse
 usr/share/nmap/scripts/http-axis2-dir-traversal.nse
 usr/share/nmap/scripts/http-backup-finder.nse
@@ -350,10 +386,12 @@ usr/share/nmap/scripts/http-barracuda-dir-traversal.nse
 usr/share/nmap/scripts/http-brute.nse
 usr/share/nmap/scripts/http-cakephp-version.nse
 usr/share/nmap/scripts/http-chrono.nse
+usr/share/nmap/scripts/http-cisco-anyconnect.nse
 usr/share/nmap/scripts/http-coldfusion-subzero.nse
 usr/share/nmap/scripts/http-comments-displayer.nse
 usr/share/nmap/scripts/http-config-backup.nse
 usr/share/nmap/scripts/http-cors.nse
+usr/share/nmap/scripts/http-cross-domain-policy.nse
 usr/share/nmap/scripts/http-csrf.nse
 usr/share/nmap/scripts/http-date.nse
 usr/share/nmap/scripts/http-default-accounts.nse
@@ -362,13 +400,13 @@ usr/share/nmap/scripts/http-dlink-backdoor.nse
 usr/share/nmap/scripts/http-dombased-xss.nse
 usr/share/nmap/scripts/http-domino-enum-passwords.nse
 usr/share/nmap/scripts/http-drupal-enum-users.nse
-usr/share/nmap/scripts/http-drupal-modules.nse
-usr/share/nmap/scripts/http-email-harvest.nse
+usr/share/nmap/scripts/http-drupal-enum.nse
 usr/share/nmap/scripts/http-enum.nse
 usr/share/nmap/scripts/http-errors.nse
 usr/share/nmap/scripts/http-exif-spider.nse
 usr/share/nmap/scripts/http-favicon.nse
 usr/share/nmap/scripts/http-feed.nse
+usr/share/nmap/scripts/http-fetch.nse
 usr/share/nmap/scripts/http-fileupload-exploiter.nse
 usr/share/nmap/scripts/http-form-brute.nse
 usr/share/nmap/scripts/http-form-fuzzer.nse
@@ -384,10 +422,13 @@ usr/share/nmap/scripts/http-icloud-findmyiphone.nse
 usr/share/nmap/scripts/http-icloud-sendmsg.nse
 usr/share/nmap/scripts/http-iis-short-name-brute.nse
 usr/share/nmap/scripts/http-iis-webdav-vuln.nse
+usr/share/nmap/scripts/http-internal-ip-disclosure.nse
 usr/share/nmap/scripts/http-joomla-brute.nse
 usr/share/nmap/scripts/http-litespeed-sourcecode-download.nse
+usr/share/nmap/scripts/http-ls.nse
 usr/share/nmap/scripts/http-majordomo2-dir-traversal.nse
 usr/share/nmap/scripts/http-malware-host.nse
+usr/share/nmap/scripts/http-mcmp.nse
 usr/share/nmap/scripts/http-method-tamper.nse
 usr/share/nmap/scripts/http-methods.nse
 usr/share/nmap/scripts/http-mobileversion-checker.nse
@@ -407,11 +448,14 @@ usr/share/nmap/scripts/http-robots.txt.nse
 usr/share/nmap/scripts/http-robtex-reverse-ip.nse
 usr/share/nmap/scripts/http-robtex-shared-ns.nse
 usr/share/nmap/scripts/http-server-header.nse
+usr/share/nmap/scripts/http-shellshock.nse
 usr/share/nmap/scripts/http-sitemap-generator.nse
 usr/share/nmap/scripts/http-slowloris-check.nse
 usr/share/nmap/scripts/http-slowloris.nse
 usr/share/nmap/scripts/http-sql-injection.nse
 usr/share/nmap/scripts/http-stored-xss.nse
+usr/share/nmap/scripts/http-svn-enum.nse
+usr/share/nmap/scripts/http-svn-info.nse
 usr/share/nmap/scripts/http-title.nse
 usr/share/nmap/scripts/http-tplink-dir-traversal.nse
 usr/share/nmap/scripts/http-trace.nse
@@ -423,6 +467,7 @@ usr/share/nmap/scripts/http-vhosts.nse
 usr/share/nmap/scripts/http-virustotal.nse
 usr/share/nmap/scripts/http-vlcstreamer-ls.nse
 usr/share/nmap/scripts/http-vmware-path-vuln.nse
+usr/share/nmap/scripts/http-vuln-cve2006-3392.nse
 usr/share/nmap/scripts/http-vuln-cve2009-3960.nse
 usr/share/nmap/scripts/http-vuln-cve2010-0738.nse
 usr/share/nmap/scripts/http-vuln-cve2010-2861.nse
@@ -430,12 +475,24 @@ usr/share/nmap/scripts/http-vuln-cve2011-3192.nse
 usr/share/nmap/scripts/http-vuln-cve2011-3368.nse
 usr/share/nmap/scripts/http-vuln-cve2012-1823.nse
 usr/share/nmap/scripts/http-vuln-cve2013-0156.nse
-usr/share/nmap/scripts/http-vuln-zimbra-lfi.nse
+usr/share/nmap/scripts/http-vuln-cve2013-6786.nse
+usr/share/nmap/scripts/http-vuln-cve2013-7091.nse
+usr/share/nmap/scripts/http-vuln-cve2014-2126.nse
+usr/share/nmap/scripts/http-vuln-cve2014-2127.nse
+usr/share/nmap/scripts/http-vuln-cve2014-2128.nse
+usr/share/nmap/scripts/http-vuln-cve2014-2129.nse
+usr/share/nmap/scripts/http-vuln-cve2014-3704.nse
+usr/share/nmap/scripts/http-vuln-cve2014-8877.nse
+usr/share/nmap/scripts/http-vuln-cve2015-1427.nse
+usr/share/nmap/scripts/http-vuln-cve2015-1635.nse
+usr/share/nmap/scripts/http-vuln-misfortune-cookie.nse
+usr/share/nmap/scripts/http-vuln-wnr1000-creds.nse
 usr/share/nmap/scripts/http-waf-detect.nse
 usr/share/nmap/scripts/http-waf-fingerprint.nse
+usr/share/nmap/scripts/http-webdav-scan.nse
 usr/share/nmap/scripts/http-wordpress-brute.nse
 usr/share/nmap/scripts/http-wordpress-enum.nse
-usr/share/nmap/scripts/http-wordpress-plugins.nse
+usr/share/nmap/scripts/http-wordpress-users.nse
 usr/share/nmap/scripts/http-xssed.nse
 usr/share/nmap/scripts/iax2-brute.nse
 usr/share/nmap/scripts/iax2-version.nse
@@ -443,15 +500,23 @@ usr/share/nmap/scripts/icap-info.nse
 usr/share/nmap/scripts/ike-version.nse
 usr/share/nmap/scripts/imap-brute.nse
 usr/share/nmap/scripts/imap-capabilities.nse
+usr/share/nmap/scripts/imap-ntlm-info.nse
 usr/share/nmap/scripts/informix-brute.nse
 usr/share/nmap/scripts/informix-query.nse
 usr/share/nmap/scripts/informix-tables.nse
 usr/share/nmap/scripts/ip-forwarding.nse
-usr/share/nmap/scripts/ip-geolocation-geobytes.nse
 usr/share/nmap/scripts/ip-geolocation-geoplugin.nse
 usr/share/nmap/scripts/ip-geolocation-ipinfodb.nse
+usr/share/nmap/scripts/ip-geolocation-map-bing.nse
+usr/share/nmap/scripts/ip-geolocation-map-google.nse
+usr/share/nmap/scripts/ip-geolocation-map-kml.nse
 usr/share/nmap/scripts/ip-geolocation-maxmind.nse
+usr/share/nmap/scripts/ip-https-discover.nse
 usr/share/nmap/scripts/ipidseq.nse
+usr/share/nmap/scripts/ipmi-brute.nse
+usr/share/nmap/scripts/ipmi-cipher-zero.nse
+usr/share/nmap/scripts/ipmi-version.nse
+usr/share/nmap/scripts/ipv6-multicast-mld-list.nse
 usr/share/nmap/scripts/ipv6-node-info.nse
 usr/share/nmap/scripts/ipv6-ra-flood.nse
 usr/share/nmap/scripts/irc-botnet-channels.nse
@@ -466,6 +531,8 @@ usr/share/nmap/scripts/jdwp-exec.nse
 usr/share/nmap/scripts/jdwp-info.nse
 usr/share/nmap/scripts/jdwp-inject.nse
 usr/share/nmap/scripts/jdwp-version.nse
+usr/share/nmap/scripts/knx-gateway-discover.nse
+usr/share/nmap/scripts/knx-gateway-info.nse
 usr/share/nmap/scripts/krb5-enum-users.nse
 usr/share/nmap/scripts/ldap-brute.nse
 usr/share/nmap/scripts/ldap-novell-getpass.nse
@@ -482,12 +549,14 @@ usr/share/nmap/scripts/memcached-info.nse
 usr/share/nmap/scripts/metasploit-info.nse
 usr/share/nmap/scripts/metasploit-msgrpc-brute.nse
 usr/share/nmap/scripts/metasploit-xmlrpc-brute.nse
+usr/share/nmap/scripts/mikrotik-routeros-brute.nse
 usr/share/nmap/scripts/mmouse-brute.nse
 usr/share/nmap/scripts/mmouse-exec.nse
 usr/share/nmap/scripts/modbus-discover.nse
 usr/share/nmap/scripts/mongodb-brute.nse
 usr/share/nmap/scripts/mongodb-databases.nse
 usr/share/nmap/scripts/mongodb-info.nse
+usr/share/nmap/scripts/mqtt-subscribe.nse
 usr/share/nmap/scripts/mrinfo.nse
 usr/share/nmap/scripts/ms-sql-brute.nse
 usr/share/nmap/scripts/ms-sql-config.nse
@@ -496,6 +565,7 @@ usr/share/nmap/scripts/ms-sql-dump-hashes.nse
 usr/share/nmap/scripts/ms-sql-empty-password.nse
 usr/share/nmap/scripts/ms-sql-hasdbaccess.nse
 usr/share/nmap/scripts/ms-sql-info.nse
+usr/share/nmap/scripts/ms-sql-ntlm-info.nse
 usr/share/nmap/scripts/ms-sql-query.nse
 usr/share/nmap/scripts/ms-sql-tables.nse
 usr/share/nmap/scripts/ms-sql-xp-cmdshell.nse
@@ -530,26 +600,33 @@ usr/share/nmap/scripts/nexpose-brute.nse
 usr/share/nmap/scripts/nfs-ls.nse
 usr/share/nmap/scripts/nfs-showmount.nse
 usr/share/nmap/scripts/nfs-statfs.nse
+usr/share/nmap/scripts/nje-node-brute.nse
+usr/share/nmap/scripts/nje-pass-brute.nse
+usr/share/nmap/scripts/nntp-ntlm-info.nse
 usr/share/nmap/scripts/nping-brute.nse
 usr/share/nmap/scripts/nrpe-enum.nse
 usr/share/nmap/scripts/ntp-info.nse
 usr/share/nmap/scripts/ntp-monlist.nse
 usr/share/nmap/scripts/omp2-brute.nse
 usr/share/nmap/scripts/omp2-enum-targets.nse
+usr/share/nmap/scripts/omron-info.nse
 usr/share/nmap/scripts/openlookup-info.nse
 usr/share/nmap/scripts/openvas-otp-brute.nse
 usr/share/nmap/scripts/oracle-brute-stealth.nse
 usr/share/nmap/scripts/oracle-brute.nse
 usr/share/nmap/scripts/oracle-enum-users.nse
 usr/share/nmap/scripts/oracle-sid-brute.nse
+usr/share/nmap/scripts/oracle-tns-version.nse
 usr/share/nmap/scripts/ovs-agent-version.nse
 usr/share/nmap/scripts/p2p-conficker.nse
 usr/share/nmap/scripts/path-mtu.nse
 usr/share/nmap/scripts/pcanywhere-brute.nse
+usr/share/nmap/scripts/pcworx-info.nse
 usr/share/nmap/scripts/pgsql-brute.nse
 usr/share/nmap/scripts/pjl-ready-message.nse
 usr/share/nmap/scripts/pop3-brute.nse
 usr/share/nmap/scripts/pop3-capabilities.nse
+usr/share/nmap/scripts/pop3-ntlm-info.nse
 usr/share/nmap/scripts/pptp-version.nse
 usr/share/nmap/scripts/qconn-exec.nse
 usr/share/nmap/scripts/qscan.nse
@@ -577,16 +654,18 @@ usr/share/nmap/scripts/rsync-brute.nse
 usr/share/nmap/scripts/rsync-list-modules.nse
 usr/share/nmap/scripts/rtsp-methods.nse
 usr/share/nmap/scripts/rtsp-url-brute.nse
+usr/share/nmap/scripts/rusers.nse
+usr/share/nmap/scripts/s7-info.nse
 usr/share/nmap/scripts/samba-vuln-cve-2012-1182.nse
 usr/share/nmap/scripts/script.db
 usr/share/nmap/scripts/servicetags.nse
+usr/share/nmap/scripts/shodan-api.nse
 usr/share/nmap/scripts/sip-brute.nse
 usr/share/nmap/scripts/sip-call-spoof.nse
 usr/share/nmap/scripts/sip-enum-users.nse
 usr/share/nmap/scripts/sip-methods.nse
 usr/share/nmap/scripts/skypev2-version.nse
 usr/share/nmap/scripts/smb-brute.nse
-usr/share/nmap/scripts/smb-check-vulns.nse
 usr/share/nmap/scripts/smb-enum-domains.nse
 usr/share/nmap/scripts/smb-enum-groups.nse
 usr/share/nmap/scripts/smb-enum-processes.nse
@@ -602,12 +681,19 @@ usr/share/nmap/scripts/smb-psexec.nse
 usr/share/nmap/scripts/smb-security-mode.nse
 usr/share/nmap/scripts/smb-server-stats.nse
 usr/share/nmap/scripts/smb-system-info.nse
+usr/share/nmap/scripts/smb-vuln-conficker.nse
+usr/share/nmap/scripts/smb-vuln-cve2009-3103.nse
+usr/share/nmap/scripts/smb-vuln-ms06-025.nse
+usr/share/nmap/scripts/smb-vuln-ms07-029.nse
+usr/share/nmap/scripts/smb-vuln-ms08-067.nse
 usr/share/nmap/scripts/smb-vuln-ms10-054.nse
 usr/share/nmap/scripts/smb-vuln-ms10-061.nse
+usr/share/nmap/scripts/smb-vuln-regsvc-dos.nse
 usr/share/nmap/scripts/smbv2-enabled.nse
 usr/share/nmap/scripts/smtp-brute.nse
 usr/share/nmap/scripts/smtp-commands.nse
 usr/share/nmap/scripts/smtp-enum-users.nse
+usr/share/nmap/scripts/smtp-ntlm-info.nse
 usr/share/nmap/scripts/smtp-open-relay.nse
 usr/share/nmap/scripts/smtp-strangeport.nse
 usr/share/nmap/scripts/smtp-vuln-cve2010-4344.nse
@@ -616,6 +702,7 @@ usr/share/nmap/scripts/smtp-vuln-cve2011-1764.nse
 usr/share/nmap/scripts/sniffer-detect.nse
 usr/share/nmap/scripts/snmp-brute.nse
 usr/share/nmap/scripts/snmp-hh3c-logins.nse
+usr/share/nmap/scripts/snmp-info.nse
 usr/share/nmap/scripts/snmp-interfaces.nse
 usr/share/nmap/scripts/snmp-ios-config.nse
 usr/share/nmap/scripts/snmp-netstat.nse
@@ -631,31 +718,44 @@ usr/share/nmap/scripts/socks-open-proxy.nse
 usr/share/nmap/scripts/ssh-hostkey.nse
 usr/share/nmap/scripts/ssh2-enum-algos.nse
 usr/share/nmap/scripts/sshv1.nse
+usr/share/nmap/scripts/ssl-ccs-injection.nse
+usr/share/nmap/scripts/ssl-cert-intaddr.nse
 usr/share/nmap/scripts/ssl-cert.nse
 usr/share/nmap/scripts/ssl-date.nse
+usr/share/nmap/scripts/ssl-dh-params.nse
 usr/share/nmap/scripts/ssl-enum-ciphers.nse
-usr/share/nmap/scripts/ssl-google-cert-catalog.nse
 usr/share/nmap/scripts/ssl-heartbleed.nse
 usr/share/nmap/scripts/ssl-known-key.nse
+usr/share/nmap/scripts/ssl-poodle.nse
+usr/share/nmap/scripts/sslv2-drown.nse
 usr/share/nmap/scripts/sslv2.nse
 usr/share/nmap/scripts/sstp-discover.nse
 usr/share/nmap/scripts/stun-info.nse
 usr/share/nmap/scripts/stun-version.nse
 usr/share/nmap/scripts/stuxnet-detect.nse
+usr/share/nmap/scripts/supermicro-ipmi-conf.nse
 usr/share/nmap/scripts/svn-brute.nse
 usr/share/nmap/scripts/targets-asn.nse
+usr/share/nmap/scripts/targets-ipv6-map4to6.nse
 usr/share/nmap/scripts/targets-ipv6-multicast-echo.nse
 usr/share/nmap/scripts/targets-ipv6-multicast-invalid-dst.nse
 usr/share/nmap/scripts/targets-ipv6-multicast-mld.nse
 usr/share/nmap/scripts/targets-ipv6-multicast-slaac.nse
+usr/share/nmap/scripts/targets-ipv6-wordlist.nse
 usr/share/nmap/scripts/targets-sniffer.nse
 usr/share/nmap/scripts/targets-traceroute.nse
+usr/share/nmap/scripts/targets-xml.nse
 usr/share/nmap/scripts/teamspeak2-version.nse
 usr/share/nmap/scripts/telnet-brute.nse
 usr/share/nmap/scripts/telnet-encryption.nse
+usr/share/nmap/scripts/telnet-ntlm-info.nse
 usr/share/nmap/scripts/tftp-enum.nse
 usr/share/nmap/scripts/tls-nextprotoneg.nse
+usr/share/nmap/scripts/tn3270-screen.nse
+usr/share/nmap/scripts/tor-consensus-checker.nse
 usr/share/nmap/scripts/traceroute-geolocation.nse
+usr/share/nmap/scripts/tso-brute.nse
+usr/share/nmap/scripts/tso-enum.nse
 usr/share/nmap/scripts/unittest.nse
 usr/share/nmap/scripts/unusual-port.nse
 usr/share/nmap/scripts/upnp-info.nse
@@ -665,7 +765,9 @@ usr/share/nmap/scripts/versant-info.nse
 usr/share/nmap/scripts/vmauthd-brute.nse
 usr/share/nmap/scripts/vnc-brute.nse
 usr/share/nmap/scripts/vnc-info.nse
+usr/share/nmap/scripts/vnc-title.nse
 usr/share/nmap/scripts/voldemort-info.nse
+usr/share/nmap/scripts/vtam-enum.nse
 usr/share/nmap/scripts/vuze-dht-info.nse
 usr/share/nmap/scripts/wdb-version.nse
 usr/share/nmap/scripts/weblogic-t3-info.nse
@@ -674,5 +776,6 @@ usr/share/nmap/scripts/whois-ip.nse
 usr/share/nmap/scripts/wsdd-discover.nse
 usr/share/nmap/scripts/x11-access.nse
 usr/share/nmap/scripts/xdmcp-discover.nse
+usr/share/nmap/scripts/xmlrpc-methods.nse
 usr/share/nmap/scripts/xmpp-brute.nse
 usr/share/nmap/scripts/xmpp-info.nse
index 022d4ebc8d5caf9197d49878448a646260c18b45..1adb3849b050f0b3faa3f2d5856c58bc75ef3427 100644 (file)
@@ -105,4 +105,3 @@ usr/share/qemu/vgabios-stdvga.bin
 usr/share/qemu/vgabios-virtio.bin
 usr/share/qemu/vgabios-vmware.bin
 usr/share/qemu/vgabios.bin
-#usr/var/run
index 4fd9b98ed228d1f6b0ca8480513eb9de4bbe4389..792342773597f4c394739ec7a131e8150c88ee77 100644 (file)
@@ -1,3 +1,4 @@
+etc/rc.d/init.d/sane
 etc/rc.d/rc0.d/K10sane
 etc/rc.d/rc3.d/S95sane
 etc/rc.d/rc6.d/K10sane
@@ -514,6 +515,7 @@ usr/lib/sane/libsane-umax_pp.so.1.0.24
 usr/lib/sane/libsane-xerox_mfp.so
 usr/lib/sane/libsane-xerox_mfp.so.1
 usr/lib/sane/libsane-xerox_mfp.so.1.0.24
+usr/local/bin/sanedloop
 usr/sbin/saned
 #usr/share/locale/bg/LC_MESSAGES/sane-backends.mo
 #usr/share/locale/cs/LC_MESSAGES/sane-backends.mo
@@ -628,8 +630,7 @@ usr/share/sane/artec_eplus48u
 usr/share/sane/epjitsu
 usr/share/sane/gt68xx
 usr/share/sane/snapscan
+#usr/var
 #usr/var/lock
 usr/var/lock/sane
 var/ipfire/backup/addons/includes/sane
-etc/rc.d/init.d/sane
-usr/local/bin/sanedloop
index fdf4cafd9d3779ba6b891cf347c3ff6a83eee69b..5aefece3dc422b35c5208b00b174f6549985513d 100644 (file)
@@ -6,14 +6,6 @@
 #usr/include/SDL/SDL_byteorder.h
 #usr/include/SDL/SDL_cdrom.h
 #usr/include/SDL/SDL_config.h
-#usr/include/SDL/SDL_config_amiga.h
-#usr/include/SDL/SDL_config_dreamcast.h
-#usr/include/SDL/SDL_config_macos.h
-#usr/include/SDL/SDL_config_macosx.h
-#usr/include/SDL/SDL_config_minimal.h
-#usr/include/SDL/SDL_config_os2.h
-#usr/include/SDL/SDL_config_win32.h
-#usr/include/SDL/SDL_copying.h
 #usr/include/SDL/SDL_cpuinfo.h
 #usr/include/SDL/SDL_endian.h
 #usr/include/SDL/SDL_error.h
 #usr/include/SDL/begin_code.h
 #usr/include/SDL/close_code.h
 usr/lib/libSDL-1.2.so.0
-usr/lib/libSDL-1.2.so.0.11.0
+usr/lib/libSDL-1.2.so.0.11.4
 #usr/lib/libSDL.a
 #usr/lib/libSDL.la
 usr/lib/libSDL.so
 #usr/lib/libSDLmain.a
+#usr/lib/libSDLmain.la
 #usr/lib/pkgconfig/sdl.pc
-#usr/man/man3/SDLKey.3
-#usr/man/man3/SDL_ActiveEvent.3
-#usr/man/man3/SDL_AddTimer.3
-#usr/man/man3/SDL_AudioCVT.3
-#usr/man/man3/SDL_AudioSpec.3
-#usr/man/man3/SDL_BlitSurface.3
-#usr/man/man3/SDL_BuildAudioCVT.3
-#usr/man/man3/SDL_CD.3
-#usr/man/man3/SDL_CDClose.3
-#usr/man/man3/SDL_CDEject.3
-#usr/man/man3/SDL_CDName.3
-#usr/man/man3/SDL_CDNumDrives.3
-#usr/man/man3/SDL_CDOpen.3
-#usr/man/man3/SDL_CDPause.3
-#usr/man/man3/SDL_CDPlay.3
-#usr/man/man3/SDL_CDPlayTracks.3
-#usr/man/man3/SDL_CDResume.3
-#usr/man/man3/SDL_CDStatus.3
-#usr/man/man3/SDL_CDStop.3
-#usr/man/man3/SDL_CDtrack.3
-#usr/man/man3/SDL_CloseAudio.3
-#usr/man/man3/SDL_Color.3
-#usr/man/man3/SDL_CondBroadcast.3
-#usr/man/man3/SDL_CondSignal.3
-#usr/man/man3/SDL_CondWait.3
-#usr/man/man3/SDL_CondWaitTimeout.3
-#usr/man/man3/SDL_ConvertAudio.3
-#usr/man/man3/SDL_ConvertSurface.3
-#usr/man/man3/SDL_CreateCond.3
-#usr/man/man3/SDL_CreateCursor.3
-#usr/man/man3/SDL_CreateMutex.3
-#usr/man/man3/SDL_CreateRGBSurface.3
-#usr/man/man3/SDL_CreateRGBSurfaceFrom.3
-#usr/man/man3/SDL_CreateSemaphore.3
-#usr/man/man3/SDL_CreateThread.3
-#usr/man/man3/SDL_CreateYUVOverlay.3
-#usr/man/man3/SDL_Delay.3
-#usr/man/man3/SDL_DestroyCond.3
-#usr/man/man3/SDL_DestroyMutex.3
-#usr/man/man3/SDL_DestroySemaphore.3
-#usr/man/man3/SDL_DisplayFormat.3
-#usr/man/man3/SDL_DisplayFormatAlpha.3
-#usr/man/man3/SDL_DisplayYUVOverlay.3
-#usr/man/man3/SDL_EnableKeyRepeat.3
-#usr/man/man3/SDL_EnableUNICODE.3
-#usr/man/man3/SDL_Event.3
-#usr/man/man3/SDL_EventState.3
-#usr/man/man3/SDL_ExposeEvent.3
-#usr/man/man3/SDL_FillRect.3
-#usr/man/man3/SDL_Flip.3
-#usr/man/man3/SDL_FreeCursor.3
-#usr/man/man3/SDL_FreeSurface.3
-#usr/man/man3/SDL_FreeWAV.3
-#usr/man/man3/SDL_FreeYUVOverlay.3
-#usr/man/man3/SDL_GL_GetAttribute.3
-#usr/man/man3/SDL_GL_GetProcAddress.3
-#usr/man/man3/SDL_GL_LoadLibrary.3
-#usr/man/man3/SDL_GL_SetAttribute.3
-#usr/man/man3/SDL_GL_SwapBuffers.3
-#usr/man/man3/SDL_GLattr.3
-#usr/man/man3/SDL_GetAppState.3
-#usr/man/man3/SDL_GetAudioStatus.3
-#usr/man/man3/SDL_GetClipRect.3
-#usr/man/man3/SDL_GetCursor.3
-#usr/man/man3/SDL_GetError.3
-#usr/man/man3/SDL_GetEventFilter.3
-#usr/man/man3/SDL_GetGamma.3
-#usr/man/man3/SDL_GetGammaRamp.3
-#usr/man/man3/SDL_GetKeyName.3
-#usr/man/man3/SDL_GetKeyState.3
-#usr/man/man3/SDL_GetModState.3
-#usr/man/man3/SDL_GetMouseState.3
-#usr/man/man3/SDL_GetRGB.3
-#usr/man/man3/SDL_GetRGBA.3
-#usr/man/man3/SDL_GetRelativeMouseState.3
-#usr/man/man3/SDL_GetThreadID.3
-#usr/man/man3/SDL_GetTicks.3
-#usr/man/man3/SDL_GetVideoInfo.3
-#usr/man/man3/SDL_GetVideoSurface.3
-#usr/man/man3/SDL_Init.3
-#usr/man/man3/SDL_InitSubSystem.3
-#usr/man/man3/SDL_JoyAxisEvent.3
-#usr/man/man3/SDL_JoyBallEvent.3
-#usr/man/man3/SDL_JoyButtonEvent.3
-#usr/man/man3/SDL_JoyHatEvent.3
-#usr/man/man3/SDL_JoystickClose.3
-#usr/man/man3/SDL_JoystickEventState.3
-#usr/man/man3/SDL_JoystickGetAxis.3
-#usr/man/man3/SDL_JoystickGetBall.3
-#usr/man/man3/SDL_JoystickGetButton.3
-#usr/man/man3/SDL_JoystickGetHat.3
-#usr/man/man3/SDL_JoystickIndex.3
-#usr/man/man3/SDL_JoystickName.3
-#usr/man/man3/SDL_JoystickNumAxes.3
-#usr/man/man3/SDL_JoystickNumBalls.3
-#usr/man/man3/SDL_JoystickNumButtons.3
-#usr/man/man3/SDL_JoystickNumHats.3
-#usr/man/man3/SDL_JoystickOpen.3
-#usr/man/man3/SDL_JoystickOpened.3
-#usr/man/man3/SDL_JoystickUpdate.3
-#usr/man/man3/SDL_KeyboardEvent.3
-#usr/man/man3/SDL_KillThread.3
-#usr/man/man3/SDL_ListModes.3
-#usr/man/man3/SDL_LoadBMP.3
-#usr/man/man3/SDL_LoadWAV.3
-#usr/man/man3/SDL_LockAudio.3
-#usr/man/man3/SDL_LockSurface.3
-#usr/man/man3/SDL_LockYUVOverlay.3
-#usr/man/man3/SDL_MapRGB.3
-#usr/man/man3/SDL_MapRGBA.3
-#usr/man/man3/SDL_MixAudio.3
-#usr/man/man3/SDL_MouseButtonEvent.3
-#usr/man/man3/SDL_MouseMotionEvent.3
-#usr/man/man3/SDL_NumJoysticks.3
-#usr/man/man3/SDL_OpenAudio.3
-#usr/man/man3/SDL_Overlay.3
-#usr/man/man3/SDL_Palette.3
-#usr/man/man3/SDL_PauseAudio.3
-#usr/man/man3/SDL_PeepEvents.3
-#usr/man/man3/SDL_PixelFormat.3
-#usr/man/man3/SDL_PollEvent.3
-#usr/man/man3/SDL_PumpEvents.3
-#usr/man/man3/SDL_PushEvent.3
-#usr/man/man3/SDL_Quit.3
-#usr/man/man3/SDL_QuitEvent.3
-#usr/man/man3/SDL_QuitSubSystem.3
-#usr/man/man3/SDL_RWFromFile.3
-#usr/man/man3/SDL_Rect.3
-#usr/man/man3/SDL_RemoveTimer.3
-#usr/man/man3/SDL_ResizeEvent.3
-#usr/man/man3/SDL_SaveBMP.3
-#usr/man/man3/SDL_SemPost.3
-#usr/man/man3/SDL_SemTryWait.3
-#usr/man/man3/SDL_SemValue.3
-#usr/man/man3/SDL_SemWait.3
-#usr/man/man3/SDL_SemWaitTimeout.3
-#usr/man/man3/SDL_SetAlpha.3
-#usr/man/man3/SDL_SetClipRect.3
-#usr/man/man3/SDL_SetColorKey.3
-#usr/man/man3/SDL_SetColors.3
-#usr/man/man3/SDL_SetCursor.3
-#usr/man/man3/SDL_SetEventFilter.3
-#usr/man/man3/SDL_SetGamma.3
-#usr/man/man3/SDL_SetGammaRamp.3
-#usr/man/man3/SDL_SetModState.3
-#usr/man/man3/SDL_SetPalette.3
-#usr/man/man3/SDL_SetTimer.3
-#usr/man/man3/SDL_SetVideoMode.3
-#usr/man/man3/SDL_ShowCursor.3
-#usr/man/man3/SDL_Surface.3
-#usr/man/man3/SDL_SysWMEvent.3
-#usr/man/man3/SDL_ThreadID.3
-#usr/man/man3/SDL_UnlockAudio.3
-#usr/man/man3/SDL_UnlockSurface.3
-#usr/man/man3/SDL_UnlockYUVOverlay.3
-#usr/man/man3/SDL_UpdateRect.3
-#usr/man/man3/SDL_UpdateRects.3
-#usr/man/man3/SDL_UserEvent.3
-#usr/man/man3/SDL_VideoDriverName.3
-#usr/man/man3/SDL_VideoInfo.3
-#usr/man/man3/SDL_VideoModeOK.3
-#usr/man/man3/SDL_WM_GetCaption.3
-#usr/man/man3/SDL_WM_GrabInput.3
-#usr/man/man3/SDL_WM_IconifyWindow.3
-#usr/man/man3/SDL_WM_SetCaption.3
-#usr/man/man3/SDL_WM_SetIcon.3
-#usr/man/man3/SDL_WM_ToggleFullScreen.3
-#usr/man/man3/SDL_WaitEvent.3
-#usr/man/man3/SDL_WaitThread.3
-#usr/man/man3/SDL_WarpMouse.3
-#usr/man/man3/SDL_WasInit.3
-#usr/man/man3/SDL_keysym.3
-#usr/man/man3/SDL_mutexP.3
-#usr/man/man3/SDL_mutexV.3
 #usr/share/aclocal/sdl.m4
+#usr/share/man/man3/SDLKey.3
+#usr/share/man/man3/SDL_ActiveEvent.3
+#usr/share/man/man3/SDL_AddTimer.3
+#usr/share/man/man3/SDL_AudioCVT.3
+#usr/share/man/man3/SDL_AudioSpec.3
+#usr/share/man/man3/SDL_BlitSurface.3
+#usr/share/man/man3/SDL_BuildAudioCVT.3
+#usr/share/man/man3/SDL_CD.3
+#usr/share/man/man3/SDL_CDClose.3
+#usr/share/man/man3/SDL_CDEject.3
+#usr/share/man/man3/SDL_CDName.3
+#usr/share/man/man3/SDL_CDNumDrives.3
+#usr/share/man/man3/SDL_CDOpen.3
+#usr/share/man/man3/SDL_CDPause.3
+#usr/share/man/man3/SDL_CDPlay.3
+#usr/share/man/man3/SDL_CDPlayTracks.3
+#usr/share/man/man3/SDL_CDResume.3
+#usr/share/man/man3/SDL_CDStatus.3
+#usr/share/man/man3/SDL_CDStop.3
+#usr/share/man/man3/SDL_CDtrack.3
+#usr/share/man/man3/SDL_CloseAudio.3
+#usr/share/man/man3/SDL_Color.3
+#usr/share/man/man3/SDL_CondBroadcast.3
+#usr/share/man/man3/SDL_CondSignal.3
+#usr/share/man/man3/SDL_CondWait.3
+#usr/share/man/man3/SDL_CondWaitTimeout.3
+#usr/share/man/man3/SDL_ConvertAudio.3
+#usr/share/man/man3/SDL_ConvertSurface.3
+#usr/share/man/man3/SDL_CreateCond.3
+#usr/share/man/man3/SDL_CreateCursor.3
+#usr/share/man/man3/SDL_CreateMutex.3
+#usr/share/man/man3/SDL_CreateRGBSurface.3
+#usr/share/man/man3/SDL_CreateRGBSurfaceFrom.3
+#usr/share/man/man3/SDL_CreateSemaphore.3
+#usr/share/man/man3/SDL_CreateThread.3
+#usr/share/man/man3/SDL_CreateYUVOverlay.3
+#usr/share/man/man3/SDL_Delay.3
+#usr/share/man/man3/SDL_DestroyCond.3
+#usr/share/man/man3/SDL_DestroyMutex.3
+#usr/share/man/man3/SDL_DestroySemaphore.3
+#usr/share/man/man3/SDL_DisplayFormat.3
+#usr/share/man/man3/SDL_DisplayFormatAlpha.3
+#usr/share/man/man3/SDL_DisplayYUVOverlay.3
+#usr/share/man/man3/SDL_EnableKeyRepeat.3
+#usr/share/man/man3/SDL_EnableUNICODE.3
+#usr/share/man/man3/SDL_Event.3
+#usr/share/man/man3/SDL_EventState.3
+#usr/share/man/man3/SDL_ExposeEvent.3
+#usr/share/man/man3/SDL_FillRect.3
+#usr/share/man/man3/SDL_Flip.3
+#usr/share/man/man3/SDL_FreeCursor.3
+#usr/share/man/man3/SDL_FreeSurface.3
+#usr/share/man/man3/SDL_FreeWAV.3
+#usr/share/man/man3/SDL_FreeYUVOverlay.3
+#usr/share/man/man3/SDL_GL_GetAttribute.3
+#usr/share/man/man3/SDL_GL_GetProcAddress.3
+#usr/share/man/man3/SDL_GL_LoadLibrary.3
+#usr/share/man/man3/SDL_GL_SetAttribute.3
+#usr/share/man/man3/SDL_GL_SwapBuffers.3
+#usr/share/man/man3/SDL_GLattr.3
+#usr/share/man/man3/SDL_GetAppState.3
+#usr/share/man/man3/SDL_GetAudioStatus.3
+#usr/share/man/man3/SDL_GetClipRect.3
+#usr/share/man/man3/SDL_GetCursor.3
+#usr/share/man/man3/SDL_GetError.3
+#usr/share/man/man3/SDL_GetEventFilter.3
+#usr/share/man/man3/SDL_GetGamma.3
+#usr/share/man/man3/SDL_GetGammaRamp.3
+#usr/share/man/man3/SDL_GetKeyName.3
+#usr/share/man/man3/SDL_GetKeyState.3
+#usr/share/man/man3/SDL_GetModState.3
+#usr/share/man/man3/SDL_GetMouseState.3
+#usr/share/man/man3/SDL_GetRGB.3
+#usr/share/man/man3/SDL_GetRGBA.3
+#usr/share/man/man3/SDL_GetRelativeMouseState.3
+#usr/share/man/man3/SDL_GetThreadID.3
+#usr/share/man/man3/SDL_GetTicks.3
+#usr/share/man/man3/SDL_GetVideoInfo.3
+#usr/share/man/man3/SDL_GetVideoSurface.3
+#usr/share/man/man3/SDL_Init.3
+#usr/share/man/man3/SDL_InitSubSystem.3
+#usr/share/man/man3/SDL_JoyAxisEvent.3
+#usr/share/man/man3/SDL_JoyBallEvent.3
+#usr/share/man/man3/SDL_JoyButtonEvent.3
+#usr/share/man/man3/SDL_JoyHatEvent.3
+#usr/share/man/man3/SDL_JoystickClose.3
+#usr/share/man/man3/SDL_JoystickEventState.3
+#usr/share/man/man3/SDL_JoystickGetAxis.3
+#usr/share/man/man3/SDL_JoystickGetBall.3
+#usr/share/man/man3/SDL_JoystickGetButton.3
+#usr/share/man/man3/SDL_JoystickGetHat.3
+#usr/share/man/man3/SDL_JoystickIndex.3
+#usr/share/man/man3/SDL_JoystickName.3
+#usr/share/man/man3/SDL_JoystickNumAxes.3
+#usr/share/man/man3/SDL_JoystickNumBalls.3
+#usr/share/man/man3/SDL_JoystickNumButtons.3
+#usr/share/man/man3/SDL_JoystickNumHats.3
+#usr/share/man/man3/SDL_JoystickOpen.3
+#usr/share/man/man3/SDL_JoystickOpened.3
+#usr/share/man/man3/SDL_JoystickUpdate.3
+#usr/share/man/man3/SDL_KeyboardEvent.3
+#usr/share/man/man3/SDL_KillThread.3
+#usr/share/man/man3/SDL_ListModes.3
+#usr/share/man/man3/SDL_LoadBMP.3
+#usr/share/man/man3/SDL_LoadWAV.3
+#usr/share/man/man3/SDL_LockAudio.3
+#usr/share/man/man3/SDL_LockSurface.3
+#usr/share/man/man3/SDL_LockYUVOverlay.3
+#usr/share/man/man3/SDL_MapRGB.3
+#usr/share/man/man3/SDL_MapRGBA.3
+#usr/share/man/man3/SDL_MixAudio.3
+#usr/share/man/man3/SDL_MouseButtonEvent.3
+#usr/share/man/man3/SDL_MouseMotionEvent.3
+#usr/share/man/man3/SDL_NumJoysticks.3
+#usr/share/man/man3/SDL_OpenAudio.3
+#usr/share/man/man3/SDL_Overlay.3
+#usr/share/man/man3/SDL_Palette.3
+#usr/share/man/man3/SDL_PauseAudio.3
+#usr/share/man/man3/SDL_PeepEvents.3
+#usr/share/man/man3/SDL_PixelFormat.3
+#usr/share/man/man3/SDL_PollEvent.3
+#usr/share/man/man3/SDL_PumpEvents.3
+#usr/share/man/man3/SDL_PushEvent.3
+#usr/share/man/man3/SDL_Quit.3
+#usr/share/man/man3/SDL_QuitEvent.3
+#usr/share/man/man3/SDL_QuitSubSystem.3
+#usr/share/man/man3/SDL_RWFromFile.3
+#usr/share/man/man3/SDL_Rect.3
+#usr/share/man/man3/SDL_RemoveTimer.3
+#usr/share/man/man3/SDL_ResizeEvent.3
+#usr/share/man/man3/SDL_SaveBMP.3
+#usr/share/man/man3/SDL_SemPost.3
+#usr/share/man/man3/SDL_SemTryWait.3
+#usr/share/man/man3/SDL_SemValue.3
+#usr/share/man/man3/SDL_SemWait.3
+#usr/share/man/man3/SDL_SemWaitTimeout.3
+#usr/share/man/man3/SDL_SetAlpha.3
+#usr/share/man/man3/SDL_SetClipRect.3
+#usr/share/man/man3/SDL_SetColorKey.3
+#usr/share/man/man3/SDL_SetColors.3
+#usr/share/man/man3/SDL_SetCursor.3
+#usr/share/man/man3/SDL_SetEventFilter.3
+#usr/share/man/man3/SDL_SetGamma.3
+#usr/share/man/man3/SDL_SetGammaRamp.3
+#usr/share/man/man3/SDL_SetModState.3
+#usr/share/man/man3/SDL_SetPalette.3
+#usr/share/man/man3/SDL_SetTimer.3
+#usr/share/man/man3/SDL_SetVideoMode.3
+#usr/share/man/man3/SDL_ShowCursor.3
+#usr/share/man/man3/SDL_Surface.3
+#usr/share/man/man3/SDL_SysWMEvent.3
+#usr/share/man/man3/SDL_ThreadID.3
+#usr/share/man/man3/SDL_UnlockAudio.3
+#usr/share/man/man3/SDL_UnlockSurface.3
+#usr/share/man/man3/SDL_UnlockYUVOverlay.3
+#usr/share/man/man3/SDL_UpdateRect.3
+#usr/share/man/man3/SDL_UpdateRects.3
+#usr/share/man/man3/SDL_UserEvent.3
+#usr/share/man/man3/SDL_VideoDriverName.3
+#usr/share/man/man3/SDL_VideoInfo.3
+#usr/share/man/man3/SDL_VideoModeOK.3
+#usr/share/man/man3/SDL_WM_GetCaption.3
+#usr/share/man/man3/SDL_WM_GrabInput.3
+#usr/share/man/man3/SDL_WM_IconifyWindow.3
+#usr/share/man/man3/SDL_WM_SetCaption.3
+#usr/share/man/man3/SDL_WM_SetIcon.3
+#usr/share/man/man3/SDL_WM_ToggleFullScreen.3
+#usr/share/man/man3/SDL_WaitEvent.3
+#usr/share/man/man3/SDL_WaitThread.3
+#usr/share/man/man3/SDL_WarpMouse.3
+#usr/share/man/man3/SDL_WasInit.3
+#usr/share/man/man3/SDL_keysym.3
+#usr/share/man/man3/SDL_mutexP.3
+#usr/share/man/man3/SDL_mutexV.3
diff --git a/config/rootfiles/packages/tcpick b/config/rootfiles/packages/tcpick
deleted file mode 100644 (file)
index f447d21..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/bin/tcpick
-#usr/man/man8/tcpick.8
-#usr/man/man8/tcpick_italian.8
diff --git a/config/rootfiles/packages/vdr_vnsiserver5 b/config/rootfiles/packages/vdr_vnsiserver5
deleted file mode 100644 (file)
index 9b27e97..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-etc/sysconfig/vdr-plugins.d/vnsiserver5.conf
-etc/vdr/plugins/vnsiserver5
-etc/vdr/plugins/vnsiserver5/allowed_hosts.conf
-usr/lib/vdr/libvdr-vnsiserver5.so.2.0.0
index 1f48350dfdcd38e9cc9649e5f9da07543dc75e51..dc291bf12a7c5d2bbc28f214d55fd48bfa5d9d86 100644 (file)
@@ -1,30 +1,96 @@
 usr/bin/dfbdump
+usr/bin/dfbdumpinput
 usr/bin/dfbfx
 usr/bin/dfbg
 usr/bin/dfbinfo
 usr/bin/dfbinput
+usr/bin/dfbinspector
 usr/bin/dfblayer
+usr/bin/dfbmaster
 usr/bin/dfbpenmount
+usr/bin/dfbplay
 usr/bin/dfbscreen
+usr/bin/dfbshow
+usr/bin/dfbswitch
 usr/bin/directfb-config
 usr/bin/directfb-csource
 usr/bin/mkdfiff
 usr/bin/mkdgiff
+usr/bin/mkdgifft
+usr/bin/pxa3xx_dump
+#usr/include/++dfb
+#usr/include/++dfb/++dfb.h
+#usr/include/++dfb/++dfb_mangle.h
+#usr/include/++dfb/++dfb_unmangle.h
+#usr/include/++dfb/idirectfb.h
+#usr/include/++dfb/idirectfbdatabuffer.h
+#usr/include/++dfb/idirectfbdisplaylayer.h
+#usr/include/++dfb/idirectfbeventbuffer.h
+#usr/include/++dfb/idirectfbfont.h
+#usr/include/++dfb/idirectfbimageprovider.h
+#usr/include/++dfb/idirectfbinputdevice.h
+#usr/include/++dfb/idirectfbpalette.h
+#usr/include/++dfb/idirectfbscreen.h
+#usr/include/++dfb/idirectfbsurface.h
+#usr/include/++dfb/idirectfbvideoprovider.h
+#usr/include/++dfb/idirectfbwindow.h
 #usr/include/directfb
 #usr/include/directfb-internal
 #usr/include/directfb-internal/core
+#usr/include/directfb-internal/core/CoreDFB.h
+#usr/include/directfb-internal/core/CoreDFB_CallMode.h
+#usr/include/directfb-internal/core/CoreDFB_includes.h
+#usr/include/directfb-internal/core/CoreGraphicsState.h
+#usr/include/directfb-internal/core/CoreGraphicsStateClient.h
+#usr/include/directfb-internal/core/CoreGraphicsState_includes.h
+#usr/include/directfb-internal/core/CoreInputDevice.h
+#usr/include/directfb-internal/core/CoreInputDevice_includes.h
+#usr/include/directfb-internal/core/CoreLayer.h
+#usr/include/directfb-internal/core/CoreLayerContext.h
+#usr/include/directfb-internal/core/CoreLayerContext_includes.h
+#usr/include/directfb-internal/core/CoreLayerRegion.h
+#usr/include/directfb-internal/core/CoreLayerRegion_includes.h
+#usr/include/directfb-internal/core/CoreLayer_includes.h
+#usr/include/directfb-internal/core/CorePalette.h
+#usr/include/directfb-internal/core/CorePalette_includes.h
+#usr/include/directfb-internal/core/CoreScreen.h
+#usr/include/directfb-internal/core/CoreScreen_includes.h
+#usr/include/directfb-internal/core/CoreSlave.h
+#usr/include/directfb-internal/core/CoreSlave_includes.h
+#usr/include/directfb-internal/core/CoreSurface.h
+#usr/include/directfb-internal/core/CoreSurfaceClient.h
+#usr/include/directfb-internal/core/CoreSurfaceClient_includes.h
+#usr/include/directfb-internal/core/CoreSurface_includes.h
+#usr/include/directfb-internal/core/CoreWindow.h
+#usr/include/directfb-internal/core/CoreWindowStack.h
+#usr/include/directfb-internal/core/CoreWindowStack_includes.h
+#usr/include/directfb-internal/core/CoreWindow_includes.h
+#usr/include/directfb-internal/core/Debug.h
+#usr/include/directfb-internal/core/DisplayTask.h
+#usr/include/directfb-internal/core/Fifo.h
+#usr/include/directfb-internal/core/Interface.h
+#usr/include/directfb-internal/core/PacketBuffer.h
+#usr/include/directfb-internal/core/Renderer.h
+#usr/include/directfb-internal/core/SurfaceTask.h
+#usr/include/directfb-internal/core/Task.h
+#usr/include/directfb-internal/core/TaskManager.h
+#usr/include/directfb-internal/core/TaskThreadsQ.h
+#usr/include/directfb-internal/core/Util.h
 #usr/include/directfb-internal/core/clipboard.h
 #usr/include/directfb-internal/core/colorhash.h
 #usr/include/directfb-internal/core/core.h
 #usr/include/directfb-internal/core/core_parts.h
+#usr/include/directfb-internal/core/core_strings.h
 #usr/include/directfb-internal/core/core_system.h
 #usr/include/directfb-internal/core/coredefs.h
 #usr/include/directfb-internal/core/coretypes.h
 #usr/include/directfb-internal/core/fonts.h
 #usr/include/directfb-internal/core/gfxcard.h
 #usr/include/directfb-internal/core/graphics_driver.h
+#usr/include/directfb-internal/core/graphics_state.h
 #usr/include/directfb-internal/core/input.h
 #usr/include/directfb-internal/core/input_driver.h
+#usr/include/directfb-internal/core/input_hub.h
 #usr/include/directfb-internal/core/layer_context.h
 #usr/include/directfb-internal/core/layer_control.h
 #usr/include/directfb-internal/core/layer_region.h
@@ -36,8 +102,12 @@ usr/bin/mkdgiff
 #usr/include/directfb-internal/core/screens_internal.h
 #usr/include/directfb-internal/core/state.h
 #usr/include/directfb-internal/core/surface.h
+#usr/include/directfb-internal/core/surface_allocation.h
 #usr/include/directfb-internal/core/surface_buffer.h
+#usr/include/directfb-internal/core/surface_client.h
+#usr/include/directfb-internal/core/surface_core.h
 #usr/include/directfb-internal/core/surface_pool.h
+#usr/include/directfb-internal/core/surface_pool_bridge.h
 #usr/include/directfb-internal/core/system.h
 #usr/include/directfb-internal/core/windows.h
 #usr/include/directfb-internal/core/windows_internal.h
@@ -54,6 +124,8 @@ usr/bin/mkdgiff
 #usr/include/directfb-internal/display/idirectfbsurface.h
 #usr/include/directfb-internal/display/idirectfbsurface_layer.h
 #usr/include/directfb-internal/display/idirectfbsurface_window.h
+#usr/include/directfb-internal/dummy
+#usr/include/directfb-internal/dummy/dummy.h
 #usr/include/directfb-internal/fbdev
 #usr/include/directfb-internal/fbdev/agp.h
 #usr/include/directfb-internal/fbdev/fb.h
@@ -67,13 +139,16 @@ usr/bin/mkdgiff
 #usr/include/directfb-internal/gfx/generic/generic.h
 #usr/include/directfb-internal/gfx/util.h
 #usr/include/directfb-internal/idirectfb.h
+#usr/include/directfb-internal/init.h
 #usr/include/directfb-internal/input
 #usr/include/directfb-internal/input/idirectfbinputbuffer.h
 #usr/include/directfb-internal/input/idirectfbinputdevice.h
 #usr/include/directfb-internal/media
 #usr/include/directfb-internal/media/idirectfbdatabuffer.h
+#usr/include/directfb-internal/media/idirectfbdatabuffer_client.h
 #usr/include/directfb-internal/media/idirectfbfont.h
 #usr/include/directfb-internal/media/idirectfbimageprovider.h
+#usr/include/directfb-internal/media/idirectfbimageprovider_client.h
 #usr/include/directfb-internal/media/idirectfbvideoprovider.h
 #usr/include/directfb-internal/misc
 #usr/include/directfb-internal/misc/conf.h
@@ -85,20 +160,60 @@ usr/bin/mkdgiff
 #usr/include/directfb/dfiff.h
 #usr/include/directfb/dgiff.h
 #usr/include/directfb/direct
+#usr/include/directfb/direct/Lists.h
+#usr/include/directfb/direct/LockWQ.h
+#usr/include/directfb/direct/Magic.h
+#usr/include/directfb/direct/Mutex.h
+#usr/include/directfb/direct/Performer.h
+#usr/include/directfb/direct/String.h
+#usr/include/directfb/direct/TLSObject.h
+#usr/include/directfb/direct/ToString.h
+#usr/include/directfb/direct/Types++.h
+#usr/include/directfb/direct/atomic.h
 #usr/include/directfb/direct/build.h
 #usr/include/directfb/direct/clock.h
+#usr/include/directfb/direct/compiler.h
 #usr/include/directfb/direct/conf.h
 #usr/include/directfb/direct/debug.h
 #usr/include/directfb/direct/direct.h
+#usr/include/directfb/direct/fastlz.h
+#usr/include/directfb/direct/fifo.h
+#usr/include/directfb/direct/filesystem.h
+#usr/include/directfb/direct/flz.h
 #usr/include/directfb/direct/hash.h
+#usr/include/directfb/direct/init.h
 #usr/include/directfb/direct/interface.h
 #usr/include/directfb/direct/interface_implementation.h
 #usr/include/directfb/direct/list.h
 #usr/include/directfb/direct/log.h
+#usr/include/directfb/direct/log_domain.h
+#usr/include/directfb/direct/map.h
 #usr/include/directfb/direct/mem.h
 #usr/include/directfb/direct/memcpy.h
 #usr/include/directfb/direct/messages.h
 #usr/include/directfb/direct/modules.h
+#usr/include/directfb/direct/os
+#usr/include/directfb/direct/os/clock.h
+#usr/include/directfb/direct/os/filesystem.h
+#usr/include/directfb/direct/os/linux
+#usr/include/directfb/direct/os/linux/glibc
+#usr/include/directfb/direct/os/linux/glibc/filesystem.h
+#usr/include/directfb/direct/os/linux/glibc/mutex.h
+#usr/include/directfb/direct/os/linux/glibc/thread.h
+#usr/include/directfb/direct/os/linux/glibc/types.h
+#usr/include/directfb/direct/os/linux/glibc/waitqueue.h
+#usr/include/directfb/direct/os/log.h
+#usr/include/directfb/direct/os/mem.h
+#usr/include/directfb/direct/os/mutex.h
+#usr/include/directfb/direct/os/signals.h
+#usr/include/directfb/direct/os/system.h
+#usr/include/directfb/direct/os/thread.h
+#usr/include/directfb/direct/os/types.h
+#usr/include/directfb/direct/os/waitqueue.h
+#usr/include/directfb/direct/perf.h
+#usr/include/directfb/direct/print.h
+#usr/include/directfb/direct/processor.h
+#usr/include/directfb/direct/result.h
 #usr/include/directfb/direct/serial.h
 #usr/include/directfb/direct/signals.h
 #usr/include/directfb/direct/stream.h
@@ -109,14 +224,23 @@ usr/bin/mkdgiff
 #usr/include/directfb/direct/types.h
 #usr/include/directfb/direct/utf8.h
 #usr/include/directfb/direct/util.h
+#usr/include/directfb/direct/uuid.h
+#usr/include/directfb/directfb++.h
 #usr/include/directfb/directfb.h
+#usr/include/directfb/directfb_build.h
+#usr/include/directfb/directfb_graphics.h
 #usr/include/directfb/directfb_keyboard.h
 #usr/include/directfb/directfb_keynames.h
 #usr/include/directfb/directfb_strings.h
 #usr/include/directfb/directfb_util.h
 #usr/include/directfb/directfb_version.h
+#usr/include/directfb/directfb_water.h
+#usr/include/directfb/directfb_water_strings.h
+#usr/include/directfb/directfb_windows.h
 #usr/include/directfb/directfbgl.h
+#usr/include/directfb/directfbgl2.h
 #usr/include/directfb/fusion
+#usr/include/directfb/fusion/Debug.h
 #usr/include/directfb/fusion/arena.h
 #usr/include/directfb/fusion/build.h
 #usr/include/directfb/fusion/call.h
@@ -124,6 +248,7 @@ usr/bin/mkdgiff
 #usr/include/directfb/fusion/fusion.h
 #usr/include/directfb/fusion/fusion_internal.h
 #usr/include/directfb/fusion/hash.h
+#usr/include/directfb/fusion/init.h
 #usr/include/directfb/fusion/lock.h
 #usr/include/directfb/fusion/object.h
 #usr/include/directfb/fusion/property.h
@@ -137,113 +262,136 @@ usr/bin/mkdgiff
 #usr/include/directfb/fusion/shmalloc.h
 #usr/include/directfb/fusion/types.h
 #usr/include/directfb/fusion/vector.h
-#usr/lib/directfb-1.1-0
-#usr/lib/directfb-1.1-0/gfxdrivers
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_ati128.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_ati128.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_cle266.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_cle266.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_cyber5k.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_cyber5k.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_i810.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_i810.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_i830.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_i830.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_mach64.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_mach64.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_neomagic.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_neomagic.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nsc.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nsc.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nvidia.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_nvidia.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_radeon.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_radeon.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_savage.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_savage.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sdlgraphics.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sdlgraphics.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sh7722.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sh7722.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sis315.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_sis315.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_tdfx.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_tdfx.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_unichrome.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_unichrome.so
-#usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_vmware.la
-usr/lib/directfb-1.1-0/gfxdrivers/libdirectfb_vmware.so
-#usr/lib/directfb-1.1-0/inputdrivers
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_joystick.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_joystick.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_keyboard.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_keyboard.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_linux_input.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_linux_input.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_lirc.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_lirc.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_mutouch.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_mutouch.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_penmount.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_penmount.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_ps2mouse.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_ps2mouse.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sdlinput.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sdlinput.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_serialmouse.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_serialmouse.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sonypi.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_sonypi.so
-#usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_wm97xx_ts.la
-usr/lib/directfb-1.1-0/inputdrivers/libdirectfb_wm97xx_ts.so
-#usr/lib/directfb-1.1-0/interfaces
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBFont
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_default.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_default.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_ft2.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBFont/libidirectfbfont_ft2.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBVideoProvider
-#usr/lib/directfb-1.1-0/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.la
-usr/lib/directfb-1.1-0/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so
-#usr/lib/directfb-1.1-0/systems
-#usr/lib/directfb-1.1-0/systems/libdirectfb_devmem.la
-usr/lib/directfb-1.1-0/systems/libdirectfb_devmem.so
-#usr/lib/directfb-1.1-0/systems/libdirectfb_fbdev.la
-usr/lib/directfb-1.1-0/systems/libdirectfb_fbdev.so
-#usr/lib/directfb-1.1-0/systems/libdirectfb_sdl.la
-usr/lib/directfb-1.1-0/systems/libdirectfb_sdl.so
-#usr/lib/directfb-1.1-0/wm
-#usr/lib/directfb-1.1-0/wm/libdirectfbwm_default.la
-usr/lib/directfb-1.1-0/wm/libdirectfbwm_default.so
-usr/lib/libdirect-1.1.so.0
-usr/lib/libdirect-1.1.so.0.1.0
+#usr/lib/directfb-1.7-7
+#usr/lib/directfb-1.7-7/gfxdrivers
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ati128.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ati128.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ep9x.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_ep9x.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_i810.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_i810.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_i830.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_i830.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_mach64.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_mach64.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_matrox.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_matrox.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_neomagic.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_neomagic.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nsc.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nsc.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nvidia.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_nvidia.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_pxa3xx.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_pxa3xx.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sdlgraphics.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sdlgraphics.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sis315.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_sis315.so
+#usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_tdfx.la
+usr/lib/directfb-1.7-7/gfxdrivers/libdirectfb_tdfx.so
+#usr/lib/directfb-1.7-7/inputdrivers
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_input_hub.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_input_hub.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_joystick.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_joystick.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_keyboard.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_keyboard.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_linux_input.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_linux_input.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_lirc.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_lirc.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_mutouch.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_mutouch.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_penmount.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_penmount.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ps2mouse.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_ps2mouse.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sdlinput.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sdlinput.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_serialmouse.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_serialmouse.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sonypi.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_sonypi.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_wm97xx_ts.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_wm97xx_ts.so
+#usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_zytronic.la
+usr/lib/directfb-1.7-7/inputdrivers/libdirectfb_zytronic.so
+#usr/lib/directfb-1.7-7/interfaces
+#usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager
+#usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager/libicoreresourcemanager_test.la
+usr/lib/directfb-1.7-7/interfaces/ICoreResourceManager/libicoreresourcemanager_test.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_dgiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_dgiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_ft2.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBFont/libidirectfbfont_ft2.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_bmp.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_bmp.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_mpeg2.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_pnm.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_pnm.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_tiff.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_tiff.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.so
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows
+#usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows/libidirectfbwindows_default.la
+usr/lib/directfb-1.7-7/interfaces/IDirectFBWindows/libidirectfbwindows_default.so
+#usr/lib/directfb-1.7-7/interfaces/IWater
+#usr/lib/directfb-1.7-7/interfaces/IWater/libiwater_default.la
+usr/lib/directfb-1.7-7/interfaces/IWater/libiwater_default.so
+#usr/lib/directfb-1.7-7/systems
+#usr/lib/directfb-1.7-7/systems/libdirectfb_devmem.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_devmem.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_dummy.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_dummy.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_fbdev.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_fbdev.so
+#usr/lib/directfb-1.7-7/systems/libdirectfb_sdl.la
+usr/lib/directfb-1.7-7/systems/libdirectfb_sdl.so
+#usr/lib/directfb-1.7-7/wm
+#usr/lib/directfb-1.7-7/wm/libdirectfbwm_default.la
+usr/lib/directfb-1.7-7/wm/libdirectfbwm_default.so
+usr/lib/lib++dfb-1.7.so.7
+usr/lib/lib++dfb-1.7.so.7.0.0
+#usr/lib/lib++dfb.la
+#usr/lib/lib++dfb.so
+usr/lib/libdirect-1.7.so.7
+usr/lib/libdirect-1.7.so.7.0.0
 #usr/lib/libdirect.la
 usr/lib/libdirect.so
-usr/lib/libdirectfb-1.1.so.0
-usr/lib/libdirectfb-1.1.so.0.1.0
+usr/lib/libdirectfb-1.7.so.7
+usr/lib/libdirectfb-1.7.so.7.0.0
 #usr/lib/libdirectfb.la
 usr/lib/libdirectfb.so
-usr/lib/libfusion-1.1.so.0
-usr/lib/libfusion-1.1.so.0.1.0
+usr/lib/libfusion-1.7.so.7
+usr/lib/libfusion-1.7.so.7.0.0
 #usr/lib/libfusion.la
 usr/lib/libfusion.so
+#usr/lib/pkgconfig/++dfb.pc
 #usr/lib/pkgconfig/direct.pc
 #usr/lib/pkgconfig/directfb-internal.pc
 #usr/lib/pkgconfig/directfb.pc
 #usr/lib/pkgconfig/fusion.pc
-#usr/share/directfb-1.1.1
-usr/share/directfb-1.1.1/cursor.dat
+#usr/share/directfb-1.7.7
+#usr/share/directfb-1.7.7/cursor.dat
+#usr/share/directfb-1.7.7/cursor.png
+#usr/share/directfb-1.7.7/decker.dgiff
+#usr/share/directfb-1.7.7/decker.ttf
 #usr/share/man/man1/dfbg.1
 #usr/share/man/man1/directfb-csource.1
 #usr/share/man/man5/directfbrc.5
index dfc5ab2f3c50f54cdb1f264c624b1dc09bbd775d..7cb2ade18b67de535a0c02fbd06b1a85061b37c1 100644 (file)
@@ -2765,9 +2765,9 @@ usr/lib/python3.6/lib-dynload/xxlimited.cpython-36m-x86_64-linux-gnu.so
 usr/lib/python3.6/lib-dynload/zlib.cpython-36m-x86_64-linux-gnu.so
 #usr/lib/python3.6/lib2to3
 usr/lib/python3.6/lib2to3/Grammar.txt
-usr/lib/python3.6/lib2to3/Grammar3.6.0.final.0.pickle
+usr/lib/python3.6/lib2to3/Grammar3.6.1.final.0.pickle
 usr/lib/python3.6/lib2to3/PatternGrammar.txt
-usr/lib/python3.6/lib2to3/PatternGrammar3.6.0.final.0.pickle
+usr/lib/python3.6/lib2to3/PatternGrammar3.6.1.final.0.pickle
 usr/lib/python3.6/lib2to3/__init__.py
 usr/lib/python3.6/lib2to3/__main__.py
 #usr/lib/python3.6/lib2to3/__pycache__
@@ -3297,8 +3297,7 @@ usr/lib/python3.6/shelve.py
 usr/lib/python3.6/shlex.py
 usr/lib/python3.6/shutil.py
 usr/lib/python3.6/signal.py
-usr/lib/python3.6/site-packages
-usr/lib/python3.6/site-packages/README
+#usr/lib/python3.6/site-packages
 usr/lib/python3.6/site-packages/README.txt
 #usr/lib/python3.6/site-packages/__pycache__
 usr/lib/python3.6/site-packages/__pycache__/easy_install.cpython-36.pyc
@@ -4112,6 +4111,12 @@ usr/lib/python3.6/test
 #usr/lib/python3.6/test/__pycache__/__main__.cpython-36.opt-1.pyc
 #usr/lib/python3.6/test/__pycache__/__main__.cpython-36.opt-2.pyc
 #usr/lib/python3.6/test/__pycache__/__main__.cpython-36.pyc
+#usr/lib/python3.6/test/__pycache__/mod_generics_cache.cpython-36.opt-1.pyc
+#usr/lib/python3.6/test/__pycache__/mod_generics_cache.cpython-36.opt-2.pyc
+#usr/lib/python3.6/test/__pycache__/mod_generics_cache.cpython-36.pyc
+#usr/lib/python3.6/test/__pycache__/mp_preload.cpython-36.opt-1.pyc
+#usr/lib/python3.6/test/__pycache__/mp_preload.cpython-36.opt-2.pyc
+#usr/lib/python3.6/test/__pycache__/mp_preload.cpython-36.pyc
 #usr/lib/python3.6/test/__pycache__/_test_multiprocessing.cpython-36.opt-1.pyc
 #usr/lib/python3.6/test/__pycache__/_test_multiprocessing.cpython-36.opt-2.pyc
 #usr/lib/python3.6/test/__pycache__/_test_multiprocessing.cpython-36.pyc
@@ -7447,7 +7452,6 @@ usr/lib/python3.6/venv/__pycache__/__main__.cpython-36.opt-2.pyc
 usr/lib/python3.6/venv/__pycache__/__main__.cpython-36.pyc
 usr/lib/python3.6/venv/scripts
 usr/lib/python3.6/venv/scripts/posix
-usr/lib/python3.6/venv/scripts/posix/activate
 usr/lib/python3.6/venv/scripts/posix/activate.csh
 usr/lib/python3.6/venv/scripts/posix/activate.fish
 usr/lib/python3.6/warnings.py
@@ -7597,3 +7601,7 @@ usr/lib/python3.6/zipapp.py
 usr/lib/python3.6/zipfile.py
 #usr/share/man/man1/python3.1
 #usr/share/man/man1/python3.6.1
+usr/lib/python3.6/test/mod_generics_cache.py
+usr/lib/python3.6/test/mp_preload.py
+usr/lib/python3.6/venv/scripts/common
+usr/lib/python3.6/venv/scripts/common/activate
diff --git a/config/rootfiles/packages/x86_64/python3-libvirt b/config/rootfiles/packages/x86_64/python3-libvirt
new file mode 100644 (file)
index 0000000..f20ef09
--- /dev/null
@@ -0,0 +1,10 @@
+usr/lib/python3.6/site-packages/__pycache__/libvirt.cpython-36.pyc
+usr/lib/python3.6/site-packages/__pycache__/libvirt_lxc.cpython-36.pyc
+usr/lib/python3.6/site-packages/__pycache__/libvirt_qemu.cpython-36.pyc
+usr/lib/python3.6/site-packages/libvirt.py
+usr/lib/python3.6/site-packages/libvirt_lxc.py
+#usr/lib/python3.6/site-packages/libvirt_python-3.1.0-py3.6.egg-info
+usr/lib/python3.6/site-packages/libvirt_qemu.py
+usr/lib/python3.6/site-packages/libvirtmod.cpython-36m-x86_64-linux-gnu.so
+usr/lib/python3.6/site-packages/libvirtmod_lxc.cpython-36m-x86_64-linux-gnu.so
+usr/lib/python3.6/site-packages/libvirtmod_qemu.cpython-36m-x86_64-linux-gnu.so
diff --git a/config/vdr/plugins.d/vnsiserver3.conf b/config/vdr/plugins.d/vnsiserver3.conf
deleted file mode 100644 (file)
index 7c9706d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# Configuration snippet for vdr-vnsiserver3                         -*- sh -*-
-#
-# Add command line options to pass to the vnsiserver3 plugin to PLUGIN_OPTIONS.
-
-PLUGIN_OPTIONS=""
diff --git a/config/vdr/plugins.d/vnsiserver5.conf b/config/vdr/plugins.d/vnsiserver5.conf
deleted file mode 100644 (file)
index 561552d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# Configuration snippet for vdr-vnsiserver5                         -*- sh -*-
-#
-# Add command line options to pass to the vnsiserver5 plugin to PLUGIN_OPTIONS.
-
-PLUGIN_OPTIONS=""
index 48d7f6a1c156aa60afbfdffe2e03d35fb50ead01..b9f7747581f0f00a7a9d15de50191349c9f70c91 100644 (file)
@@ -205,8 +205,6 @@ WARNING: translation string unused: extrahd
 WARNING: translation string unused: extrahd unable to read
 WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
-WARNING: translation string unused: firewall graphs
-WARNING: translation string unused: firewall log viewer
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
 WARNING: translation string unused: force update
index f2b6eb7b4aa68fde7a0d14594b5bd96d842fba85..f2f6ab7d3d90154afd2e4e6fe56f02ed0b832eff 100644 (file)
@@ -228,8 +228,6 @@ WARNING: translation string unused: extrahd
 WARNING: translation string unused: extrahd unable to read
 WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
-WARNING: translation string unused: firewall graphs
-WARNING: translation string unused: firewall log viewer
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
 WARNING: translation string unused: force update
index 60ba499c955dc5a5bd6faa88d06889fc74385727..d34d63f59a2d71925a31239a6f550a75a4153cb9 100644 (file)
@@ -716,6 +716,7 @@ WARNING: untranslated string: dnsforward entries
 WARNING: untranslated string: dnsforward forward_server
 WARNING: untranslated string: dnsforward zone
 WARNING: untranslated string: dnssec aware
+WARNING: untranslated string: dnssec disabled warning
 WARNING: untranslated string: dnssec information
 WARNING: untranslated string: dnssec not supported
 WARNING: untranslated string: dnssec validating
@@ -765,6 +766,12 @@ WARNING: untranslated string: fireinfo why descr2
 WARNING: untranslated string: fireinfo why enable
 WARNING: untranslated string: fireinfo why read more
 WARNING: untranslated string: fireinfo your profile id
+WARNING: untranslated string: firewall graph country
+WARNING: untranslated string: firewall graph ip
+WARNING: untranslated string: firewall graph port
+WARNING: untranslated string: firewall log country
+WARNING: untranslated string: firewall log ip
+WARNING: untranslated string: firewall log port
 WARNING: untranslated string: firewall logs country
 WARNING: untranslated string: firewall rules
 WARNING: untranslated string: first
@@ -1137,41 +1144,64 @@ WARNING: untranslated string: unblock
 WARNING: untranslated string: unblock all
 WARNING: untranslated string: uncheck all
 WARNING: untranslated string: uplink
+WARNING: untranslated string: uplink bit rate
 WARNING: untranslated string: upload dh key
 WARNING: untranslated string: uptime load average
 WARNING: untranslated string: urlfilter redirect template
 WARNING: untranslated string: vendor
 WARNING: untranslated string: visit us at
+WARNING: untranslated string: vpn broken
+WARNING: untranslated string: vpn connecting
 WARNING: untranslated string: vpn force mobike
 WARNING: untranslated string: vpn keyexchange
+WARNING: untranslated string: vpn on-demand
+WARNING: untranslated string: vpn start action
+WARNING: untranslated string: vpn start action route
+WARNING: untranslated string: vpn start action start
 WARNING: untranslated string: vpn statistic n2n
 WARNING: untranslated string: vpn statistic rw
 WARNING: untranslated string: vpn statistics n2n
+WARNING: untranslated string: vpn weak
+WARNING: untranslated string: wireless network
 WARNING: untranslated string: wlan client
 WARNING: untranslated string: wlan client advanced settings
 WARNING: untranslated string: wlan client and
+WARNING: untranslated string: wlan client anonymous identity
+WARNING: untranslated string: wlan client auth auto
+WARNING: untranslated string: wlan client auth peap
+WARNING: untranslated string: wlan client auth ttls
+WARNING: untranslated string: wlan client authentication settings
 WARNING: untranslated string: wlan client bssid
 WARNING: untranslated string: wlan client ccmp
 WARNING: untranslated string: wlan client configuration
 WARNING: untranslated string: wlan client disconnected
 WARNING: untranslated string: wlan client duplicate ssid
+WARNING: untranslated string: wlan client eap authentication method
+WARNING: untranslated string: wlan client eap phase2 method
+WARNING: untranslated string: wlan client eap state
 WARNING: untranslated string: wlan client edit entry
 WARNING: untranslated string: wlan client encryption
+WARNING: untranslated string: wlan client encryption eap
 WARNING: untranslated string: wlan client encryption none
 WARNING: untranslated string: wlan client encryption wep
 WARNING: untranslated string: wlan client encryption wpa
 WARNING: untranslated string: wlan client encryption wpa2
 WARNING: untranslated string: wlan client group cipher
 WARNING: untranslated string: wlan client group key algorithm
+WARNING: untranslated string: wlan client identity
 WARNING: untranslated string: wlan client invalid key length
+WARNING: untranslated string: wlan client method
 WARNING: untranslated string: wlan client new entry
 WARNING: untranslated string: wlan client new network
 WARNING: untranslated string: wlan client pairwise cipher
 WARNING: untranslated string: wlan client pairwise key algorithm
 WARNING: untranslated string: wlan client pairwise key group key
+WARNING: untranslated string: wlan client password
 WARNING: untranslated string: wlan client psk
 WARNING: untranslated string: wlan client ssid
 WARNING: untranslated string: wlan client tkip
+WARNING: untranslated string: wlan client tls cipher
+WARNING: untranslated string: wlan client tls version
 WARNING: untranslated string: wlan client wpa mode
 WARNING: untranslated string: wlan client wpa mode all
 WARNING: untranslated string: wlan client wpa mode ccmp ccmp
index 863b5291a77277057435b3e1c3b929da5eca0d51..4a916761b510e809326b013923a3f4f57750683c 100644 (file)
@@ -726,6 +726,7 @@ WARNING: untranslated string: dnsforward entries
 WARNING: untranslated string: dnsforward forward_server
 WARNING: untranslated string: dnsforward zone
 WARNING: untranslated string: dnssec aware
+WARNING: untranslated string: dnssec disabled warning
 WARNING: untranslated string: dnssec information
 WARNING: untranslated string: dnssec not supported
 WARNING: untranslated string: dnssec validating
@@ -775,6 +776,12 @@ WARNING: untranslated string: fireinfo why descr2
 WARNING: untranslated string: fireinfo why enable
 WARNING: untranslated string: fireinfo why read more
 WARNING: untranslated string: fireinfo your profile id
+WARNING: untranslated string: firewall graph country
+WARNING: untranslated string: firewall graph ip
+WARNING: untranslated string: firewall graph port
+WARNING: untranslated string: firewall log country
+WARNING: untranslated string: firewall log ip
+WARNING: untranslated string: firewall log port
 WARNING: untranslated string: firewall logs country
 WARNING: untranslated string: firewall rules
 WARNING: untranslated string: first
@@ -1151,6 +1158,7 @@ WARNING: untranslated string: unblock
 WARNING: untranslated string: unblock all
 WARNING: untranslated string: uncheck all
 WARNING: untranslated string: uplink
+WARNING: untranslated string: uplink bit rate
 WARNING: untranslated string: upload dh key
 WARNING: untranslated string: upload new ruleset
 WARNING: untranslated string: uptime load average
@@ -1159,36 +1167,58 @@ WARNING: untranslated string: urlfilter mode block
 WARNING: untranslated string: urlfilter redirect template
 WARNING: untranslated string: vendor
 WARNING: untranslated string: visit us at
+WARNING: untranslated string: vpn broken
+WARNING: untranslated string: vpn connecting
 WARNING: untranslated string: vpn force mobike
 WARNING: untranslated string: vpn keyexchange
+WARNING: untranslated string: vpn on-demand
+WARNING: untranslated string: vpn start action
+WARNING: untranslated string: vpn start action route
+WARNING: untranslated string: vpn start action start
 WARNING: untranslated string: vpn statistic n2n
 WARNING: untranslated string: vpn statistic rw
 WARNING: untranslated string: vpn statistics n2n
+WARNING: untranslated string: vpn weak
+WARNING: untranslated string: wireless network
 WARNING: untranslated string: wlan client
 WARNING: untranslated string: wlan client advanced settings
 WARNING: untranslated string: wlan client and
+WARNING: untranslated string: wlan client anonymous identity
+WARNING: untranslated string: wlan client auth auto
+WARNING: untranslated string: wlan client auth peap
+WARNING: untranslated string: wlan client auth ttls
+WARNING: untranslated string: wlan client authentication settings
 WARNING: untranslated string: wlan client bssid
 WARNING: untranslated string: wlan client ccmp
 WARNING: untranslated string: wlan client configuration
 WARNING: untranslated string: wlan client disconnected
 WARNING: untranslated string: wlan client duplicate ssid
+WARNING: untranslated string: wlan client eap authentication method
+WARNING: untranslated string: wlan client eap phase2 method
+WARNING: untranslated string: wlan client eap state
 WARNING: untranslated string: wlan client edit entry
 WARNING: untranslated string: wlan client encryption
+WARNING: untranslated string: wlan client encryption eap
 WARNING: untranslated string: wlan client encryption none
 WARNING: untranslated string: wlan client encryption wep
 WARNING: untranslated string: wlan client encryption wpa
 WARNING: untranslated string: wlan client encryption wpa2
 WARNING: untranslated string: wlan client group cipher
 WARNING: untranslated string: wlan client group key algorithm
+WARNING: untranslated string: wlan client identity
 WARNING: untranslated string: wlan client invalid key length
+WARNING: untranslated string: wlan client method
 WARNING: untranslated string: wlan client new entry
 WARNING: untranslated string: wlan client new network
 WARNING: untranslated string: wlan client pairwise cipher
 WARNING: untranslated string: wlan client pairwise key algorithm
 WARNING: untranslated string: wlan client pairwise key group key
+WARNING: untranslated string: wlan client password
 WARNING: untranslated string: wlan client psk
 WARNING: untranslated string: wlan client ssid
 WARNING: untranslated string: wlan client tkip
+WARNING: untranslated string: wlan client tls cipher
+WARNING: untranslated string: wlan client tls version
 WARNING: untranslated string: wlan client wpa mode
 WARNING: untranslated string: wlan client wpa mode all
 WARNING: untranslated string: wlan client wpa mode ccmp ccmp
index 6efef40f4bf4924c4cff93df6ca39b7cce7e0abb..0baf400861de33058849102cc8ab8172139ea360 100644 (file)
@@ -714,6 +714,7 @@ WARNING: untranslated string: dhcp dns update
 WARNING: untranslated string: dhcp dns update algo
 WARNING: untranslated string: dhcp dns update secret
 WARNING: untranslated string: dl client arch insecure
+WARNING: untranslated string: dnssec disabled warning
 WARNING: untranslated string: email config
 WARNING: untranslated string: email empty field
 WARNING: untranslated string: email invalid
@@ -730,6 +731,12 @@ WARNING: untranslated string: email settings
 WARNING: untranslated string: email testmail
 WARNING: untranslated string: email tls
 WARNING: untranslated string: email usemail
+WARNING: untranslated string: firewall graph country
+WARNING: untranslated string: firewall graph ip
+WARNING: untranslated string: firewall graph port
+WARNING: untranslated string: firewall log country
+WARNING: untranslated string: firewall log ip
+WARNING: untranslated string: firewall log port
 WARNING: untranslated string: fwdfw err concon
 WARNING: untranslated string: fwdfw err ratecon
 WARNING: untranslated string: fwdfw limitconcon
@@ -818,7 +825,30 @@ WARNING: untranslated string: search
 WARNING: untranslated string: unblock
 WARNING: untranslated string: unblock all
 WARNING: untranslated string: uncheck all
+WARNING: untranslated string: uplink bit rate
+WARNING: untranslated string: vpn broken
+WARNING: untranslated string: vpn connecting
 WARNING: untranslated string: vpn force mobike
+WARNING: untranslated string: vpn on-demand
+WARNING: untranslated string: vpn start action
+WARNING: untranslated string: vpn start action route
+WARNING: untranslated string: vpn start action start
 WARNING: untranslated string: vpn statistic n2n
 WARNING: untranslated string: vpn statistic rw
 WARNING: untranslated string: vpn statistics n2n
+WARNING: untranslated string: vpn weak
+WARNING: untranslated string: wireless network
+WARNING: untranslated string: wlan client anonymous identity
+WARNING: untranslated string: wlan client auth auto
+WARNING: untranslated string: wlan client auth peap
+WARNING: untranslated string: wlan client auth ttls
+WARNING: untranslated string: wlan client authentication settings
+WARNING: untranslated string: wlan client eap authentication method
+WARNING: untranslated string: wlan client eap phase2 method
+WARNING: untranslated string: wlan client eap state
+WARNING: untranslated string: wlan client encryption eap
+WARNING: untranslated string: wlan client identity
+WARNING: untranslated string: wlan client method
+WARNING: untranslated string: wlan client password
+WARNING: untranslated string: wlan client tls cipher
+WARNING: untranslated string: wlan client tls version
index c9b10dcd619097c298abab698c490fa8c9f7ad95..4f64b5d68c9811e5dfc47142527932495b81e401 100644 (file)
@@ -721,6 +721,7 @@ WARNING: untranslated string: dhcp dns update secret
 WARNING: untranslated string: dl client arch insecure
 WARNING: untranslated string: dns servers
 WARNING: untranslated string: dnssec aware
+WARNING: untranslated string: dnssec disabled warning
 WARNING: untranslated string: dnssec information
 WARNING: untranslated string: dnssec not supported
 WARNING: untranslated string: dnssec validating
@@ -742,6 +743,12 @@ WARNING: untranslated string: email settings
 WARNING: untranslated string: email testmail
 WARNING: untranslated string: email tls
 WARNING: untranslated string: email usemail
+WARNING: untranslated string: firewall graph country
+WARNING: untranslated string: firewall graph ip
+WARNING: untranslated string: firewall graph port
+WARNING: untranslated string: firewall log country
+WARNING: untranslated string: firewall log ip
+WARNING: untranslated string: firewall log port
 WARNING: untranslated string: firewall logs country
 WARNING: untranslated string: fwdfw err concon
 WARNING: untranslated string: fwdfw err ratecon
@@ -864,9 +871,32 @@ WARNING: untranslated string: ta key
 WARNING: untranslated string: unblock
 WARNING: untranslated string: unblock all
 WARNING: untranslated string: uncheck all
+WARNING: untranslated string: uplink bit rate
 WARNING: untranslated string: upload dh key
 WARNING: untranslated string: vendor
+WARNING: untranslated string: vpn broken
+WARNING: untranslated string: vpn connecting
 WARNING: untranslated string: vpn force mobike
+WARNING: untranslated string: vpn on-demand
+WARNING: untranslated string: vpn start action
+WARNING: untranslated string: vpn start action route
+WARNING: untranslated string: vpn start action start
 WARNING: untranslated string: vpn statistic n2n
 WARNING: untranslated string: vpn statistic rw
 WARNING: untranslated string: vpn statistics n2n
+WARNING: untranslated string: vpn weak
+WARNING: untranslated string: wireless network
+WARNING: untranslated string: wlan client anonymous identity
+WARNING: untranslated string: wlan client auth auto
+WARNING: untranslated string: wlan client auth peap
+WARNING: untranslated string: wlan client auth ttls
+WARNING: untranslated string: wlan client authentication settings
+WARNING: untranslated string: wlan client eap authentication method
+WARNING: untranslated string: wlan client eap phase2 method
+WARNING: untranslated string: wlan client eap state
+WARNING: untranslated string: wlan client encryption eap
+WARNING: untranslated string: wlan client identity
+WARNING: untranslated string: wlan client method
+WARNING: untranslated string: wlan client password
+WARNING: untranslated string: wlan client tls cipher
+WARNING: untranslated string: wlan client tls version
index 60ba499c955dc5a5bd6faa88d06889fc74385727..d34d63f59a2d71925a31239a6f550a75a4153cb9 100644 (file)
@@ -716,6 +716,7 @@ WARNING: untranslated string: dnsforward entries
 WARNING: untranslated string: dnsforward forward_server
 WARNING: untranslated string: dnsforward zone
 WARNING: untranslated string: dnssec aware
+WARNING: untranslated string: dnssec disabled warning
 WARNING: untranslated string: dnssec information
 WARNING: untranslated string: dnssec not supported
 WARNING: untranslated string: dnssec validating
@@ -765,6 +766,12 @@ WARNING: untranslated string: fireinfo why descr2
 WARNING: untranslated string: fireinfo why enable
 WARNING: untranslated string: fireinfo why read more
 WARNING: untranslated string: fireinfo your profile id
+WARNING: untranslated string: firewall graph country
+WARNING: untranslated string: firewall graph ip
+WARNING: untranslated string: firewall graph port
+WARNING: untranslated string: firewall log country
+WARNING: untranslated string: firewall log ip
+WARNING: untranslated string: firewall log port
 WARNING: untranslated string: firewall logs country
 WARNING: untranslated string: firewall rules
 WARNING: untranslated string: first
@@ -1137,41 +1144,64 @@ WARNING: untranslated string: unblock
 WARNING: untranslated string: unblock all
 WARNING: untranslated string: uncheck all
 WARNING: untranslated string: uplink
+WARNING: untranslated string: uplink bit rate
 WARNING: untranslated string: upload dh key
 WARNING: untranslated string: uptime load average
 WARNING: untranslated string: urlfilter redirect template
 WARNING: untranslated string: vendor
 WARNING: untranslated string: visit us at
+WARNING: untranslated string: vpn broken
+WARNING: untranslated string: vpn connecting
 WARNING: untranslated string: vpn force mobike
 WARNING: untranslated string: vpn keyexchange
+WARNING: untranslated string: vpn on-demand
+WARNING: untranslated string: vpn start action
+WARNING: untranslated string: vpn start action route
+WARNING: untranslated string: vpn start action start
 WARNING: untranslated string: vpn statistic n2n
 WARNING: untranslated string: vpn statistic rw
 WARNING: untranslated string: vpn statistics n2n
+WARNING: untranslated string: vpn weak
+WARNING: untranslated string: wireless network
 WARNING: untranslated string: wlan client
 WARNING: untranslated string: wlan client advanced settings
 WARNING: untranslated string: wlan client and
+WARNING: untranslated string: wlan client anonymous identity
+WARNING: untranslated string: wlan client auth auto
+WARNING: untranslated string: wlan client auth peap
+WARNING: untranslated string: wlan client auth ttls
+WARNING: untranslated string: wlan client authentication settings
 WARNING: untranslated string: wlan client bssid
 WARNING: untranslated string: wlan client ccmp
 WARNING: untranslated string: wlan client configuration
 WARNING: untranslated string: wlan client disconnected
 WARNING: untranslated string: wlan client duplicate ssid
+WARNING: untranslated string: wlan client eap authentication method
+WARNING: untranslated string: wlan client eap phase2 method
+WARNING: untranslated string: wlan client eap state
 WARNING: untranslated string: wlan client edit entry
 WARNING: untranslated string: wlan client encryption
+WARNING: untranslated string: wlan client encryption eap
 WARNING: untranslated string: wlan client encryption none
 WARNING: untranslated string: wlan client encryption wep
 WARNING: untranslated string: wlan client encryption wpa
 WARNING: untranslated string: wlan client encryption wpa2
 WARNING: untranslated string: wlan client group cipher
 WARNING: untranslated string: wlan client group key algorithm
+WARNING: untranslated string: wlan client identity
 WARNING: untranslated string: wlan client invalid key length
+WARNING: untranslated string: wlan client method
 WARNING: untranslated string: wlan client new entry
 WARNING: untranslated string: wlan client new network
 WARNING: untranslated string: wlan client pairwise cipher
 WARNING: untranslated string: wlan client pairwise key algorithm
 WARNING: untranslated string: wlan client pairwise key group key
+WARNING: untranslated string: wlan client password
 WARNING: untranslated string: wlan client psk
 WARNING: untranslated string: wlan client ssid
 WARNING: untranslated string: wlan client tkip
+WARNING: untranslated string: wlan client tls cipher
+WARNING: untranslated string: wlan client tls version
 WARNING: untranslated string: wlan client wpa mode
 WARNING: untranslated string: wlan client wpa mode all
 WARNING: untranslated string: wlan client wpa mode ccmp ccmp
index 255df2f6888f802e60f74d1e1b12b7d729d5fe6e..d07c421eb2547fdbb6315f98dfe5755f68722f40 100644 (file)
@@ -720,6 +720,7 @@ WARNING: untranslated string: dnsforward entries
 WARNING: untranslated string: dnsforward forward_server
 WARNING: untranslated string: dnsforward zone
 WARNING: untranslated string: dnssec aware
+WARNING: untranslated string: dnssec disabled warning
 WARNING: untranslated string: dnssec information
 WARNING: untranslated string: dnssec not supported
 WARNING: untranslated string: dnssec validating
@@ -759,6 +760,12 @@ WARNING: untranslated string: extrahd maybe the device is in use
 WARNING: untranslated string: extrahd to
 WARNING: untranslated string: extrahd to root
 WARNING: untranslated string: extrahd you cant mount
+WARNING: untranslated string: firewall graph country
+WARNING: untranslated string: firewall graph ip
+WARNING: untranslated string: firewall graph port
+WARNING: untranslated string: firewall log country
+WARNING: untranslated string: firewall log ip
+WARNING: untranslated string: firewall log port
 WARNING: untranslated string: firewall logs country
 WARNING: untranslated string: firewall rules
 WARNING: untranslated string: first
@@ -1132,41 +1139,64 @@ WARNING: untranslated string: unblock
 WARNING: untranslated string: unblock all
 WARNING: untranslated string: uncheck all
 WARNING: untranslated string: uplink
+WARNING: untranslated string: uplink bit rate
 WARNING: untranslated string: upload dh key
 WARNING: untranslated string: uptime load average
 WARNING: untranslated string: urlfilter redirect template
 WARNING: untranslated string: vendor
 WARNING: untranslated string: visit us at
+WARNING: untranslated string: vpn broken
+WARNING: untranslated string: vpn connecting
 WARNING: untranslated string: vpn force mobike
 WARNING: untranslated string: vpn keyexchange
+WARNING: untranslated string: vpn on-demand
+WARNING: untranslated string: vpn start action
+WARNING: untranslated string: vpn start action route
+WARNING: untranslated string: vpn start action start
 WARNING: untranslated string: vpn statistic n2n
 WARNING: untranslated string: vpn statistic rw
 WARNING: untranslated string: vpn statistics n2n
+WARNING: untranslated string: vpn weak
+WARNING: untranslated string: wireless network
 WARNING: untranslated string: wlan client
 WARNING: untranslated string: wlan client advanced settings
 WARNING: untranslated string: wlan client and
+WARNING: untranslated string: wlan client anonymous identity
+WARNING: untranslated string: wlan client auth auto
+WARNING: untranslated string: wlan client auth peap
+WARNING: untranslated string: wlan client auth ttls
+WARNING: untranslated string: wlan client authentication settings
 WARNING: untranslated string: wlan client bssid
 WARNING: untranslated string: wlan client ccmp
 WARNING: untranslated string: wlan client configuration
 WARNING: untranslated string: wlan client disconnected
 WARNING: untranslated string: wlan client duplicate ssid
+WARNING: untranslated string: wlan client eap authentication method
+WARNING: untranslated string: wlan client eap phase2 method
+WARNING: untranslated string: wlan client eap state
 WARNING: untranslated string: wlan client edit entry
 WARNING: untranslated string: wlan client encryption
+WARNING: untranslated string: wlan client encryption eap
 WARNING: untranslated string: wlan client encryption none
 WARNING: untranslated string: wlan client encryption wep
 WARNING: untranslated string: wlan client encryption wpa
 WARNING: untranslated string: wlan client encryption wpa2
 WARNING: untranslated string: wlan client group cipher
 WARNING: untranslated string: wlan client group key algorithm
+WARNING: untranslated string: wlan client identity
 WARNING: untranslated string: wlan client invalid key length
+WARNING: untranslated string: wlan client method
 WARNING: untranslated string: wlan client new entry
 WARNING: untranslated string: wlan client new network
 WARNING: untranslated string: wlan client pairwise cipher
 WARNING: untranslated string: wlan client pairwise key algorithm
 WARNING: untranslated string: wlan client pairwise key group key
+WARNING: untranslated string: wlan client password
 WARNING: untranslated string: wlan client psk
 WARNING: untranslated string: wlan client ssid
 WARNING: untranslated string: wlan client tkip
+WARNING: untranslated string: wlan client tls cipher
+WARNING: untranslated string: wlan client tls version
 WARNING: untranslated string: wlan client wpa mode
 WARNING: untranslated string: wlan client wpa mode all
 WARNING: untranslated string: wlan client wpa mode ccmp ccmp
index 8cf2dfe11e91156adc1ab5626a1da13c515d1e8c..034dd2a7bd4e5096396467a5b5e8968be59a3745 100644 (file)
@@ -706,6 +706,13 @@ WARNING: translation string unused: yearly firewallhits
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: application layer gateways
 WARNING: untranslated string: bytes
+WARNING: untranslated string: dnssec disabled warning
+WARNING: untranslated string: firewall graph country
+WARNING: untranslated string: firewall graph ip
+WARNING: untranslated string: firewall graph port
+WARNING: untranslated string: firewall log country
+WARNING: untranslated string: firewall log ip
+WARNING: untranslated string: firewall log port
 WARNING: untranslated string: fwhost cust geoipgrp
 WARNING: untranslated string: fwhost err hostip
 WARNING: untranslated string: guardian
@@ -752,4 +759,27 @@ WARNING: untranslated string: route config changed
 WARNING: untranslated string: routing config added
 WARNING: untranslated string: routing config changed
 WARNING: untranslated string: routing table
+WARNING: untranslated string: uplink bit rate
+WARNING: untranslated string: vpn broken
+WARNING: untranslated string: vpn connecting
+WARNING: untranslated string: vpn on-demand
+WARNING: untranslated string: vpn start action
+WARNING: untranslated string: vpn start action route
+WARNING: untranslated string: vpn start action start
 WARNING: untranslated string: vpn statistics n2n
+WARNING: untranslated string: vpn weak
+WARNING: untranslated string: wireless network
+WARNING: untranslated string: wlan client anonymous identity
+WARNING: untranslated string: wlan client auth auto
+WARNING: untranslated string: wlan client auth peap
+WARNING: untranslated string: wlan client auth ttls
+WARNING: untranslated string: wlan client authentication settings
+WARNING: untranslated string: wlan client eap authentication method
+WARNING: untranslated string: wlan client eap phase2 method
+WARNING: untranslated string: wlan client eap state
+WARNING: untranslated string: wlan client encryption eap
+WARNING: untranslated string: wlan client identity
+WARNING: untranslated string: wlan client method
+WARNING: untranslated string: wlan client password
+WARNING: untranslated string: wlan client tls cipher
+WARNING: untranslated string: wlan client tls version
index 32e1e48ecc43d8d8f6774a23363397606fcc8ab4..fd372c15fb957c8b42dbc0225667d1b7145a0935 100644 (file)
 < dnsforward forward_server
 < dnsforward zone
 < dnssec aware
+< dnssec disabled warning
 < dnssec information
 < dnssec not supported
 < dnssec validating
 < fireinfo why enable
 < fireinfo why read more
 < fireinfo your profile id
+< firewall graph country
+< firewall graph ip
+< firewall graph port
+< firewall log country
+< firewall log ip
+< firewall log port
 < firewall logs country
 < firewall rules
 < first
 < updxlrtr sources
 < updxlrtr standard view
 < uplink
+< uplink bit rate
 < upload dh key
 < upload new ruleset
 < uptime
 < urlfilter redirect template
 < vendor
 < visit us at
+< vpn broken
+< vpn connecting
 < vpn keyexchange
+< vpn on-demand
+< vpn start action
+< vpn start action route
+< vpn start action start
 < vpn statistic n2n
 < vpn statistic rw
+< vpn weak
+< wireless network
 < wlanap access point
 < wlanap channel
 < wlanap country
 < wlan client
 < wlan client advanced settings
 < wlan client and
+< wlan client anonymous identity
+< wlan client auth auto
+< wlan client authentication settings
+< wlan client auth peap
+< wlan client auth ttls
 < wlan client bssid
 < wlan client ccmp
 < wlan client configuration
 < wlan client disconnected
 < wlan client duplicate ssid
+< wlan client eap authentication method
+< wlan client eap phase2 method
+< wlan client eap state
 < wlan client edit entry
 < wlan client encryption
+< wlan client encryption eap
 < wlan client encryption none
 < wlan client encryption wep
 < wlan client encryption wpa
 < wlan client encryption wpa2
 < wlan client group cipher
 < wlan client group key algorithm
+< wlan client identity
 < wlan client invalid key length
+< wlan client method
 < wlan client new entry
 < wlan client new network
 < wlan client pairwise cipher
 < wlan client pairwise key algorithm
 < wlan client pairwise key group key
+< wlan client password
 < wlan client psk
 < wlan clients
 < wlan client ssid
 < wlan client tkip
+< wlan client tls cipher
+< wlan client tls version
 < wlan client wpa mode
 < wlan client wpa mode all
 < wlan client wpa mode ccmp ccmp
 < dnsforward forward_server
 < dnsforward zone
 < dnssec aware
+< dnssec disabled warning
 < dnssec information
 < dnssec not supported
 < dnssec validating
 < fireinfo why enable
 < fireinfo why read more
 < fireinfo your profile id
+< firewall graph country
+< firewall graph ip
+< firewall graph port
+< firewall log country
+< firewall log ip
+< firewall log port
 < firewall logs country
 < firewall rules
 < first
 < updxlrtr sources
 < updxlrtr standard view
 < uplink
+< uplink bit rate
 < upload dh key
 < uptime
 < uptime load average
 < urlfilter redirect template
 < vendor
 < visit us at
+< vpn broken
+< vpn connecting
 < vpn keyexchange
+< vpn on-demand
+< vpn start action
+< vpn start action route
+< vpn start action start
 < vpn statistic n2n
 < vpn statistic rw
+< vpn weak
+< wireless network
 < wlanap country
 < wlan client
 < wlan client advanced settings
 < wlan client and
+< wlan client anonymous identity
+< wlan client auth auto
+< wlan client authentication settings
+< wlan client auth peap
+< wlan client auth ttls
 < wlan client bssid
 < wlan client ccmp
 < wlan client configuration
 < wlan client disconnected
 < wlan client duplicate ssid
+< wlan client eap authentication method
+< wlan client eap phase2 method
+< wlan client eap state
 < wlan client edit entry
 < wlan client encryption
+< wlan client encryption eap
 < wlan client encryption none
 < wlan client encryption wep
 < wlan client encryption wpa
 < wlan client encryption wpa2
 < wlan client group cipher
 < wlan client group key algorithm
+< wlan client identity
 < wlan client invalid key length
+< wlan client method
 < wlan client new entry
 < wlan client new network
 < wlan client pairwise cipher
 < wlan client pairwise key algorithm
 < wlan client pairwise key group key
+< wlan client password
 < wlan client psk
 < wlan clients
 < wlan client ssid
 < wlan client tkip
+< wlan client tls cipher
+< wlan client tls version
 < wlan client wpa mode
 < wlan client wpa mode all
 < wlan client wpa mode ccmp ccmp
 < dnsforward forward_server
 < dnsforward zone
 < dnssec aware
+< dnssec disabled warning
 < dnssec information
 < dnssec not supported
 < dnssec validating
 < extrahd unable to read
 < extrahd unable to write
 < extrahd you cant mount
+< firewall graph country
+< firewall graph ip
+< firewall graph port
+< firewall log country
+< firewall log ip
+< firewall log port
 < firewall logs country
 < firewall rules
 < first
 < updxlrtr sources
 < updxlrtr standard view
 < uplink
+< uplink bit rate
 < upload dh key
 < uptime
 < uptime load average
 < urlfilter redirect template
 < vendor
 < visit us at
+< vpn broken
+< vpn connecting
 < vpn keyexchange
+< vpn on-demand
+< vpn start action
+< vpn start action route
+< vpn start action start
 < vpn statistic n2n
 < vpn statistic rw
+< vpn weak
+< wireless network
 < wlanap country
 < wlan client
 < wlan client advanced settings
 < wlan client and
+< wlan client anonymous identity
+< wlan client auth auto
+< wlan client authentication settings
+< wlan client auth peap
+< wlan client auth ttls
 < wlan client bssid
 < wlan client ccmp
 < wlan client configuration
 < wlan client disconnected
 < wlan client duplicate ssid
+< wlan client eap authentication method
+< wlan client eap phase2 method
+< wlan client eap state
 < wlan client edit entry
 < wlan client encryption
+< wlan client encryption eap
 < wlan client encryption none
 < wlan client encryption wep
 < wlan client encryption wpa
 < wlan client encryption wpa2
 < wlan client group cipher
 < wlan client group key algorithm
+< wlan client identity
 < wlan client invalid key length
+< wlan client method
 < wlan client new entry
 < wlan client new network
 < wlan client pairwise cipher
 < wlan client pairwise key algorithm
 < wlan client pairwise key group key
+< wlan client password
 < wlan client psk
 < wlan clients
 < wlan client ssid
 < wlan client tkip
+< wlan client tls cipher
+< wlan client tls version
 < wlan client wpa mode
 < wlan client wpa mode all
 < wlan client wpa mode ccmp ccmp
 < dnsforward forward_server
 < dnsforward zone
 < dnssec aware
+< dnssec disabled warning
 < dnssec information
 < dnssec not supported
 < dnssec validating
 < extrahd unable to read
 < extrahd unable to write
 < extrahd you cant mount
+< firewall graph country
+< firewall graph ip
+< firewall graph port
+< firewall log country
+< firewall log ip
+< firewall log port
 < firewall logs country
 < firewall rules
 < first
 < updxlrtr sources
 < updxlrtr standard view
 < uplink
+< uplink bit rate
 < upload dh key
 < uptime
 < uptime load average
 < urlfilter redirect template
 < vendor
 < visit us at
+< vpn broken
+< vpn connecting
 < vpn keyexchange
+< vpn on-demand
+< vpn start action
+< vpn start action route
+< vpn start action start
 < vpn statistic n2n
 < vpn statistic rw
+< vpn weak
 < week-graph
+< wireless network
 < wlanap country
 < wlan client
 < wlan client advanced settings
 < wlan client and
+< wlan client anonymous identity
+< wlan client auth auto
+< wlan client authentication settings
+< wlan client auth peap
+< wlan client auth ttls
 < wlan client bssid
 < wlan client ccmp
 < wlan client configuration
 < wlan client disconnected
 < wlan client duplicate ssid
+< wlan client eap authentication method
+< wlan client eap phase2 method
+< wlan client eap state
 < wlan client edit entry
 < wlan client encryption
+< wlan client encryption eap
 < wlan client encryption none
 < wlan client encryption wep
 < wlan client encryption wpa
 < wlan client encryption wpa2
 < wlan client group cipher
 < wlan client group key algorithm
+< wlan client identity
 < wlan client invalid key length
+< wlan client method
 < wlan client new entry
 < wlan client new network
 < wlan client pairwise cipher
 < wlan client pairwise key algorithm
 < wlan client pairwise key group key
+< wlan client password
 < wlan client psk
 < wlan clients
 < wlan client ssid
 < wlan client tkip
+< wlan client tls cipher
+< wlan client tls version
 < wlan client wpa mode
 < wlan client wpa mode all
 < wlan client wpa mode ccmp ccmp
index 8e016b6cf6a8d93958f6e0c2902fba2d3f7514ce..e5db5c212cdd0c7016ddef79a7ccd6211d079909 100644 (file)
@@ -45,7 +45,7 @@ if ( $querry[0] ne~ "") {
        &Header::openbigbox('100%', 'left');
 
        &Header::openbox('100%', 'center', $Lang::tr{'entropy'});
-       &Graphs::makegraphbox("entropy.cgi", "day", '', 350);
+       &Graphs::makegraphbox("entropy.cgi", "day");
        &Header::closebox();
 
        # Check for hardware support.
index 1b0fe075178a765e8b107ad7c60e8615cc1e3fb3..a2ade8a202f30cafc9592e632f638df7b45b888d 100644 (file)
@@ -301,7 +301,7 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
                }
                if($fwhostsettings{'error'} ne 'on'){
                                my $fullip="$fwhostsettings{'IP'}/".&General::iporsubtocidr($fwhostsettings{'SUBNET'});
-                               $errormessage=$errormessage.&General::checksubnets($fwhostsettings{'HOSTNAME'},$fullip,"");
+                               $errormessage=$errormessage.&General::checksubnets($fwhostsettings{'HOSTNAME'},$fullip,"","exact");
                }
                #only check plausi when no error till now
                if (!$errormessage){
@@ -2555,18 +2555,6 @@ sub checkip
        }
        return 1;
 }
-sub checksubnet
-{
-       my %hash=%{(shift)};
-       &General::readhasharray("$confignet", \%hash);
-       foreach my $key (keys %hash) {
-               if(&General::IpInSubnet($fwhostsettings{'IP'},$hash{$key}[1],$hash{$key}[2]))
-               {
-                       return 1;
-               }
-       }
-       return 0;
-}
 sub checkservicegroup
 {
        &General::readhasharray("$configsrvgrp", \%customservicegrp);
index 963a564307685ab7720a45563dce166a4ad9f954..e15501ef50f6dd61163c01fc885630cbe9fde24d 100644 (file)
@@ -120,7 +120,7 @@ if ($settings{'ACTION'} eq $Lang::tr{'save'}) {
                        $errormessage = "$Lang::tr{'guardian invalid blocktime'}";
        }
 
-       # Check if the bloccount is valid.
+       # Check if the blockcount is valid.
        unless(($settings{'GUARDIAN_BLOCKCOUNT'} =~ /^\d+$/) && ($settings{'GUARDIAN_BLOCKCOUNT'} ne "0")) {
                        $errormessage = "$Lang::tr{'guardian invalid blockcount'}";
        }
@@ -183,7 +183,7 @@ if ($settings{'ACTION'} eq $Lang::tr{'save'}) {
 
                        # Generate the ID for the new entry.
                        #
-                       # Sort the keys by it's ID and store them in an array.
+                       # Sort the keys by their ID and store them in an array.
                        my @keys = sort { $a <=> $b } keys %ignored;
 
                        # Reverse the key array.
@@ -664,11 +664,11 @@ sub showIgnoreBox() {
                                <td class='base' colspan='3' bgcolor='$color{'color20'}'></td>
                        </tr>
 END
-                       # Check if some hosts have been add to be ignored.
+                       # Check if some hosts have been added to be ignored.
                        if (keys (%ignored)) {
                                my $col = "";
 
-                               # Loop through all entries of the hash..
+                               # Loop through all entries of the hash.
                                while( (my $key) = each %ignored)  {
                                        # Assign data array positions to some nice variable names.
                                        my $address = $ignored{$key}[0];
@@ -784,7 +784,7 @@ END
        &Header::closebox();
 }
 
-# Function to list currently bocked addresses from guardian and unblock them or add custom entries to block.
+# Function to list currently blocked addresses from guardian and unblock them or add custom entries to block.
 sub showBlockedBox() {
        &Header::openbox('100%', 'center', $Lang::tr{'guardian blocked hosts'});
 
@@ -795,7 +795,7 @@ sub showBlockedBox() {
                </tr>
 END
 
-               # Lauch function to get the currently blocked hosts.
+               # Launch function to get the currently blocked hosts.
                my @blocked_hosts = &GetBlockedHosts();
 
                my $id = 0;
@@ -828,7 +828,7 @@ END
 END
                }
 
-       # If the loop only has been runs once the id still is "0", which means there are no
+       # If the loop only has been run once the id still is "0", which means there are no
        # additional entries (blocked hosts) in the iptables chain.
        if ($id == 0) {
 
@@ -890,11 +890,11 @@ sub GetBlockedHosts() {
        # Create new, empty array.
        my @hosts;
 
-       # Lauch helper to get chains from iptables.
+       # Launch helper to get chains from iptables.
        system('/usr/local/bin/getipstat');
 
        # Open temporary file which contains the chains and rules.
-       open (FILE, '/srv/web/ipfire/html/iptables.txt');
+       open (FILE, '/var/tmp/iptables.txt');
 
        # Loop through the entire file.
        while (<FILE>) {
@@ -909,7 +909,7 @@ sub GetBlockedHosts() {
                        next if ($line =~ /^Chain/);
                        next if ($line =~ /^ pkts/);
 
-                       # Generate array, based on the line content (seperator is a single or multiple space's)
+                       # Generate array, based on the line content (separator is a single or multiple space)
                        my @comps = split(/\s{1,}/, $line);
                        my ($lead, $pkts, $bytes, $target, $prot, $opt, $in, $out, $source, $destination) = @comps;
 
@@ -927,9 +927,9 @@ sub GetBlockedHosts() {
        close(FILE);
 
        # Remove recently created temporary files of the "getipstat" binary.
-       system(rm -f "/srv/web/ipfire/html/iptables.txt");
-       system(rm -f "/srv/web/ipfire/html/iptablesmangle.txt");
-       system(rm -f "/srv/web/ipfire/html/iptablesnat.txt");
+       system("rm -f /var/tmp/iptables.txt");
+       system("rm -f /var/tmp/iptablesmangle.txt");
+       system("rm -f /var/tmp/iptablesnat.txt");
 
        # Convert entries, sort them, write back and store the sorted entries into new array.
        my @sorted = map  { $_->[0] }
@@ -947,7 +947,7 @@ sub BuildConfiguration() {
 
        my $configfile = "${General::swroot}/guardian/guardian.conf";
 
-       # Create the configfile if not exist yet.
+       # Create the configfile if none exists yet.
        unless (-e "$configfile") { system("touch $configfile"); }
 
        # Open configfile for writing.
index b0a5d3a36de7d94e506ec5d2f06f5cb13a319029..7b5a848bfdd53bcab6c860e6eb3874776c031501 100644 (file)
@@ -113,7 +113,7 @@ if ( $querry[0] =~ "hwtemp"){
 
        if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/sensors-*/temperature-* 2>/dev/null` ) {
                &Header::openbox('100%', 'center', "hwtemp $Lang::tr{'graph'}");
-               &Graphs::makegraphbox("hardwaregraphs.cgi","hwtemp","day","375");
+               &Graphs::makegraphbox("hardwaregraphs.cgi","hwtemp","day");
                Header::closebox();
        }
 
@@ -125,7 +125,7 @@ if ( $querry[0] =~ "hwtemp"){
 
        if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/sensors-*/voltage-* 2>/dev/null` ) {
                &Header::openbox('100%', 'center', "hwvolt $Lang::tr{'graph'}");
-               &Graphs::makegraphbox("hardwaregraphs.cgi","hwvolt","day","435");
+               &Graphs::makegraphbox("hardwaregraphs.cgi","hwvolt","day");
                &Header::closebox();
        }
 
index fbd1f13b26824c58c54553968cc561854301849a..3d9519757d9c816a2fa8bc91d3db9da478fc5d07 100644 (file)
@@ -253,99 +253,94 @@ if (-e "/etc/snort/snort.conf") {
 
 #######################  End added for snort rules control  #################################
 
-if ($snortsettings{'RULES'} eq 'subscripted') {
-       $url=" https://www.snort.org/rules/snortrules-snapshot-2990.tar.gz?oinkcode=$snortsettings{'OINKCODE'}";
-} elsif ($snortsettings{'RULES'} eq 'registered') {
-       $url=" https://www.snort.org/rules/snortrules-snapshot-2990.tar.gz?oinkcode=$snortsettings{'OINKCODE'}";
-} elsif ($snortsettings{'RULES'} eq 'community') {
-       $url=" https://www.snort.org/rules/community";
-} else {
-       $url="http://rules.emergingthreats.net/open/snort-2.9.0/emerging.rules.tar.gz";
+if ($snortsettings{'OINKCODE'} ne "") {
+       $errormessage = $Lang::tr{'invalid input for oink code'} unless ($snortsettings{'OINKCODE'} =~ /^[a-z0-9]+$/);
 }
 
-if ($snortsettings{'ACTION'} eq $Lang::tr{'save'} && $snortsettings{'ACTION2'} eq "snort" )
-{
-       $errormessage = $Lang::tr{'invalid input for oink code'} unless (
-           ($snortsettings{'OINKCODE'} =~ /^[a-z0-9]+$/)  ||
-           ($snortsettings{'RULES'} eq 'nothing' ) ||
-           ($snortsettings{'RULES'} eq 'emerging' ) ||
-           ($snortsettings{'RULES'} eq 'community' ));
-
-       &General::writehash("${General::swroot}/snort/settings", \%snortsettings);
-       if ($snortsettings{'ENABLE_SNORT'} eq 'on')
-       {
-               system ('/usr/bin/touch', "${General::swroot}/snort/enable");
+if (!$errormessage) {
+       if ($snortsettings{'RULES'} eq 'subscripted') {
+               $url=" https://www.snort.org/rules/snortrules-snapshot-2990.tar.gz?oinkcode=$snortsettings{'OINKCODE'}";
+       } elsif ($snortsettings{'RULES'} eq 'registered') {
+               $url=" https://www.snort.org/rules/snortrules-snapshot-2990.tar.gz?oinkcode=$snortsettings{'OINKCODE'}";
+       } elsif ($snortsettings{'RULES'} eq 'community') {
+               $url=" https://www.snort.org/rules/community";
        } else {
-               unlink "${General::swroot}/snort/enable";
-       }
-       if ($snortsettings{'ENABLE_SNORT_GREEN'} eq 'on')
-       {
-               system ('/usr/bin/touch', "${General::swroot}/snort/enable_green");
-       } else {
-               unlink "${General::swroot}/snort/enable_green";
-       }
-       if ($snortsettings{'ENABLE_SNORT_BLUE'} eq 'on')
-       {
-               system ('/usr/bin/touch', "${General::swroot}/snort/enable_blue");
-       } else {
-               unlink "${General::swroot}/snort/enable_blue";
-       }
-       if ($snortsettings{'ENABLE_SNORT_ORANGE'} eq 'on')
-       {
-               system ('/usr/bin/touch', "${General::swroot}/snort/enable_orange");
-       } else {
-               unlink "${General::swroot}/snort/enable_orange";
-       }
-       if ($snortsettings{'ENABLE_PREPROCESSOR_HTTP_INSPECT'} eq 'on')
-       {
-               system ('/usr/bin/touch', "${General::swroot}/snort/enable_preprocessor_http_inspect");
-       } else {
-               unlink "${General::swroot}/snort/enable_preprocessor_http_inspect";
+               $url="http://rules.emergingthreats.net/open/snort-2.9.0/emerging.rules.tar.gz";
        }
 
-       system('/usr/local/bin/snortctrl restart >/dev/null');
+       if ($snortsettings{'ACTION'} eq $Lang::tr{'save'} && $snortsettings{'ACTION2'} eq "snort" ) {
+               &General::writehash("${General::swroot}/snort/settings", \%snortsettings);
+               if ($snortsettings{'ENABLE_SNORT'} eq 'on')
+               {
+                       system ('/usr/bin/touch', "${General::swroot}/snort/enable");
+               } else {
+                       unlink "${General::swroot}/snort/enable";
+               }
+               if ($snortsettings{'ENABLE_SNORT_GREEN'} eq 'on')
+               {
+                       system ('/usr/bin/touch', "${General::swroot}/snort/enable_green");
+               } else {
+                       unlink "${General::swroot}/snort/enable_green";
+               }
+               if ($snortsettings{'ENABLE_SNORT_BLUE'} eq 'on')
+               {
+                       system ('/usr/bin/touch', "${General::swroot}/snort/enable_blue");
+               } else {
+                       unlink "${General::swroot}/snort/enable_blue";
+               }
+               if ($snortsettings{'ENABLE_SNORT_ORANGE'} eq 'on')
+               {
+                       system ('/usr/bin/touch', "${General::swroot}/snort/enable_orange");
+               } else {
+                       unlink "${General::swroot}/snort/enable_orange";
+               }
+               if ($snortsettings{'ENABLE_PREPROCESSOR_HTTP_INSPECT'} eq 'on')
+               {
+                       system ('/usr/bin/touch', "${General::swroot}/snort/enable_preprocessor_http_inspect");
+               } else {
+                       unlink "${General::swroot}/snort/enable_preprocessor_http_inspect";
+               }
 
-}
+               system('/usr/local/bin/snortctrl restart >/dev/null');
+       }
 
-        # INSTALLMD5 is not in the form, so not retrieved by getcgihash
+       # INSTALLMD5 is not in the form, so not retrieved by getcgihash
        &General::readhash("${General::swroot}/snort/settings", \%snortsettings);
 
-if ($snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} || $snortsettings{'ACTION'} eq $Lang::tr{'upload new ruleset'}) {
-
-       my @df = `/bin/df -B M /var`;
-       foreach my $line (@df) {
-               next if $line =~ m/^Filesystem/;
-               my $return;
-
-               if ($line =~ m/dev/ ) {
-               $line =~ m/^.* (\d+)M.*$/;
-               my @temp = split(/ +/,$line);
-                       if ($1<300) {
-                               $errormessage = "$Lang::tr{'not enough disk space'} < 300MB, /var $1MB";
-                       } else {
-
-                               if ( $snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} ){
-
-                                       &downloadrulesfile();
-                                       sleep(3);
-                                       $return = `cat /var/tmp/log 2>/dev/null`;
-
-                               } elsif ( $snortsettings{'ACTION'} eq $Lang::tr{'upload new ruleset'} ) {
-                                       my $upload = $a->param("UPLOAD");
-                                       open UPLOADFILE, ">/var/tmp/snortrules.tar.gz";
-                                       binmode $upload;
-                                       while ( <$upload> ) {
-                                       print UPLOADFILE;
+       if ($snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'} || $snortsettings{'ACTION'} eq $Lang::tr{'upload new ruleset'}) {
+               my @df = `/bin/df -B M /var`;
+               foreach my $line (@df) {
+                       next if $line =~ m/^Filesystem/;
+                       my $return;
+
+                       if ($line =~ m/dev/ ) {
+                               $line =~ m/^.* (\d+)M.*$/;
+                               my @temp = split(/ +/,$line);
+                               if ($1<300) {
+                                       $errormessage = "$Lang::tr{'not enough disk space'} < 300MB, /var $1MB";
+                               } else {
+                                       if ( $snortsettings{'ACTION'} eq $Lang::tr{'download new ruleset'}) {
+                                               &downloadrulesfile();
+                                               sleep(3);
+                                               $return = `cat /var/tmp/log 2>/dev/null`;
+
+                                       } elsif ( $snortsettings{'ACTION'} eq $Lang::tr{'upload new ruleset'}) {
+                                               my $upload = $a->param("UPLOAD");
+                                               open UPLOADFILE, ">/var/tmp/snortrules.tar.gz";
+                                               binmode $upload;
+                                               while ( <$upload> ) {
+                                                       print UPLOADFILE;
+                                               }
+                                               close UPLOADFILE;
                                        }
-                                       close UPLOADFILE;
-                               }
 
-                                       if ($return =~ "ERROR"){
+                                       if ($return =~ "ERROR") {
                                                $errormessage = "<br /><pre>".$return."</pre>";
                                        } else {
                                                system("/usr/local/bin/oinkmaster.pl -v -s -u file:///var/tmp/snortrules.tar.gz -C /var/ipfire/snort/oinkmaster.conf -o /etc/snort/rules >>/var/tmp/log 2>&1 &");
                                                sleep(2);
                                        }
+                               }
                        }
                }
        }
diff --git a/html/cgi-bin/imspector.cgi b/html/cgi-bin/imspector.cgi
deleted file mode 100644 (file)
index fff4329..0000000
+++ /dev/null
@@ -1,607 +0,0 @@
-#!/usr/bin/perl
-#
-# IMSpector real-time log viewer
-# (c) SmoothWall Ltd 2008
-#
-# Released under the GPL v2.
-
-use POSIX qw(strftime);
-
-# Common configuration parameters.
-
-my $logbase = "/var/log/imspector/";
-my $oururl = '/cgi-bin/imspector.cgi';
-
-# Colours
-
-my $protocol_colour     = '#06264d';
-my $local_colour        = '#1d398b';
-my $remote_colour       = '#2149c1';
-my $conversation_colour = '#335ebe';
-
-my $local_user_colour   = 'blue';
-my $remote_user_colour  = 'green';
-
-# No need to change anything from this point
-
-# Page declaration, The following code should parse the CGI headers, and render the page
-# accordingly... How you do this depends what environment you're in.
-
-my %cgiparams;
-
-print "Content-type: text/html\n";
-print "\n";
-
-if ($ENV{'QUERY_STRING'})
-{
-       my @vars = split('\&', $ENV{'QUERY_STRING'});
-       foreach $_ (@vars)
-       {
-               my ($var, $val) = split(/\=/);
-               $cgiparams{$var} = $val;
-       }
-}
-
-# Act in Tail mode (as in just generate the raw logs and pass back to the other CGI
-
-if ( defined $cgiparams{'mode'} and $cgiparams{'mode'} eq "render" ){
-       &parser( $cgiparams{'section'}, $cgiparams{'offset'}, $cgiparams{'conversation'}, $cgiparams{'skimhtml'} );
-       exit;
-}
-
-# Start rendering the Page using Express' rendering functions
-
-my $script = &scriptheader();
-
-# Print Some header information 
-
-print qq|
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-       <title>IMSpector real-time log viewer</title>
-       $script
-</head>
-<body>
-|;
-
-print &pagebody();
-
-# and now finish off the HTML page.
-
-print qq|
-</body>
-</html>
-|;
-
-exit;
-
-# -----------------------------------------------------------------------------
-# ---------------------- IMSPector Log Viewer Code ----------------------------
-# -----------------------------------------------------------------------------
-#           ^"^                                                 ^"^
-
-# Scriptheader
-# ------------
-# Return the bulk of the page, which should reside in the pages <head> field
-
-sub scriptheader
-{
-       my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday ) = localtime( time() );
-       $year += 1900; $mon++;
-       my $conversation = sprintf( "%.4d-%.2d-%.2d", $year, $mon, $mday );
-
-       my $script = qq {
-<script type="text/javascript">
-var section         ='none';
-var moveit          = 1;
-var skimhtml        = 1;
-var the_timeout;
-var offset          = 0;
-var fragment        = "";
-var conversationdate = "$conversation";
-
-function xmlhttpPost()
-{
-       var self = this;
-       
-       if (window.XMLHttpRequest) {
-               // Mozilla/Safari
-               self.xmlHttpReq = new XMLHttpRequest();
-       } else if (window.ActiveXObject) {
-               // IE
-               self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
-       }
-
-       var url = "$url" + "?mode=render&section=" + section + "&skimhtml=" + skimhtml + "&offset=" + offset + "&conversation=" + conversationdate;
-       self.xmlHttpReq.open('POST', url, true);
-       self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-
-       self.xmlHttpReq.onreadystatechange = function() {
-               if ( self.xmlHttpReq && self.xmlHttpReq.readyState == 4) {
-                       updatepage(self.xmlHttpReq.responseText);
-               }
-       }
-
-       document.getElementById('status').style.display = "inline";
-
-       self.xmlHttpReq.send( url );
-       delete self;
-}
-
-function updatepage(str){
-       /* update the list of conversations ( if we need to ) */
-
-       var parts = str.split( "--END--\\n" );
-
-       var lines = parts[0].split( "\\n" );
-
-       for ( var line = 0 ; line < lines.length ; line ++ ){
-               var a = lines[line].split("|");
-
-               if ( !a[1] || !a[2] || !a[3] ){
-                       continue;
-               }
-
-               /* convert the modification stamp into something sensible */
-               a[5] = parseInt( a[5] * 24 * 60 * 60 );
-
-               /* create titling information if needed */
-               if ( !document.getElementById( a[1] ) ){
-                       document.getElementById('conversations').innerHTML += "<div id='" + a[1] + "_t' style='width: 100%; background-color: #d9d9f3; color: $protocol_colour;'>" + a[1] + "</div><div id='" + a[1] + "' style='width: 100%; background-color: #e5e5f3;'></div>";
-               }
-
-               if ( !document.getElementById( a[1] + "_" + a[2] ) ){
-                       document.getElementById( a[1] ).innerHTML += "<div id='" + a[1] + "_" + a[2] + "_t' style='width: 100%; color: $local_colour; padding-left: 5px;'>" + a[2] + "</div><div id='" + a[1] + "_" + a[2] + "' style='width: 100%; background-color: #efeffa; border-bottom: solid 1px #d9d9f3;'></div>";
-               }
-
-               if ( !document.getElementById( a[1] + "_" + a[2] + "_" + a[3] ) ){
-                       document.getElementById( a[1] + "_" + a[2] ).innerHTML += "<div id='" + a[1] + "_" + a[2] + "_" + a[3] + "_t' style='width: 100%; color: $remote_colour; padding-left: 10px; cursor: pointer;' onClick=" + '"' + "setsection('" + a[1] + "|" + a[2] + "|" + a[3] + "|" + a[4] + "');" + '"' + "' + >&raquo;&nbsp;" + a[3] + "</div><div id='" + a[1] + "_" + a[2] + "_" + a[3] + "' style='width: 1%; display: none;'></div>";
-               }
-
-               if ( document.getElementById( a[1] + "_" + a[2] + "_" + a[3] ) && a[5] <= 60 ){
-                       /* modified within the last minute! */
-                       document.getElementById( a[1] + "_" + a[2] + "_" + a[3] + "_t" ).style.fontWeight = "bold";
-               } else {
-                       document.getElementById( a[1] + "_" + a[2] + "_" + a[3] + "_t" ).style.fontWeight = "normal";
-               }
-               delete a;
-       }
-
-       delete lines;
-
-       /* rework the list of active conversation dates ... */
-
-       var lines = parts[1].split( "\\n" );
-
-       var the_select = document.getElementById('conversationdates');
-       the_select.options.length = 0;
-               
-       for ( var line = 0 ; line < lines.length ; line ++ ){
-               if ( lines[ line ] != "" ){
-                       the_select.options.length ++;
-                       the_select.options[ line ].text  = lines[line];
-                       the_select.options[ line ].value = lines[line];
-                       if ( lines[line] == conversationdate ){
-                               the_select.selectedIndex = line;
-                       }
-               }
-       }
-
-       delete the_select;
-       delete lines;
-
-       /* determine the title of this conversation */
-       if ( parts[2] ){
-               var details = parts[2].split(",");
-               var title = details[0] + " conversation between <span style='color: $local_user_colour;'>" + details[ 1 ] + "</span> and <span style='color: $remote_user_colour;'>" + details[2] + "</span>";
-               if ( !details[1] ){
-                       title = "&nbsp;";
-               }
-
-               document.getElementById('status').style.display = "none";
-       
-               var bottom  = parseInt( document.getElementById('content').scrollTop );
-               var bottom2 = parseInt( document.getElementById('content').style.height );
-               var absheight = parseInt( bottom + bottom2 );
-
-               if ( absheight == document.getElementById('content').scrollHeight ){    
-                       moveit = 1;
-               }
-
-               fragment += parts[4];
-               document.getElementById('content').innerHTML = "<table style='width: 100%'>" + fragment + "</table>";
-               if (moveit == 1 ){
-                       document.getElementById('content').scrollTop = 0;
-                       document.getElementById('content').scrollTop = document.getElementById('content').scrollHeight;
-               }
-
-               document.getElementById('content_title').innerHTML = title;
-               delete details;
-               delete title;
-               delete bottom;
-               delete bottom2;
-               delete absheight;
-       }
-
-       /* set the file offset */
-       offset = parts[3];
-
-       if ( moveit == 1 ){
-               document.getElementById('scrlck').style.color = 'green';
-       } else {
-               document.getElementById('scrlck').style.color = '#202020';
-       }
-
-       if ( skimhtml == 1 ){
-               document.getElementById('skimhtml').style.color = 'green';
-       } else {
-               document.getElementById('skimhtml').style.color = '#202020';
-       }
-
-       delete parts;
-
-       the_timeout = setTimeout( "xmlhttpPost();", 5000 );
-}
-
-function setsection( value )
-{
-       section = value;
-       offset = 0;
-       fragment = "";
-       moveit = 1;
-       clearTimeout(the_timeout);
-       xmlhttpPost();
-       document.getElementById('content').scrollTop = 0;
-       document.getElementById('content').scrollTop = document.getElementById('content').scrollHeight;
-}
-
-function togglescrlck()
-{
-       if ( moveit == 1 ){
-               moveit = 0;
-               document.getElementById('scrlck').style.color = '#202020';
-       } else {
-               moveit = 1;
-               document.getElementById('scrlck').style.color = 'green';
-       }
-}
-
-function toggleskimhtml()
-{
-       if ( skimhtml == 1 ){
-               skimhtml = 0;
-               document.getElementById('skimhtml').style.color = '#202020';
-       } else {
-               skimhtml = 1;
-               document.getElementById('skimhtml').style.color = 'green';
-       }
-       clearTimeout(the_timeout);
-       xmlhttpPost();
-}
-
-function setDate()
-{
-       var the_select = document.getElementById('conversationdates');
-       conversationdate = the_select.options[ the_select.selectedIndex ].value;
-       document.getElementById('conversations').innerHTML = "";
-       fragment = "";
-       offset = 0;
-       section = "";
-       clearTimeout(the_timeout);
-       xmlhttpPost();
-}
-
-</script>
-       };
-
-       return $script;
-}
-
-# pagebody function 
-# -----------------
-# Return the HTML fragment which includes the page body.
-
-sub pagebody
-{
-       my $body = qq {
-       <div style='width: 100%; text-align: right;'><span id='status' style='background-color: #fef1b5; display: none;'>Updating</span>&nbsp;</div>
-       <style>
-       
-.powerbutton {
-       color:  #202020;
-       font-size: 9pt;
-       cursor: pointer;
-}
-
-.remoteuser {
-       color: $remote_user_colour;
-       font-size: 9pt;
-}
-
-.localuser {
-       color: $local_user_colour;
-       font-size: 9pt;
-}
-
-       </style>
-       <table style='width: 100%;'>
-               <tr>
-                       <td style='width: 170px; text-align: left; vertical-align: top; overflow: auto; font-size: 8pt; border: solid 1px #c0c0c0;'><div id='conversations' style='height: 400px; overflow: auto; font-size: 10px; overflow-x: hidden;'></div></td>
-                       <td style='border: solid 1px #c0c0c0;'>
-                               <div id='content_title' style='height: 20px; overflow: auto; vertical-align: top; background-color: #E6E8FA; border-bottom: solid 1px #c0c0c0;'></div>
-                               <div id='content' style='height: 376px; overflow: auto; vertical-align: bottom; border-bottom: solid 1px #c0c0c0; overflow-x: hidden;'></div>
-                               <div id='content_subtitle' style='height: 24px; overflow: auto; vertical-align: top; background-color: #E6E8FA; width: 100%; padding: 2px;'>
-                                       <div style='width: 60%; float: left;' id='statuswindow'>
-                                               For conversations on:&nbsp;
-                                               <select id='conversationdates' onChange='setDate()';>
-                                               </select>
-                                       </div>
-                                       <div style='width: 40%; text-align: right; float: right;'>
-                                               <span class='powerbutton' id='skimhtml' onClick='toggleskimhtml();'>[HTML]</span>
-                                               <span class='powerbutton' id='scrlck' onClick='togglescrlck();'>[SCROLL LOCK]</span>
-                                       </div>
-                               </div>
-                       </td>
-               </tr>
-       </table>
-       <script>xmlhttpPost();</script>
-       };
-       return $body;
-}
-
-# Parser function ...
-# ---------------
-# Retrieves the IMspector logs from their nestling place and displays them accordingly.
-
-sub parser
-{
-       my ( $section, $offset, $conversationdate, $skimhtml ) = @_;
-       # render the user list ...
-
-       chomp $offset;  
-
-       unless ( $offset =~ /^([\d]*)$/ ){
-               print STDERR "Illegal offset ($offset $1) resetting...\n";
-               $offset = 0;
-       }
-
-       # browse for the available protocols
-       unless ( opendir DIR, $logbase ){
-               exit;
-       }
-
-       my %conversationaldates;
-       my @protocols = grep {!/^\./} readdir(DIR);             
-
-       foreach my $protocol ( @protocols ){
-               unless ( opendir LUSER, "$logbase$protocol" ){
-                       next;
-               }
-       
-               my @localusers = grep {!/^\./} readdir(LUSER);          
-               foreach my $localuser ( @localusers ){
-                       unless ( opendir RUSER, "$logbase$protocol/$localuser/" ){
-                               next;
-                       }
-                       my @remoteusers = grep {!/^\./} readdir( RUSER );
-                       foreach my $remoteuser ( @remoteusers ){
-                               unless ( opendir CONVERSATIONS, "$logbase$protocol/$localuser/$remoteuser/" ){
-                                       next;
-                               }
-                               my @conversations = grep {!/^\./} readdir( CONVERSATIONS );
-                               foreach my $conversation ( @conversations ){
-                                       $conversationaldates{ $conversation } = $localuser;
-                               }
-
-                               closedir CONVERSATIONS;
-
-                               my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday ) = localtime( time() );
-                               $year += 1900; $mon++;
-                               my $conversation = sprintf( "%.4d-%.2d-%.2d", $year, $mon, $mday );
-
-                               $conversation = $conversationdate if ( defined $conversationdate and $conversationdate ne "" );
-
-                               if ( -e "$logbase$protocol/$localuser/$remoteuser/$conversation" ){
-                                       my $modi = -M "$logbase$protocol/$localuser/$remoteuser/$conversation";
-                                       print "|$protocol|$localuser|$remoteuser|$conversation|$modi\n";
-                               }
-                       }
-                       closedir RUSER;
-               }
-               closedir LUSER;
-       }
-       closedir DIR;
-
-       print "--END--\n";
-
-       # display a list of conversational dates .. i.e. the dates which we have conversations on.
-       foreach my $key ( sort keys %conversationaldates ){
-               print "$key\n";
-       }
-       
-       print "--END--\n";
-
-
-       # now check the log file ...
-       
-       if ( $section ne "none" ){
-               my ( $protocol, $localuser, $remoteuser, $conversation ) = split /\|/, $section;
-               
-               print "$protocol, $localuser, $remoteuser, $conversation\n";
-               print "--END--\n";
-               
-               my $filename = "$logbase$protocol/$localuser/$remoteuser/$conversation";
-               
-               unless ( open(FD, "$filename" ) ){
-                       exit;
-               };
-
-               # perform some *reasonably* complicated file hopping and stuff of that ilk.
-               # it's not beyond reason that logs *could* be extremely large, so what we
-               # should do to speed up their processing is to jump to the end of the file,
-               # then backtrack a little (say a meg, which is a reasonably amount of logs)
-               # and parse from that point onwards.  This, *post* filtering might of course
-               # not leave us with the desired resolution for the tail.  If this is the case,
-               # we keep that array and jump back another meg and have another go, concatinating
-               # the logs as we go.... <wheh>
-
-               my $jumpback = 100000; # not quite a meg, but hey ho    
-               my $goneback = 0;
-               my $gonebacklimit = 1000000000;  # don't go back more than 100MB
-
-               # firstly jump to the end of the file.
-               seek( FD, 0, 2 );
-
-               my $log_position = tell( FD );
-               my $end = $log_position;
-               my $end_position = $log_position;
-
-               my $lines;
-               my @content;
-
-               my $TAILSIZE = 100;
-
-               do {
-                       $end_position = $log_position;
-
-                       if ( $offset != 0 ){
-                               # we were given a hint as to where we should have been anyhow ..
-                               # so we might as well use that to go back to.
-                               $log_position = $offset;
-                               $goneback = $end_position - $log_position;
-                       } else {
-                               $log_position -= $jumpback;
-                               $goneback += $jumpback;
-                       }
-
-                       last if ( $goneback > $gonebacklimit );
-
-                       if ( $log_position > 0 ){
-                               seek( FD, $log_position, 0 );
-                       } else {
-                               seek( FD, 0, 0 );
-                       }
-       
-                       my @newcontent;
-
-                       while ( my $line = <FD> and ( tell( FD ) <= $end_position ) ){
-                               chomp $line;
-                               push @content, $line;
-                       }
-                       shift @content if $#content >= $TAILSIZE;
-               } while ( $#content < $TAILSIZE and $log_position > 0 and $offset == 0 );
-
-               # trim the content down as we may have more entries than we should.
-       
-               while ( $#content > $TAILSIZE ){ shift @content; };
-               close FD;
-
-               print "$end_position\n--END--\n";
-
-               foreach my $line ( @content ){
-                       my ( $address, $timestamp, $direction, $type, $filtered, $cat, $data );
-
-                       ( $address, $timestamp, $direction, $type, $filtered, $cat, $data ) = ( $line =~ /([^,]*),(\d+),(\d+),(\d+),(\d+),([^,]*),(.*)/ );
-
-                       # are we using the oldstyle or new style logs ?
-                       if ( not defined $address and not defined $timestamp ){
-                               ( $address, $timestamp, $type, $data ) = ( $line =~ /([^,]*),([^,]*),([^,]*),(.*)/ );
-                               if ( $type eq "1" ){
-                                       $direction = 0;
-                                       $type      = 1;
-                               } elsif ( $type eq "2" ){
-                                       $direction = 1;
-                                       $type      = 1;
-                               } elsif ( $type eq "3" ){
-                                       $direction = 0;
-                                       $type      = 2;
-                               } elsif ( $type eq "4" ){
-                                       $direction = 1;
-                                       $type      = 4;
-                               }
-                       }
-                       
-                       my ( $severity, $classification ) = '0', 'None';
-                       if ($cat) {
-                               ( $severity, $classification) = split(/ /, $cat, 2); }
-                       else {
-                               $cat = 'N/A'; }
-
-                       my $red = 255;
-                       my $green = 255;
-                       my $blue = 255;
-
-                       if ($severity < 0 && $severity >= -5) {
-                               $red = 0; $green = abs($severity) * (255 / 5); $blue = 0; }
-                       elsif ($severity > 0 && $severity <= 5) {
-                               $red = $severity * (255 / 5); $green = 0; $blue = 0; }
-                       else {
-                               $red = 0; $green = 0; $blue = 0; }
-                       
-                       my $severitycolour = '';
-                       if ($cat ne 'N/A') {
-                               $severitycolour = sprintf("background-color: #%02x%02x%02x;", $red, $green, $blue); }
-
-                       # some protocols (ICQ, I'm looking in your direction) have a habit of starting 
-                       # and ending each sentence with HTML (evil program)             
-
-                       if ( defined $skimhtml and $skimhtml eq "1" ){  
-                               $data =~ s/^<HTML><BODY[^>]*><FONT[^>]*>//ig;   
-                               $data =~ s/<\/FONT><\/BODY><\/HTML>//ig;        
-                       }
-
-                       $data = &htmlescape($data);
-                       $data =~ s/\r\\n/<br>\n/g;
-                       my $user = "";
-
-                       my $bstyle = "";
-                       $bstyle = "style='background-color: #FFE4E1;'" if ( $filtered eq "1" );
-
-                       if ( $type eq "1" ){
-                               # a message message (from remote user)
-                               if ( $direction eq "0" ){
-                                       # incoming
-                                       my $u = $remoteuser;
-                                       $u =~ s/\@.*//g;
-                                       $user = "&lt;<span class='remoteuser'>$u</span>&gt;";
-                               } else { 
-                                       # outgoing message
-                                       my $u = $localuser;
-                                       $u =~ s/\@.*//g;
-                                       $user = "&lt;<span class='localuser'>$u</span>&gt;";
-                               }
-                       } elsif ($type eq "2") {
-                               if ( $direction eq "0" ){
-                                       # incoming file
-                                       my $u = $remoteuser;
-                                       $u =~ s/\@.*//g;
-                                       $user = "&lt;<span class='remoteuser'><b><i>$u</i></b></span>&gt;";
-                               } else {
-                                       # outgoing file
-                                       my $u = $localuser;
-                                       $u =~ s/\@.*//g;
-                                       $user = "&lt;<span class='localuser'><b><i>$u</i></b></span>&gt;";
-                               }
-                       }
-
-                       my $t = strftime "%H:%M:%S", localtime($timestamp);
-                       if ($type eq "3" or $type eq "4") {
-                               $data = "<b><i>$data</i></b>";
-                       }
-                       print "<tr $bstyle><td style='width: 30px; vertical-align: top;'>[$t]</td><td style='width: 10px; $severitycolour' title='$cat'><td style=' width: 60px; vertical-align: top;'>$user</td><td style='vertical-align: top;'>$data</td></tr>";
-               }
-       }
-       return;
-}
-
-sub htmlescape
-{
-       my ($value) = @_;
-       $value =~ s/&/\&amp;/g;
-       $value =~ s/</\&lt;/g;
-       $value =~ s/>/\&gt;/g;
-       $value =~ s/"/\&quot;/g;
-       $value =~ s/'/\&#39;/g;
-       return $value;
-}
index c142a65f7f19b26338b5ad08a6b7277aa27b8d35..6ba345dde8bf3426bdb3e80d26172b69e6f6c6b0 100644 (file)
@@ -217,7 +217,48 @@ END
                        </td>
                        <td></td>
                </tr>
-       </table>
+END
+
+       if (&General::RedIsWireless()) {
+               my $iface = $netsettings{"RED_DEV"} || "red0";
+
+               my $essid        = &Network::wifi_get_essid($iface);
+               my $frequency    = &Network::wifi_get_frequency($iface);
+               my $access_point = &Network::wifi_get_access_point($iface);
+               my $bit_rate     = &Network::wifi_get_bit_rate($iface);
+               my $link_quality = &Network::wifi_get_link_quality($iface);
+               my $signal_level = &Network::wifi_get_signal_level($iface);
+
+               print <<END;
+                       <tr>
+                               <td>
+                                       <strong>$Lang::tr{'wireless network'}:</strong>
+                               </td>
+                               <td style="text-align: center">
+                                       $essid
+                               </td>
+                               <td style="text-align: center">
+                                       $access_point @ $frequency
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>
+                                       <strong>
+                                               $Lang::tr{'uplink bit rate'}:
+                                       </strong>
+                               </td>
+                               <td style="text-align: center">
+                                       $bit_rate
+                               </td>
+                               <td style="text-align: center">
+                                       $link_quality% @ $signal_level
+                               </td>
+                       </tr>
+END
+       }
+
+       print <<END;
+               </table>
 END
 
 #Dial profiles
@@ -425,6 +466,12 @@ END
                                                if (($line =~ /\"$vpnconfig{$key}[1]\".*IPsec SA established/) || ($line =~/$vpnconfig{$key}[1]\{.*INSTALLED/ )){
                                                        $activecolor = $Header::colourgreen;
                                                        $activestatus = $Lang::tr{'capsopen'};
+                                               } elsif ($line =~ /$vpnconfig{$key}[1]\[.*CONNECTING/) {
+                                                       $activecolor = $Header::colourorange;
+                                                       $activestatus = $Lang::tr{'vpn connecting'};
+                                               } elsif ($line =~ /$vpnconfig{$key}[1]\{.*ROUTED/) {
+                                                       $activecolor = $Header::colourorange;
+                                                       $activestatus = $Lang::tr{'vpn on-demand'};
                                                }
                                        }
                                }
@@ -497,6 +544,11 @@ END
 &Header::closebox();
 }
 
+my $dnssec_status = &General::dnssec_status();
+if ($dnssec_status eq "off") {
+       $warnmessage .= "<li>$Lang::tr{'dnssec disabled warning'}</li>";
+}
+
 # Fireinfo
 if ( ! -e "/var/ipfire/main/send_profile") {
        $warnmessage .= "<li><a style='color: white;' href='fireinfo.cgi'>$Lang::tr{'fireinfo please enable'}</a></li>";
index 8cefe6e853ffc74f82dddfb7c2ecfbfbb9e2862c..16541f12621c9fd0ce25fc2015de453aac4d0f58 100644 (file)
@@ -102,7 +102,7 @@ print <<END
 <div align='center'>
 <table width='80%'>
 <tr>
-       <td align='center'><a href='$ENV{'HTTP_REFERER'}'>$Lang::tr{'back'}</a></td>
+       <td align='center'><a href='$ENV{'HTTP_REFERER'}'><img src='/images/back.png' alt='$Lang::tr{'back'}' title='$Lang::tr{'back'}' /></a></td>
 </tr>
 </table>
 </div>
index 30fce272152e0e041d515344d9ec6ac1605b3df0..b52d74fcfbac81006efa0e33fc4642e91abd39a6 100644 (file)
@@ -88,7 +88,7 @@ END
 # start with an Chain the the name, start- and endline of the
 # chain is extracted into a hash
 
-       open (FILE, '/srv/web/ipfire/html/iptables.txt');
+       open (FILE, '/var/tmp/iptables.txt');
        while (<FILE>){
 
                $iplines[$lines] = $_;
@@ -210,7 +210,7 @@ END
 # start with an Chain the the name, start- and endline of the
 # chain is extracted into a hash
 
-       open (FILE, '/srv/web/ipfire/html/iptablesmangle.txt');
+       open (FILE, '/var/tmp/iptablesmangle.txt');
        while (<FILE>){
 
                $ipmlines[$manlines] = $_;
@@ -337,7 +337,7 @@ END
 # start with an Chain the the name, start- and endline of the
 # chain is extracted into a hash
 
-       open (FILE, '/srv/web/ipfire/html/iptablesnat.txt');
+       open (FILE, '/var/tmp/iptablesnat.txt');
        while (<FILE>){
 
                $ipnatlines[$natlines] = $_;
@@ -434,6 +434,6 @@ print "</table></div><br />";
 &Header::closebigbox();
 &Header::closepage();
 
-system(rm -f "/srv/web/ipfire/html/iptables.txt");
-system(rm -f "/srv/web/ipfire/html/iptablesmangle.txt");
-system(rm -f "/srv/web/ipfire/html/iptablesnat.txt");
+system("rm -f /var/tmp/iptables.txt");
+system("rm -f /var/tmp/iptablesmangle.txt");
+system("rm -f /var/tmp/iptablesnat.txt");
index 26920b5da0dd97b2831da177cd70c418018f5e27..f2b6048f7930ff7d7aca7262ed270e300be83d70 100644 (file)
@@ -213,7 +213,7 @@ if ($multifile) {
 my $MODNAME="fwlogs";
 
 &Header::showhttpheaders();
-&Header::openpage($Lang::tr{'firewall log'}, 1, '');
+&Header::openpage($Lang::tr{'firewall log country'}, 1, '');
 &Header::openbigbox('100%', 'left', '', $errormessage);
 
 
@@ -281,7 +281,7 @@ END
 
 &Header::closebox();
 
-&Header::openbox('100%', 'left', 'Firewall Logs');
+&Header::openbox('100%', 'left', $Lang::tr{'firewall graph country'});
 print "<p><b>$Lang::tr{'firewall hits'} $longmonthstr $daystr: $lines</b></p>";
 
 my $red_interface = &General::get_red_interface();
@@ -471,7 +471,7 @@ for($s=0;$s<$lines;$s++)
                print"<input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'>";
                print"<input type='hidden' name='DAY' value='$cgiparams{'DAY'}'>";
                print"<input type='hidden' name='country' value='$key[$s]'>";
-               print"<input type='submit' value='details'></form>";
+               print"<input type='submit' value='$Lang::tr{'details'}'></form>";
        }
        elsif ($key[$s] eq 'unknown') {
                print "unknown";
index 08ef1c4be1425246971658939cb9c73171b63d45..9e366745de1a2e366fdcb7000224b4d3fe8bfe19 100644 (file)
@@ -212,7 +212,7 @@ if ($multifile) {
 my $MODNAME="fwlogs";
 
 &Header::showhttpheaders();
-&Header::openpage($Lang::tr{'firewall log'}, 1, '');
+&Header::openpage($Lang::tr{'firewall log ip'}, 1, '');
 &Header::openbigbox('100%', 'left', '', $errormessage);
 
 
@@ -283,7 +283,7 @@ END
 
 &Header::closebox();
 
-&Header::openbox('100%', 'left', 'Firewall Logs');
+&Header::openbox('100%', 'left', $Lang::tr{'firewall graph ip'});
 print "<p><b>$Lang::tr{'firewall hits'} $longmonthstr $daystr: $lines</b></p>";
 
 my $linesjc = 0;
index fbc92e43bbc09173ebb5ad59f9c26365698a24b0..67fe6aa6e3875e050d29adf6b082dc4f248bc94f 100644 (file)
@@ -213,7 +213,7 @@ if ($multifile) {
 my $MODNAME="fwlogs";
 
 &Header::showhttpheaders();
-&Header::openpage($Lang::tr{'firewall log'}, 1, '');
+&Header::openpage($Lang::tr{'firewall log port'}, 1, '');
 &Header::openbigbox('100%', 'left', '', $errormessage);
 
 if ($errormessage) {
@@ -281,7 +281,7 @@ END
 
 &Header::closebox();
 
-&Header::openbox('100%', 'left', 'Firewall Logs');
+&Header::openbox('100%', 'left', $Lang::tr{'firewall graph port'});
 print "<p><b>$Lang::tr{'firewall hits'} $longmonthstr $daystr: $lines</b></p>";
 
 my $linesjc = 0;
index 138bf9b7f5c30ff25488b9aa6b5e1ceb1ef77f36..35977992cd7578e4a38f64318f1e611adf25ab17 100644 (file)
@@ -56,8 +56,6 @@ my %sections = (
         'ddns' => '(ddns\[\d+\]:)',
         'dhcp' => '(dhcpd: )',
         'dma' => '(dma\[.*\]: )',
-        'dnsmasq' => '(dnsmasq\[.*\]: )',
-        'unbound' => '(unbound: \[.*:.*\])(.*:.*$)',
         'guardian' => '(guardian\[.*\]: )',
         'ipfire' => '(ipfire: )',
         'ipsec' => '(ipsec_[\w_]+: |pluto\[.*\]: |charon: |vpnwatch: )',
@@ -69,6 +67,7 @@ my %sections = (
         'snort' => '(snort\[.*\]: )',
         'squid' => '(squid\[.*\]: |squid: )',
         'ssh' => '(sshd(?:\(.*\))?\[.*\]: )',
+        'unbound' => '(unbound: \[.*:.*\])(.*:.*$)',
         'urlfilter bl' => '(installpackage\[urlfilter\]: )',
         'wireless' => '(hostapd:|kernel: ath.*:|kernel: wifi[0-9]:)'
         );
@@ -82,8 +81,6 @@ my %trsections = (
         'ddns' => "$Lang::tr{'dynamic dns'}",
         'dhcp' => "$Lang::tr{'dhcp server'}",
         'dma' => 'Mail',
-        'dnsmasq' => 'DNS: Dnsmasq',
-        'unbound' => 'DNS: Unbound',
         'guardian' => "$Lang::tr{'guardian'}",
         'ipfire' => 'IPFire',
         'ipsec' => 'IPSec',
@@ -95,6 +92,7 @@ my %trsections = (
         'snort' => "$Lang::tr{'intrusion detection'}",
         'squid' => "$Lang::tr{'web proxy'}",
         'ssh' => 'SSH',
+        'unbound' => 'DNS: Unbound',
         'urlfilter bl' => 'URLFilter Blacklist',
         'wireless' => 'Wireless'
        );
index cd97f878075b30de5b32376d3fccdcbb056303cf..b6383ed59bf6806bbff57f2bc8e8cd247505e918 100644 (file)
@@ -233,7 +233,7 @@ if ($multifile) {
 }
 
 &Header::showhttpheaders();
-&Header::openpage($Lang::tr{'firewall log'}, 1, '');
+&Header::openpage($Lang::tr{'firewall log country'}, 1, '');
 &Header::openbigbox('100%', 'left', '', $errormessage);
 
 if ($errormessage) {
@@ -292,7 +292,7 @@ END
 
 &Header::closebox();
 
-&Header::openbox('100%', 'left', $Lang::tr{'firewall log'});
+&Header::openbox('100%', 'left', $Lang::tr{'firewall log country'});
 print "<p><b>$Lang::tr{'firewall hits'} $longmonthstr $daystr: $lines</b></p>";
 
 if ($start == -1) {
@@ -415,6 +415,8 @@ END
 
 &oldernewer();
 
+       print"<table width='100%'><tr><td align='center'><a href='/cgi-bin/logs.cgi/firewalllogcountry.dat'><img src='/images/back.png' alt='$Lang::tr{'back'}' title='$Lang::tr{'back'}' /></a></td></tr></table>";
+
 &Header::closebox();
 
 &Header::closebigbox();
index 154fa40309dcc36d1ebb45bd0622757fdb64677c..31cd42c33f106eeb7e4be46e480b1bbfaf3874c8 100644 (file)
@@ -194,7 +194,7 @@ if ($multifile) {
 }
 
 &Header::showhttpheaders();
-&Header::openpage($Lang::tr{'firewall log'}, 1, '');
+&Header::openpage($Lang::tr{'firewall log ip'}, 1, '');
 &Header::openbigbox('100%', 'left', '', $errormessage);
 
 if ($errormessage) {
@@ -252,7 +252,7 @@ END
 
 &Header::closebox();
 
-&Header::openbox('100%', 'left', $Lang::tr{'firewall log'});
+&Header::openbox('100%', 'left', $Lang::tr{'firewall log ip'});
 print "<p><b>$Lang::tr{'firewall hits'} $longmonthstr $daystr: $lines</b></p>";
 
 if ($start == -1) {
@@ -357,6 +357,8 @@ END
 
 &oldernewer();
 
+       print"<table width='100%'><tr><td align='center'><a href='/cgi-bin/logs.cgi/firewalllogip.dat'><img src='/images/back.png' alt='$Lang::tr{'back'}' title='$Lang::tr{'back'}' /></a></td></tr></table>";
+
 &Header::closebox();
 
 &Header::closebigbox();
index e1f00aed8fb26fdd222db0c68b576c44ca727a2a..004a00e6a32005a09015405a6a897c589a8ac1ec 100644 (file)
@@ -202,7 +202,7 @@ if ($multifile) {
 }
 
 &Header::showhttpheaders();
-&Header::openpage($Lang::tr{'firewall log'}, 1, '');
+&Header::openpage($Lang::tr{'firewall log port'}, 1, '');
 &Header::openbigbox('100%', 'left', '', $errormessage);
 
 if ($errormessage) {
@@ -260,7 +260,7 @@ END
 
 &Header::closebox();
 
-&Header::openbox('100%', 'left', $Lang::tr{'firewall log'});
+&Header::openbox('100%', 'left', $Lang::tr{'firewall log port'});
 print "<p><b>$Lang::tr{'firewall hits'} $longmonthstr $daystr: $lines</b></p>";
 
 if ($start == -1) {
@@ -367,6 +367,8 @@ END
 
 &oldernewer();
 
+       print"<table width='100%'><tr><td align='center'><a href='/cgi-bin/logs.cgi/firewalllogport.dat'><img src='/images/back.png' alt='$Lang::tr{'back'}' title='$Lang::tr{'back'}' /></a></td></tr></table>";
+
 &Header::closebox();
 
 &Header::closebigbox();
index 15a95b6b9f7e063627484836482b5e19fd3a0d73..ddf41771a5b5226b3eb254b2cb3e136996c9512e 100755 (executable)
@@ -59,7 +59,7 @@ if ( $querry[0] ne ""){
        if (@vpns){
                foreach (@vpns) {
                        &Header::openbox('100%', 'center', "$_ $Lang::tr{'graph'}");
-                       &Graphs::makegraphbox("netovpnsrv.cgi",$_, "day",320);
+                       &Graphs::makegraphbox("netovpnsrv.cgi",$_, "day");
                        &Header::closebox();
                }
        }else{
index 037894d50bf941d870e55e311932a71c04dbf94b..d46a14e7916454192306afa91eb82d54b15b384a 100644 (file)
@@ -2631,7 +2631,7 @@ ADV_ERROR:
                $cgiparams{'PMTU_DISCOVERY'} = 'off';
     }
     if ($cgiparams{'DAUTH'} eq '') {
-               $cgiparams{'DAUTH'} = 'SHA1';
+               $cgiparams{'DAUTH'} = 'SHA512';
     }
     if ($cgiparams{'TLSAUTH'} eq '') {
                $cgiparams{'TLSAUTH'} = 'off';
@@ -2821,7 +2821,7 @@ print <<END;
                                <option value='SHA512'                  $selected{'DAUTH'}{'SHA512'}>SHA2 (512 $Lang::tr{'bit'})</option>
                                <option value='SHA384'                  $selected{'DAUTH'}{'SHA384'}>SHA2 (384 $Lang::tr{'bit'})</option>
                                <option value='SHA256'                  $selected{'DAUTH'}{'SHA256'}>SHA2 (256 $Lang::tr{'bit'})</option>
-                               <option value='SHA1'                    $selected{'DAUTH'}{'SHA1'}>SHA1 (160 $Lang::tr{'bit'})</option>
+                               <option value='SHA1'                    $selected{'DAUTH'}{'SHA1'}>SHA1 (160 $Lang::tr{'bit'}, $Lang::tr{'vpn weak'})</option>
                        </select>
                </td>
                <td>$Lang::tr{'openvpn default'}: <span class="base">SHA1 (160 $Lang::tr{'bit'})</span></td>
@@ -4454,7 +4454,7 @@ if ($cgiparams{'TYPE'} eq 'net') {
         $cgiparams{'MSSFIX'} = 'on';
         $cgiparams{'FRAGMENT'} = '1300';
        $cgiparams{'PMTU_DISCOVERY'} = 'off';
-       $cgiparams{'DAUTH'} = 'SHA1';
+       $cgiparams{'DAUTH'} = 'SHA512';
 ###
 # m.a.d n2n end
 ###    
@@ -4705,7 +4705,7 @@ if ($cgiparams{'TYPE'} eq 'net') {
                                <option value='SHA512'                  $selected{'DAUTH'}{'SHA512'}>SHA2 (512 $Lang::tr{'bit'})</option>
                                <option value='SHA384'                  $selected{'DAUTH'}{'SHA384'}>SHA2 (384 $Lang::tr{'bit'})</option>
                                <option value='SHA256'                  $selected{'DAUTH'}{'SHA256'}>SHA2 (256 $Lang::tr{'bit'})</option>
-                               <option value='SHA1'                    $selected{'DAUTH'}{'SHA1'}>SHA1 (160 $Lang::tr{'bit'} Default)</option>
+                               <option value='SHA1'                    $selected{'DAUTH'}{'SHA1'}>SHA1 (160 $Lang::tr{'bit'}, $Lang::tr{'vpn weak'})</option>
                        </select>
                </td>
        </tr>
@@ -5037,7 +5037,7 @@ END
                $cgiparams{'MSSFIX'} = 'off';
     }
        if ($cgiparams{'DAUTH'} eq '') {
-               $cgiparams{'DAUTH'} = 'SHA1';
+               $cgiparams{'DAUTH'} = 'SHA512';
     }
     if ($cgiparams{'DOVPN_SUBNET'} eq '') {
                $cgiparams{'DOVPN_SUBNET'} = '10.' . int(rand(256)) . '.' . int(rand(256)) . '.0/255.255.255.0';
index 590ad15bff37e60e45b8fa2b8a34b0763d56da8b..071b93f5d58ecb8660b253588a2f47df458f1e50 100644 (file)
@@ -770,10 +770,10 @@ if ( ($qossettings{'DEFCLASS_INC'} eq '') || ($qossettings{'DEFCLASS_OUT'} eq ''
 }
 
        &Header::openbox('100%', 'center', "$qossettings{'RED_DEV'} $Lang::tr{'graph'}, $Lang::tr{'uplink'}");
-       &Graphs::makegraphbox("qos.cgi",$qossettings{'RED_DEV'},"hour","325");
+       &Graphs::makegraphbox("qos.cgi",$qossettings{'RED_DEV'},"hour");
        &Header::closebox();
        &Header::openbox('100%', 'center', "$qossettings{'IMQ_DEV'} $Lang::tr{'graph'}, $Lang::tr{'downlink'}");
-       &Graphs::makegraphbox("qos.cgi",$qossettings{'IMQ_DEV'},"hour","325");
+       &Graphs::makegraphbox("qos.cgi",$qossettings{'IMQ_DEV'},"hour");
        &Header::closebox();
 
 &showclasses($qossettings{'RED_DEV'});
index a0e7655ab95e1b62aec711eb501b68f626f3fa4c..487ba996c2e4ef38169c27788d324b3902253d4b 100644 (file)
@@ -57,12 +57,12 @@ if ( $querry[0] =~ "cpufreq"){
        &Header::openbigbox('100%', 'left');
 
        &Header::openbox('100%', 'center', "CPU $Lang::tr{'graph'}");
-       &Graphs::makegraphbox("system.cgi","cpu","day","325");
+       &Graphs::makegraphbox("system.cgi","cpu","day");
        &Header::closebox();
 
        if ( -e "$mainsettings{'RRDLOG'}/collectd/localhost/cpufreq/cpufreq-0.rrd"){
                &Header::openbox('100%', 'center', "CPU $Lang::tr{'graph'}");
-               &Graphs::makegraphbox("system.cgi","cpufreq","day","325");
+               &Graphs::makegraphbox("system.cgi","cpufreq","day");
                &Header::closebox();
        }
 
index f1cffb88448155cc2a9f5c8ad4793e6b8c187b5e..f9508b53de2fe4f9f5cf8821e30b7d877efb6dc3 100644 (file)
@@ -108,6 +108,7 @@ $cgiparams{'RW_NET'} = '';
 $cgiparams{'DPD_DELAY'} = '30';
 $cgiparams{'DPD_TIMEOUT'} = '120';
 $cgiparams{'FORCE_MOBIKE'} = 'off';
+$cgiparams{'START_ACTION'} = 'start';
 &Header::getcgihash(\%cgiparams, {'wantfile' => 1, 'filevar' => 'FH'});
 
 ###
@@ -401,12 +402,23 @@ sub writeipsecfiles {
                        print CONF "\trightrsasigkey=%cert\n";
                }
 
+               my $start_action = $lconfighash{$key}[33];
+               if (!$start_action) {
+                       $start_action = "start";
+               }
+
                # Automatically start only if a net-to-net connection
                if ($lconfighash{$key}[3] eq 'host') {
                        print CONF "\tauto=add\n";
                        print CONF "\trightsourceip=$lvpnsettings{'RW_NET'}\n";
                } else {
-                       print CONF "\tauto=start\n";
+                       print CONF "\tauto=$start_action\n";
+
+                       # If in on-demand mode, we terminate the tunnel
+                       # after 15 min of no traffic
+                       if ($start_action eq 'route') {
+                               print CONF "\tinactivity=900\n";
+                       }
                }
 
                # Fragmentation
@@ -1778,7 +1790,7 @@ END
        my $key = $cgiparams{'KEY'};
        if (! $key) {
                $key = &General::findhasharraykey (\%confighash);
-               foreach my $i (0 .. 32) { $confighash{$key}[$i] = "";}
+               foreach my $i (0 .. 33) { $confighash{$key}[$i] = "";}
        }
        $confighash{$key}[0] = $cgiparams{'ENABLED'};
        $confighash{$key}[1] = $cgiparams{'NAME'};
@@ -1885,15 +1897,15 @@ END
 
        #use default advanced value
        $cgiparams{'IKE_ENCRYPTION'}    = 'aes256gcm128|aes256gcm96|aes256gcm64|aes256|aes192gcm128|aes192gcm96|aes192gcm64|aes192|aes128gcm128|aes128gcm96|aes128gcm64|aes128'; #[18];
-       $cgiparams{'IKE_INTEGRITY'}             = 'sha2_512|sha2_256|sha'; #[19];
-       $cgiparams{'IKE_GROUPTYPE'}             = '4096|3072|2048|1536|1024'; #[20];
+       $cgiparams{'IKE_INTEGRITY'}             = 'sha2_512|sha2_256'; #[19];
+       $cgiparams{'IKE_GROUPTYPE'}             = 'curve25519|4096|3072|2048'; #[20];
        $cgiparams{'IKE_LIFETIME'}              = '3'; #[16];
        $cgiparams{'ESP_ENCRYPTION'}    = 'aes256gcm128|aes256gcm96|aes256gcm64|aes256|aes192gcm128|aes192gcm96|aes192gcm64|aes192|aes128gcm128|aes128gcm96|aes128gcm64|aes128'; #[21];
-       $cgiparams{'ESP_INTEGRITY'}             = 'sha2_512|sha2_256|sha1'; #[22];
-       $cgiparams{'ESP_GROUPTYPE'}             = '4096|3072|2048|1536|1024'; #[23];
+       $cgiparams{'ESP_INTEGRITY'}             = 'sha2_512|sha2_256'; #[22];
+       $cgiparams{'ESP_GROUPTYPE'}             = 'curve25519|4096|3072|2048'; #[23];
        $cgiparams{'ESP_KEYLIFE'}               = '1'; #[17];
        $cgiparams{'COMPRESSION'}               = 'on'; #[13];
-       $cgiparams{'ONLY_PROPOSED'}             = 'off'; #[24];
+       $cgiparams{'ONLY_PROPOSED'}             = 'on'; #[24];
        $cgiparams{'PFS'}                               = 'on'; #[28];
 }
 
@@ -2166,7 +2178,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                        goto ADVANCED_ERROR;
                }
                foreach my $val (@temp) {
-                       if ($val !~ /^(e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|1024|1536|2048|2048s256|2048s224|2048s160|3072|4096|6144|8192)$/) {
+                       if ($val !~ /^(curve25519|e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|768|1024|1536|2048|2048s256|2048s224|2048s160|3072|4096|6144|8192)$/) {
                                $errormessage = $Lang::tr{'invalid input'};
                                goto ADVANCED_ERROR;
                        }
@@ -2207,7 +2219,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                        goto ADVANCED_ERROR;
                }
                foreach my $val (@temp) {
-                       if ($val !~ /^(e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|1024|1536|2048|2048s256|2048s224|2048s160|3072|4096|6144|8192|none)$/) {
+                       if ($val !~ /^(curve25519|e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|768|1024|1536|2048|2048s256|2048s224|2048s160|3072|4096|6144|8192|none)$/) {
                                $errormessage = $Lang::tr{'invalid input'};
                                goto ADVANCED_ERROR;
                        }
@@ -2256,6 +2268,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                $confighash{$cgiparams{'KEY'}}[30] = $cgiparams{'DPD_TIMEOUT'};
                $confighash{$cgiparams{'KEY'}}[31] = $cgiparams{'DPD_DELAY'};
                $confighash{$cgiparams{'KEY'}}[32] = $cgiparams{'FORCE_MOBIKE'};
+               $confighash{$cgiparams{'KEY'}}[33] = $cgiparams{'START_ACTION'};
                &General::writehasharray("${General::swroot}/vpn/config", \%confighash);
                &writeipsecfiles();
                if (&vpnenabled) {
@@ -2283,6 +2296,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                $cgiparams{'DPD_TIMEOUT'}               = $confighash{$cgiparams{'KEY'}}[30];
                $cgiparams{'DPD_DELAY'}                 = $confighash{$cgiparams{'KEY'}}[31];
                $cgiparams{'FORCE_MOBIKE'}              = $confighash{$cgiparams{'KEY'}}[32];
+               $cgiparams{'START_ACTION'}              = $confighash{$cgiparams{'KEY'}}[33];
 
                if (!$cgiparams{'DPD_DELAY'}) {
                        $cgiparams{'DPD_DELAY'} = 30;
@@ -2291,6 +2305,10 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                if (!$cgiparams{'DPD_TIMEOUT'}) {
                        $cgiparams{'DPD_TIMEOUT'} = 120;
                }
+
+               if (!$cgiparams{'START_ACTION'}) {
+                       $cgiparams{'START_ACTION'} = "start";
+               }
        }
 
        ADVANCED_ERROR:
@@ -2320,6 +2338,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
        $checked{'IKE_INTEGRITY'}{'aesxcbc'} = '';
        @temp = split('\|', $cgiparams{'IKE_INTEGRITY'});
        foreach my $key (@temp) {$checked{'IKE_INTEGRITY'}{$key} = "selected='selected'"; }
+       $checked{'IKE_GROUPTYPE'}{'curve25519'} = '';
        $checked{'IKE_GROUPTYPE'}{'768'} = '';
        $checked{'IKE_GROUPTYPE'}{'1024'} = '';
        $checked{'IKE_GROUPTYPE'}{'1536'} = '';
@@ -2331,9 +2350,6 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
        @temp = split('\|', $cgiparams{'IKE_GROUPTYPE'});
        foreach my $key (@temp) {$checked{'IKE_GROUPTYPE'}{$key} = "selected='selected'"; }
 
-       # 768 is not supported by strongswan
-       $checked{'IKE_GROUPTYPE'}{'768'} = '';
-
        $checked{'ESP_ENCRYPTION'}{'aes256'} = '';
        $checked{'ESP_ENCRYPTION'}{'aes192'} = '';
        $checked{'ESP_ENCRYPTION'}{'aes128'} = '';
@@ -2360,6 +2376,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
        $checked{'ESP_INTEGRITY'}{'aesxcbc'} = '';
        @temp = split('\|', $cgiparams{'ESP_INTEGRITY'});
        foreach my $key (@temp) {$checked{'ESP_INTEGRITY'}{$key} = "selected='selected'"; }
+       $checked{'ESP_GROUPTYPE'}{'curve25519'} = '';
        $checked{'ESP_GROUPTYPE'}{'768'} = '';
        $checked{'ESP_GROUPTYPE'}{'1024'} = '';
        $checked{'ESP_GROUPTYPE'}{'1536'} = '';
@@ -2387,6 +2404,10 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
        $selected{'DPD_ACTION'}{'none'} = '';
        $selected{'DPD_ACTION'}{$cgiparams{'DPD_ACTION'}} = "selected='selected'";
 
+       $selected{'START_ACTION'}{'route'} = '';
+       $selected{'START_ACTION'}{'start'} = '';
+       $selected{'START_ACTION'}{$cgiparams{'START_ACTION'}} = "selected='selected'";
+
        &Header::showhttpheaders();
        &Header::openpage($Lang::tr{'ipsec'}, 1, '');
        &Header::openbigbox('100%', 'left', '', $errormessage);
@@ -2406,7 +2427,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
        }
 
        &Header::openbox('100%', 'left', "$Lang::tr{'advanced'}:");
-       print <<EOF
+       print <<EOF;
        <form method='post' enctype='multipart/form-data' action='$ENV{'SCRIPT_NAME'}'>
        <input type='hidden' name='ADVANCED' value='yes' />
        <input type='hidden' name='KEY' value='$cgiparams{'KEY'}' />
@@ -2482,8 +2503,8 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                                        <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='aesxcbc' $checked{'IKE_INTEGRITY'}{'aesxcbc'}>AES XCBC</option>
-                                       <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA1</option>
-                                       <option value='md5' $checked{'IKE_INTEGRITY'}{'md5'}>MD5</option>
+                                       <option value='sha' $checked{'IKE_INTEGRITY'}{'sha'}>SHA1 ($Lang::tr{'vpn weak'})</option>
+                                       <option value='md5' $checked{'IKE_INTEGRITY'}{'md5'}>MD5 ($Lang::tr{'vpn broken'})</option>
                                </select>
                        </td>
                        <td class='boldbase'>
@@ -2492,8 +2513,8 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                                        <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='aesxcbc' $checked{'ESP_INTEGRITY'}{'aesxcbc'}>AES XCBC</option>
-                                       <option value='sha1' $checked{'ESP_INTEGRITY'}{'sha1'}>SHA1</option>
-                                       <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5</option>
+                                       <option value='sha1' $checked{'ESP_INTEGRITY'}{'sha1'}>SHA1 ($Lang::tr{'vpn weak'})</option>
+                                       <option value='md5' $checked{'ESP_INTEGRITY'}{'md5'}>MD5 ($Lang::tr{'vpn broken'})</option>
                                </select>
                        </td>
                </tr>
@@ -2510,6 +2531,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                        <td class='boldbase' width="15%">$Lang::tr{'grouptype'}</td>
                        <td class='boldbase'>
                                <select name='IKE_GROUPTYPE' multiple='multiple' size='6' style='width: 100%'>
+                                       <option value='curve25519' $checked{'IKE_GROUPTYPE'}{'curve25519'}>Curve 25519 (256 bit)</option>
                                        <option value='e521' $checked{'IKE_GROUPTYPE'}{'e521'}>ECP-521 (NIST)</option>
                                        <option value='e512bp' $checked{'IKE_GROUPTYPE'}{'e512bp'}>ECP-512 (Brainpool)</option>
                                        <option value='e384' $checked{'IKE_GROUPTYPE'}{'e384'}>ECP-384 (NIST)</option>
@@ -2528,11 +2550,13 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                                        <option value='2048s160' $checked{'IKE_GROUPTYPE'}{'2048s160'}>MODP-2048/160</option>
                                        <option value='2048' $checked{'IKE_GROUPTYPE'}{'2048'}>MODP-2048</option>
                                        <option value='1536' $checked{'IKE_GROUPTYPE'}{'1536'}>MODP-1536</option>
-                                       <option value='1024' $checked{'IKE_GROUPTYPE'}{'1024'}>MODP-1024</option>
+                                       <option value='1024' $checked{'IKE_GROUPTYPE'}{'1024'}>MODP-1024 ($Lang::tr{'vpn broken'})</option>
+                                       <option value='768' $checked{'IKE_GROUPTYPE'}{'768'}>MODP-768 ($Lang::tr{'vpn broken'})</option>
                                </select>
                        </td>
                        <td class='boldbase'>
                                <select name='ESP_GROUPTYPE' multiple='multiple' size='6' style='width: 100%'>
+                                       <option value='curve25519' $checked{'ESP_GROUPTYPE'}{'curve25519'}>Curve 25519 (256 bit)</option>
                                        <option value='e521' $checked{'ESP_GROUPTYPE'}{'e521'}>ECP-521 (NIST)</option>
                                        <option value='e512bp' $checked{'ESP_GROUPTYPE'}{'e512bp'}>ECP-512 (Brainpool)</option>
                                        <option value='e384' $checked{'ESP_GROUPTYPE'}{'e384'}>ECP-384 (NIST)</option>
@@ -2551,7 +2575,8 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                                        <option value='2048s160' $checked{'ESP_GROUPTYPE'}{'2048s160'}>MODP-2048/160</option>
                                        <option value='2048' $checked{'ESP_GROUPTYPE'}{'2048'}>MODP-2048</option>
                                        <option value='1536' $checked{'ESP_GROUPTYPE'}{'1536'}>MODP-1536</option>
-                                       <option value='1024' $checked{'ESP_GROUPTYPE'}{'1024'}>MODP-1024</option>
+                                       <option value='1024' $checked{'ESP_GROUPTYPE'}{'1024'}>MODP-1024 ($Lang::tr{'vpn broken'})</option>
+                                       <option value='768' $checked{'ESP_GROUPTYPE'}{'768'}>MODP-768 ($Lang::tr{'vpn broken'})</option>
                                        <option value='none' $checked{'ESP_GROUPTYPE'}{'none'}>- $Lang::tr{'none'} -</option>
                                </select>
                        </td>
@@ -2599,9 +2624,16 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                                IKE+ESP: $Lang::tr{'use only proposed settings'}
                        </label>
                </td>
+               <td>
+                       <label>$Lang::tr{'vpn start action'}</label>
+                       <select name="START_ACTION">
+                               <option value="route" $selected{'START_ACTION'}{'route'}>$Lang::tr{'vpn start action route'}</option>
+                               <option value="start" $selected{'START_ACTION'}{'start'}>$Lang::tr{'vpn start action start'}</option>
+                       </select>
+               </td>
        </tr>
        <tr>
-               <td>
+               <td colspan="2">
                        <label>
                                <input type='checkbox' name='PFS' $checked{'PFS'} />
                                $Lang::tr{'pfs yes no'}
@@ -2609,7 +2641,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                </td>
        </tr>
        <tr>
-               <td>
+               <td colspan="2">
                        <label>
                                <input type='checkbox' name='COMPRESSION' $checked{'COMPRESSION'} />
                                $Lang::tr{'vpn payload compression'}
@@ -2617,20 +2649,16 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                </td>
        </tr>
        <tr>
-               <td>
+               <td colspan="2">
                        <label>
                                <input type='checkbox' name='FORCE_MOBIKE' $checked{'FORCE_MOBIKE'} />
                                $Lang::tr{'vpn force mobike'}
                        </label>
                </td>
        </tr>
-EOF
-;
-
-       print <<EOF;
        <tr>
-               <td align='left' colspan='1'><img src='/blob.gif' align='top' alt='*' />&nbsp;$Lang::tr{'required field'}</td>
-               <td align='right' colspan='2'>
+               <td align='left'><img src='/blob.gif' align='top' alt='*' />&nbsp;$Lang::tr{'required field'}</td>
+               <td align='right'>
                        <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />
                        <input type='submit' name='ACTION' value='$Lang::tr{'cancel'}' />
                </td>
@@ -2780,6 +2808,12 @@ END
                ($line =~ /$confighash{$key}[1]\{.*INSTALLED/)) {
                        $col1="bgcolor='${Header::colourgreen}'";
                        $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b>";
+               } elsif ($line =~ /$confighash{$key}[1]\[.*CONNECTING/) {
+                       $col1="bgcolor='${Header::colourorange}'";
+                       $active = "<b><font color='#FFFFFF'>$Lang::tr{'vpn connecting'}</font></b>";
+               } elsif ($line =~ /$confighash{$key}[1]\{.*ROUTED/) {
+                       $col1="bgcolor='${Header::colourorange}'";
+                       $active = "<b><font color='#FFFFFF'>$Lang::tr{'vpn on-demand'}</font></b>";
                }
        }
        # move to blue if really down
index a2d0273df502810e1636d5e9813b849998551f95..6978663cf39d4d7aaa9c7eea8634ccfc435162e7 100644 (file)
@@ -19,8 +19,8 @@
 #                                                                             #
 ###############################################################################
 
-# DEVICE,ENABLED,MODE,WPA_MODE,SSID,PSK,PRIO
-# wlan0,on,WPA2,,Use This One Mum,ThisIsTheKey,2
+# DEVICE,ENABLED,MODE,WPA_MODE,SSID,PSK,PRIO,AUTH,ANONYMOUS,IDENTITY,PASSWORD
+# wlan0,on,WPA2,,Use This One Mum,ThisIsTheKey,2,TTLS,anonymous,username,password
 
 use strict;
 
@@ -132,6 +132,10 @@ if ($settings{'ACTION'} eq $Lang::tr{'add'}) {
                push(@config, $settings{'SSID'});
                push(@config, $settings{'PSK'});
                push(@config, $settings{'PRIO'});
+               push(@config, $settings{'AUTH'});
+               push(@config, $settings{'ANONYMOUS'});
+               push(@config, $settings{'IDENTITY'});
+               push(@config, $settings{'PASSWORD'});
 
                # Add the new configuration and write all the stuff to the configuration file.
                my $line = join(',', @config) . "\n";
@@ -164,6 +168,10 @@ if ($settings{'ACTION'} eq $Lang::tr{'edit'}) {
                        $settings{'SSID'}       = $config[5];
                        $settings{'PSK'}        = $config[6];
                        $settings{'PRIO'}       = $config[7];
+                       $settings{'AUTH'}       = $config[8];
+                       $settings{'ANONYMOUS'}  = $config[9];
+                       $settings{'IDENTITY'}   = $config[10];
+                       $settings{'PASSWORD'}   = $config[11];
                }
        }
 }
@@ -181,12 +189,16 @@ if ($settings{'ACTION'} eq $Lang::tr{'update'}) {
                        if ($config[0] eq $settings{'ID'}) {
                                # Update all configuration settings.
                                # ID and INTERFACE cannot be changed.
-                               $config[2] = $settings{'ENABLED'};
-                               $config[3] = $settings{'ENCRYPTION'};
-                               $config[4] = $settings{'WPA_MODE'};
-                               $config[5] = $settings{'SSID'};
-                               $config[6] = $settings{'PSK'};
-                               $config[7] = $settings{'PRIO'};
+                               $config[2]  = $settings{'ENABLED'};
+                               $config[3]  = $settings{'ENCRYPTION'};
+                               $config[4]  = $settings{'WPA_MODE'};
+                               $config[5]  = $settings{'SSID'};
+                               $config[6]  = $settings{'PSK'};
+                               $config[7]  = $settings{'PRIO'};
+                               $config[8]  = $settings{'AUTH'};
+                               $config[9]  = $settings{'ANONYMOUS'};
+                               $config[10] = $settings{'IDENTITY'};
+                               $config[11] = $settings{'PASSWORD'};
 
                                $line = join(',', @config);
                        }
@@ -312,9 +324,34 @@ END
                        $encryption_mode = $Lang::tr{'wlan client encryption wpa'};
                } elsif ($config[3] eq "WPA2") {
                        $encryption_mode = $Lang::tr{'wlan client encryption wpa2'};
+               } elsif ($config[3] eq "EAP") {
+                       $encryption_mode = $Lang::tr{'wlan client encryption eap'};
                }
 
-               if (($config[3] eq "WPA") || ($config[3] eq "WPA2")) {
+               if ($config[3] eq "EAP") {
+                       if ($config[8] eq "PEAP") {
+                               $encryption_mode .= " ($Lang::tr{'wlan client auth peap'})";
+                       } elsif ($config[8] eq "TTLS") {
+                               $encryption_mode .= " ($Lang::tr{'wlan client auth ttls'})";
+                       } else {
+                               $encryption_mode .= " ($Lang::tr{'wlan client auth auto'})";
+                       }
+
+                       $encryption_mode .= "<hr>";
+
+                       if ($config[10]) {
+                               $encryption_mode .= "<strong>$Lang::tr{'wlan client identity'}</strong>: ";
+                               $encryption_mode .= $config[10];
+                       }
+
+                       # Anonymous identity
+                       if ($config[9]) {
+                               $encryption_mode .= "<br>";
+                               $encryption_mode .= "<strong>$Lang::tr{'wlan client anonymous identity'}</strong>: ";
+                               $encryption_mode .= $config[9];
+                       }
+
+               } elsif (($config[3] eq "WPA") || ($config[3] eq "WPA2")) {
                        my $wpa_pairwise = "$Lang::tr{'wlan client ccmp'} $Lang::tr{'wlan client and'} $Lang::tr{'wlan client tkip'}";
                        my $wpa_group = "$Lang::tr{'wlan client ccmp'} $Lang::tr{'wlan client and'} $Lang::tr{'wlan client tkip'}";
 
@@ -437,6 +474,12 @@ sub showEditBox() {
        $selected{'WPA_MODE'}{'TKIP-TKIP'} = '';
        $selected{'WPA_MODE'}{$settings{'WPA_MODE'}} = "selected='selected'";
 
+       $selected{'AUTH'} = ();
+       $selected{'AUTH'}{''} = '';
+       $selected{'AUTH'}{'PEAP'} = '';
+       $selected{'AUTH'}{'TTLS'} = '';
+       $selected{'AUTH'}{$settings{'AUTH'}} = "selected='selected'";
+
        $selected{'PRIO'} = ();
        $selected{'PRIO'}{'0'} = '';
        $selected{'PRIO'}{'1'} = '';
@@ -461,6 +504,7 @@ sub showEditBox() {
                                        <td width='40%'>
                                                <select name='ENCRYPTION'>
                                                        <option value="NONE" $selected{'ENCRYPTION'}{'NONE'}>$Lang::tr{'wlan client encryption none'}</option>
+                                                       <option value="EAP"  $selected{'ENCRYPTION'}{'EAP'}>$Lang::tr{'wlan client encryption eap'}</option>
                                                        <option value="WPA2" $selected{'ENCRYPTION'}{'WPA2'}>$Lang::tr{'wlan client encryption wpa2'}</option>
                                                        <option value="WPA"  $selected{'ENCRYPTION'}{'WPA'}>$Lang::tr{'wlan client encryption wpa'}</option>
                                                        <option value="WEP"  $selected{'ENCRYPTION'}{'WEP'}>$Lang::tr{'wlan client encryption wep'}</option>                                                    
@@ -477,6 +521,57 @@ sub showEditBox() {
 
                        <br>
                        <hr>
+
+                       <strong>
+                               $Lang::tr{'wlan client authentication settings'}:
+                       </strong>
+
+                       <table width='100%'>
+                               <tr>
+                                       <td class='base' width='20%'>
+                                               $Lang::tr{'wlan client eap authentication method'}:
+                                       </td>
+                                       <td width='40%'>
+                                               <select name='AUTH'>
+                                                       <option value="" $selected{'AUTH'}{''}>$Lang::tr{'wlan client auth auto'}</option>
+                                                       <option value="PEAP" $selected{'AUTH'}{'PEAP'}>$Lang::tr{'wlan client auth peap'}</option>
+                                                       <option value="TTLS" $selected{'AUTH'}{'TTLS'}>$Lang::tr{'wlan client auth ttls'}</option>
+                                               </select>
+                                       </td>
+                                       <td colspan="2" width='40%'></td>
+                               </tr>
+                               <tr>
+                                       <td class='base' width='20%'>
+                                               $Lang::tr{'wlan client anonymous identity'}:
+                                       </td>
+                                       <td width='40%'>
+                                               <input type="text" name="ANONYMOUS" value="$settings{"ANONYMOUS"}" size="25" />
+                                       </td>
+                                       <td colspan="2" width='40%'></td>
+                               </tr>
+                               <tr>
+                                       <td class='base' width='20%'>
+                                               $Lang::tr{'wlan client identity'}:
+                                       </td>
+                                       <td width='40%'>
+                                               <input type="text" name="IDENTITY" value="$settings{"IDENTITY"}" size="25" />
+                                       </td>
+                                       <td colspan="2" width='40%'></td>
+                               </tr>
+                               <tr>
+                                       <td class='base' width='20%'>
+                                               $Lang::tr{'wlan client password'}:
+                                       </td>
+                                       <td width='40%'>
+                                               <input type="password" name="PASSWORD" value="$settings{"PASSWORD"}" size="25" />
+                                       </td>
+                                       <td colspan="2" width='40%'></td>
+                               </tr>
+                       </table>
+
+                       <br>
+                       <hr>
+
                        
                        <strong>
                                $Lang::tr{'wlan client advanced settings'}:
@@ -585,6 +680,59 @@ sub ShowStatus() {
                                </tr>
 END
 
+               if ($status{'EAP state'}) {
+                       my $selected_method = $status{'selectedMethod'};
+                       $selected_method =~ s/\d+ \((.*)\)/$1/e;
+
+                       print <<END;
+                               <tr>
+                                       <td colspan='2'>
+                                               <strong>$Lang::tr{'wlan client encryption eap'}</strong>
+                                       </td>
+                               </tr>
+                               <tr>
+                                       <td width='20%'>
+                                               $Lang::tr{'wlan client eap state'}
+                                       </td>
+                                       <td width='80%'>
+                                               $status{'EAP state'}
+                                       </td>
+                               </tr>
+                               <tr>
+                                       <td width='20%'>
+                                               $Lang::tr{'wlan client method'}
+                                       </td>
+                                       <td width='80%'>
+                                               $selected_method
+                                       </td>
+                               </tr>
+                               <tr>
+                                       <td width='20%'>
+                                               $Lang::tr{'wlan client tls version'}
+                                       </td>
+                                       <td width='80%'>
+                                               $status{'eap_tls_version'}
+                                       </td>
+                               </tr>
+                               <tr>
+                                       <td width='20%'>
+                                               $Lang::tr{'wlan client tls cipher'}
+                                       </td>
+                                       <td width='80%'>
+                                               $status{'EAP TLS cipher'}
+                                       </td>
+                               </tr>
+                               <tr>
+                                       <td width='20%'>
+                                               $Lang::tr{'wlan client eap phase2 method'}
+                                       </td>
+                                       <td width='80%'>
+                                               $status{"${selected_method}v0 Phase2 method"}
+                                       </td>
+                               </tr>
+END
+               }
+
                if (($status{'pairwise_cipher'} ne "NONE") || ($status{'group_cipher'} ne "NONE")) {
                        print <<END;
                                <tr>
diff --git a/html/html/images/back.png b/html/html/images/back.png
new file mode 100644 (file)
index 0000000..66921af
Binary files /dev/null and b/html/html/images/back.png differ
index cc4b3c965359f6a047a0dd76cc7a57abd2dfc69b..b8850677cd204712234d77f589cf685258cb858e 100644 (file)
@@ -466,3 +466,8 @@ table.fw-nat tbody tr td {
 #rx_kbs { color: green; }
 
 #tx_kbs { color: red; }
+
+iframe.graph {
+       width: 100%;
+       min-height: 300px;
+}
index 288a0feeb3ccd0585ee0986b69fc818db7e9abe6..2e9ea92665b9db9d79a7cf0b0db3fb894ccb61ff 100644 (file)
@@ -443,3 +443,8 @@ table.fw-nat tbody tr td {
 #rx_kbs { color: green; }
 
 #tx_kbs { color: red; }
+
+iframe.graph {
+       min-height: 285px;
+       width: 750px;
+}
index 1cc18f8978bfdc7d736bc59b3a27bc2ac2812ecf..9421fc111ea612c59c4e59c36e5bc775cc0211ea 100644 (file)
@@ -327,3 +327,8 @@ table {
 table.fw-nat tbody tr td {
        height: 2.25em;
 }
+
+iframe.graph {
+       width: 100%;
+       min-height: 300px;
+}
index 3cb2741301c5a606cc2fe29ee6dc1682849689fe..27d3982a66227bf1e91f96d99ee222fff2965381 100644 (file)
@@ -472,3 +472,8 @@ table.fw-nat tbody tr td {
 #rx_kbs { color: green; }
 
 #tx_kbs { color: red; }
+
+iframe.graph {
+       width: 100%;
+       min-height: 300px;
+}
index 54f3ae1a79daa6e56f69f18ecef077fdbf68ffa1..b0cb96df2482c9ffc51c9c4ce2c5c8daa92fc3ca 100644 (file)
 'dnsforward forward_server' => 'DNS-Server',
 'dnsforward zone' => 'Zone',
 'dnssec aware' => 'DNSSEC-aware',
+'dnssec disabled warning' => 'WARNING: DNSSEC wurde deaktiviert',
 'dnssec information' => 'DNSSEC-Informationen',
 'dnssec not supported' => 'DNSSEC wird nicht unterstützt',
 'dnssec validating' => 'DNSSEC-validierend',
 'fireinfo why read more' => 'Mehr über die Gründe.',
 'fireinfo your profile id' => 'Profil-ID',
 'firewall' => 'Firewall',
-'firewall graphs' => 'Firewall-Diagramme',
+'firewall graph country' => 'Firewall-Diagramm (Land)',
+'firewall graph ip' => 'Firewall-Diagramm (IP)',
+'firewall graph port' => 'Firewall-Diagramm (Port)',
 'firewall hits' => 'Gesamtanzahl der Firewall-Treffer für',
 'firewall hits per' => 'Firewalltreffer pro',
 'firewall log' => 'Firewall-Protokoll',
-'firewall log viewer' => 'Betrachter der Firewall-Logdateien',
+'firewall log country' => 'Firewall-Protokoll (Land)',
+'firewall log ip' => 'Firewall-Protokoll (IP)',
+'firewall log port' => 'Firewall-Protokoll (Port)',
 'firewall logs' => 'Firewall-Logdateien',
 'firewall logs country' => 'Fw-Logdiagramme (Land)',
 'firewall logs ip' => 'Fw-Logdiagramme (IP)',
 'updxlrtr year' => 'einem Jahr',
 'upgrade' => 'upgrade',
 'uplink' => 'Uplink',
+'uplink bit rate' => 'Ausgehende Datenrate',
 'uplink speed' => 'Uplink-Geschwindigkeit (kbit/sek)',
 'uplink std class' => 'Uploadstandardklasse',
 'upload' => 'Hochladen',
 'vpn aggrmode' => 'IKE Aggressive Mode zugelassen. Wenn möglich, vermeiden (preshared Schlüssel wird im Klartext übertragen)!',
 'vpn altname syntax' => 'Der Subjekt Alternativ Name ist eine durch Komma getrennte Liste von Email, DNS, URI, RID und IP Objekten. <br />Email: eine Email Adresse. Syntax Email: \'copy\' benutzt die Email Adresse aus dem Zertifikatfeld. <br />DNS: ein gültiger Domain Name.<br />URI: eine gültige URI.<br />RID: Registriertes Objekt Identifikation.<br />IP: eine IP Adresse.<br />Bitte beachten: der Zeichensatz ist eingeschränkt und die Groß-/Kleinschreibung ist entscheidend.<br />Beispiel:<br /><b>email:</b>info@ipfire.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/nach/irgendwo',
 'vpn auth-dn' => 'Peer wird identifiziert durch entweder ein IPV4_ADDR, FQDN, USER_FQDN oder DER_ASN1_DN string in Remote ID Feld',
+'vpn broken' => 'Gebrochen',
+'vpn connecting' => 'VERBINDUNGSAUFBAU',
 'vpn delayed start' => 'Verzögerung bevor VPN gestartet wird (Sekunden)',
 'vpn delayed start help' => 'Falls notwendig, kann diese Verzögerung dazu verwendet werden, um Dynamic-DNS-Updates ordnungsgemäß anzuwenden. 60 ist ein gängiger Wert, wenn ROT (RED) eine dynamische IP Adresse ist.',
 'vpn incompatible use of defaultroute' => 'Hostname=%defaultroute nicht zulässig',
 'vpn on blue' => 'VPN auf BLAU',
 'vpn on green' => 'VPN auf GRÜN',
 'vpn on orange' => 'VPN auf ORANGE',
+'vpn on-demand' => 'ON DEMAND',
 'vpn payload compression' => 'Datennutzlast-Kompression aushandeln',
 'vpn red name' => 'Öffentliche IP oder FQDN für das rote Interface oder <%defaultroute>',
 'vpn remote id' => 'Remote ID',
+'vpn start action' => 'Startaktion',
+'vpn start action route' => 'On Demand',
+'vpn start action start' => 'Immer An',
 'vpn statistic n2n' => 'OpenVPN-Netz-zu-Netz-Statistik',
 'vpn statistic rw' => 'OpenVPN-Roadwarrior-Statistik',
 'vpn subjectaltname' => 'Subjekt Alternativer Name',
 'vpn watch' => 'Netz-zu-Netz VPN neu starten, wenn sich Remote-IP ändert (DynDNS).',
+'vpn weak' => 'Schwach',
 'waiting to synchronize clock' => 'Bitte warten, die Uhr wird synchronisiert',
 'warn when traffic reaches' => 'Warnen wenn Traffic x % erreicht',
 'warning messages' => 'Warnhinweise',
 'wireless config added' => 'Wireless-Konfiguration hinzugefügt',
 'wireless config changed' => 'Wireless-Konfiguration geändert',
 'wireless configuration' => 'Wireless-Konfiguration',
+'wireless network' => 'WLAN-Netzwerk',
 'wlan client' => 'WLAN-Client',
 'wlan client advanced settings' => 'Erweiterte Einstellungen',
 'wlan client and' => 'und',
+'wlan client anonymous identity' => 'Anonyme Identität',
+'wlan client auth auto' => 'Auto',
+'wlan client auth peap' => 'PEAP',
+'wlan client auth ttls' => 'TTLS',
+'wlan client authentication settings' => 'Authentifizierungseinstellungen',
 'wlan client bssid' => 'BSSID',
 'wlan client ccmp' => 'CCMP',
 'wlan client configuration' => 'WLAN-Client-Konfiguration',
 'wlan client disconnected' => 'Nicht verbunden',
 'wlan client duplicate ssid' => 'Doppelte SSID',
+'wlan client eap authentication method' => 'EAP-Authentifizierungsmethode',
+'wlan client eap phase2 method' => 'EAP-Phase-2-Methode',
+'wlan client eap state' => 'EAP-Status',
 'wlan client edit entry' => 'Verbindung bearbeiten',
 'wlan client encryption' => 'Verschlüsselung',
+'wlan client encryption eap' => 'EAP',
 'wlan client encryption none' => 'Keine',
 'wlan client encryption wep' => 'WEP',
 'wlan client encryption wpa' => 'WPA',
 'wlan client encryption wpa2' => 'WPA2',
 'wlan client group cipher' => 'Gruppenchiffre',
 'wlan client group key algorithm' => 'GKA',
+'wlan client identity' => 'Identität',
 'wlan client invalid key length' => 'Ungültige Schlüssellänge.',
+'wlan client method' => 'Methode',
 'wlan client new entry' => 'Neue WLAN-Client-Konfiguration erstellen',
 'wlan client new network' => 'Neues Netzwerk',
 'wlan client pairwise cipher' => 'Paarweise Chiffre',
 'wlan client pairwise key algorithm' => 'PKA',
 'wlan client pairwise key group key' => 'Paarweise-/Gruppenschlüssel',
+'wlan client password' => 'Passwort',
 'wlan client psk' => 'Schlüssel',
 'wlan client ssid' => 'SSID',
 'wlan client tkip' => 'TKIP',
+'wlan client tls cipher' => 'TLS-Chiffre',
+'wlan client tls version' => 'TLS-Version',
 'wlan client wpa mode' => 'WPA-Modus',
 'wlan client wpa mode all' => 'Automatisch',
 'wlan client wpa mode ccmp ccmp' => 'CCMP-CCMP',
index a04d994d6274c75ab9fd837009d281717dd6f4c7..b3aee5a2b749c1ee73e8080b6c834fe983913d0d 100644 (file)
 'dnsforward forward_server' => 'Nameserver',
 'dnsforward zone' => 'Zone',
 'dnssec aware' => 'DNSSEC Aware',
+'dnssec disabled warning' => 'WARNING: DNSSEC has been disabled',
 'dnssec information' => 'DNSSEC Information',
 'dnssec not supported' => 'DNSSEC Not supported',
 'dnssec validating' => 'DNSSEC Validating',
 'fireinfo why read more' => 'Read more about the reasons.',
 'fireinfo your profile id' => 'Your profile ID',
 'firewall' => 'Firewall',
-'firewall graphs' => 'Firewall Graphs',
+'firewall graph country' => 'Firewall-Diagram (Country)',
+'firewall graph ip' => 'Firewall-Diagram (IP)',
+'firewall graph port' => 'Firewall-Diagram (Port)',
 'firewall hits' => 'Total number of firewall hits for',
 'firewall hits per' => 'firewallhits per',
 'firewall log' => 'Firewall log',
-'firewall log viewer' => 'Firewall Log Viewer',
+'firewall log country' => 'Firewall log (Country)',
+'firewall log ip' => 'Firewall log (IP)',
+'firewall log port' => 'Firewall log (Port)',
 'firewall logs' => 'Firewall Logs',
 'firewall logs country' => 'Fw-Loggraphs (Country)',
 'firewall logs ip' => 'Fw-Loggraphs (IP)',
 'updxlrtr year' => 'one year',
 'upgrade' => 'upgrade',
 'uplink' => 'Uplink',
+'uplink bit rate' => 'Uplink Bit Rate',
 'uplink speed' => 'Uplink speed (kbit/sec)',
 'uplink std class' => 'uplink standard class',
 'upload' => 'Upload',
 'vpn aggrmode' => 'IKE aggressive mode allowed. Avoid if possible (preshared key is transmitted in clear text)!',
 'vpn altname syntax' => 'SubjectAltName is a comma separated list of e-mail, dns, uri, rid and ip objects.<br />email:an email address. Syntax email:copy takes the email field from the cert to be used.<br />DNS:a valid domain name.<br />URI:any valid uri.<br />RID:registered object identifier.<br />IP:an IP address.<br />Note:charset is limited and case is significant.<br />Example:<br /><b>e-mail:</b>ipfire@foo.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/to/something',
 'vpn auth-dn' => 'Peer is identified by either IPV4_ADDR, FQDN, USER_FQDN or DER_ASN1_DN string in remote ID field',
+'vpn broken' => 'Broken',
 'vpn configuration main' => 'VPN Configuration',
+'vpn connecting' => 'CONNECTING',
 'vpn delayed start' => 'Delay before launching VPN (seconds)',
 'vpn delayed start help' => 'If required, this delay can be used to allow dynamic DNS updates to propagate properly. 60 is a common value when RED is a dynamic IP.',
 'vpn force mobike' => 'Force using MOBIKE (only IKEv2)',
 'vpn on blue' => 'VPN on BLUE',
 'vpn on green' => 'VPN on GREEN',
 'vpn on orange' => 'VPN on ORANGE',
+'vpn on-demand' => 'ON-DEMAND',
 'vpn payload compression' => 'Negotiate payload compression',
 'vpn red name' => 'Public IP or FQDN for RED interface or <%defaultroute>',
 'vpn remote id' => 'Remote ID',
+'vpn start action' => 'Start Action',
+'vpn start action route' => 'On Demand',
+'vpn start action start' => 'Always On',
 'vpn statistic n2n' => 'OpenVPN Net-to-Net Statistics',
 'vpn statistic rw' => 'OpenVPN Roadwarrior Statistics',
 'vpn subjectaltname' => 'Subject Alt Name',
 'vpn watch' => 'Restart net-to-net vpn when remote peer IP changes (dyndns).',
+'vpn weak' => 'Weak',
 'waiting to synchronize clock' => 'Waiting to synchronize clock',
 'warn when traffic reaches' => 'Warn when traffic reaches x %',
 'warning messages' => 'Warning messages',
 'wireless config added' => 'Wireless config added',
 'wireless config changed' => 'Wireless config changed',
 'wireless configuration' => 'Wireless Configuration',
+'wireless network' => 'WiFi Network',
 'wlan client' => 'Wireless client',
 'wlan client advanced settings' => 'Advanced settings',
 'wlan client and' => 'and',
+'wlan client anonymous identity' => 'Anonymous Identity',
+'wlan client auth auto' => 'Auto',
+'wlan client auth peap' => 'PEAP',
+'wlan client auth ttls' => 'TTLS',
+'wlan client authentication settings' => 'Authentication Settings',
 'wlan client bssid' => 'BSSID',
 'wlan client ccmp' => 'CCMP',
 'wlan client configuration' => 'Wireless Client Configuration',
 'wlan client disconnected' => 'Disconnected',
 'wlan client duplicate ssid' => 'Duplicate SSID',
+'wlan client eap authentication method' => 'EAP Authentication Method',
+'wlan client eap phase2 method' => 'EAP Phase 2 Method',
+'wlan client eap state' => 'EAP Status',
 'wlan client edit entry' => 'Edit wireless client configuration',
 'wlan client encryption' => 'Encryption',
+'wlan client encryption eap' => 'EAP',
 'wlan client encryption none' => 'None',
 'wlan client encryption wep' => 'WEP',
 'wlan client encryption wpa' => 'WPA',
 'wlan client encryption wpa2' => 'WPA2',
 'wlan client group cipher' => 'Group cipher',
 'wlan client group key algorithm' => 'GKA',
+'wlan client identity' => 'Identity',
 'wlan client invalid key length' => 'Invalid key length.',
+'wlan client method' => 'Method',
 'wlan client new entry' => 'Create new wireless client configuration',
 'wlan client new network' => 'New network',
 'wlan client pairwise cipher' => 'Pairwise cipher',
 'wlan client pairwise key algorithm' => 'PKA',
 'wlan client pairwise key group key' => 'Pairwise key/group key',
+'wlan client password' => 'Password',
 'wlan client psk' => 'Pre-shared key',
 'wlan client ssid' => 'SSID',
 'wlan client tkip' => 'TKIP',
+'wlan client tls cipher' => 'TLS Cipher',
+'wlan client tls version' => 'TLS Version',
 'wlan client wpa mode' => 'WPA mode',
 'wlan client wpa mode all' => 'Auto',
 'wlan client wpa mode ccmp ccmp' => 'CCMP-CCMP',
index 41a277d69444c391b07ba2897601cf74e29adfd3..02e047bb3cb0a4e78271523bfd8bdacbd09fc0e9 100644 (file)
@@ -47,7 +47,7 @@
 'Pages' => 'Pagine',
 'Ping' => 'Ping :',
 'Port Rule' => 'Regola-Porta',
-'QoS not enabled' => 'QoS non è abilitata!',
+'QoS not enabled' => 'Il QoS non &egrave; abilitato!',
 'Queuelenght' => 'Queuelenght',
 'Remote IP' => 'IP Remoto / Hostname (DynDNS):',
 'Remote VPN IP' => 'VPN Subnet (e.g. 10.0.10.0/255.255.255.0):',
 'advproxy IDENT unauthorized users' => 'Gli utenti non autorizzati (uno per riga)',
 'advproxy IDENT use negative access list' => 'Utilizzare il controllo degli accessi negativo',
 'advproxy IDENT use positive access list' => 'Utilizzare il controllo degli accessi positivo',
-'advproxy IDENT user based access restrictions' => 'Restrizioni di accesso basato sull utente',
+'advproxy IDENT user based access restrictions' => 'Restrizioni di accesso basato sull\'utente',
 'advproxy LDAP ADS' => 'Active Directory',
 'advproxy LDAP NDS' => 'Novell eDirectory',
 'advproxy LDAP V2' => 'LDAP versione 2',
 'advproxy chgwebpwd old password' => 'Password attuale',
 'advproxy chgwebpwd username' => 'Username',
 'advproxy classroom extensions' => 'estensioni di classe',
-'advproxy clear cache' => 'Clear Cache',
+'advproxy clear cache' => 'Cancella la cache',
 'advproxy client IP forwarding' => 'Indirizzo del client per inoltro IP',
 'advproxy common settings' => 'Impostazioni Comuni',
 'advproxy content based throttling' => 'Abilita limitazioni per contenuto',
 'advproxy cre disabled' => 'The management interface has been disabled by the administrator',
 'advproxy cre group definitions' => 'Definizioni del gruppo in classe',
 'advproxy cre supervisors' => 'Indirizzi IP Supervisore (uno per riga)',
-'advproxy destination ports' => 'Porte di destinatinazione',
+'advproxy destination ports' => 'Porte di destinazione',
 'advproxy download throttling' => 'Limiti Download',
 'advproxy enabled' => 'Abilitato',
 'advproxy enabled on' => 'Abilitato su',
 'backup explain key no2' => 'legacy floppy backups are not concerned with this key.',
 'backup export key' => 'Export key',
 'backup extract key' => 'Extract key',
-'backup from' => 'Backup from',
+'backup from' => 'Backup del',
 'backup generate key' => 'Generate key',
 'backup import dat file' => 'Import a backup (.dat) file',
 'backup import key' => 'Import key',
 'backup to floppy' => 'Backup to floppy',
 'backupaddon' => 'Addon Backup',
 'backupprofile' => 'In case reconnection fails, switch to profile',
-'backups' => 'backups',
-'backupwarning' => 'Per favore prima di ripristinare il backup del sistema e/o il backup addon, Si prega di mantenere il nome del file originale, di quando &eacute; stato scaricato.',
+'backups' => 'Backups',
+'backupwarning' => 'Per favore prima di ripristinare il backup del sistema e/o il backup addon, Si prega di mantenere il nome del file originale di quando &eacute; stato scaricato.',
 'bad characters in' => 'Bad characters in ',
 'bad characters in script field' => 'Bad characters in script field',
 'bad characters in the telephone number field' => 'Bad characters in the telephone number field.',
 'bad return code' => 'Helper program returned error code',
 'bad source range' => 'The Source port range has a first value that is greater than or equal to the second value.',
 'bandwidth usage' => 'bandwidth usage (external)',
-'bandwitherror' => 'You cannot change the bandwithsettings, with Qos being enabled. First disable Qos.<p>',
+'bandwitherror' => 'Per modificare le impostazioni devi prima disattivare il Qos.<p>',
 'bandwithsettings' => 'Bandwithsettings',
 'basic options' => 'Opzioni di base',
 'beep when ppp connects or disconnects' => 'Segnale acustico quando IPFire si connette o disconnette',
 'calamaris enable performance report' => 'Abilita report di prestazioni',
 'calamaris enable requester report' => 'Abilita report richiedente',
 'calamaris enable verbose reporting' => 'Attiva la segnalazione dettagliata',
-'calamaris high' => 'high',
+'calamaris high' => 'alta',
 'calamaris histogram resolution' => 'Risoluzione istogramma',
-'calamaris low' => 'low',
-'calamaris medium' => 'medium',
+'calamaris low' => 'bassa',
+'calamaris medium' => 'media',
 'calamaris no reports available' => 'Non ci sono report disponibili',
 'calamaris none' => 'none',
 'calamaris number of content types' => 'Numero di tipi di contenuto',
 'calamaris number of requesting hosts' => 'Numero di host che lo richiedono',
 'calamaris performance options' => 'Opzione prestazione',
 'calamaris proxy reports' => 'Report del Proxy',
-'calamaris refresh list' => 'Refresh list',
-'calamaris report interval (in minutes)' => 'Intervallo del Report in minuti',
-'calamaris report options' => 'Opzioni del Report',
-'calamaris report period' => 'Periodo del Report',
+'calamaris refresh list' => 'Aggiorna le liste',
+'calamaris report interval (in minutes)' => 'Intervallo del report in minuti',
+'calamaris report options' => 'Opzioni del report',
+'calamaris report period' => 'Periodo del report',
 'calamaris run as background task' => 'Eseguito come processo in background',
 'calamaris show usernames' => 'Mostra usernames',
 'calamaris skip archived logfiles' => 'Ignora file di registro archiviati',
 'connect' => 'OVPN Start / Connect',
 'connect the modem' => 'Connect the modem',
 'connect timeout' => 'Connect timeout:',
-'connected' => 'Connected',
-'connecting' => 'Connecting...',
+'connected' => 'Connesso',
+'connecting' => 'In connessione...',
 'connection' => 'connessione',
-'connection closed' => 'Not connected...',
+'connection closed' => 'Non connesso...',
 'connection debugging' => 'Connection debugging',
 'connection status and controlc' => 'Stato della connessione e controllo',
-'connection tracking' => 'iptables Connection Tracking',
+'connection tracking' => 'Monitoraggio connessioni iptables',
 'connection type' => 'Connection Type',
 'connection type is invalid' => 'Connection type is invalid.',
 'connections' => 'Connessioni',
 'cpu nice usage' => 'Nice CPU Usage',
 'cpu steal usage' => 'Steal CPU Usage',
 'cpu system usage' => 'System CPU Usage',
-'cpu usage per' => 'CPU Usage per',
+'cpu usage per' => 'Utilizzo CPU per',
 'cpu user usage' => 'User CPU Usage',
 'create' => 'Create',
 'create mask' => 'UNIX rights for new created files',
 'dial user password' => 'Dial user password:',
 'dial user password has been changed' => 'Dial user password has been changed.',
 'dialing mode' => 'Dialing mode:',
-'dialup red not ppp' => 'Dialup profiles can only used if <b>RED</b> is set to <b>PPP Dialup</b><BR>Check the networking setup.',
+'dialup red not ppp' => 'I profili dialup possono essere utilizzati solo se l\'interfaccia<b>RED</b> è impostata su <b>PPP Dialup</b><BR>Controlla la configurazione di rete.',
 'dialup settings' => 'Dialup Settings',
 'directory mask' => 'UNIX directory rights',
 'directory writeable' => 'directory writeable',
 'disabled' => 'disabled',
 'disconnect' => 'OVPN Stop / Disconnect',
 'disconnects' => 'Disconnects',
-'disk access per' => 'Disk Access per',
+'disk access per' => 'Accessi al disco per',
 'disk usage' => 'utilizzo del disco',
 'display' => 'Display',
 'display charset' => 'Display Charset',
 'domain name' => 'Nome del Dominio',
 'domain name suffix' => 'Suffisso del Dominio:',
 'domain not set' => 'Domain not set.',
-'donation' => 'Donation',
+'donation' => 'Donazione',
 'donation-link' => 'https://www.paypal.com/en_US/GB/i/btn/btn_donateCC_LG.gif',
-'donation-text' => '<strong>IPFire</strong> is driven and maintained by volunteers in their free time. To keep this project running costs incurred, if you like to support us we would be pleased by a small donation.',
+'donation-text' => '<strong>IPFire</strong> è sviluppato da volontari nel loro tempo libero. Per sostenere questo progetto e i relativi costi di gestione puoi effettuare una piccola donazione.',
 'done' => 'Do it',
 'dos charset' => 'DOS Charset',
 'down and up speed' => 'Enter your Down- and Uplink-Speed <br /> and then press <i>Save</i>.',
 'download certificate' => 'Download certificate',
 'download dh parameter' => 'Download Diffie-Hellman parameters',
 'download host certificate' => 'Download host certificate',
-'download new ruleset' => 'Download new ruleset',
+'download new ruleset' => 'Scarica il nuovo set di regole',
 'download pkcs12 file' => 'Download PKCS12 file',
 'download root certificate' => 'Download root certificate',
 'download tls-auth key' => 'Download tls-auth key',
 'duplicate ip bold' => 'Duplicate addresses are in <b>bold</b>',
 'duplicate mac' => 'Duplicate MAC address entered',
 'duplicate name' => 'That name is already being used, please choose another.',
-'dyn dns source choice' => 'Dynamic DNS provider(s) will receive an IP address for this IPFire from:',
+'dyn dns source choice' => 'Il provider DDNS oterr&agrave; l\'indirizzo IP per questo IPFire da:',
 'dynamic dns' => 'Dynamic DNS',
 'dynamic dns client' => 'Dynamic DNS Client',
 'e-mail address too long' => 'E-mail address is too long; it should not be longer than 40 characters.',
 'expected' => 'Expected',
 'expertoptions' => 'Expert options',
 'expires' => 'Scade',
-'export' => 'Export',
-'exportkey' => 'Export PSK',
+'export' => 'Esporta',
+'exportkey' => 'Esporta PSK',
 'external access' => 'External Access',
 'external access configuration' => 'External access configuration',
 'external access rule added' => 'External access rule added; restarting access controller',
 'extrahd' => 'ExtraHD',
 'extrahd because there is already a device mounted' => ', because there is already a device mounted',
 'extrahd cant umount' => 'Can\'t umount',
-'extrahd detected drives' => 'detected drives',
-'extrahd install or load driver' => 'If your device isn\'t listed here, you need to install or load the driver.<br />If you can see your device but no partitions you have to create them first.',
-'extrahd maybe the device is in use' => '. Maybe the device is in use',
+'extrahd detected drives' => 'Unità rilevate',
+'extrahd install or load driver' => 'Se il dispositivo non è elencato, è necessario installare o caricare il driver.<br />Se è possibile vedere il dispositivo, ma non le partizioni è necessario crearle prima.',
+'extrahd maybe the device is in use' => '. Il dispositivo potrebbe essere in uso',
 'extrahd to' => 'to',
 'extrahd to root' => 'to root',
 'extrahd unable to read' => 'Unable to read',
 'false max bandwith' => 'Maximum bandwith is false.',
 'false min bandwith' => 'Minimum bandwith is false.',
 'february' => 'Febbraio',
-'fetch ip from' => 'Guess the real public IP with help of an external server',
+'fetch ip from' => 'Ottieni l\'indirizzo IP pubblico con l\'aiuto di un server esterno',
 'filename' => 'Filename',
 'filesystem full' => 'Filesystem full',
-'fireinfo ipfire version' => 'IPFire version',
+'fireinfo ipfire version' => 'Versione IPFire',
 'fireinfo is disabled' => 'Fireinfo is disabled',
 'fireinfo is enabled' => 'Fireinfo is enabled',
-'fireinfo is submitted' => 'Your profile is submitted to the fireinfo service.',
-'fireinfo is submitted button' => 'No, I do not want to send my profile anymore',
+'fireinfo is submitted' => 'Il tuo profilo è inviato al servizio fireinfo.',
+'fireinfo is submitted button' => 'No, non voglio pi&ugrave; inviare il mio profilo',
 'fireinfo kernel version' => 'Kernel version',
-'fireinfo not submitted' => 'Your profile is not submitted to the fireinfo service.',
-'fireinfo not submitted button' => 'Yes, I want to send my profile',
-'fireinfo pakfire version' => 'Pakfire version',
-'fireinfo please enable' => 'Please enable the fireinfo service.',
-'fireinfo settings' => 'Fireinfo settings',
+'fireinfo not submitted' => 'Il tuo profilo non viene inviato al servizio fireinfo.',
+'fireinfo not submitted button' => 'Sì, voglio inviae il mio profilo',
+'fireinfo pakfire version' => 'Versione Pakfire',
+'fireinfo please enable' => 'Ti preghiamo di attivare il servizio fireinfo.',
+'fireinfo settings' => 'Impostazioni Fireinfo',
 'fireinfo system version' => 'Versione del Sistema',
-'fireinfo why descr1' => 'It is very important for the development of IPFire that you enable this',
-'fireinfo why descr2' => 'service. ',
-'fireinfo why enable' => 'Why should I enable fireinfo?',
-'fireinfo why read more' => 'Read more about the reasons.',
-'fireinfo your profile id' => 'Your profile ID',
+'fireinfo why descr1' => 'È molto importante per lo sviluppo di IPFire che questa opzione venga attivata',
+'fireinfo why descr2' => 'servizio. ',
+'fireinfo why enable' => 'Perché dovrei attivare fireinfo?',
+'fireinfo why read more' => 'Per saperne di più sulle ragioni.',
+'fireinfo your profile id' => 'L\'ID del tuo profilo',
 'firewall' => 'Firewall',
 'firewall graphs' => 'Firewall Graphs',
 'firewall hits' => 'Numero totale di visite per firewall',
 'firewall logs country' => 'Fw-Loggraphs (Country)',
 'firewall logs ip' => 'Fw-Loggraphs (IP)',
 'firewall logs port' => 'Fw-Loggraphs (Port)',
-'firewall rules' => 'Firewall Rules',
+'firewall rules' => 'Regole del firewall',
 'firewallhits' => 'firewallhits',
 'firmware' => 'Firmware',
 'firmware upload' => 'Upload Firmware/Drivers',
 'fwdfw MODE2' => 'Accept all packets',
 'fwdfw REJECT' => 'REJECT',
 'fwdfw action' => 'Action',
-'fwdfw additional' => 'Additional settings',
+'fwdfw additional' => 'Impostazioni aggiuntive',
 'fwdfw addrule' => 'Add/Edit rule:',
 'fwdfw all icmp' => 'All ICMP types',
 'fwdfw change' => 'Update',
 'fwdfw man port' => 'Port(s):',
 'fwdfw many' => 'Many',
 'fwdfw menu' => 'Firewall',
-'fwdfw movedown' => 'Move down',
-'fwdfw moveup' => 'Move up',
+'fwdfw movedown' => 'Sposta giù',
+'fwdfw moveup' => 'Sposta su',
 'fwdfw natport used' => 'The given port for NAPT is already in use by an other DNAT rule.',
-'fwdfw newrule' => 'New rule',
+'fwdfw newrule' => 'Nuova regola',
 'fwdfw p2p txt' => 'Grant/deny access to P2P networks.',
 'fwdfw pol allow' => 'Allowed',
 'fwdfw pol block' => 'Blocked',
-'fwdfw pol text' => 'Sets the default firewall behaviour for connections from local networks. You may either allow all new connections or block them by default. Connections between the local networks are also blocked in the latter mode.',
-'fwdfw pol text1' => 'Sets the default firewall behaviour for connections initiated by the firewall itself. Attention! You may lock yourself out.',
-'fwdfw pol title' => 'Default firewall behaviour',
+'fwdfw pol text' => 'Imposta il comportamento predefinito del firewall per le connessioni da reti locali. Si può consentire tutte le nuove connessioni o bloccarle per impostazione predefinita. Anche le connessioni tra le reti locali sono bloccate in quest\'ultima modalità.',
+'fwdfw pol text1' => 'Imposta il comportamento predefinito del firewall per le connessioni avviate dal firewall stesso. Attenzione! Potreste bloccare il vostro stesso accesso.',
+'fwdfw pol title' => 'Comportamento di default del firewall',
 'fwdfw prot41' => 'IPv6 Encapsulation (Protocol 41)',
 'fwdfw prot41 short' => 'IPv6 Encap',
 'fwdfw red' => 'ROSSO',
-'fwdfw reread' => 'Apply changes',
+'fwdfw reread' => 'Applica le modifiche',
 'fwdfw rule action' => 'Rule action:',
-'fwdfw rule activate' => 'Activate rule',
-'fwdfw rulepos' => 'Rule position',
-'fwdfw rules' => 'Rules',
+'fwdfw rule activate' => 'Attiva la regola',
+'fwdfw rulepos' => 'Posizione della regola',
+'fwdfw rules' => 'Regole',
 'fwdfw snat' => 'Source NAT',
 'fwdfw source' => 'Source',
-'fwdfw sourceip' => 'Source address (MAC/IP address or network):',
+'fwdfw sourceip' => 'Source address (Indirizzo MAC/IP o network):',
 'fwdfw std network' => 'Standard networks:',
 'fwdfw target' => 'Destinazione',
-'fwdfw targetip' => 'Destination address (IP address or network):',
+'fwdfw targetip' => 'Destination address (Indirizzo IP o network):',
 'fwdfw till' => 'Until:',
 'fwdfw time' => 'Time Constraints',
 'fwdfw timeframe' => 'Use time constraints',
 'fwdfw toggle' => 'Activate or deactivate',
 'fwdfw togglelog' => 'Activate or deactivate logging',
-'fwdfw use nat' => 'Use Network Address Translation (NAT)',
+'fwdfw use nat' => 'Usa Network Address Translation (NAT)',
 'fwdfw use srcport' => 'Source port:',
 'fwdfw use srv' => 'Destination port:',
 'fwdfw useless rule' => 'This rule is useless.',
 'fwhost addservicegrp' => 'Add new service group',
 'fwhost any' => 'Any',
 'fwhost attention' => 'ATTENTION',
-'fwhost back' => 'Back',
+'fwhost back' => 'Indietro',
 'fwhost blue' => 'Blu',
 'fwhost ccdhost' => 'OpenVPN clients:',
 'fwhost ccdnet' => 'OpenVPN networks:',
 'fwhost orange' => 'Orange',
 'fwhost ovpn_n2n' => 'OpenVPN Net-to-Net',
 'fwhost port' => 'Port(s)',
-'fwhost prot' => 'Protocolo',
-'fwhost reread' => 'Firewall rules need to be updated.',
-'fwhost reset' => 'Cancel',
+'fwhost prot' => 'Protocollo',
+'fwhost reread' => 'Le regole del firewall devono essere aggiornate.',
+'fwhost reset' => 'Cancella',
 'fwhost services' => 'Servizio:',
 'fwhost srv_name' => 'Nome servizio',
 'fwhost stdnet' => 'Standard networks:',
 'graph' => 'Grafico',
 'graph per' => 'per',
 'green' => 'Verde',
-'green interface' => 'Interface Verde',
+'green interface' => 'Interfaccia Verde',
 'grouptype' => 'Grouptype:',
 'guest ok' => 'allow guests to access',
 'gui settings' => 'Settaggio GUI',
 'gz with key' => 'Only an encrypted archive can be restored on this machine.',
 'hangup' => 'Disconnect',
 'hangup string' => 'Hangup:',
-'harddisk temperature' => 'Temperatura Harddisk',
+'harddisk temperature' => 'Temperatura hard disk',
 'harddisk temperature graphs' => 'Grafico HDD',
 'hardware graphs' => 'Grafico Hardware',
 'hardware support' => 'Supporto Hardware',
-'hdd temperature in' => 'Temperatura Harddisk',
+'hdd temperature in' => 'Temperatura hard disk',
 'help' => 'Help',
-'high' => 'High',
+'high' => 'Alto',
 'high memory usage' => 'High memory usage',
 'hint' => 'Hint:',
 'holdoff' => 'Holdoff time (in seconds)',
 'ids log viewer' => 'IDS log viewer',
 'ids logs' => 'IDS Logs',
 'ids preprocessor' => 'IDS preprocessor',
-'ids rules license' => 'To utilize Sourcefire VRT Certified Rules, you need to register on',
+'ids rules license' => 'Per utilizzare le regole Sourcefire VRT è necessario registrarsi su',
 'ids rules license1' => '.',
-'ids rules license2' => 'Acknowledge the license, activate your account by visiting the url you got via mail. Then go to',
-'ids rules license3' => 'press the "Generate code"-button and copy the 40 character Oinkcode into the field below.',
+'ids rules license2' => 'Accettate la licenza, attivate il vostro account visitando l\'URL ricevuto via e-mail. Poi vai a',
+'ids rules license3' => 'premete il tasto "Generate code" e copiate i 40 caratteri dell\'Oinkcode  nel campo sottostante.',
 'ids rules update' => 'Snort rules update',
 'iface' => 'Iface',
 'ignore filter' => 'Ignora filtro',
 'installed updates' => 'Installed updates:',
 'instant update' => 'Instant Update',
 'integrity' => 'Integrity:',
-'interface' => 'Interface',
-'interfaces' => 'Interfaces',
+'interface' => 'Interfaccia',
+'interfaces' => 'Interfacce',
 'internet' => 'INTERNET',
 'intrusion detection' => 'Intrusion Detection',
 'intrusion detection system' => 'Intrusion Detection System',
 'june' => 'Giugno',
 'kernel' => 'Kernel',
 'kernel logging server' => 'Kernel Logging Server',
-'kernel version' => 'Kernel version:',
+'kernel version' => 'Versione del Kernel:',
 'key stuff' => '2. Keys and Certificates',
 'keyreset' => 'Reset Keys',
 'keys' => 'keys',
 'log' => 'Log',
 'log enabled' => 'Abilito Log',
 'log level' => 'Log Level',
-'log lines per page' => 'Line per pagina',
+'log lines per page' => 'Linee per pagina',
 'log server address' => 'Syslog server:',
 'log settings' => 'Impostazioni di Log',
 'log summaries' => 'Sommario Log',
 'logs' => 'Gestione Log',
 'lookup failed' => 'Reverse lookup failed',
 'loosedirectorychecking' => 'Loosedirectorychecking',
-'low' => 'Low',
+'low' => 'Basso',
 'ls_dhcpd' => 'DHCP Server:',
-'ls_disk space' => 'Disk space:',
+'ls_disk space' => 'Spazio sul disco:',
 'ls_free/swan' => 'VPN:',
 'ls_httpd' => 'HTTP Server:',
 'ls_init' => 'Init:',
 'meaning' => 'meaning',
 'media' => 'Media',
 'media information' => 'Informazioni Media',
-'medium' => 'Medium',
+'medium' => 'Medio',
 'memory' => 'Memoria',
 'memory information' => 'informazione Memoria',
-'memory usage per' => 'Memory Usage per',
+'memory usage per' => 'Utilizzo memoria per',
 'messages logging' => 'Log settings for /var/log/messages',
 'method' => 'Method:',
 'min costs' => 'Minimum costs',
 'noservicename' => 'No Service Name entered',
 'not a valid ca certificate' => 'Not a valid CA certificate.',
 'not a valid dh key' => 'Not a valid Diffie-Hellman parameters file. Please use a length of 1024, 2048, 3072 or 4096 bits and the PKCS#3 format.',
-'not enough disk space' => 'Not enough disk space',
-'not present' => '<b>Not</b> present',
+'not enough disk space' => 'Spazio su disco insufficiente',
+'not present' => '<b>Non</b> presente',
 'not running' => 'not running',
 'not set' => 'not set',
-'notes' => 'Notes',
+'notes' => 'Note',
 'notice' => 'Notice',
 'november' => 'Novembre',
 'ntp common settings' => 'Impostazioni Comuni',
 'optional at cmd' => 'optional AT command',
 'optional data' => '3. Optional Settings:',
 'options' => 'Options',
-'options fw' => 'Firewall Options',
+'options fw' => 'Opzioni firewall',
 'optionsfw portlist hint' => 'The list of ports has to be comma separated (e.g. 137,138). You can specify up to a maximum of 15 ports per protocol.',
 'optionsfw warning' => 'Modifying these options implies restart of firewall',
 'or' => 'or',
 'organization too long' => 'Organization is too long; it should not be longer than 60 characters.',
 'original' => 'Original',
 'os level' => 'OS Level',
-'other' => 'Other',
+'other' => 'Altro',
 'other countries' => 'Other countries',
 'other login script' => 'Other login script',
 'otherip' => 'other IP',
 'outgoing firewall mode1' => 'Using this mode, only connections based on the defined rules are allowed.',
 'outgoing firewall mode2' => 'Using this mode, all connections are allowed despited off the defined ones.',
 'outgoing firewall outgoing firewall reserved groupname' => 'Please use another group name, this name is reserved.',
-'outgoing firewall p2p allow' => 'Using the P2P protocol is allowed',
-'outgoing firewall p2p deny' => 'Using the P2P protocol is forbidden',
+'outgoing firewall p2p allow' => 'L\'utilizzo del protocollo P2P &egrave; consentito',
+'outgoing firewall p2p deny' => 'L\'utilizzo del protocollo P2P &egrave; impedito',
 'outgoing firewall p2p description 1' => 'The button',
 'outgoing firewall p2p description 2' => 'means that the p2p protocol is allowed or',
 'outgoing firewall p2p description 3' => 'that the p2p protocol is denied.',
 'ovpnstatus log' => 'OVPN-Status-Log',
 'ovpnsys log' => 'OVPN-System-Log',
 'p2p block' => 'P2P networks',
-'p2p block save notice' => 'Please reload the firewall ruleset in order to apply your changes.',
+'p2p block save notice' => 'Ricarica le regole del firewall per applicare le modifiche.',
 'package failed to install' => 'Package failed to install.',
 'pagerefresh' => 'Page is beeing refreshed, please wait.',
-'pakfire accept all' => 'Do you want to install all packages?',
+'pakfire accept all' => 'Vuoi installare tutti i pacchetti?',
 'pakfire ago' => 'ago.',
 'pakfire available addons' => 'Addons disponibili:',
 'pakfire configuration' => 'Configurazione Pakfire',
 'pakfire install description' => 'Si prega di scegliere uno o più elementi dalla lista qui sotto e <br /> fai clic sul segno più per installare.',
 'pakfire install package' => 'You want to install the following packages: ',
 'pakfire installed addons' => 'Addons installati:',
-'pakfire last core list update' => 'Last core list update made',
-'pakfire last package update' => 'Last packages list update made',
-'pakfire last serverlist update' => 'Last server list update made',
-'pakfire last update' => 'Last update made',
+'pakfire last core list update' => 'Ultimo aggiornamento della lista di sistema',
+'pakfire last package update' => 'Ultimo aggiornamento della lista pacchetti',
+'pakfire last serverlist update' => 'Ultimo aggiornamento della lista server',
+'pakfire last update' => 'Ultimo aggiornamento di sistema effettuato',
 'pakfire possible dependency' => ' There may be depending packages, here is a list of packages that need to be installed.',
 'pakfire register' => 'Registrati sul pakfire-server:',
 'pakfire system state' => 'Stato del Sistema',
 'pakfire uninstall package' => 'You want to uninstall the following packages: ',
 'pakfire update daily' => 'Ricerca gli aggiornamenti una volta al giorno:',
 'pakfire updates' => 'Available Update:',
-'pakfire working' => 'Pakfire is working ... Please wait until all operations have completed successfully.',
+'pakfire working' => 'Pakfire sta lavorando... Per favore attendi il termine delle operazioni',
 'pap or chap' => 'PAP or CHAP',
 'parentclass' => 'Parentclass',
 'parentclass add' => 'Add parentclass',
 'printername' => 'Printername',
 'printing' => 'Printing',
 'printing options' => 'printing options',
-'priority' => 'Priority',
-'processes' => 'Processo',
-'profile' => 'Profile',
+'priority' => 'Priorità',
+'processes' => 'Processi',
+'profile' => 'Profilo',
 'profile deleted' => 'Profile deleted: ',
 'profile has errors' => 'Profile has errors',
 'profile made current' => 'Profile made current: ',
 'proxy no proxy extend' => 'or specify a list of not proxied destination',
 'proxy no proxy local' => 'Disallow local proxying on Blu/Verde networks',
 'proxy port' => 'Porta Proxy',
-'proxy reconfigure' => 'Save and Reload',
+'proxy reconfigure' => 'Salva e ricarica',
 'proxy reports' => 'Report del Proxy',
 'proxy reports daily' => 'Daily reports',
 'proxy reports monthly' => 'Monthly reports',
 'red' => 'Internet',
 'red1' => 'ROSSO',
 'references' => 'References',
-'refresh' => 'Refresh',
+'refresh' => 'Aggiorna',
 'refresh index page while connected' => 'Aggiorna la pagina index.cgi mentre si &eacute; collegati',
 'refresh update list' => 'Refresh update list',
 'registered user rules' => 'Sourcefire VRT rules for registered users',
 'server reserved' => 'The connection name server is reserved and not allowed',
 'server restart' => 'You are not able to save any changes while the OpenVPN server is running.',
 'server string' => 'Server String',
-'service' => 'Service',
+'service' => 'Servizio',
 'service added' => 'Custom network service added',
 'service name' => 'Service name:',
 'service removed' => 'Custom network service removed',
 'service updated' => 'Custom network service updated',
 'servicename' => 'Service Name',
-'services' => 'Servizio',
+'services' => 'Servizi',
 'services settings' => 'Firewall-Impostazioni Servizi',
 'set' => 'set',
-'set time now' => 'Set time now',
+'set time now' => 'Aggiorna adesso la data',
 'set time now help' => 'Per accodare un evento di sincronizzazione in qualsiasi momento (anche durante l\'utilizzo di un programma di ripetizione), premere il pulsante Imposta ora ora. Si prega di notare che potrebbe essere necessario attendere per cinque minuti, o più, prima che si verifichi un evento di sincronizzazione.',
 'settings' => 'Impostazioni',
 'shaping add options' => 'Add service',
 'shared' => 'shared',
 'sharename' => 'Sharename',
 'shares' => 'Shares',
-'show ajax speedmeter in footer' => 'Mostra la velocita tramita Ajax',
+'show ajax speedmeter in footer' => 'Mostra la velocit&agrave; tramite Ajax',
 'show areas' => 'show areas',
 'show ca certificate' => 'Show CA certificate',
 'show certificate' => 'Show file',
 'ssh is enabled' => 'SSH is enabled.  Restarting.',
 'ssh key' => 'Key',
 'ssh key size' => 'Size (bits)',
-'ssh keys' => 'Chiave basata Autenticazione pubblica',
+'ssh keys' => 'Autenticazione con la chiave pubblica SSH',
 'ssh no auth' => 'You have not allowed any authentication methods; this will stop you logging in',
 'ssh passwords' => 'Consenti autenticazione basata su password',
-'ssh port' => 'SSH porta TCP/IP 22 (default &eacute; 222)',
+'ssh port' => 'SSH sulla porta TCP/IP 22 (default &eacute; 222)',
 'ssh portfw' => 'Consenti inoltro TCP',
 'ssh tempstart15' => 'Stop SSH dopo 15 minuti',
 'ssh tempstart30' => 'Stop SSH dopo 30 minuti',
 'successfully refreshed updates list' => 'Successfully refreshed updates list.',
 'summaries kept' => 'Tenere il sommaro per',
 'sunday' => 'Domenica',
-'support donation' => 'Support the IPFire project with your donation',
+'support donation' => 'Sostieni il progetto IPFire con la tua donazione',
 'swap' => 'Swap',
-'swap usage per' => 'Swap usage per',
+'swap usage per' => 'Utilizzo swap per',
 'system' => 'Sistema',
 'system graphs' => 'Grafico sistema',
 'system has hwrng' => 'This system has got a hardware random number generator.',
 'ta key' => 'TLS-Authentification-Key',
 'telephone not set' => 'Telephone not set.',
 'template' => 'Preset',
-'template warning' => 'You have two options to set up Qos. The First, you press the save button and generate the classes and rules on your own. The second, you press the preset button and classes and rules will be set up by a template.',
+'template warning' => 'Ci sono due opzioni per impostare il Qos. La prima: si preme il pulsante Salva e poi si generano le classi e le regole da soli. La seconda: si preme il tasto di preset e le classi e le regole saranno automaticamente generate da un modello.',
 'teovpn_fragment' => 'Fragmentsize',
 'test' => 'test',
 'test email could not be sent' => 'Could not sent Testemail',
 'test email was sent' => 'Testemail was send successfully',
 'the following update was successfully installed' => 'The following update was successfully installed',
 'the statistics were last updated at' => 'The statistics were last updated at',
-'theme' => 'Teme Grafico',
+'theme' => 'Tema grafico',
 'there are updates' => 'There are updates available for your system. Please go to the "updates" section for more information.',
 'there are updates available' => 'There are updates available for your system. It is strongly urged that you install them as soon as possible.',
 'there was no file upload' => 'There was no file upload.',
 'time server' => 'Ora Server',
 'timeout must be a number' => 'Timeout must be a number.',
 'title' => 'Title',
-'to' => 'To',
+'to' => 'Al',
 'to email adr' => 'To e-mail address',
 'to install an update' => 'To install an update please upload the .tgz.gpg file below:',
 'to warn email bad' => 'To e-mail address is not valid',
 'traffic calc time' => 'Time of calculation',
 'traffic calc time bad' => 'Calculation time is not correct',
 'traffic info messages' => 'Info messages',
-'traffic monitor' => 'Traffic Monitor',
-'traffic on' => 'Traffic on',
+'traffic monitor' => 'Monitor del traffico',
+'traffic on' => 'Traffico su',
 'traffic shaping' => 'Traffic Shaping',
 'traffic shaping settings' => 'Traffic Shaping Settings',
 'traffic warn level bad' => 'Warnlevel is not correct',
 'trafficorange' => 'DMZ',
 'trafficout' => 'Output',
 'trafficred' => 'Internet',
-'traffics' => 'Panoramica-Utilizzo',
+'traffics' => 'Panoramica utilizzo',
 'trafficsum' => 'Totals',
 'trafficto' => 'To',
 'transfer limits' => 'Transfer limits',
 'unix shell' => 'UNIX Shell',
 'unknown' => 'UNKNOWN',
 'unnamed' => 'Unnamed',
-'update' => 'Update',
+'update' => 'Aggiorna',
 'update accelerator' => 'Update Accelerator',
 'update time' => 'Aggiornamento ora:',
 'update transcript' => 'Update transcript',
 'updatedatabase' => 'Update Database with last report',
-'updates' => 'Updates',
-'updates installed' => 'Ruleset update from',
+'updates' => 'aggiornamenti',
+'updates installed' => 'Aggiornamento delle regole effettuato il',
 'updates is old1' => 'Your update file is ',
 'updates is old2' => 'days old. We recommend you update it on the <b>System>Updates</b> page.',
 'updxlrtr 3 months' => 'three months',
 'updxlrtr progress' => 'Progress',
 'updxlrtr purge' => 'Purge',
 'updxlrtr remove file' => 'Remove from cache',
-'updxlrtr save and restart' => 'Save and Restart',
+'updxlrtr save and restart' => 'Salva e riavvia',
 'updxlrtr source' => 'Source',
 'updxlrtr source checkup' => 'Source checkup',
 'updxlrtr source checkup schedule' => 'Source checkup schedule',
 'urlfilter enabled' => 'Enabled:',
 'urlfilter example' => 'Esempio: www.domain.com',
 'urlfilter example ads' => 'Esempio: www.domain.com/ads/',
-'urlfilter export blacklist' => 'Export blacklist',
-'urlfilter export error' => 'Unable to create export file',
+'urlfilter export blacklist' => 'Esporta blacklist',
+'urlfilter export error' => 'Impossibile creare il file di esportazione',
 'urlfilter expressions' => 'Expressions (one per line)',
 'urlfilter file ext block' => 'Blocco estenzione file',
 'urlfilter filename' => 'Name',
 'urlfilter load blacklist' => 'Load blacklist',
 'urlfilter local file redirection' => 'Redirezione di file locale',
 'urlfilter log' => 'urlfilter log',
-'urlfilter log summary' => 'Numero totale di URL filtrati per',
+'urlfilter log summary' => 'Numero totale di URL bloccati il',
 'urlfilter log viewer' => 'URL filter log viewer',
 'urlfilter logs' => 'LOG del filtro URL',
 'urlfilter maintenance' => 'Manutenzione del filtro URL',
 'use a pre-shared key' => 'Use a pre-shared key:',
 'use dov' => 'Use data over voice (DOV):',
 'use ibod' => 'Use Bandwidth on Demand (iBOD):',
-'use ipfire red ip' => 'The classical RED IP used by IPFire during connection',
+'use ipfire red ip' => 'L\'indirizzo IP utilizzato dall\'interfaccia RED durante la connessione',
 'use only proposed settings' => 'Use only proposed settings.',
 'used' => 'Usato',
 'used memory' => 'Memoria Usata        ',
 'virtual address' => 'Virtual Address',
 'virtual private networking' => 'Virtual Private Networking',
 'visible in browselist' => 'visible in browselist',
-'visit us at' => 'Visit us at',
+'visit us at' => 'Visita il nostro sito',
 'voldown10' => 'Decrease volume by 10',
 'voldown5' => 'Decrease volume by 5',
 'volup10' => 'Increase volume by 10',
 'wireless' => 'Wireless',
 'wireless config added' => 'Wireless config added',
 'wireless config changed' => 'Wireless config changed',
-'wireless configuration' => 'Configuratione Wireless',
+'wireless configuration' => 'Configurazione Wireless',
 'wlan client' => 'Wireless client',
 'wlan client advanced settings' => 'impostazioni avanzate Wireless client',
 'wlan client and' => 'and',
 'wlan client group cipher' => 'Group cipher',
 'wlan client group key algorithm' => 'GKA',
 'wlan client invalid key length' => 'Invalid key length.',
-'wlan client new entry' => 'Crea nuova configuratione wireless client',
+'wlan client new entry' => 'Crea nuova configurazione wireless client',
 'wlan client new network' => 'Nuovo network',
 'wlan client pairwise cipher' => 'Pairwise cipher',
 'wlan client pairwise key algorithm' => 'PKA',
 'wlanap informations' => 'Informationi',
 'wlanap interface' => 'Selezione interfaccia',
 'wlanap invalid wpa' => 'Invalid length in WPA Passphrase. Deve contenere dai 6 ai 63 caratteri.',
-'wlanap link dhcp' => 'Configuratione Wireless Lan DHCP',
+'wlanap link dhcp' => 'Configurazione Wireless Lan DHCP',
 'wlanap link wireless' => 'Activate Wireless Lan clients',
 'wlanap no interface' => 'Selected interface is not a Wirless Lan card!',
 'wlanap none' => 'none',
index 847f89f8607713c7559a8167bb711dbcc00c6d92..fbf63b353bf9d2febc611faad6561acffee2cd69 100644 (file)
--- a/lfs/7zip
+++ b/lfs/7zip
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2016 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        = 15.14.1
+VER        = 16.02
 
 THISAPP    = p7zip_$(VER)
 DL_FILE    = $(THISAPP)_src_all.tar.bz2
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = 7zip
-PAK_VER    = 6
+PAK_VER    = 7
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 92cca093312b5a71a7be7dc7d1d32509
+$(DL_FILE)_MD5 = a0128d661cfe7cc8c121e73519c54fbf
 
 install : $(TARGET)
 
@@ -77,8 +77,7 @@ dist:
 $(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/p7zip/CVE-2016-2334.patch
-       cd $(DIR_APP) patch -Np1 < $(DIR_SRC)/src/patches/p7zip/CVE-2016-2335.patch
+       cd $(DIR_APP) && cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/p7zip_change_install_folder.patch
        cd $(DIR_APP) && make 7z $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index 4de8bd34c12c53f1a8ca2dc1642ee379844b1335..d7d2a24a18a82f10ee5fde802ef4b6a69b130ea7 100644 (file)
 #                                                                             #
 ###############################################################################
 
+# Cleanup environment from any variables
+unexport BUILD_ARCH BUILD_PLATFORM BUILDTARGET CROSSTARGET TOOLCHAIN
+
+ifeq "$(BUILD_ARCH)" "aarch64"
+       IS_64BIT = 1
+endif
+
+ifeq "$(BUILD_ARCH)" "x86_64"
+       IS_64BIT = 1
+endif
+
 # URLs that are common sources of downloads.  If you're having trouble with
 # a site you should change its URL to that of a suitable mirror site.
 #
@@ -117,13 +128,13 @@ define POSTBUILD
        if [ -s "$(TARGET)_diff" ]; then \
                LFS_SCRIPT=$(firstword $(MAKEFILE_LIST))$(KCFG); \
                echo $(LFS_SCRIPT); \
-               ROOTFILE=$$(find $(DIR_SRC)/config/rootfiles/{common,packages}/{$(MACHINE),} -maxdepth 1 -type f -name $$LFS_SCRIPT 2>/dev/null | head -1); \
+               ROOTFILE=$$(find $(DIR_SRC)/config/rootfiles/{common,packages}/{$(BUILD_ARCH),} -maxdepth 1 -type f -name $$LFS_SCRIPT 2>/dev/null | head -1); \
                if [ "$$ROOTFILE" = "" ]; then \
                        touch $(TARGET)_missing_rootfile; \
                        ROOTFILE=$(TARGET)_missing_rootfile ; \
                        echo "error $$LFS_SCRIPT not found in config/rootfiles"; \
                fi; \
-               sed -e "s/BUILDTARGET/$(BUILDTARGET)/g" -e "s/KVER/$(KVER)/g" -e "s/MACHINE/$(MACHINE)/g" $$ROOTFILE > $(TARGET)_rootfile; \
+               sed -e "s/BUILDTARGET/$(BUILDTARGET)/g" -e "s/KVER/$(KVER)/g" -e "s/MACHINE/$(BUILD_ARCH)/g" $$ROOTFILE > $(TARGET)_rootfile; \
                for line in `cat $(TARGET)_diff`; do \
                        if grep -qG "^#$$line$$" $(TARGET)_rootfile; then echo "#$$line" >> $(TARGET); \
                        elif grep -qG "^$$line$$" $(TARGET)_rootfile ; then echo "$$line" >> $(TARGET); \
@@ -178,13 +189,13 @@ define PAK
                cp -f /usr/src/src/paks/default/{,un}install.sh /usr/src/src/paks/default/update.sh \
                /install/packages/package; \
        fi
-       for i in $(DIR_SRC)/config/rootfiles/packages/{$(MACHINE),}/$(PROG); do \
+       for i in $(DIR_SRC)/config/rootfiles/packages/{$(BUILD_ARCH),}/$(PROG); do \
                if [ -e "$${i}" ]; then \
                        cp -v $${i} /install/packages/package/ROOTFILES; \
                        break; \
                fi; \
        done
-       sed -e 's/BUILDTARGET/$(BUILDTARGET)/g' -e 's/KVER/$(KVER)/g' -e 's/MACHINE/$(MACHINE)/g' -i /install/packages/package/ROOTFILES
+       sed -e 's/BUILDTARGET/$(BUILDTARGET)/g' -e 's/KVER/$(KVER)/g' -e 's/MACHINE/$(BUILD_ARCH)/g' -i /install/packages/package/ROOTFILES
        sed -e 's/xxxKVERxxx/$(KVER)/g' -i /install/packages/package/install.sh
        chmod 755 /install/packages/package/{{,un}install,update}.sh
        cd / && tar cf /install/packages/package/files.tmp --files-from=/install/packages/package/ROOTFILES --exclude='#*' \
@@ -206,3 +217,10 @@ define PAK
                        -e s/SIZE/`ls -l \/install\/packages\/$(PROG)-$(VER)-$(PAK_VER).ipfire | awk '{ print $$5 }'`/g \
          < /usr/src/src/pakfire/meta > /install/packages/meta-$(PROG)
 endef
+
+define INSTALL_INITSCRIPT
+       install -m 754 -v $(DIR_SRC)/src/initscripts/packages/$(1)  /etc/rc.d/init.d/$(1)
+endef
+
+test:
+       $(call INSTALL_INITSCRIPT,hostapd)
index 9169857a564e9435a2d303ceb6c24e2afda8380e..9329f6c9e2587eeea18b0ae248e16af6080b9a80 100644 (file)
--- a/lfs/acpid
+++ b/lfs/acpid
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.0.26
+VER        = 2.0.28
 
 THISAPP    = acpid-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -41,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f6d772e35ed907f1cc14ad1a546fd473
+$(DL_FILE)_MD5 = 0432407b5ff75ae8e08afb43052fde2b
 
 install : $(TARGET)
 
index b9c3bb452ca437f99671a82aea3f8f4bbeb03326..72ea70d205a649babbb7cb9a00c18d5a64cd5c34 100644 (file)
--- a/lfs/alsa
+++ b/lfs/alsa
@@ -99,5 +99,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        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
+       # install initscript
+       $(call INSTALL_INITSCRIPT,alsa)
        @rm -rf $(DIR_SRC)/alsa*
        @$(POSTBUILD)
index 39464e4e6916314ec0041dc1f939c5bec77ad653..7230c0c0e96b08d81d2dbe83c0a9b527e29eeb6a 100644 (file)
@@ -80,6 +80,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && cp -f amavisd /usr/bin
        chown root.root /usr/bin/amavisd
        chmod 755 /usr/bin/amavisd
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,amavisd)
+
        cp -fv $(DIR_SRC)/config/amavisd/amavisd.conf /etc
        chown root.root /etc/amavisd.conf
        chmod 644 /etc/amavisd.conf
index 4e9137b111ed9a2fb74a4e551ac2059095810dcd..ce36c3c6f112c847c843d6ad9b01c75f7a6df2e9 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2016  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        = 3.14.10
+VER        = 3.14.14
 
 THISAPP    = apcupsd-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = apcupsd
-PAK_VER    = 5
+PAK_VER    = 6
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 5928822d855c5cf7ac29655e3e0b8c23
+$(DL_FILE)_MD5 = cc8f5ced77f38906a274787acb9bc980
 
 install : $(TARGET)
 
@@ -81,6 +81,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                                        --with-cgi-bin=/srv/web/ipfire/cgi-bin
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,apcupsd)
+
        ln -sf ../init.d/apcupsd /etc/rc.d/rc3.d/S65apcupsd
        ln -sf ../init.d/apcupsd /etc/rc.d/rc0.d/K35apcupsd
        ln -sf ../init.d/apcupsd /etc/rc.d/rc6.d/K35apcupsd
index a0276bc5605770682fe90b2dcfa4eed4c55a92b4..31f6ec0fe83e32abd373939ec12720f705421fb3 100755 (executable)
@@ -152,6 +152,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        # generate softlink (or asterisk will not work properly)
        ln -sf /var/ipfire/asterisk /etc/asterisk
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,asterisk)
+
        # make asterisk start with reboot
        ln -sf /etc/rc.d/init.d/asterisk /etc/rc.d/rc0.d/K30asterisk
        ln -sf /etc/rc.d/init.d/asterisk /etc/rc.d/rc6.d/K30asterisk
index 5706b753c0238b81a2cb0c1fb16cc85949668e67..5f43ff4d6f01c2ff340a888932aa9123c79c0b67 100644 (file)
@@ -34,7 +34,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
 
-#ifeq "$(MACHINE_TYPE)" "arm"
+#ifeq "$(BUILD_PLATFORM)" "arm"
 CFLAGS   += -fno-PIC
 #endif
 
@@ -87,7 +87,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/backports-3.18.1-1-ipfire-build.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/backports-4.2.6-1-grsecurity.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/backports-4.2.6-1-add_usbnet_modules.patch
-ifeq "$(MACHINE)" "x86_64"
+ifeq "$(BUILD_ARCH)" "x86_64"
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/backports-3.18.1-1_no_dma_sgtable_on_x86_64.patch
 endif
 
@@ -126,7 +126,7 @@ endif
        cd $(DIR_APP) && sed -i -e "s/CPTCFG_CFG80211_DEFAULT_PS=y/# CPTCFG_CFG80211_DEFAULT_PS is not set/g" .config
        cd $(DIR_APP) && sed -i -e "s/CPTCFG_NFC=m/# CPTCFG_NFC is not set/g" .config
 
-ifeq "$(MACHINE)" "x86_64"
+ifeq "$(BUILD_ARCH)" "x86_64"
        cd $(DIR_APP) && sed -i -e "s/CPTCFG_LIBERTAS_UAP=m/# CPTCFG_LIBERTAS_UAP is not set/g" .config
 endif
 
index c215b5a32c71e2cabb1a0bf77656c4f18384de5a..e98b6fdba8a1bc3ce02cabecfc8bac065dc45a6d 100644 (file)
--- a/lfs/bash
+++ b/lfs/bash
@@ -99,13 +99,13 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
-       ln -sf bash /bin/sh
+ifeq "$(TOOLCHAIN)" "1"
+       ln -svf bash /tools/bin/sh
 
-ifneq "$(ROOT)" ""
-       -mkdir -p $(ROOT)/bin
-       -mkdir -p $(ROOT)/usr/bin
-       ln -sf bash /tools/bin/sh
-       -ln -sf /tools/bin/bash $(ROOT)/bin/sh
+       mkdir -pv $(ROOT)/bin
+       ln -svf ../tools/bin/bash $(ROOT)/bin/sh
+else
+       ln -svf bash /bin/sh
 endif
 
        @rm -rf $(DIR_APP)
diff --git a/lfs/bc b/lfs/bc
index 28b27cb16254443ff3f4e0f8c6639b48a316b822..51dd084194b6ac8f3ec877972b6296530530ce3e 100644 (file)
--- a/lfs/bc
+++ b/lfs/bc
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2017 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.06
+VER        = 1.07.1
 
 THISAPP    = bc-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d44b5dddebd8a7a7309aea6c36fda117
+$(DL_FILE)_MD5 = cda93857418655ea43590736fc3ca9fc
 
 install : $(TARGET)
 
@@ -69,12 +69,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) && sed -i '/PROTO.*readline/d' bc/scan.l
-       cd $(DIR_APP) && sed -i '/flex -I8/s/8//' configure
-       cd $(DIR_APP) && sed -i '/stdlib/a #include <string.h>' lib/number.c
-       cd $(DIR_APP) && sed -i 's/program.*save/static &/' bc/load.c
-       cd $(DIR_APP) && ./configure --prefix=/usr --with-readline
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --with-readline --mandir=/usr/share/man --infodir=/usr/share/info
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index d25c2df9f89266bf520b288c3ee903d25764cf29..1269e415597209142b1041e2269803541367f049 100644 (file)
--- a/lfs/bind
+++ b/lfs/bind
@@ -25,7 +25,7 @@
 
 include Config
 
-VER        = 9.11.0-P2
+VER        = 9.11.1
 
 THISAPP    = bind-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -43,7 +43,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = b8ccec541de18ac2716e7a8268baaaba
+$(DL_FILE)_MD5 = c384ab071d902bac13487c1268e5a32f
 
 install : $(TARGET)
 
index 5afaeec2fbceae60413ee1a622599f52eeef6ce9..79ac96b3e20f7d57abed3785398ed675de4ff8b8 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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.24
+VER        = 2.28
 
 THISAPP    = binutils-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
@@ -38,50 +38,50 @@ ifeq "$(ROOT)" ""
   EXTRA_CONFIG = \
        --prefix=/usr \
        --enable-shared \
-       --disable-nls \
-       --disable-werror
+       --with-system-zlib \
+       --enable-plugins \
+       --enable-ld=default \
+       --disable-gold
   EXTRA_MAKE = tooldir=/usr
   EXTRA_INSTALL = tooldir=/usr
 else
 ifeq "$(PASS)" "1"
   CFLAGS := $(patsubst -march=%,,$(CFLAGS))
+  CFLAGS := $(patsubst -mfpu=%,,$(CFLAGS))
   CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS))
-  CFLAGS := $(patsubst -fstack-protector-strong,-fstack-protector-all,$(CFLAGS))
+
   TARGET = $(DIR_INFO)/$(THISAPP)-tools1
   EXTRA_CONFIG = \
        --target=$(CROSSTARGET) \
        --prefix=/tools \
        --with-sysroot=$(ROOT) \
-       --with-lib-path=/tools/lib \
-       --disable-nls \
-       --disable-werror
+       --with-lib-path=/tools/lib
   EXTRA_MAKE =
   EXTRA_INSTALL = 
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools2
   EXTRA_ENV = \
-       CC="$(CROSSTARGET)-gcc -B/tools/lib/" \
+       CC="$(CROSSTARGET)-gcc" \
        AR="$(CROSSTARGET)-ar" \
        RANLIB="$(CROSSTARGET)-ranlib"
   EXTRA_CONFIG = \
        --host=$(BUILDTARGET) \
        --build=$(BUILDTARGET) \
        --prefix=/tools \
-       --with-lib-path=/tools/lib \
-       --disable-nls \
-       --disable-werror
+       --with-lib-path=/tools/lib
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
 endif
 
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_ARCH)" "armv5tel"
        EXTRA_CONFIG += \
                --with-abi=aapcs-linux \
                --with-float=soft
 endif
 
 EXTRA_CONFIG += \
+       --disable-werror \
        --enable-64-bit-bfd
 
 ###############################################################################
@@ -92,7 +92,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = e0f71a7b2ddab0f8612336ac81d9636b
+$(DL_FILE)_MD5 = d5d270fd0b698ed59ca5ade8e1b5059c
 
 install : $(TARGET)
 
@@ -121,25 +121,26 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/binutils-2.24-pt-pax-flags-20131231.patch
-
+       @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        @mkdir $(DIR_SRC)/binutils-build
 
        # 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= 
+       cd $(DIR_SRC)/binutils-build && $(EXTRA_ENV) $(DIR_APP)/configure $(EXTRA_CONFIG)
+       cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING)
+       cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install
 ifeq "$(ROOT)" ""
        cp -v $(DIR_APP)/include/libiberty.h /usr/include
-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
 endif
+
+ifeq "$(TOOLCHAIN)" "1"
+ ifeq "$(PASS)" "2"
+       cd $(DIR_SRC)/binutils-build && make -C ld clean
+       cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/usr/lib:/lib
+       cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin
+ endif
 endif
+
        @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build
        @$(POSTBUILD)
index 27f3556f9b6bed1a57eccfec15d0aabbdb9e174e..b984505fb84e5f99eda0a8d45cd7a3720663d1a2 100644 (file)
--- a/lfs/bird
+++ b/lfs/bird
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2015  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2017  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.5.0
+VER        = 1.6.3
 
 THISAPP    = bird-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = bird
-PAK_VER    = 1
+PAK_VER    = 2
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 330bde6372afa106abfe5a9737e471c1
+$(DL_FILE)_MD5 = 63dd93a7a23c274fc5b7f2e37664bfb7
 
 install : $(TARGET)
 
index dc5eec7ea567ca15c60000e6187cebcd39c42cfa..2c57809546fccd09f555156fd4599d92b3fac0d1 100644 (file)
@@ -125,5 +125,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        chown nobody:nobody /var/ipfire/bluetooth/settings
        chmod 644 /var/ipfire/bluetooth/settings
        install -v -m 644 $(DIR_SRC)/config/backup/includes/bluetooth /var/ipfire/backup/addons/includes/bluetooth
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,bluetooth)
+
        @rm -rf $(DIR_SRC)/bluez*
        @$(POSTBUILD)
index 12c0a5bf327c5b840405bcac2070f94034f620ec..533cb24103dd819306e96ae558d8c56ebaceed3b 100644 (file)
--- a/lfs/boost
+++ b/lfs/boost
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1_55_0
+VER        = 1_64_0
 
 THISAPP    = boost_$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,21 +32,28 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
-CFLAGS    += -fno-strict-aliasing
-CXXFLAGS  += -fno-strict-aliasing
+CFLAGS    += -O3 -fno-strict-aliasing
+CXXFLAGS  += -O3 -fno-strict-aliasing
 
 CONFIGURE_OPTIONS = \
        --prefix=/usr \
        --layout=tagged \
-       --without-mpi \
+       --without-chrono \
+       --without-context \
+       --without-coroutine \
+       --without-coroutine2 \
+       --without-date_time \
+       --without-fiber \
        --without-graph_parallel \
+       --without-mpi \
+       --without-program_options \
        --build-dir=serial \
-       cflags="$(CFLAGS)" \
-       cxxflags="$(CXXFLAGS)" \
        variant=release \
        threading=single,multi \
        debug-symbols=off \
-       pch=off
+       pch=off \
+       cflags="$(CFLAGS)" \
+       cxxflags="$(CXXFLAGS)"
 
 MAKETUNING = -j2
 
@@ -58,7 +65,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 93780777cfbf999a600f62883bd54b17
+$(DL_FILE)_MD5 = 319c6ffbbeccc366f14bb68767a6db79
 
 install : $(TARGET)
 
index 591549ab3e7e86118005d8f856c72ad9a39020e2..a5772af721dfb50ff2d6bf1c605b8c7d5e5e9988 100644 (file)
--- a/lfs/cairo
+++ b/lfs/cairo
 
 include Config
 
-VER        = 1.10.2
+VER        = 1.14.8
 
 THISAPP    = cairo-$(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 = f101a9e88b783337b20b2e26dfd26d5f
+$(DL_FILE)_MD5 = 4ef0db2eacb271c74f8a3fd87822aa98
 
 install : $(TARGET)
 
@@ -69,8 +69,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) && ./configure --prefix=/usr --disable-win32 --disable-os2 --disable-beos
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(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)
index 682f4998a67ebccfc9efb5701e442b1146bf01b3..f7da652ad826fc299bc8e39cce0cecbdeb5badff 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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        = 3.2.3
+VER        = 3.3.4
 
 THISAPP    = ccache-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -34,8 +34,8 @@ TARGET     = $(DIR_INFO)/$(THISAPP)-pass$(PASS)
 
 ifeq "$(PASS)" "1"
        CFLAGS := $(patsubst -march=%,,$(CFLAGS))
+       CFLAGS := $(patsubst -mfpu=%,,$(CFLAGS))
        CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS))
-       CFLAGS := $(patsubst -fstack-protector-strong,-fstack-protector-all,$(CFLAGS))
 endif
 
 # Set max cache size to 5GB
@@ -49,7 +49,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 608c78632086a4a051514722d6067a7b
+$(DL_FILE)_MD5 = 95ab3c56284129cc2a32460c23069516
 
 install : $(TARGET)
 
@@ -83,7 +83,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
 
-ifeq "$(PASS)" "1"
+ifeq "$(TOOLCHAIN)" "1"
+ ifeq "$(PASS)" "1"
        mkdir -pv /tools/ccache/bin
        ln -svf ../../bin/ccache /tools/ccache/bin/gcc
        ln -svf ../../bin/ccache /tools/ccache/bin/g++
@@ -93,13 +94,14 @@ ifeq "$(PASS)" "1"
        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
+ endif
 
-ifeq "$(PASS)" "2"
+ 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
 endif
 
        @rm -rf $(DIR_APP)
index 79920b8ddbb787ad555ad4392e5822d09a08c12e..58e754f87b9db39c828994f100fcea7bb7dd1684 100644 (file)
--- a/lfs/cdrom
+++ b/lfs/cdrom
@@ -29,7 +29,7 @@ VER = ipfire
 THISAPP    = cdrom
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_PLATFORM)" "arm"
        TAR_OPTIONS =
 else
        TAR_OPTIONS = --lzma
@@ -64,7 +64,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        echo > /etc/mtab
 
        # Create filelist for packaging.
-       BUILDTARGET="$(BUILDTARGET)" MACHINE="$(MACHINE)" KVER="$(KVER)" \
+       BUILDTARGET="$(BUILDTARGET)" BUILD_ARCH="$(BUILD_ARCH)" KVER="$(KVER)" \
                $(DIR_SRC)/src/scripts/archive.files \
                $(DIR_SRC)/config/rootfiles/common \
                > /tmp/ROOTFILES
@@ -89,7 +89,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        # Make the ISO
        mkdir -p /install/cdrom/boot/isolinux
        dd if=/dev/zero  bs=1k count=2            > /install/cdrom/boot/isolinux/boot.catalog
-ifneq "$(MACHINE_TYPE)" "arm"
+ifneq "$(BUILD_PLATFORM)" "arm"
        cp /boot/vmlinuz-$(KVER)-ipfire             /install/cdrom/boot/isolinux/vmlinuz
        dracut --force -a "installer" --strip --xz /install/cdrom/boot/isolinux/instroot $(KVER)-ipfire
        cp $(DIR_SRC)/config/syslinux/boot.png      /install/cdrom/boot/isolinux/boot.png
@@ -106,12 +106,12 @@ endif
                                                xargs md5sum > md5sum.txt
 
        mkdir -p /install/images
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_PLATFORM)" "arm"
        cd /install/cdrom && mkisofs -J -r -V "$(NAME)_$(VERSION)" \
-               . > /install/images/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso
+               . > /install/images/$(SNAME)-$(VERSION).$(BUILD_ARCH)-full-core$(CORE).iso
 else
        cd /install/cdrom && mkisofs -J -r -V "$(NAME)_$(VERSION)" \
            -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table \
-           -c boot/isolinux/boot.catalog . > /install/images/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso
-       isohybrid /install/images/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso
+           -c boot/isolinux/boot.catalog . > /install/images/$(SNAME)-$(VERSION).$(BUILD_ARCH)-full-core$(CORE).iso
+       isohybrid /install/images/$(SNAME)-$(VERSION).$(BUILD_ARCH)-full-core$(CORE).iso
 endif
index 2cd5e493b9e86eda29b01f4be3d3dc459023fa1e..e91eb97c83881a5135bdc1091226e79438fb279b 100644 (file)
@@ -36,7 +36,7 @@ PAK_VER    = 34
 
 DEPS       = ""
 
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_PLATFORM)" "arm"
 CONFIGURE_FLAGS = --disable-fanotify
 endif
 
@@ -82,6 +82,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 -i $(DIR_SRC)/src/patches/clamav/llvm-glibc.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/clamav-0.99.2-gcc-6.patch
        cd $(DIR_APP) && ./configure \
                --prefix=/usr \
                --disable-zlib-vcheck \
@@ -95,11 +96,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        rm -rfv /usr/share/clamav/*.cvd
        mkdir -p /var/run/clamav
        chown clamav:clamav /var/run/clamav
-
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,clamav)
        # Disable PaX mprotect for clamd, clamscan and freshclam
-       paxctl -cm /usr/sbin/clamd
-       paxctl -cm /usr/bin/clamscan
-       paxctl -cm /usr/bin/freshclam
+       paxctl -Cm /usr/sbin/clamd
+       paxctl -Cm /usr/bin/clamscan
+       paxctl -Cm /usr/bin/freshclam
 
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 90369889d95e1539172c2fab9c09fc35423ddf7a..91e056ed8348aafac07054824d988913204c47f5 100644 (file)
@@ -27,7 +27,12 @@ include Config
 VER        = ipfire
 
 THISAPP    = cleanup-toolchain
-TARGET     = $(DIR_INFO)/$(THISAPP)-$(PASS)-tools
+
+ifeq "$(TOOLCHAIN)" "1"
+       TARGET = $(DIR_INFO)/$(THISAPP)-tools
+else
+       TARGET = $(DIR_INFO)/$(THISAPP)
+endif
 
 GCC_VER    = 4.1.2
 
@@ -51,13 +56,8 @@ md5 :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-ifeq "$(PASS)" "1"
-       SPECS=$$(dirname $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name))/specs; \
-       /tools/bin/$(CROSSTARGET)-gcc -dumpspecs | sed \
-               -e "/^\*cpp:$$/{n;s,$$, -isystem /tools/include,}" > $$SPECS
-endif
 
-ifeq "$(PASS)" "2"
+ifeq "$(TOOLCHAIN)" "1"
        # Remove the first cross compiler which is not needed anymore.
        find /tools/ -name "$(CROSSTARGET)*" | xargs rm -rfv
 
@@ -72,9 +72,10 @@ ifeq "$(PASS)" "2"
 
        # Update/create linker cache.
        /tools/sbin/ldconfig
-endif
 
-ifeq "$(PASS)" "3"
+       # Set a marker when the toolchain was successfully built
+       touch /tools/.toolchain-successful
+else
        mv -v /tools/bin/{ld,ld-old}
        mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old}
        mv -v /tools/bin/{ld-new,ld}
@@ -86,4 +87,5 @@ ifeq "$(PASS)" "3"
                -e '/\*cpp:/{n;s@$$@ -isystem /usr/include@}' > \
                $$(dirname $$(gcc -print-libgcc-file-name))/specs
 endif
+
        @$(POSTBUILD)
index ef2b487fba730d0257d799097b82318f4e6a4f26..cc462d0aacc8bd8ee3f75877c67e8d0b9a77f1a5 100644 (file)
@@ -89,5 +89,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                         /var/ipfire/backup/addons/includes/client175
 
        chown -R nobody:nobody /srv/client175
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,client175)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index a9ada50ca8570536c1fb2270c36a31f1b144c489..ca02cb71654b394a4c566c22154dfb4130c7fb98 100644 (file)
--- a/lfs/cmake
+++ b/lfs/cmake
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2015  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2017  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        = 3.2.3
+VER        = 3.8.1
 
 THISAPP    = cmake-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -42,7 +42,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d51c92bf66b1e9d4fe2b7aaedd51377c
+$(DL_FILE)_MD5 = e8ef820ddf7a650845252bca846696e7
 
 install : $(TARGET)
 
@@ -71,16 +71,17 @@ $(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) && sed -i '/CMAKE_USE_LIBUV 1/s/1/0/' CMakeLists.txt
+       cd $(DIR_APP) && sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake
        cd $(DIR_APP) && ./bootstrap \
                        --prefix=/usr \
                        --system-libs \
                        --mandir=/share/man \
                        --no-system-jsoncpp \
-                       --docdir=/share/doc/cmake-2.8.12.2
-
+                       --no-system-librhash \
+                       --docdir=/share/doc/cmake
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 1573e3874d718918914567e6de04b10b8473a3a8..2ef712ce3bcf129ef245e0d482dcace18fdf4b5a 100644 (file)
@@ -79,6 +79,8 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       $(UPDATE_AUTOMAKE)
+       cd $(DIR_APP) && find . -name "Makefile.*" | xargs sed -e "s/-Werror//g" -i
        cd $(DIR_APP) && patch -p1 -i $(DIR_SRC)/src/patches/collectd/0001-src-utils_mount.h-Add-stdio.h.patch
        cd $(DIR_APP) && patch -p1 -i $(DIR_SRC)/src/patches/collectd/0002-Don-t-notify-continuously-when-MySQL-slave-SQL-threa.patch
        cd $(DIR_APP) && patch -p1 -i $(DIR_SRC)/src/patches/collectd/0003-curl_xml.c-avoid-using-uninitalized-variable-in-erro.patch
index d9a60bcfc0995f50bae21240f1185eef56b811e1..d8a1099a73fc081f55701f28e60913e2d13805b1 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2013  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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.2
+VER        = 1.4.4
 
 THISAPP    = conntrack-tools-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = b1f9d006e7bf000a77395ff7cd3fac16
+$(DL_FILE)_MD5 = acd9e0b27cf16ae3092ba900e4d7560e
 
 install : $(TARGET)
 
index b40de13e06efffb68c984fc34e74c6d9c5132116..3c847daf2831f55632169eafff3f080a50970a11 100644 (file)
@@ -56,10 +56,11 @@ core/%:
        eval $$(cat /usr/src/config/rootfiles/$@/meta)
 
        #Generate ROOTFILES from filelists
-       $(DIR_SRC)/src/scripts/archive.files \
+       BUILD_ARCH=$(BUILD_ARCH) BUILDTARGET=$(BUILDTARGET) KVER=$(KVER) \
+               $(DIR_SRC)/src/scripts/archive.files \
                $(DIR_SRC)/config/rootfiles/$@/filelists \
                $(DIR_SRC)/config/rootfiles/$@/files \
-               $(DIR_SRC)/config/rootfiles/$@/files.$(MACHINE) \
+               $(DIR_SRC)/config/rootfiles/$@/files.$(BUILD_ARCH) \
                > /tmp/ROOTFILES.tmp
 
        #remove excluded files from ROOTFILES
index 644871f6a28926521e3d52fd81b0f8fb4e4345fc..324dc780892b49330afa7a9856f89cebfe9c4dcf 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2015  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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.25
+VER        = 8.27
 
 THISAPP    = coreutils-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -57,9 +57,9 @@ CFLAGS += -fno-strict-aliasing
 
 objects =$(DL_FILE)
 
-$(DL_FILE)                      = $(DL_FROM)/$(DL_FILE)
+$(DL_FILE)= $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5                  = 070e43ba7f618d747414ef56ab248a48
+$(DL_FILE)_MD5 = 502795792c212932365e077946d353ae
 
 install : $(TARGET)
 
@@ -89,7 +89,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) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-8.25-i18n-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-8.27-uname-1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-8.27-i18n-1.patch
        cd $(DIR_APP) && FORCE_UNSAFE_CONFIGURE=1 && ./configure $(CONFIGURE_OPTIONS)
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index 48a4393e6110e5a1329a0dcbdf12fef162465243..4d9a752d125f74df9055c63b26575f2ba839ac38 100644 (file)
--- a/lfs/cpio
+++ b/lfs/cpio
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.11
+VER        = 2.12
 
 THISAPP    = cpio-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 1112bb6c45863468b5496ba128792f6c
+$(DL_FILE)_MD5 = fc207561a86b63862eea4b8300313e86
 
 install : $(TARGET)
 
index 5a82c33a59dd901521a06bee9404b003eaca63a8..d558efa6124519cf3f4d41487fa71a675f6e122f 100644 (file)
@@ -82,5 +82,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,cpufreq)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 8bee2584ba496dfdc79a6d00773882232365badf..621a6b549a31b28bc675a3629de9b80c5997c589 100644 (file)
--- a/lfs/crda
+++ b/lfs/crda
@@ -71,6 +71,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 -e "s/-Werror//g" -i Makefile
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index 49b275a6557c6f789a04b5873820d230fbbde47b..a9e2b1ac032aa20c333517543c90081ab75c76a0 100644 (file)
--- a/lfs/cups
+++ b/lfs/cups
 
 include Config
 
-VER        = 2.0.4
+VER        = 2.2.2
 
 THISAPP    = cups-$(VER)
-DL_FILE    = $(THISAPP)-source.tar.bz2
+DL_FILE    = $(THISAPP)-source.tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/cups-$(VER)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = cups
-PAK_VER    = 13
+PAK_VER    = 16
 
-DEPS       = "ghostscript"
+DEPS       = "cups-filters dbus ghostscript krb5 libtiff"
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f5c847d9a4fac6c4c66fb0526a7afaae
+$(DL_FILE)_MD5 = 036f6bda6202ae3e280ac00c710b5ca4
 
 install : $(TARGET)
 
@@ -76,14 +76,16 @@ $(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 \
                        --sysconfdir=/var/ipfire \
                        --localstatedir=/var \
+                       --enable-debug \
+                       --enable-dbus \
+                       --enable-gnutls \
                        --enable-libusb \
-                       --disable-dbus \
                        --disable-avahi
 
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
@@ -91,7 +93,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 
        cd $(DIR_APP) && ln -v -sf /usr/bin/smbspool /usr/lib/cups/backend/smb
 
-       install -v -m 754 $(DIR_SRC)/src/initscripts/init.d/cups /etc/rc.d/init.d
+       # install initscript
+       $(call INSTALL_INITSCRIPT,cups)
        cp -fv $(DIR_SRC)/config/cups/cupsd.conf /var/ipfire/cups/
 
        @rm -rf $(DIR_APP)
diff --git a/lfs/cups-filters b/lfs/cups-filters
new file mode 100644 (file)
index 0000000..109db07
--- /dev/null
@@ -0,0 +1,92 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2015  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.13.4
+
+THISAPP    = cups-filters-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = cups-filters
+PAK_VER    = 2
+
+DEPS       = "cups ghostscript"
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = a288a63ca44ad6e776cf1e86a457f836
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       $(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && \
+               ./configure \
+                       --prefix=/usr \
+                       --sysconfdir=/etc \
+                       --localstatedir=/var \
+                       --with-pdftops=hybrid \
+                       --disable-ijs \
+                       --disable-mutool \
+                       --disable-avahi
+       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index f4c855c760e6f2bd3d0603a4c96ce02052b3c7b0..73f73e18c74f3ade36b56cdb1bb4a54e405523db 100644 (file)
 
 include Config
 
-VER        = 2.2.12
+VER        = 2.5.11
 
 THISAPP    = cyrus-imapd-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-SUP_ARCH   = armv5tel i586
 PROG       = cyrus-imapd
-PAK_VER    = 5
+PAK_VER    = 6
 
 DEPS       = ""
 
-CFLAGS    += -I/usr/include/et
-
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -47,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 70b3bba526a8d36d3bb23a87d37e9188
+$(DL_FILE)_MD5 = 674083444c36a786d9431b6612969224
 
 install : $(TARGET)
 
@@ -80,13 +77,11 @@ $(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-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
        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 \
-                               --with-syslogfacility=MAIL --enable-listext --without-snmp
-       cd $(DIR_APP) && make depend
+                               --with-syslogfacility=MAIL --enable-listext --without-snmp \
+                               --enable-autocreate --enable-idled
        cd $(DIR_APP) && make $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
        -mkdir /var/imap
@@ -105,5 +100,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        chown cyrus.mail /var/imap/socket
        install -v -m 644 $(DIR_SRC)/config/backup/includes/cyrus-imapd \
                /var/ipfire/backup/addons/includes/cyrus-imapd
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,cyrus-imapd)
+
        @rm -rf $(DIR_APP) /usr/include/com_err.h
        @$(POSTBUILD)
index 84f49d93554194a139d9d4494da584f68e536c07..757f7426b20927c05f1391a4547f385b25ce18bd 100644 (file)
@@ -96,6 +96,10 @@ ifeq "$(PASS)" ""
        install -v -m700 -d /var/lib/sasl
        -mkdir /var/run/saslauthd
        cp -vf $(DIR_SRC)/config/cyrus-sasl/smtpd.conf /usr/lib/sasl2/
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,cyrus-sasl)
+
 else
        # WITH LDAP SUPPORT AT THIS TIME
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
index 3a431066a10ff2685ac8271392790075d6f30e9a..a1e68f2d195e515e71fce6a1532aeec4ebc1b834 100644 (file)
--- a/lfs/dbus
+++ b/lfs/dbus
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.0.3
+VER        = 1.11.12
 
 THISAPP    = dbus-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = dbus
-PAK_VER    = 1
+PAK_VER    = 2
 
 DEPS       = ""
 
@@ -44,7 +44,8 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = ce328423db5743fe9006d39113b5324d
+$(DL_FILE)_MD5 = 76cdf92ca208652ee487b1e9dfda1093
+
 install : $(TARGET)
 
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
@@ -77,10 +78,13 @@ $(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)
        cd $(DIR_APP) && make install
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,messagebus)
+
        @rm -rf $(DIR_SRC)/dbus*
        @$(POSTBUILD)
index 9a89d40bf0aa34d60e67be124e2b016292c53516..4c613a7d8b624be215e237fab9197d3240b60406 100644 (file)
--- a/lfs/dhcp
+++ b/lfs/dhcp
@@ -99,10 +99,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-gpxe-cid.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp/dhcp-stateless-DUID-LLT.patch
 
-       # Remove bundled BIND stuff.
-       # (requires newer autoconf)
-       #rm -rfv $(DIR_APP)/bind/bind.tar.gz
-       #cd $(DIR_APP) && autoreconf --verbose --force --install
+       # Help unpacking bundled BIND
+       cd $(DIR_APP) && sed -e "s/gunzip -c/&d/" -i bind/Makefile
 
        cd $(DIR_APP) && \
                ./configure \
index 1b5d3a9258695de7e257e9bc9362b85f35df8dce..593154b85bcc9676ed5a0feee864a64297d1973d 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.1.1
+VER        = 1.7.7
 
 THISAPP    = DirectFB-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = directfb
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       = ""
 
@@ -46,7 +46,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = c75255049ca8d5c69afe4db58f603028
+$(DL_FILE)_MD5 = 152cf1863b1a3a28aa1370e9053440bf
 
 install : $(TARGET)
 
@@ -79,14 +79,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/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
-       cd $(DIR_APP) && ./configure --prefix=/usr --disable-x11 --enable-sdl \
-                                    --enable-video4linux2 
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/DirectFB-1.5.3-add-missing-davinci-files.patch
+
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --disable-x11 \
+               --enable-sdl \
+               --enable-video4linux2
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-       ln -s $(THISAPP) /usr/src/directfb
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index a5d9fea9ff94f88cbb4a7ccf9896ea8c7d4a1ee4..aeb11c87afc053a320fa0655b9938f15a284b903 100644 (file)
@@ -81,6 +81,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,dnsdist)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
 
similarity index 85%
rename from lfs/ncftp
rename to lfs/elfutils
index 81f2f54138704d0b641deb39f92b13fbe7d8aa9d..69c0083c4e4a7a60ce5805e745611e3384eaec92 100644 (file)
--- a/lfs/ncftp
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2013  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        = 3.2.1
+VER        = 0.168
 
-THISAPP    = ncftp-$(VER)-src
+THISAPP    = elfutils-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/ncftp-$(VER)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = ncftp
-PAK_VER    = 2
+PROG       = elfutils
+PAK_VER    = 1
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d82cdfe0d5448172c03b434607414fb8
+$(DL_FILE)_MD5 = 52adfa40758d0d39e5d5c57689bf38d6
 
 install : $(TARGET)
 
@@ -54,8 +54,8 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       $(PAK)
+dist:
+       @$(PAK)
 
 ###############################################################################
 # Downloading, checking, md5sum
@@ -76,10 +76,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 && make -C libncftp shared && \
-                               make -C libncftp soinstall
-       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(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)
diff --git a/lfs/epson-inkjet-printer-escpr b/lfs/epson-inkjet-printer-escpr
new file mode 100644 (file)
index 0000000..f4104db
--- /dev/null
@@ -0,0 +1,86 @@
+###############################################################################
+#                                                                             #
+# 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.6.12
+LSB        = 1lsb3.2
+
+THISAPP    = epson-inkjet-printer-escpr-$(VER)
+DL_FILE    = $(THISAPP)-$(LSB).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = epson-inkjet-printer-escpr
+PAK_VER    = 2
+
+DEPS       = "cups"
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = fddedddd1424402d8ec8297536c751a0
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP)
+       cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
+       cd $(DIR_APP) && make # doesn't support parallel build
+       cd $(DIR_APP) && make install CUPS_PPD_DIR=/usr/share/ppd/Epson
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 66b9a65b02159b4c0a0f58590f3e0daaf6577620..ab271b002fd4b284facfbfbdbb752a7a444aa3f0 100644 (file)
@@ -96,5 +96,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        install -v -m 644 $(DIR_SRC)/config/backup/includes/fetchmail \
                /var/ipfire/backup/addons/includes/fetchmail
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,fetchmail)
+
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index b3838865e82eb8f533874ef298823b7524005a3b..cd9e8b61fdd956a2133ac62353c34fec3b458f87 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2017 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        = 2008-04-13
-THISAPP    = ffmpeg-export-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+VER        = 3.2.4
+THISAPP    = ffmpeg-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = ffmpeg
-PAK_VER    = 5
+PAK_VER    = 6
 
 DEPS       = "ffmpeg-libs sdl lame libvorbis xvid"
 
-# Don't use PIC for libavcodec
-CFLAGS    += -fno-PIC -fno-strict-aliasing -Wa,--noexecstack
-
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -46,7 +43,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 017ab929ff92be552debb65c589c2183
+$(DL_FILE)_MD5 = 39fd71024ac76ba35f04397021af5606
 
 install : $(TARGET)
 
@@ -78,15 +75,14 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       ln -s $(THISAPP) /usr/src/ffmpeg
-       cd $(DIR_SRC)/ffmpeg && ./configure --prefix=/usr \
-                                     --enable-shared \
-                                                                        --enable-postproc \
-                                                                        --enable-pthreads \
-                                                                        --enable-gpl
-       cd $(DIR_SRC)/ffmpeg && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_SRC)/ffmpeg && make install
-       cd $(DIR_SRC)/ffmpeg && make install-libs
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr \
+                               --enable-shared \
+                               --enable-postproc \
+                               --enable-pthreads \
+                               --enable-gpl
+       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+       cd $(DIR_APP) && make install
+       cd $(DIR_APP) && make install-libs
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index b29c978055345917ccad80c346addd8300589099..0ed657f93fa0dddd54d4a965e0d2364c36c1d837 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2017 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        = 2008-04-13
+VER        = 3.2.4
 THISAPP    = ffmpeg-export-$(VER)
 PROG       = ffmpeg-libs
-PAK_VER    = 5
+PAK_VER    = 6
 
 DEPS       = ""
 
index 41eabd27865a9de0569f60c7910a49e956398422..886e50d1da5d0095688a580b1e15b95cfe7d3de0 100644 (file)
--- a/lfs/file
+++ b/lfs/file
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 5.28
+VER        = 5.30
 
 THISAPP    = file-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 3f7771424aa855f32094b49571e19b33
+$(DL_FILE)_MD5 = f35eaf05489ae566eafc4d26bb1dcd90
 
 install : $(TARGET)
 
index d10fc9bbf93d13b201e2c980b2c15d88557545b5..8ed7f63756f4d3924a83289f24deaf5b4629bc65 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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,9 +34,9 @@ PART_BOOT  = /dev/mapper/$(patsubst /dev/%,%,$(DEVICE))p1
 PART_ROOT  = /dev/mapper/$(patsubst /dev/%,%,$(DEVICE))p3
 
 ifeq "$(SCON)" "1"
-       IMAGE_FILE = /install/images/$(SNAME)-$(VERSION).1gb-ext4-scon.$(MACHINE)-full-core$(CORE).img.gz
+       IMAGE_FILE = /install/images/$(SNAME)-$(VERSION).1gb-ext4-scon.$(BUILD_ARCH)-full-core$(CORE).img.gz
 else
-       IMAGE_FILE = /install/images/$(SNAME)-$(VERSION).1gb-ext4.$(MACHINE)-full-core$(CORE).img.gz
+       IMAGE_FILE = /install/images/$(SNAME)-$(VERSION).1gb-ext4.$(BUILD_ARCH)-full-core$(CORE).img.gz
 endif
 
 FSTAB_FMT = UUID=%s %-8s %-4s %-10s %d %d\n
@@ -60,7 +60,7 @@ MNThdd   := /install/harddisk
 IMG      := /install/images/image.img
 
 # All sizes in blocks
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_PLATFORM)" "arm"
  BOOTLOADER =
  S_OFFSET = 8192
 
@@ -75,9 +75,9 @@ else
 endif
 
 # /boot:  64MB - OFFSET
-# /    : 750MB
+# /    : 850MB
 S_BOOT := $(shell echo $$(( 131072 - $(S_OFFSET) )))
-S_ROOT := 1536000
+S_ROOT := 1740800
 
 PADDING = 100 # MB
 
@@ -93,7 +93,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 
        # Write Partition table
        echo -e "$(S_OFFSET),$(S_BOOT),$(PART_TYPE),*\n,0,0\n$$(( $(S_BOOT) + $(S_OFFSET) )),$(S_ROOT),L\n" \
-               | sfdisk -D -uS -H 64 -S 32 $(DEVICE)
+               | sfdisk -uS $(DEVICE)
+       -echo -e "d\n2\nw\n\q\n" | fdisk $(DEVICE)
 
        kpartx -v -a $(DEVICE)
 
@@ -117,7 +118,7 @@ endif
        mount $(PART_BOOT) $(MNThdd)/boot
 
        # Install Pandaboard MLO and uboot first
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_PLATFORM)" "arm"
        cp -v /boot/MLO $(MNThdd)/boot/
        cp -v /boot/u-boot.img $(MNThdd)/boot/
        cp -v /boot/zImage-ipfire-multi $(MNThdd)/boot/
@@ -135,7 +136,7 @@ ifeq "$(MACHINE_TYPE)" "arm"
 endif
 
        # Install IPFire
-ifneq "$(MACHINE_TYPE)" "arm"
+ifneq "$(BUILD_PLATFORM)" "arm"
        tar -x --lzma -C $(MNThdd)/ -f /install/cdrom/distro.img
 else
        tar -x -C $(MNThdd)/ -f /install/cdrom/distro.img
@@ -154,7 +155,7 @@ ifeq "$(SCON)" "1"
        sed -i -e "s|6:2345:respawn:|#6:2345:respawn:|g" $(MNThdd)/etc/inittab
        sed -i -e "s|#7:2345:respawn:|7:2345:respawn:|g" $(MNThdd)/etc/inittab
 
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_PLATFORM)" "arm"
        sed -i -e "s| console=tty1 | console=ttyAMA0,115200n8 |g" $(MNThdd)/boot/cmdline.txt
        sed -i -e "s| console=tty1 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/uEnv.txt
 endif
@@ -193,7 +194,7 @@ endif
                -e "s/root=[A-Za-z0-9\/=-]*/root=UUID=$$(blkid -o value -s UUID $(PART_ROOT))/g"
 
        # Install GRUB
-       grub-install --force --recheck --no-floppy \
+       grub-install --force --recheck --no-floppy --target=i386-pc \
                --root-directory=$(MNThdd) $(DEVICE)
 endif
 
@@ -228,7 +229,7 @@ endif
        # not copied to a block device)
        dd if=/dev/zero bs=1M count=$(PADDING) >> $(IMG)
 
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_PLATFORM)" "arm"
        # Install u-boot for LeMaker Banana Pi into image 8KB
        dd if=/usr/share/u-boot/banana_pi/u-boot-sunxi-with-spl.bin of=$(IMG) bs=1K seek=8 conv=notrunc
 endif
index 3101c86a169f21d6f7698fdf4d0bd5fa31ff58bf..4b1a75b098c5b890d95eec73e9d801ef9ca91931 100644 (file)
--- a/lfs/flex
+++ b/lfs/flex
 
 include Config
 
-VER        = 2.6.1
+VER        = 2.6.4
 
 THISAPP    = flex-$(VER)
-DL_FILE    = $(THISAPP).tar.xz
+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 = cd3c86290fc2676a641aefafeb10848a
+$(DL_FILE)_MD5 = 2882e3179748cc9f9c23ec593d6adc8d
 
 install : $(TARGET)
 
@@ -70,7 +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) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && HELP2MAN=/tools/bin/true \
+               ./configure --prefix=/usr --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
 ifeq "$(ROOT)" ""
index 6f0850be75c1153924ec4cf44860d504ad0322c1..fbf7b44f681d08a13c1f6bfc08644c7114ab2d9b 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.5.91
+VER        = 2.12.1
 
 THISAPP    = fontconfig-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = ff5536b58e91a034ed18e7d53e04a689
+$(DL_FILE)_MD5 = ce55e525c37147eee14cc2de6cc09f6c
 
 install : $(TARGET)
 
@@ -70,7 +70,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) && ./configure --prefix=/usr --sysconfdir=/etc
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS.patch
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
+               --localstatedir=/var
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index d9a80c638c91b419421bb40050ade13662e89ca3..90928e91d7acf4d8a7a560ccae7bd6aa55b0f93e 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2016  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2017  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        = 3.0.11
+VER        = 3.0.14
 
 THISAPP    = freeradius-server-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = freeradius
-PAK_VER    = 1
+PAK_VER    = 2
 
 DEPS       = "samba"
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 9428ba0d25293a2b5acd3b85f3dd46d0
+$(DL_FILE)_MD5 = 71f0593f68e6d4dd2efc47a61219643d
 
 install : $(TARGET)
 
@@ -133,5 +133,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        install -v -m 644 $(DIR_SRC)/config/backup/includes/freeradius \
                /var/ipfire/backup/addons/includes/freeradius
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,freeradius)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index dbe8d17d72f2dcbc5f9d5d41de02aa2ab71b4b8d..ba80297dc8283878882a50390b869e237026c1b2 100644 (file)
 
 include Config
 
-VER        = 2.1.10
+VER        = 2.7.1
 
 THISAPP    = freetype-$(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 = a4012e7d1f6400df44a16743b11b8423
+$(DL_FILE)_MD5 = 78701bee8d249578d83bb9a2f3aa3616
 
 install : $(TARGET)
 
@@ -69,8 +69,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) && sed -i -r 's:.*(#.*BYTE.*) .*:\1:' include/freetype/config/ftoption.h
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index a875fb3cd1c6156f79c849d9193f7055fdf80748..2639156b2196ed11bd87a1528e2677a36d845cfe 100644 (file)
--- a/lfs/fuse
+++ b/lfs/fuse
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.9.3
+VER        = 2.9.7
 
 THISAPP    = fuse-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 33cae22ca50311446400daf8a6255c6a
+$(DL_FILE)_MD5 = 9bd4ce8184745fd3d000ca2692adacdb
 
 install : $(TARGET)
 
@@ -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/fuse-2.9.2-namespace-conflict-fix.patch
        cd $(DIR_APP) && ./configure --prefix=/usr --disable-kernel-module
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index c8cb89231f7642129811afad4c52e056cee36329..62bad0164e84facad0201458f1629159a9c17731 100644 (file)
--- a/lfs/gawk
+++ b/lfs/gawk
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016   IPFire Team  <info@ipfire.org>                    #
+# Copyright (C) 2007-2015   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        #
 #                                                                             #
 ###############################################################################
 
+
 ###############################################################################
 # Definitions
 ###############################################################################
 
 include Config
 
-VER        = 3.1.5
+VER        = 4.1.4
 
 THISAPP    = gawk-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
 # Normal build or /tools build.
-#
 ifeq "$(ROOT)" ""
-  TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr --libexecdir=/usr/lib --disable-nls
-  EXTRA_MAKE =
-  EXTRA_INSTALL =
+       TARGET = $(DIR_INFO)/$(THISAPP)
+       EXTRA_CONFIG = --prefix=/usr --libexecdir=/usr/lib --disable-nls
 else
-  TARGET = $(DIR_INFO)/$(THISAPP)-tools
-  EXTRA_CONFIG = --prefix=/tools --disable-nls --build=$(BUILDTARGET)
-  EXTRA_MAKE = 
-  EXTRA_INSTALL = 
+       TARGET = $(DIR_INFO)/$(THISAPP)-tools
+       EXTRA_CONFIG = --prefix=/tools --disable-nls
 endif
 
-EXTRA_CONFIG += ac_cv_func_working_mktime=yes
-
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -55,7 +49,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 5703f72d0eea1d463f735aad8222655f
+$(DL_FILE)_MD5 = 4e7dbc81163e60fd4f0b52496e7542c9
 
 install : $(TARGET)
 
@@ -84,14 +78,9 @@ $(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)-segfault_fix-1.patch
-endif
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
-       cd $(DIR_APP) && echo "#define HAVE_LANGINFO_CODESET 1" >> config.h
-       cd $(DIR_APP) && echo "#define HAVE_LC_MESSAGES 1"              >> config.h
-       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/gcc b/lfs/gcc
index e0cd10274d3ab5fb93870a71c670c59d60faa054..9325792ffe944e53e3cd96713b61cf337a82b1ac 100644 (file)
--- a/lfs/gcc
+++ b/lfs/gcc
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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        = 4.9.3
+VER        = 6.3.0
 
 GMP_VER    = 5.0.5
 MPFR_VER   = 2.4.2
@@ -36,11 +36,20 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
 CFLAGS    := $(patsubst -march=%,,$(CFLAGS))
+CFLAGS    := $(patsubst -mfpu=%,,$(CFLAGS))
 CFLAGS    := $(patsubst -mtune=%,,$(CFLAGS))
 CFLAGS    := $(patsubst -mfloat-abi=%,,$(CFLAGS))
 CFLAGS    := $(filter-out -fexceptions,$(CFLAGS))
 CXXFLAGS  := $(CFLAGS)
 
+ifeq "$(BUILD_ARCH)" "armv7hl"
+       FULL_BOOTSTRAP = 1
+endif
+
+ifeq "$(BUILD_ARCH)" "armv5tel"
+       FULL_BOOTSTRAP = 1
+endif
+
 # Normal build or /tools build.
 #
 ifeq "$(ROOT)" ""
@@ -59,15 +68,13 @@ ifeq "$(ROOT)" ""
   EXTRA_INSTALL =
 else
 ifeq "$(PASS)" "1"
-  CFLAGS    := $(patsubst -fstack-protector-strong,-fstack-protector-all,$(CFLAGS))
-  CXXFLAGS  := $(patsubst -fstack-protector-strong,-fstack-protector-all,$(CXXFLAGS))
-  CXXFLAGS  += -std=gnu++98
-
   TARGET = $(DIR_INFO)/$(THISAPP)-tools1
   EXTRA_CONFIG = \
        --target=$(CROSSTARGET) \
        --prefix=/tools \
        --with-sysroot=$(ROOT) \
+       --with-local-prefix=/tools \
+       --with-native-system-header-dir=/tools/include \
        --disable-nls \
        --disable-shared \
        --disable-decimal-float \
@@ -75,6 +82,7 @@ ifeq "$(PASS)" "1"
        --disable-libatomic \
        --disable-libmudflap \
        --disable-libssp \
+       --disable-libmpx \
        --disable-libgomp \
        --disable-libquadmath \
        --disable-libstdc++-v3 \
@@ -93,31 +101,31 @@ else
 ifeq "$(PASS)" "2"
   TARGET = $(DIR_INFO)/$(THISAPP)-tools2
   EXTRA_ENV = \
-       CC="$(CROSSTARGET)-gcc -B/tools/lib/" \
+       CC="$(CROSSTARGET)-gcc" \
        CXX="$(CROSSTARGET)-g++" \
        AR="$(CROSSTARGET)-ar" \
        RANLIB="$(CROSSTARGET)-ranlib"
   EXTRA_CONFIG = \
-       --host=$(BUILDTARGET) \
        --build=$(BUILDTARGET) \
-       --target=$(BUILDTARGET) \
        --prefix=/tools \
        --with-local-prefix=/tools \
        --with-native-system-header-dir=/tools/include \
-       --enable-clocale=gnu \
-       --enable-shared \
-       --enable-threads=posix \
-       --enable-__cxa_atexit \
        --enable-languages=c,c++ \
        --disable-libstdcxx-pch \
-       --enable-bootstrap
+       --disable-libgomp
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
+
+  ifeq "$(FULL_BOOTSTRAP)" "1"
+       EXTRA_CONFIG += --enable-bootstrap
+  else
+       EXTRA_CONFIG += --disable-bootstrap
+  endif
 else
   # PASS=L # libstdc++-v3
   TARGET = $(DIR_INFO)/$(THISAPP)-libstdc++
   EXTRA_ENV = \
-       CC="$(CROSSTARGET)-gcc -B/tools/lib/" \
+       CC="$(CROSSTARGET)-gcc" \
        AR="$(CROSSTARGET)-ar" \
        RANLIB="$(CROSSTARGET)-ranlib"
   EXTRA_CONFIG = \
@@ -133,29 +141,27 @@ else
   EXTRA_INSTALL = 
 endif
 endif
+endif
 
-  # Disable stack protection in toolchain.
-  CFLAGS += -fno-stack-protector
+ifeq "$(BUILD_ARCH)" "armv7hl"
+       EXTRA_CONFIG += \
+               --with-float=hard
 endif
 
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_ARCH)" "armv5tel"
        EXTRA_CONFIG += \
                --with-float=soft \
                --disable-sjlj-exceptions
 endif
 
-ifeq "$(MACHINE)" "i586"
+ifeq "$(BUILD_ARCH)" "i586"
        EXTRA_CONFIG += \
                --with-arch=i586 \
                --with-tune=generic
 endif
 
-ifeq "$(MACHINE)" "x86_64"
-       EXTRA_CONFIG += \
-               --disable-multilib
-endif
-
 EXTRA_CONFIG += \
+       --disable-multilib \
        --with-bugurl=http://bugtracker.ipfire.org \
        --disable-libunwind-exceptions \
        --enable-gnu-unique-object
@@ -177,7 +183,7 @@ gmp-$(GMP_VER).tar.bz2 = $(DL_FROM)/gmp-$(GMP_VER).tar.bz2
 mpfr-$(MPFR_VER).tar.bz2 = $(DL_FROM)/mpfr-$(MPFR_VER).tar.bz2
 mpc-$(MPC_VER).tar.gz = $(DL_FROM)/mpc-$(MPC_VER).tar.gz
 
-$(DL_FILE)_MD5                 = 648bfba342bb41a4b5350fb685f85bc5
+$(DL_FILE)_MD5                 = 6e5ea04789678f1250c1b30c4d9ec417
 gmp-$(GMP_VER).tar.bz2_MD5     = 041487d25e9c230b0c42b106361055fe
 mpfr-$(MPFR_VER).tar.bz2_MD5   = 89e59fe665e2b3ad44a6789f40b059a0
 mpc-$(MPC_VER).tar.gz_MD5      = d6a1d5f8ddea3abd2cc3e98f58352d26
@@ -212,15 +218,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        @mkdir $(DIR_SRC)/gcc-build
 
-       # Apply patches.
-       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc49-i386-libgomp.patch
-       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc49-libtool-no-rpath.patch
-       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc49-no-add-needed.patch
-       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc49-pr38757.patch
-       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc49-pr64336.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gcc/gcc-fix-inlining-issues.patch
+       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/'
 
-ifneq "$(ROOT)" ""
+ifeq "$(TOOLCHAIN)" "1"
        # 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
@@ -229,29 +232,13 @@ ifneq "$(ROOT)" ""
        cd $(DIR_APP) && tar xfa $(DIR_DL)/mpc-$(MPC_VER).tar.gz
        cd $(DIR_APP) && mv -v mpc-$(MPC_VER) mpc
 
-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
-
-       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_STARTFILE_PREFIX_1' >> $${file}; \
-               echo '#undef STANDARD_STARTFILE_PREFIX_2' >> $${file}; \
-               echo '#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"' >> $${file}; \
-               echo '#define STANDARD_STARTFILE_PREFIX_2 ""' >> $${file}; \
-       done
-endif
-
-ifeq    "$(PASS)" "2"
+ifeq "$(PASS)" "2"
        cd $(DIR_APP) && cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
                        `dirname $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name)`/include-fixed/limits.h
+endif
+
        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 \
+                       -o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h -o -name aarch64-linux.h); do \
                echo "Processing $${file}..."; \
                sed -i $${file} \
                        -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
@@ -261,45 +248,49 @@ ifeq    "$(PASS)" "2"
                echo '#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"' >> $${file}; \
                echo '#define STANDARD_STARTFILE_PREFIX_2 ""' >> $${file}; \
        done
-endif
 endif
 
-       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/'
-
-ifeq    "$(PASS)" "L"
+ifeq "$(PASS)" "L"
        # libstdc++ pass
        cd $(DIR_SRC)/gcc-build && \
                $(EXTRA_ENV) \
                $(DIR_APP)/libstdc++-v3/configure \
                        $(EXTRA_CONFIG)
-       cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE)
+       cd $(DIR_SRC)/gcc-build && make $(EXTRA_MAKE)
        cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
+
 else
        # 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_MAKE)
        cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
 endif
 
-ifeq "$(ROOT)" ""
-       ln -svf ../usr/bin/cpp /lib
-       ln -svf gcc /usr/bin/cc
-       # remove gdb python files from libdir
-       rm -rf /usr/lib/*-gdb.py
-else
-ifeq    "$(PASS)" "1"
+ifeq "$(TOOLCHAIN)" "1"
+ ifeq "$(PASS)" "1"
        ln -svf libgcc.a $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/')
-else
+ endif
+
+ ifeq "$(PASS)" "2"
        ln -svf gcc /tools/bin/cc
        # remove gdb python files from libdir
        rm -rf /tools/lib/*-gdb.py
+ endif
+
+ ifeq "$(PASS)" "L"
+       # Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70936
+       sed -e "s/^#include_next/#include/" -i /tools/$(CROSSTARGET)/include/c++/$(VER)/cstdlib
+ endif
+
+else # NON-TOOLCHAIN
+       ln -svf ../usr/bin/cpp /lib
+       ln -svf gcc /usr/bin/cc
+       # remove gdb python files from libdir
+       rm -rf /usr/lib/*-gdb.py
 endif
-endif
+
        @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build
        @$(POSTBUILD)
index f76a1b6908034fcf462dd2fd3bc874cd53816c40..7ee1ce4e4a9648090b0a00706725cfa2a8b25f85 100644 (file)
 
 include Config
 
-VER        = 8.15.1
+VER        = 9.20
 
-THISAPP    = espgs-$(VER)
-DL_FILE    = $(THISAPP)-source.tar.bz2
+THISAPP    = ghostscript-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/espgs-$(VER)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = ghostscript
-PAK_VER    = 1
+PAK_VER    = 3
 
-DEPS       = ""
+DEPS       = "cups dbus libtiff"
 
 ###############################################################################
 # Top-level Rules
@@ -48,7 +48,7 @@ $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 ghostscript-fonts-std-8.11.tar.gz = $(URL_IPFIRE)/ghostscript-fonts-std-8.11.tar.gz
 gnu-gs-fonts-other-6.0.tar.gz = $(URL_IPFIRE)/gnu-gs-fonts-other-6.0.tar.gz
 
-$(DL_FILE)_MD5 = 2a21136953c3559e6088522753b06b1f
+$(DL_FILE)_MD5 = 93c5987cd3ab341108be1ebbaadc24fe
 ghostscript-fonts-std-8.11.tar.gz_MD5 = 6865682b095f8c4500c54b285ff05ef6
 gnu-gs-fonts-other-6.0.tar.gz_MD5 = 33457d3f37de7ef03d2eea05a9e6aa4f
 
@@ -82,14 +82,21 @@ $(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/bbox.dev$/x11.dev/" Makefile.in
-       cd $(DIR_APP) && ./configure --prefix=/usr --enable-threads --without-omni
-       cd $(DIR_APP) && make
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && rm -rf expat freetype icclib jasper jpeg jpegxr \
+               lcms lcms2 libpng openjpeg zlib cups/libs
+       cd $(DIR_APP) && \
+               ./configure \
+                       --prefix=/usr \
+                       --with-system-libtiff \
+                       --with-install-cups
+       cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-       rmdir -v /usr/lib/ghostscript/8.15 /usr/lib/ghostscript
+
+       # Install fonts
        tar xfz $(DIR_SRC)/cache/ghostscript-fonts-std-8.11.tar.gz -C /usr/share/ghostscript
        tar xfz $(DIR_SRC)/cache/gnu-gs-fonts-other-6.0.tar.gz -C /usr/share/ghostscript
        chown -v root:root /usr/share/ghostscript/fonts/*
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/git b/lfs/git
index 564bc098d3c4b1e7ec654c9f5a6b7be33b0316b5..9ffd089502ee758929fa19b181beef7f23e2fb6d 100644 (file)
--- a/lfs/git
+++ b/lfs/git
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2013  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2017  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        = 2.7.4
+VER        = 2.12.2
 
 THISAPP    = git-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = git
-PAK_VER    = 13
+PAK_VER    = 14
 
 DEPS       = "perl-Authen-SASL perl-MIME-Base64 perl-Net-SMTP-SSL"
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = b0219fcb6d73104361f4fbdba3741d00
+$(DL_FILE)_MD5 = ad5ae08664c40caf074392abc301cccd
 
 install : $(TARGET)
 
index c0af6fc06cfd7c5b09121208ec21a4dbc7ea1aaf..122aca58fdd6b6927770d3473be865a7ceb65260 100644 (file)
--- a/lfs/glibc
+++ b/lfs/glibc
 
 include Config
 
-VER        = 2.12-2-gc4ccff1
-PORTS_VER  = 2.12.1
+VER        = 2.25
 
 THISAPP    = glibc-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
@@ -39,9 +38,8 @@ ifeq "$(ROOT)" ""
   EXTRA_CONFIG = \
        --build=$(BUILDTARGET) \
        --prefix=/usr \
-       --libexecdir=/usr/lib/glibc
-  EXTRA_MAKE =
-  EXTRA_INSTALL =
+       --libexecdir=/usr/lib/glibc \
+       --enable-stack-protector=strong
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = \
@@ -50,31 +48,31 @@ else
        --prefix=/tools \
        --with-headers=/tools/include \
        libc_cv_forced_unwind=yes \
-       libc_cv_ctors_header=yes \
-       libc_cv_c_cleanup=yes \
-       CC=/tools/bin/$(CROSSTARGET)-gcc
-  EXTRA_MAKE =
-  EXTRA_INSTALL =
+       libc_cv_c_cleanup=yes
 endif
 
-# Enable some extra optimization for the glibc code.
-CFLAGS = -O3 -DNDEBUG -fasynchronous-unwind-tables -fPIC -DPIC \
-       -DNO_CTORS_DTORS_SECTIONS
+# Enable some extra optimization for the glibc code
+CFLAGS = -O3 -DNDEBUG -fasynchronous-unwind-tables -fPIC -DPIC
 
-ifeq "$(MACHINE)" "i586"
+ifeq "$(BUILD_ARCH)" "armv7hl"
+       CFLAGS += -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard
+endif
+
+ifeq "$(BUILD_ARCH)" "i586"
        CFLAGS += -march=i586 -mtune=generic -mno-tls-direct-seg-refs
 endif
 
-ifeq "$(MACHINE_TYPE)" "arm"
-       # Disable hardware FP for ARM.
+# Disable hardware FP for armv5tel
+ifeq "$(BUILD_ARCH)" "armv5tel"
        EXTRA_CONFIG += \
                --without-fp
 endif
 
 # Add some general configuration flags
 EXTRA_CONFIG += \
+       --enable-obsolete-rpc \
        --disable-profile \
-       --enable-kernel=2.6.0 \
+       --enable-kernel=3.2 \
        --enable-add-ons \
        --without-selinux \
        --enable-experimental-malloc \
@@ -88,14 +86,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 450958ad3d3b5a432b356376904c96b0
-
-# ARM needs glibc-ports
-ifeq "$(MACHINE_TYPE)" "arm"
-       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
+$(DL_FILE)_MD5 = 0c9f827298841dbf3bff3060f3d7f19c
 
 install : $(TARGET)
 
@@ -124,296 +115,55 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        @mkdir $(DIR_SRC)/glibc-build
 
-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
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-localedef-no-archive.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-rh587360.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-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-rh607461.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-rh607010.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-rh580498.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-rh623187.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-rh615701.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-rh656530.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-rh661982.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-rh676076.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-rh625893.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-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-rh703480.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-rh703481.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-rh676591.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-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-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-rh688980.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-rh731042.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-rh700507.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-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-rh711927.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-rh726517.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-rh739971.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-rh740506.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-rh750531.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-rh767746.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-rh740506-2.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-rh771342.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-rh767693-2.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-rh697421.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-rh767146.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-rh789209.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-rh789189.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-rh794817.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-rh789238-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-rh794817-2.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-rh809602.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-rh788959-2.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-rh833717.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh823909.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh826149.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh841787.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh809726.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh806404.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh832516.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh830127.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh832694.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh843673.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh847932.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837918.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh849203.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh849651.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh827362.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837695.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804686.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh848082.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh846342.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh852445.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh861167.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh863453.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh864322.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh929388.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh919562.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh886968.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh966775.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh834386.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh834386-2.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh862094.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh851470.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh868808.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh552960.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh663641.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh663641-2.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh848748.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh952422.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh663641-3.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh916986.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh970776.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh966778.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh863384.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh629823.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh629823-2.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh947882.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh905874.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh929302.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh928318.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh905575.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh988931.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh970090.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1008310.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1022022.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1043557.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1039988.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh995972.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh981942.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1032628.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1027101.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1025933.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh845218.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1044628.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1085273.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1074342.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1085289.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1082379.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1074353.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1019916.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1028285.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1099025.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1087833.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1027261.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh905941.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1054846.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1111460.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1099025-2.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1133810-1.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1133810-2.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1138769.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1171296.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1172044.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1154563.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1125307.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1176907.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1183534.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1159167.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1023306.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1085312.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1091915.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh859965.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1124204.patch
-ifneq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh978098.patch
-endif
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1144019.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1053178.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1144132.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1116050.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1116050-1.patch
-ifneq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh867679.patch
-endif
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1088301.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1195453-avx512.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1066724.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1209376.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1207236.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1217186.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1256812.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1256812-2.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1256812-3.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1256812-4.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1256890.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1256891.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1291270.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1296031.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1296031-0.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1299319-0.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh1299319-1.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
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-2.12-accept-make-versions-4.0-and-greater.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-mq_open.patch
-
-       # Fixes:
-       #   Makefile:235: *** mixed implicit and normal rules.  Stop.
-       cd $(DIR_APP) && sed -i 's/ot \$$/ot:\n\ttouch $$@\n$$/' manual/Makefile
-
-ifeq "$(MACHINE_TYPE)" "arm"
-       # http://sourceware.org/ml/libc-ports/2011-09/msg00018.html
-       cd $(DIR_APP) && sed -e "s/PIC/SHARED/g" -i ports/sysdeps/arm/{,eabi/}{set,__long}jmp.S
-endif
-
-ifeq "$(ROOT)" ""
-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
-else
-ifeq "$(MACHINE)" "x86_64"
+ifneq "$(TOOLCHAIN)" "1"
+ ifeq "$(BUILD_ARCH)" "x86_64"
        cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib64 -Wl,-dynamic-linker=/lib64/ld-linux-x86-64.so.2 -o|' \
                scripts/test-installation.pl
-else
+ endif
+
+ ifeq "$(BUILD_ARCH)" "i586"
        cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.2 -o|' \
                scripts/test-installation.pl
-endif
-endif
+ endif
+
+ ifeq "$(BUILD_ARCH)" "armv5tel"
+       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
+ endif
 endif
 
        cd $(DIR_SRC)/glibc-build && \
                CFLAGS="$(CFLAGS) -fno-asynchronous-unwind-tables" \
                $(DIR_APP)/configure $(EXTRA_CONFIG)
 
-       sed -i $(DIR_SRC)/glibc-build/config.make \
-               -e "s/^build-pic-default=.*/build-pic-default=yes/"
-
-       # Build the glibc libraries without stack protection (as this is not supported)
-       echo "build-programs=no" >> $(DIR_SRC)/glibc-build/configparms
-       cd $(DIR_SRC)/glibc-build && make PARALLELMFLAGS=$(MAKETUNING) \
-               CFLAGS="$(CFLAGS) -fno-stack-protector -U_FORTIFY_SOURCE" \
-               CXXFLAGS="$(CXXFLAGS) -fno-stack-protector -U_FORTIFY_SOURCE"
-
-       # Build the programs with hardening
-       : > $(DIR_SRC)/glibc-build/configparms
        cd $(DIR_SRC)/glibc-build && make PARALLELMFLAGS=$(MAKETUNING) \
                CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)"
 
-       cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install
+       cd $(DIR_SRC)/glibc-build && make install
 
-ifeq "$(ROOT)" ""
+ifneq "$(TOOLCHAIN)" "1"
        # Creating the locales
        mkdir -p /usr/lib/locale
        cd $(DIR_SRC)/glibc-build && make localedata/install-locales
 
        # Timezone data will be shipped by tzdata.
        rm -rfv /usr/share/zoneinfo
-else
-       ln -svf lib /tools/lib64
 endif
+
+ifeq "$(TOOLCHAIN)" "1"
+       # Test the linker in toolchain
+       cd $(DIR_APP) && echo "int main() { return 0; }" > dummy.c
+       cd $(DIR_APP) && $(CROSSTARGET)-gcc dummy.c -o dummy
+
+       # Must be using a runtime linker from /tools
+       cd $(DIR_APP) && readelf -l dummy | grep "Requesting program interpreter: /tools"
+       cd $(DIR_APP) && rm -vf dummy dummy.c
+endif
+
        @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build
        @$(POSTBUILD)
diff --git a/lfs/gmp b/lfs/gmp
index 5ac0eb8c9df7480c925b657a28d050c6bfa4fa5a..8dc9b73509cd69cc28dd775ef5f2b93ea591d146 100644 (file)
--- a/lfs/gmp
+++ b/lfs/gmp
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 6.1.0
+VER        = 6.1.2
 
 THISAPP    = gmp-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -32,9 +32,9 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
-ifeq "$(MACHINE)" "i586"
+ifeq "$(BUILD_ARCH)" "i586"
        CONFIGURE_ARGS = ABI=32
-       BUILDTARGET_PENTIUM4 = $(patsubst $(MACHINE)-%,pentium4-%,$(BUILDTARGET))
+       BUILDTARGET_PENTIUM4 = $(patsubst $(BUILD_ARCH)-%,pentium4-%,$(BUILDTARGET))
 endif
 
 CONFIGURE_OPTIONS = \
@@ -51,7 +51,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a9868ef2556ad6a2909babcd1428f3c7
+$(DL_FILE)_MD5 = f58fa8001d60c4c77595fbbb62b63c1d
 
 install : $(TARGET)
 
@@ -89,7 +89,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
-ifeq "$(MACHINE)" "i586"
+ifeq "$(BUILD_ARCH)" "i586"
        # Build SSE/SSE2 optimised version for x86
        cd $(DIR_APP) && make clean
        cd $(DIR_APP) && \
@@ -102,7 +102,7 @@ ifeq "$(MACHINE)" "i586"
        cd $(DIR_APP) && make $(MAKETUNING)
 
        -mkdir -pv /usr/lib/sse2
-       cd $(DIR_APP) && install -v -m 755 .libs/libgmp.so.10.3.0 /usr/lib/sse2
+       cd $(DIR_APP) && install -v -m 755 .libs/libgmp.so.10.3.2 /usr/lib/sse2
 endif
 
        @rm -rf $(DIR_APP)
index 438e9578d3076b5f988088ebf81bd8367fd2fbf2..1e483f6c04a75045c5088c3de3cc64a72398087d 100644 (file)
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
-ifeq "$(MACHINE)" "i586"
+ifeq "$(BUILD_ARCH)" "i586"
        CONFIGURE_ARGS = ABI=32
 endif
 
index ca14c27e93d62fbfdf29e60d4ac466b028d58aca..0022b4e6dd465543c317c69d09e1b7c148d7688f 100644 (file)
@@ -91,5 +91,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        chown nobody.nobody /var/mp3
        install -m 644 $(DIR_SRC)/config/gnump3d/gnump3d.conf /etc/gnump3d/
        ln -sf /usr/bin/gnump3d-index /etc/fcron.daily/gnump3d-index
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,gnump3d)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/gnutls b/lfs/gnutls
new file mode 100644 (file)
index 0000000..1a6fadf
--- /dev/null
@@ -0,0 +1,84 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2016  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        = 3.5.11
+
+THISAPP    = gnutls-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+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 = a3ff8cf5ca7522e3ba14f487e6326e11
+
+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 \
+                       --with-included-libtasn1 \
+                       --with-included-unistring \
+                       --without-p11-kit \
+                       --disable-openssl-compatibility \
+                       --disable-guile
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 32a674870c5a2a4adc5ac54864d19a87721c7091..5ac45c15a45cf9470e647f24ae1c3ee0ee7e2bdc 100644 (file)
--- a/lfs/grep
+++ b/lfs/grep
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.24
+VER        = 2.27
 
 THISAPP    = grep-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -51,7 +51,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f1c980134c04692a90078e87283074b6
+$(DL_FILE)_MD5 = 6138dd227c39d4a25f81eea76a44d4cb
 
 install : $(TARGET)
 
index ba744087cf6b2ebb96b335f5aab5ca2b08a93f85..8b82189fce16a7015a7e13355a3ee2555f03a2da 100644 (file)
--- a/lfs/grub
+++ b/lfs/grub
@@ -79,6 +79,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-2.00_disable_vga_fallback.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub2-remove-gets.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-2.00_ignore_missing_symtab.patch
        cd $(DIR_APP) && \
                ./configure \
                        --prefix=/usr \
@@ -100,8 +102,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        install -m 644 $(DIR_SRC)/config/grub2/default /etc/default/grub
 
        # Disable hardening.
-       paxctl -mpes /usr/sbin/grub-bios-setup /usr/sbin/grub-probe
-       paxctl -mpexs /usr/bin/grub-script-check
+       paxctl -Cmpes /usr/sbin/grub-bios-setup /usr/sbin/grub-probe
+       paxctl -Cmpexs /usr/bin/grub-script-check
 
        # We don't need to install unifont just to generate a grub2 compatible
        # font archive for the graphical boot menu. The following command only
index d3634195e0fd1bf0b0727958c64bab60d4ce5b2a..f3001c82128f3ba08290eea295b87cf342f65590 100644 (file)
@@ -33,7 +33,7 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
 PROG       = guardian
-PAK_VER    = 13
+PAK_VER    = 14
 
 DEPS       = "perl-inotify2 perl-Net-IP"
 
@@ -93,6 +93,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        -mkdir -pv /var/log/guardian
        touch /var/log/guardian/guardian.log
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,guardian)
+
        # Create symlinks for runlevel interaction.
        ln -svf /etc/rc.d/init.d/guardian /etc/rc.d/rc3.d/S45guardian
        ln -svf /etc/rc.d/init.d/guardian /etc/rc.d/rc0.d/K76guardian
index 0afd1ff403e629ccc78b4f2ba7612b50af18ad71..e61d78a8c6b33db20908320c6d635003e0d7aeca 100644 (file)
--- a/lfs/gzip
+++ b/lfs/gzip
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2017  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.3.5
+VER        = 1.8
 
 THISAPP    = gzip-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
@@ -35,14 +35,10 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr --disable-nls
-  EXTRA_MAKE =
-  EXTRA_INSTALL =
+  EXTRA_CONFIG = --prefix=/usr --disable-nls --bindir=/bin
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-nls
-  EXTRA_MAKE = 
-  EXTRA_INSTALL = 
 endif
 
 ###############################################################################
@@ -53,7 +49,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 3d6c191dfd2bf307014b421c12dc8469
+$(DL_FILE)_MD5 = f7caabb65cddc1a4165b398009bd05b9
 
 install : $(TARGET)
 
@@ -82,23 +78,13 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(ROOT)" ""
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-security_fixes-1.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)
+       cd $(DIR_APP) && make install
 ifeq "$(ROOT)" ""
-       cd $(DIR_APP) && sed -i 's@"BINDIR"@/bin@g' gzexe.in
-endif
-       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
-ifeq "$(ROOT)" ""
-       mv -v /usr/bin/gzip /bin
-       rm -v /usr/bin/{gunzip,zcat}
-       ln -sv gzip /bin/gunzip
-       ln -sv gzip /bin/zcat
-       ln -sv gzip /bin/compress
-       ln -sv gunzip /bin/uncompress
+       mv -v /bin/{gzexe,zcmp,zdiff,zegrep} /usr/bin
+       mv -v /bin/{zfgrep,zforce,zgrep,zless,zmore,znew} /usr/bin
 endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 4af22730772d6f7205890048af8b8ed26ed98420..0e5a067f88e1a21a14d203af461cfb36b8b102d1 100644 (file)
@@ -91,9 +91,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        install -v -m 644 $(DIR_SRC)/config/backup/includes/haproxy \
                /var/ipfire/backup/addons/includes/haproxy
 
-       # Restore initscript
-       install -v -m 754 $(DIR_SRC)/src/initscripts/init.d/haproxy \
-               /etc/rc.d/init.d/haproxy
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,haproxy)
 
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index a4fe99a92e01bb57b59f3a68daec5e0f3a9e629c..1a2436caa4d10178b68211b787d12faf0bf93147 100644 (file)
@@ -83,6 +83,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP)/hostapd && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP)/hostapd && make install
        install -v -m 644 $(DIR_SRC)/config/backup/includes/hostapd /var/ipfire/backup/addons/includes/hostapd
+       # install initscript
+       $(call INSTALL_INITSCRIPT,hostapd)
        mkdir -p /var/ipfire/wlanap
        touch /var/ipfire/wlanap/settings
        cp -vrf $(DIR_SRC)/config/hostapd/hostapd.conf /var/ipfire/wlanap/hostapd.conf
diff --git a/lfs/imspector b/lfs/imspector
deleted file mode 100644 (file)
index 5cea872..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  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        = 20101008
-
-THISAPP    = imspector-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/imspector
-TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = imspector
-PAK_VER    = 3
-
-DEPS       = ""
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 032407bb13ccddb77328f83eded102ee
-
-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) && patch -Np1 < $(DIR_SRC)/src/patches/imspector-20101008-ssl.patch
-       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
-
-       install -v -m 755 $(DIR_CONF)/imspector/imspector.conf /etc/imspector.conf
-       install -v -m 644 $(DIR_SRC)/config/backup/includes/imspector /var/ipfire/backup/addons/includes/imspector
-
-       chmod 755 /srv/web/ipfire/cgi-bin/imspector.cgi
-       chown nobody:nobody -R /var/log/imspector
-
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index c5baf680a7c1b69af867fb053d737f3f982c18f0..7d07b8ab3934c7cfe65bad1dc580e92e44b72e63 100644 (file)
@@ -64,22 +64,22 @@ $(TARGET) :
        # Create default ramdisk configuration
        echo "RAMDISK_MODE=0" > /etc/sysconfig/ramdisk
 
-       for i in $(DIR_SRC)/src/initscripts/init.d/*; do \
+       for i in $(DIR_SRC)/src/initscripts/system/*; do \
                install -v -m 754 $$i /etc/rc.d/init.d/; \
        done
        chmod 644 /etc/rc.d/init.d/functions
 
-       for i in $(DIR_SRC)/src/initscripts/init.d/networking/*; do \
+       for i in $(DIR_SRC)/src/initscripts/networking/*; do \
                if [ -f $$i ]; then \
                        install -v -m 754 $$i /etc/rc.d/init.d/networking/; \
                fi; \
        done
 
-       for i in $(DIR_SRC)/src/initscripts/init.d/networking/red.up/*; do \
+       for i in $(DIR_SRC)/src/initscripts/networking/red.up/*; do \
                install -v -m 754 $$i /etc/rc.d/init.d/networking/red.up/; \
        done
 
-       for i in $(DIR_SRC)/src/initscripts/init.d/networking/red.down/*; do \
+       for i in $(DIR_SRC)/src/initscripts/networking/red.down/*; do \
                install -v -m 754 $$i /etc/rc.d/init.d/networking/red.down/; \
        done
 
@@ -199,7 +199,7 @@ $(TARGET) :
        done
 
        # ARM does not need acpid, intel no swconfig
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_PLATFORM)" "arm"
        rm -vf /etc/rc.d/init.d/acpid
        ln -sf ../init.d/swconfig    /etc/rc.d/rcsysinit.d/S73swconfig
 else
index 3364a4d7fd9849790821521554737c0d0be09a8a..347d90e70bab6158e7571c7ea6a2c1c38243ca8f 100644 (file)
@@ -31,7 +31,7 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
 SLOGAN     = An Open Source Firewall Solution
-DOWNLOAD_URL = http://downloads.ipfire.org/releases/ipfire-2.x/$(VERSION)-core$(CORE)/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso
+DOWNLOAD_URL = http://downloads.ipfire.org/releases/ipfire-2.x/$(VERSION)-core$(CORE)/$(SNAME)-$(VERSION).$(BUILD_ARCH)-full-core$(CORE).iso
 
 ###############################################################################
 # Top-level Rules
index 38de994c610e7dc1211e55a3c7921a7b31c81e7b..07e437d3e6de5844a00aed5244de95188a96ac48 100644 (file)
--- a/lfs/iperf
+++ b/lfs/iperf
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.0.5
+VER        = 2.0.9
 
 THISAPP    = iperf-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = iperf
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 44b5536b67719f4250faed632a3cd016
+$(DL_FILE)_MD5 = 351b018b71176b8cb25f20eef6a9e37c
 
 install : $(TARGET)
 
index 18159292ad4f851c617dad1ec34b7b75a1833f41..984c044c0429fe617d139e9b419e82302a714ce5 100644 (file)
@@ -24,8 +24,8 @@
 
 include Config
 
-VER        = v1.0
-PXE_VER    = c4bce43
+VER        = v1.1
+PXE_VER    = 300a371
 
 THISAPP    = ipfire-netboot-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -38,13 +38,13 @@ SUP_ARCH   = x86_64 i586
 # Top-level Rules
 ###############################################################################
 
-objects = $(DL_FILE) ipxe-$(PXE_VER).tar.xz
+objects = $(DL_FILE) ipxe-$(PXE_VER).tar.gz
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-ipxe-$(PXE_VER).tar.xz = $(URL_IPFIRE)/ipxe-$(PXE_VER).tar.xz
+ipxe-$(PXE_VER).tar.gz = $(URL_IPFIRE)/ipxe-$(PXE_VER).tar.gz
 
-$(DL_FILE)_MD5 = 257773a52ed5dda3053eb049bee38a60
-ipxe-$(PXE_VER).tar.xz_MD5 = 8aeb94330eb94f3f1e6170e23db0ba27
+$(DL_FILE)_MD5 = 0dccbcfbc1eafb9d510bd15935b87ef6
+ipxe-$(PXE_VER).tar.gz_MD5 = 8a17fb4d6866214feb28cca55630b85f
 
 install : $(TARGET)
 
@@ -76,7 +76,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 
        # Extract iPXE source
-       cd $(DIR_APP) && tar axf $(DIR_DL)/ipxe-$(PXE_VER).tar.xz
+       cd $(DIR_APP) && tar axf $(DIR_DL)/ipxe-$(PXE_VER).tar.gz
        cd $(DIR_APP) && rm -rfv ipxe && ln -s ipxe-$(PXE_VER) ipxe
        cd $(DIR_APP) && make bin/ipxe.lkrn
 
index 37da1ba45f3feacd446762c627699a26e295e5f0..7c43b308c3d6c55987aac62845a2ba34a5eec2e1 100644 (file)
--- a/lfs/ipset
+++ b/lfs/ipset
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2016  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2017  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        = 6.29
+VER        = 6.32
 
 THISAPP    = ipset-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = fd8ea35997115c5c630eee22f0beecec
+$(DL_FILE)_MD5 = 857a5c6a6d645196865a82bf6fd7f567
 
 install : $(TARGET)
 
@@ -71,8 +71,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./autogen.sh
-       cd $(DIR_APP) && KSOURCEDIR=/usr/src/linux KBUILDDIR=/usr/src/linux ./configure \
+       cd $(DIR_APP) && ./configure \
                --prefix=/usr \
+               --with-kmod=no \
                --disable-static
 
        # Add configuration directory
index 2054a542195be6ee4663e21e3d1313f54203934c..257ceb2d9692d6ca6aee4416a6bb599611111aab 100644 (file)
@@ -85,8 +85,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        install -v -m 644 $(DIR_SRC)/config/backup/includes/keepalived \
                /var/ipfire/backup/addons/includes/keepalived
 
-       # Restore initscript
-       install -v -m 754 $(DIR_SRC)/src/initscripts/init.d/keepalived \
-               /etc/rc.d/init.d/keepalived
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,keepalived)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index a736381fe20449249d3fd72c54184686a2cd45e6..31bcf12e6cd4300233855e699dc6ed42d10d4891 100644 (file)
@@ -80,6 +80,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && ./configure  --with-plugins=all,!qnaplog,!dbus --prefix=/usr
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,lcd4linux)
+
        install -v -m 644 $(DIR_SRC)/config/backup/includes/lcd4linux /var/ipfire/backup/addons/includes/lcd4linux
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 83b24376cb567399a9b9bc50040f21a8afd673ab..e408294dc4cb2bba2c76244945136639f597b2e8 100644 (file)
@@ -93,6 +93,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && make install
        -mkdir -pv /etc/lcdproc
        cp -vf $(DIR_SRC)/config/lcdproc/{LCDd,lcdproc}.conf /etc/lcdproc
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,lcdproc)
+
        ln -sf ../init.d/lcdproc /etc/rc.d/rc3.d/S60lcdproc
        ln -sf ../init.d/lcdproc /etc/rc.d/rc0.d/K40lcdproc
        ln -sf ../init.d/lcdproc /etc/rc.d/rc6.d/K40lcdproc
similarity index 92%
rename from lfs/iftop
rename to lfs/lcms2
index 68a0055ef7514177b702da884f6fb7c3da69b98b..72090220cfc659b5557a8b49ba19ec7e6cf52c4c 100644 (file)
--- a/lfs/iftop
+++ b/lfs/lcms2
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2016  IPFire Team <info@ipfire.org>                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 
 include Config
 
-VER        = 0.17
+VER        = 2.8
 
-THISAPP    = iftop-$(VER)
+THISAPP    = lcms2-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = iftop
-PAK_VER    = 1
-
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 062bc8fb3856580319857326e0b8752d
+$(DL_FILE)_MD5 = 87a5913f1a52464190bb655ad230539c
 
 install : $(TARGET)
 
@@ -54,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       @$(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
diff --git a/lfs/lcr b/lfs/lcr
index 321be97ed2cdc68f6bfc18c3c9741b1c63c3a2f4..9f5ab8c6d6aa6218bd59ea5d89de4a8266743aa3 100644 (file)
--- a/lfs/lcr
+++ b/lfs/lcr
@@ -36,6 +36,8 @@ PAK_VER    = 6
 
 DEPS       = ""
 
+CXXFLAGS  += -std=gnu++98
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -91,5 +93,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                                /var/ipfire/lcr/routing.conf
        install -v -m 644 $(DIR_SRC)/config/backup/includes/lcr \
                         /var/ipfire/backup/addons/includes/lcr
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,lcr)
+
        @rm -rf $(DIR_SRC)/lcr
        @$(POSTBUILD)
index 58b4b6e16c7932f526585f189d3f95b6c05a75f2..2c34225aa783e014701cb5f2ef7f56b622b483ef 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2016  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2017  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        = 3.2.1
+VER        = 3.3.1
 
 THISAPP    = libarchive-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -41,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = afa257047d1941a565216edbf0171e72
+$(DL_FILE)_MD5 = d2af45480aa5b0db5b5f3919cd0ea65e
 
 install : $(TARGET)
 
index 68c7deb39342ec4db2c6bfcd02dedd0843aa7850..01abb4358953bcedd3307ca925da54c256f57279 100644 (file)
@@ -77,7 +77,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
+       cd $(DIR_APP) && sed -e "s/-Werror//g" -i configure
+       cd $(DIR_APP) && ./configure --prefix=/usr --enable-release
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index 2482dda179bae065c75999564076423fbe1d7335..014086403f2353917446958c43dc0543ca4322dc 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2015  IPFire Team  <info@ipfire.de>                      #
+# Copyright (C) 2007-2017  IPFire Team  <info@ipfire.de>                      #
 #                                                                             #
 # 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        = 2.0.22-stable
+VER        = 2.1.8-stable
 
 THISAPP    = libevent-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = c4c56f986aa985677ca1db89630a2e11
+$(DL_FILE)_MD5 = f3eeaed018542963b7d2416ef1135ecc
 
 install : $(TARGET)
 
similarity index 75%
rename from lfs/avahi
rename to lfs/libevent2-compat
index 0ffbd32499a649d0d50a38cba20052c9742e71a0..954b7dd7550e049dd3d15e8ba0cd4e3d83fae5aa 100644 (file)
--- a/lfs/avahi
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2017  IPFire Team  <info@ipfire.de>                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 
 include Config
 
-VER        = 0.6.31
+VER        = 2.0.22-stable
 
-THISAPP    = avahi-$(VER)
+THISAPP    = libevent-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET = $(DIR_INFO)/$(THISAPP)
-PROG       = avahi
-PAK_VER    = 4
-
-DEPS      = "dbus libdaemon"
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 2f22745b8f7368ad5a0a3fddac343f2d
+$(DL_FILE)_MD5 = c4c56f986aa985677ca1db89630a2e11
 
 install : $(TARGET)
 
@@ -54,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       @$(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -79,21 +72,24 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure \
                --prefix=/usr \
-               --sysconfdir=/etc \
-               --localstatedir=/var \
-               --with-avahi-user=avahi \
-               --disable-qt3 \
-               --disable-qt4 \
-               --disable-gtk \
-               --disable-gtk3 \
-               --disable-pygtk \
-               --disable-python-dbus \
-               --disable-mono \
-               --disable-monodoc \
-               --with-distro=none
+               --disable-static
+
        cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
-       cp -avf $(DIR_SRC)/config/avahi/avahi /etc/init.d/
-       cp -avf $(DIR_SRC)/config/avahi/smb.service /etc/avahi/services/smb.service
+
+       cd $(DIR_APP) && install -m 755 .libs/libevent-2.0.so.5.1.9 /usr/lib
+       ln -svf libevent-2.0.so.5.1.9 /usr/lib/libevent-2.0.so.5
+
+       cd $(DIR_APP) && install -m 755 .libs/libevent_core-2.0.so.5.1.9 /usr/lib
+       ln -svf libevent_core-2.0.so.5.1.9 /usr/lib/libevent_core-2.0.so.5
+
+       cd $(DIR_APP) && install -m 755 .libs/libevent_extra-2.0.so.5.1.9 /usr/lib
+       ln -svf libevent_extra-2.0.so.5.1.9 /usr/lib/libevent_extra-2.0.so.5
+
+       cd $(DIR_APP) && install -m 755 .libs/libevent_openssl-2.0.so.5.1.9 /usr/lib
+       ln -svf libevent_openssl-2.0.so.5.1.9 /usr/lib/libevent_openssl-2.0.so.5
+
+       cd $(DIR_APP) && install -m 755 .libs/libevent_pthreads-2.0.so.5.1.9 /usr/lib
+       ln -svf libevent_pthreads-2.0.so.5.1.9 /usr/lib/libevent_pthreads-2.0.so.5
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 5a060325bc578645966f1b5878ada4fb584c3304..5d5572c9996ffc00a3b8e347ba3268b10f47cac7 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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.7.3
+VER        = 1.7.7
 
 THISAPP    = libgcrypt-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = c869e542cc13a1c28d8055487bf7f5c4
+$(DL_FILE)_MD5 = d1769481b1b506a632fd66c5e5f62e41
 
 install : $(TARGET)
 
index 84af2aa36bd93f612c1bfe0d9ea7c388a876c0be..ac618dcca96568d610edb0c32e335267909cdb8c 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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.24
+VER        = 1.27
 
 THISAPP    = libgpg-error-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = feb42198c0aaf3b28eabe8f41a34b983
+$(DL_FILE)_MD5 = 5217ef3e76a7275a2a3b569a12ddc989
 
 install : $(TARGET)
 
index 996d32ecd303c2471cbe905c40dbcb53f171959e..963fdf9d2e47f4d107c9706e0264df25537dc3c2 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.5.0
+VER        = 3.1.0
 
 THISAPP    = libvirt-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -33,7 +33,7 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 SUP_ARCH   = i586 x86_64
 PROG       = libvirt
-PAK_VER    = 12
+PAK_VER    = 13
 
 DEPS       = "libpciaccess libyajl ncat qemu"
 
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 001af1ca2545971c6b46628678fd4afa
+$(DL_FILE)_MD5 = e31aa7e0a1635e72fdc140c10a677895
 
 install : $(TARGET)
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
@@ -89,8 +89,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                        --without-storage-scsi --without-storage-mpath --without-storage-disk --without-storage-rbd --without-storage-sheepdog --without-storage-gluster  --without-storage-zfs
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
-       install -v -m 754 $(DIR_SRC)/src/initscripts/init.d/libvirtd /etc/rc.d/init.d/libvirtd
-       install -v -m 754 $(DIR_SRC)/src/initscripts/init.d/virtlogd /etc/rc.d/init.d/virtlogd
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,libvirtd)
+       $(call INSTALL_INITSCRIPT,virtlogd)
        mv /usr/libexec/libvirt-guests.sh /etc/rc.d/init.d/libvirt-guests
        # Backup
        install -v -m 644 $(DIR_SRC)/config/backup/includes/libvirt /var/ipfire/backup/addons/includes/libvirt
index b45ea6b06c3483d7470e850cf616e42a7114e4b9..bb7e8491d207925f25ddfe7839d5608a5f01145f 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.9.3
+VER        = 2.9.4
 
 THISAPP    = libxml2-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -42,7 +42,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = daece17e045f1c107610e137ab50c179
+$(DL_FILE)_MD5 = ae249165c173b1ff386ee8ad676815f5
 
 install : $(TARGET)
 
index a0968a1ad54ed1702cf7771da3e3ad909ee32882..e309cd52dc20394f414655656f65e461f5f70a18 100644 (file)
--- a/lfs/linux
+++ b/lfs/linux
@@ -40,15 +40,21 @@ CXXFLAGS   =
 PAK_VER    = 73
 DEPS      = ""
 
-KERNEL_ARCH = $(MACHINE)
-
-ifeq "$(MACHINE)" "i586"
+ifeq "$(BUILD_ARCH)" "i586"
        KERNEL_ARCH = i386
+else
+       KERNEL_ARCH = $(BUILD_ARCH)
+endif
+
+ifeq "$(BUILD_ARCH)" "aarch64"
+       HEADERS_ARCH = arm64
+else
+       HEADERS_ARCH = $(BUILD_PLATFORM)
 endif
 
 VERSUFIX=ipfire$(KCFG)
 
-ifeq "$(TOOLS)" "1"
+ifeq "$(TOOLCHAIN)" "1"
        TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX)-tools
        HEADERS_PREFIX = /tools
 else
@@ -56,12 +62,6 @@ else
        HEADERS_PREFIX = /usr
 endif
 
-ifeq "$(MACHINE_TYPE)" "arm"
-       HEADERS_ARCH=arm
-else
-       HEADERS_ARCH=x86
-endif
-
 ifeq "$(KCFG)" ""
 LASTKERNEL=1
 endif
@@ -69,6 +69,9 @@ ifeq "$(KCFG)" "-kirkwood"
 LASTKERNEL=1
 endif
 
+# The buildsystem does not correctly detect if our compiler supports plugins
+export DISABLE_PAX_PLUGINS=y
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -183,8 +186,11 @@ endif
 ifeq "$(KCFG)" "-rpi"
        # Apply Raspberry Pi kernel patches.
        cd $(DIR_APP) && xzcat $(DIR_DL)/rpi-patches-$(RPI_PATCHES).patch.xz | patch -Np1
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/linux-3.14.79-rpi-suspend-not-inline.patch
 endif
 
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux/linux-3.14.79-amba-fix.patch
+
 ifeq "$(KCFG)" "-headers"
        # Install the header files
        cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install
@@ -198,7 +204,7 @@ else
                drivers/video/logo/logo_linux_clut224.ppm
 
        # Cleanup kernel source
-       cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config
+       cp $(DIR_SRC)/config/kernel/kernel.config.$(BUILD_ARCH)-$(VERSUFIX) $(DIR_APP)/.config
        cd $(DIR_APP) && make oldconfig
        cd $(DIR_APP) && make clean
        cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ -$(VERSUFIX)/' Makefile
@@ -229,7 +235,7 @@ endif
        cd $(DIR_APP) && make $(MAKETUNING) modules_install
        cd $(DIR_APP) && make $(MAKETUNING) firmware_install
 
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_PLATFORM)" "arm"
        cd $(DIR_APP) && make $(MAKETUNING) dtbs
        cd $(DIR_APP) && for f in $$(find arch/arm/boot/dts/ -name *.dtb); do \
                                mkdir -p /boot/dtb-$(VER)-$(VERSUFIX) ; \
index f343a2fad90727e787b58a0499b3b8afcf5c3440..2c4d2efc1ef6b37e64a5f097381b61d34d115769 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2013  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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        = 3.3.4
+VER        = 3.4.0
 
 THISAPP    = lm_sensors-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 60cfb98ab7a8915c3ac684af5459de2e
+$(DL_FILE)_MD5 = c03675ae9d43d60322110c679416901a
 
 install : $(TARGET)
 
index 0d50103e580e4635ef66f018c3d4cec17f82a3f0..476f146eb9cb3b8df97f2a26bbbaeb1b00594165 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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        = 3.9.1
+VER        = 3.12.1
 
 THISAPP    = logrotate-$(VER)
-DL_FILE    = logrotate_$(VER).orig.tar.gz
+DL_FILE    = logrotate-$(VER).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 = 4492b145b6d542e4a2f41e77fa199ab0
+$(DL_FILE)_MD5 = 066b49891bad2849d5044c1952613ea6
 
 install : $(TARGET)
 
@@ -70,6 +70,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) && ./autogen.sh
+       cd $(DIR_APP) && ./configure --prefix=/usr
+
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        mkdir -pv /etc/logrotate.d
index 7144d07f3ba0f4ef3b60567d6a06959fcaa32264..9f9a0db5508620137c748114d4e515c543026b28 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2015  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2017  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        = 7.4.1
+VER        = 7.4.3
 
 THISAPP    = logwatch-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a0c3d8721f877bdcd4a9089eb1b4691b
+$(DL_FILE)_MD5 = 22bd22841caa45f12c605abc3e0c2b09
 
 install : $(TARGET)
 
diff --git a/lfs/ltrace b/lfs/ltrace
new file mode 100644 (file)
index 0000000..21b43d3
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2013  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.7.3
+
+THISAPP    = ltrace-$(VER)
+DL_FILE    = ltrace_$(VER).orig.tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = ltrace
+PAK_VER    = 1
+
+DEPS       = "elfutils"
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = b3dd199af8f18637f7d4ef97fdfb9d14
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist:
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
+               --disable-werror
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/m4 b/lfs/m4
index 932cb6d519e7f46e0ac7d7013fa7fd0bc3cd066d..55cc4c3ce5c2149ac431ea5176a90d1bddcdbed9 100644 (file)
--- a/lfs/m4
+++ b/lfs/m4
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.4.17
+VER        = 1.4.18
 
 THISAPP    = m4-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -51,7 +51,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 12a3c829301a4fd6586a57d3fcf196dc
+$(DL_FILE)_MD5 = 730bb15d96fffe47e148d1e09235af82
 
 install : $(TARGET)
 
diff --git a/lfs/mc b/lfs/mc
index d5d57bf1f8c5657c89d8801e7159fd8656ba914f..1680a963816e0c3e6c957dbfceec4a936e9ce9bc 100644 (file)
--- a/lfs/mc
+++ b/lfs/mc
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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        = 4.8.18
+VER        = 4.8.19
 
 THISAPP    = mc-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = mc
-PAK_VER    = 14
+PAK_VER    = 15
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 85ff9279f912c5482fe9f110f8892c96
+$(DL_FILE)_MD5 = 57209d138c0adcb9ea01dfe6bbb4cb87
 
 install : $(TARGET)
 
index de9703406508f9f784a8d70690c6f9d410817939..881a4c5821691a779739c3b0963e4e86dd985815 100644 (file)
--- a/lfs/mdadm
+++ b/lfs/mdadm
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.3.4
+VER        = 4.0
 
 THISAPP    = mdadm-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 7ca8b114710f98f53f20c5787b674a09
+$(DL_FILE)_MD5 = 2cb4feffea9167ba71b5f346a0c0a40d
 
 install : $(TARGET)
 
index 5811a0ad6e6e75f9aedf4c645772b7ef5e746060..c36710a27ae96a9fa6160238a44e6ac411112fc7 100644 (file)
@@ -85,5 +85,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        install -v -m 644 $(DIR_SRC)/config/backup/includes/mediatomb \
                         /var/ipfire/backup/addons/includes/mediatomb
        echo Folder for music files > /var/mp3/info
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,mediatomb)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index c92fab63b54e994d101aee60d69ab3caf6158975..a1d6e2c5fee1afc7071dba4232b5c80622465490 100644 (file)
@@ -76,7 +76,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 # gcc-4.9.3 produce a corrupted version of memtest
 # we use the precomp version at the moment
 
-#ifeq "$(MACHINE)" "i586"
+#ifeq "$(BUILD_ARCH)" "i586"
 #      # Enable SMP as default
 #      cd $(DIR_APP) && sed -i -e "s|CONSERVATIVE_SMP 1|CONSERVATIVE_SMP 0|g" config.h
 #      cd $(DIR_APP) && sed -i -e "s|scp |echo |g" Makefile
index c3ca754beacce44877c04466abbefb6d43d27d8d..8106587dbb36a731de3c7263c825286012c07fed 100644 (file)
--- a/lfs/miau
+++ b/lfs/miau
@@ -85,6 +85,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        mkdir /opt/miau/config
        install -v -m 640 $(DIR_SRC)/config/miau/miaurc \
                 /opt/miau/config/miaurc
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,miau)
+
        ln -sf ../init.d/miau /etc/rc.d/rc3.d/S60miau
        ln -sf ../init.d/miau /etc/rc.d/rc0.d/K01miau
        ln -sf ../init.d/miau /etc/rc.d/rc6.d/K01miau
index 1c3f61c42e3c7ada107dfce0d2ca1419b56d8b32..3302cdd5c5fd8316e78be9bb646b959ffc0c6ea5 100644 (file)
@@ -83,5 +83,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 
        # Install configuration.
        install -m 644 $(DIR_SRC)/config/minidlna/minidlna.conf /etc
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,minidlna)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 18b8c393b50cd39f38a81f592aecb9d193b565e7..0e2c890ba795aab236aa4cabd03726a89b16bd1d 100644 (file)
@@ -81,5 +81,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        -mkdir -pv /etc/miniupnpd
        cp -vf $(DIR_SRC)/config/miniupnpd/miniupnpd.conf /etc/miniupnpd/miniupnpd.conf
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,miniupnpd)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 2735e15fb4235df0dbf33a94e07a926ab0232b64..77a0931400d88a473b359675356d159efbb0b1f8 100644 (file)
--- a/lfs/monit
+++ b/lfs/monit
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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.19.0
+VER        = 5.23.0
 
 THISAPP    = monit-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = monit
-PAK_VER    = 8
+PAK_VER    = 9
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 51ee50dd71e1bb9fe9a128bc88456b77
+$(DL_FILE)_MD5 = 5fbaf7746a233f31ad0aed416ca1d0f9
 
 install : $(TARGET)
 
@@ -54,7 +54,7 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
+dist:
        @$(PAK)
 
 ###############################################################################
@@ -77,19 +77,26 @@ $(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 --sysconfdir=/etc --localstatedir=/var 
+       cd $(DIR_APP) && ./configure \
+       --prefix=/usr \
+       --sysconfdir=/etc \
+       --localstatedir=/var
+
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
        mkdir -p /var/lib/monit
 
        install -v -m 644 $(DIR_SRC)/config/backup/includes/monit \
-                        /var/ipfire/backup/addons/includes/monit
+               /var/ipfire/backup/addons/includes/monit
+
+       # Install default configuration
+       install -v -m 600 $(DIR_SRC)/config/monit/monitrc /etc
 
-       # Install default configuration                                                                                       
-       install -v -m 600 $(DIR_SRC)/config/monit/monitrc /etc 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,monit)
 
-       # Install start links and backup include file. 
+       # Install start links and backup include file.
        ln -sf ../init.d/monit /etc/rc.d/rc3.d/S60monit
        ln -sf ../init.d/monit /etc/rc.d/rc0.d/K40monit
        ln -sf ../init.d/monit /etc/rc.d/rc6.d/K40monit
index 39c6b7352469ac7f67dfc040931778b450dd70a7..d226c1c5802a9fedc0d30881198008c60b9a6eb7 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2017  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        = 3.2.12
+VER        = 4.0.1
 
-THISAPP    = motion-$(VER)
+THISAPP    = motion-release-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
 PROG       = motion
-PAK_VER    = 1
+PAK_VER    = 2
 DEPS       = "ffmpeg"
 
 ###############################################################################
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 1ba0065ed50509aaffb171594c689f46
+$(DL_FILE)_MD5 = 5c87f90c4118d8cf0fb14700db69118f
 
 install : $(TARGET)
 
@@ -81,6 +81,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        #Install obsolete V4L1 videodev.h
        cp $(DIR_SRC)/config/include/obsolete_videodev.h /usr/include/linux/videodev.h
 
+       cd $(DIR_APP) && autoreconf -fiv
+
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
@@ -91,5 +93,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        #Remove obsolete V4L1 videodev.h
        rm -f /usr/include/linux/videodev.h
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,motion)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/mpd b/lfs/mpd
index 7b2c54d0ad5bd1c437bb4132474324ae2f605df5..93039b772f3d690c188444b80d8fb4c27679832c 100644 (file)
--- a/lfs/mpd
+++ b/lfs/mpd
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 
 include Config
 
-VER        = 0.16.5
+VER        = 0.19.19
 
 THISAPP    = mpd-$(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       = mpd
-PAK_VER    = 14
+PAK_VER    = 17
 
-DEPS       = "alsa faad2 ffmpeg-libs flac lame libmad libshout libogg libid3tag libvorbis"
+DEPS       = "alsa faad2 ffmpeg-libs flac lame libmad libshout libogg libid3tag libvorbis opus"
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f7564cff12035f6a1112cce770655df7
+$(DL_FILE)_MD5 = 6e4fca9a9c26dad08b61bac9a91802db
 
 install : $(TARGET)
 
@@ -77,12 +77,26 @@ $(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) && ./configure --prefix=/usr \
-                                       --disable-ipv6 \
-                                       --sysconfdir=/etc \
-                                       --disable-sqlite
+       cd $(DIR_APP) && ./configure \
+                       --prefix=/usr \
+                       --disable-ipv6 \
+                       --sysconfdir=/etc \
+                       --disable-sqlite \
+                       --disable-smbclient \
+                       --enable-id3 \
+                       --enable-vorbis \
+                       --enable-expat \
+                       --enable-ffmpeg \
+                       --enable-flac \
+                       --enable-lame-encoder \
+                       --enable-upnp \
+                       --disable-icu
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,mpd)
+
        @rm -rf $(DIR_APP)
        touch /var/log/mpd.error.log
        touch /var/log/mpd.log
index bdf083ba5b46bfb4ecd46b3e41b33868992c450d..f729b8fe2f672c4c71c0c3681be2473bf7191071 100644 (file)
--- a/lfs/mpfr
+++ b/lfs/mpfr
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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        = 3.1.3
+VER        = 3.1.5
 
 THISAPP    = mpfr-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 6969398cd2fbc56a6af570b5273c56a9
+$(DL_FILE)_MD5 = c4ac246cf9795a4491e7766002cd528f
 
 install : $(TARGET)
 
@@ -70,7 +70,6 @@ $(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) && patch -Np1 -i $(DIR_SRC)/src/patches/mpfr-3.1.3-upstream_fixes-1.patch
        cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure --prefix=/usr \
                        --enable-thread-safe --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING)
index edcd651f8904946739f3a339dd49b115d98c35cd..8c739c26acecdd0b6bbc5a98ac8e5fba1eadff13 100644 (file)
--- a/lfs/mysql
+++ b/lfs/mysql
@@ -34,7 +34,8 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = mysql
 PAK_VER    = 3
 
-CFLAGS += -fno-strict-aliasing
+CFLAGS    += -fno-strict-aliasing
+CXXFLAGS  += -std=gnu++98
 
 ###############################################################################
 # Top-level Rules
@@ -77,6 +78,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       $(UPDATE_AUTOMAKE)
        cd $(DIR_APP) && ./configure --prefix=/usr \
                            --sysconfdir=/etc \
                            --libexecdir=/usr/sbin \
@@ -96,11 +98,13 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd /usr/lib && ln -v -sf mysql/libmysqlclient{,_r}.so* .
        install -v -m644 $(DIR_SRC)/config/mysql/my.cnf /etc/my.cnf
        mkdir -p /srv/mysql
-       mysql_install_db --user=mysql --force
-       chgrp -v mysql /srv/mysql{,/test,/mysql}
        chown mysql.mysql /srv/mysql/
        install -v -m755 -o mysql -g mysql -d /var/run/mysql
        install -v -m 644 $(DIR_SRC)/config/backup/includes/mysql \
                /var/ipfire/backup/addons/includes/mysql
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,mysql)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 2ecb1a5f8786a2e1dcbc289d0865c12c6438517c..34e8444f95019c0d717c7cf586cf31a23f0f43a7 100644 (file)
--- a/lfs/nano
+++ b/lfs/nano
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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        = 2.7.3
+VER        = 2.8.1
 
 THISAPP    = nano-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = nano
-PAK_VER    = 14
+PAK_VER    = 15
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 007ba6321212d3ec38f46236465b6ea8
+$(DL_FILE)_MD5 = 0dec96d839657e7f1a8396d7dbb19c07
 
 install : $(TARGET)
 
@@ -87,7 +87,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-       cd $(DIR_APP) && install -v -m644 -D doc/nanorc.sample /etc/nano/nanorc.sample
+       cd $(DIR_APP) && install -v -m644 -D doc/sample.nanorc /etc/nano/sample.nanorc
        ln -sf /usr/bin/nano /usr/bin/pico
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index dd6e56f1ce776691fb3835ea36f3f6f87cc28a7f..1d8fd40d2181e0da29b9e42f514833686628cabd 100644 (file)
@@ -96,7 +96,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 ifneq "$(ROOT)" ""
        mkdir -pv /tools/lib/pkgconfig/
 endif
-       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && CPPFLAGS=-P ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
index 1c0fb04271b87bb1209b2f43a3fe1796069232e0..09ec434850925ca30a71ca4961551230565a5210 100644 (file)
@@ -55,6 +55,8 @@ EXTRA_CONFIG += \
        --with-termlib=tinfo \
        --disable-nls
 
+export CPPFLAGS = -P
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
index b51367855f714f3b330790da7d05aa24ee335c64..12fb342090d28c70d8171748a75f7fed8e84b4b5 100644 (file)
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = netsnmpd
-PAK_VER    = 4
+PAK_VER    = 5
 DEPS       = ""
 
 ###############################################################################
@@ -83,14 +83,24 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                --with-sys-location="localhost" \
                --with-logfile="/var/log/snmpd.log" \
                --with-persistent-directory="/var/net-snmp" \
+               --with-mib-modules="host agentx smux \
+               ucd-snmp/diskio tcp-mib udp-mib mibII/mta_sendmail \
+               ip-mib/ipv4InterfaceTable ip-mib/ipv6InterfaceTable \
+               ip-mib/ipAddressPrefixTable/ipAddressPrefixTable \
+               ip-mib/ipDefaultRouterTable/ipDefaultRouterTable \
+               ip-mib/ipv6ScopeZoneIndexTable ip-mib/ipIfStatsTable \
+               sctp-mib rmon-mib etherlike-mib ucd-snmp/lmsensorsMib"
                --libdir=/usr/lib \
                --sysconfdir="/etc"
        cd $(DIR_APP) && make 
        cd $(DIR_APP) && make install
-       install -v -m644 $(DIR_SRC)/config/netsnmpd/snmpd.conf /etc/snmpd.conf
+       install -v -m 644 $(DIR_SRC)/config/netsnmpd/snmpd.conf /etc/snmpd.conf
        install -v -m 644 $(DIR_SRC)/config/backup/includes/netsnmpd \
                /var/ipfire/backup/addons/includes/netsnmpd
-       install -v -m755 $(DIR_SRC)/src/initscripts/init.d/netsnmpd /etc/init.d/netsnmpd
+
+       # install initscripts
+       $(call INSTALL_INITSCRIPT,netsnmpd)
+
        ln -sf ../init.d/netsnmpd /etc/rc.d/rc3.d/S65netsnmpd
        ln -sf ../init.d/netsnmpd /etc/rc.d/rc0.d/K02netsnmpd
        ln -sf ../init.d/netsnmpd /etc/rc.d/rc6.d/K02netsnmpd
index d0a3e5a2b6b64ec6c75e525287093975b9baefc2..96f0e32ab3268b31acd1c6b338e0b43777859f45 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2015  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2017  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        = 3.2
+VER        = 3.3
 
 THISAPP    = nettle-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = afb15b4764ebf1b4e6d06c62bd4d29e4
+$(DL_FILE)_MD5 = 10f969f78a463704ae73529978148dbe
 
 install : $(TARGET)
 
@@ -70,10 +70,12 @@ $(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) && ./configure --prefix=/usr --disable-static 
+       cd $(DIR_APP) && ./configure \
+       --prefix=/usr \
+       --disable-documentation \
+       --disable-static
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        chmod -v 755 /usr/lib/lib{hogweed,nettle}.so
-       install -v -m755 -d /usr/share/doc/nettle-3.2
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/nfs b/lfs/nfs
index 23a17739eea0769d1f75d2af8bf6eccfda9d9855..2a8e331b534d98068f87564308033ae4fae77cd2 100644 (file)
--- a/lfs/nfs
+++ b/lfs/nfs
@@ -98,5 +98,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,nfs-server)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 5907f5cfef73bbd34c3b4896b8e1168f21b75509..92ac903161974f079c1e021f32c16af5ebac506f 100644 (file)
--- a/lfs/nmap
+++ b/lfs/nmap
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2016 IPFire Team  <info@ipfire.org>                           #
+# Copyright (C) 2017 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        = 6.47
+VER        = 7.40
 
 THISAPP    = nmap-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = nmap
-PAK_VER    = 7
+PAK_VER    = 8
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = edfe81f6763223c0a29bfa15a8526e2a
+$(DL_FILE)_MD5 = 9c5a28bfb46228bade82b238408c065e
 
 install : $(TARGET)
 
diff --git a/lfs/ntp b/lfs/ntp
index 572bb882f88b9d3e2cbe3d2830c2e237d0317e5f..1f1c5244dd56028018b8ac74dc0742395f70a6eb 100644 (file)
--- a/lfs/ntp
+++ b/lfs/ntp
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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        = 4.2.8p9
+VER        = 4.2.8p10
 
 THISAPP    = ntp-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 857452b05f5f2e033786f77ade1974ed
+$(DL_FILE)_MD5 = 745384ed0dedb3f66b33fe84d66466f9
 
 install : $(TARGET)
 
diff --git a/lfs/nut b/lfs/nut
index c64c5a26b53087f5a06038447c68e519d4b40ff1..2045dce6cb4fcfd1470053a66bf7f420d9bb5774 100644 (file)
--- a/lfs/nut
+++ b/lfs/nut
@@ -84,6 +84,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        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
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,nut)
+
        install -v -m 644 $(DIR_SRC)/config/backup/includes/nut \
                         /var/ipfire/backup/addons/includes/nut
        @rm -rf $(DIR_APP)
index 371d0df4ac09c4106f761886fa4e3f6107bd2265..56ac55a9602480eb0b19d8fa364315c29344d45f 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 7.3p1
+VER        = 7.4p1
 
 THISAPP    = openssh-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = dfadd9f035d38ce5d58a3bf130b86d08
+$(DL_FILE)_MD5 = b2db2a83caf66a208bb78d6d287cdaa3
 
 install : $(TARGET)
 
@@ -80,7 +80,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        sed -i -e 's/^#\?Port .*$$/Port 222/' \
            -e 's/^#\?Protocol .*$$/Protocol 2/' \
            -e 's/^#\?LoginGraceTime .*$$/LoginGraceTime 30s/' \
-           -e 's/^#\?RSAAuthentication .*$$/RSAAuthentication yes/' \
            -e 's/^#\?PubkeyAuthentication .*$$/PubkeyAuthentication yes/' \
            -e 's/^#\?PasswordAuthentication .*$$/PasswordAuthentication yes/' \
            -e 's/^#\?MaxStartups .*$$/MaxStartups 5/' \
index cece0074ef228331146e8d62b536c6b5d0593d9c..b613ed76ec6edd3f0ab9b533c774d40b9839edfd 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.0.2k
+VER        = 1.0.2l
 
 THISAPP    = openssl-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -61,22 +61,29 @@ CONFIGURE_OPTIONS = \
        no-mdc2 \
        no-rc5 \
        no-srp \
-       -DSSL_FORBID_ENULL
+       -DSSL_FORBID_ENULL \
+       $(OPENSSL_ARCH)
 
-ifeq "$(MACHINE)" "x86_64"
-       CONFIGURE_OPTIONS += linux-x86_64
+ifeq "$(IS_64BIT)" "1"
+       OPENSSL_ARCH = linux-generic64
+else
+       OPENSSL_ARCH = linux-generic32
 endif
 
-ifeq "$(MACHINE)" "i586"
-       CONFIGURE_OPTIONS += linux-elf
-
-ifneq "$(KCFG)" "-sse2"
-       CONFIGURE_OPTIONS += no-sse2
+ifeq "$(BUILD_ARCH)" "aarch64"
+       OPENSSL_ARCH = linux-aarch64
 endif
+
+ifeq "$(BUILD_ARCH)" "x86_64"
+       OPENSSL_ARCH = linux-x86_64
 endif
 
-ifeq "$(MACHINE)" "armv5tel"
-       CONFIGURE_OPTIONS += linux-generic32
+ifeq "$(BUILD_ARCH)" "i586"
+       OPENSSL_ARCH = linux-elf
+
+  ifneq "$(KCFG)" "-sse2"
+       OPENSSL_ARCH += no-sse2
+  endif
 endif
 
 ###############################################################################
@@ -87,7 +94,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f965fc0bf01bf882b31314b61391ae65
+$(DL_FILE)_MD5 = f85123cd390e864dfbe517e7616e6566
 
 install : $(TARGET)
 
@@ -123,7 +130,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.2g-disable-sslv2v3.patch
 
        # i586 specific patches
-ifeq "$(MACHINE)" "i586"
+ifeq "$(BUILD_ARCH)" "i586"
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.2a_auto_enable_padlock.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-1.0.2a_disable_ssse3_for_amd.patch
 endif
index 72101d5260f221e5318b5943728451ccc3c49d63..1cf9427fe2bddf42f439c27cd574db6d232e120f 100644 (file)
@@ -90,6 +90,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
           --without-xerces-c --without-xerces
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,openvmtools)
        ln -sf ../init.d/openvmtools /etc/rc.d/rc3.d/S60openvmtools
        ln -sf ../init.d/openvmtools /etc/rc.d/rc0.d/K01openvmtools
        ln -sf ../init.d/openvmtools /etc/rc.d/rc6.d/K01openvmtools
index 96e37f7d479b21cf94800594e15604bd85d54ca9..b7f5217597235946dee55dd16cd84e928d266ef8 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.3.7
+VER        = 2.3.17
 
 THISAPP    = openvpn-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 5b819f7cd0b875f55f20a947224967aa
+$(DL_FILE)_MD5 = df9291c5bd466fe73c2544a800f3b441
 
 install : $(TARGET)
 
index 00d1bb1c0d5b2bedba2a08aaaa5488258409e978..b584cc5611ee950bc5538773c038cc674a528726 100644 (file)
@@ -30,10 +30,10 @@ THISAPP    = pakfire
 DIR_APP    = /opt/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
-ifeq "$(MACHINE)" "i586"
+ifeq "$(BUILD_ARCH)" "i586"
        PAKFIRE_VERSION = $(VERSION)
 else
-       PAKFIRE_VERSION = $(VERSION)-$(MACHINE)
+       PAKFIRE_VERSION = $(VERSION)-$(BUILD_ARCH)
 endif
 
 ###############################################################################
diff --git a/lfs/pam b/lfs/pam
index 75557a499628ba50a5f0904cf24030b53a0c0c84..96e8956f992233c449572e73872445516c3df846 100644 (file)
--- a/lfs/pam
+++ b/lfs/pam
@@ -70,6 +70,8 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       $(UPDATE_AUTOMAKE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pam-0.99.10.0-rlimit-build-fix.patch
        cd $(DIR_APP) && ./configure --libdir=/usr/lib \
                            --sbindir=/lib/security \
                            --enable-securedir=/lib/security \
index 7b724df97e7ecdeeda0e54cfe92f59f820f5969c..49656f1bab68b2a1c82c07afca419a8a21be8b63 100644 (file)
--- a/lfs/pcre
+++ b/lfs/pcre
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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.39
+VER        = 8.40
 
 THISAPP    = pcre-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = e3fca7650a0556a2647821679d81f585
+$(DL_FILE)_MD5 = 41a842bf7dcecd6634219336e2167d1d
 
 install : $(TARGET)
 
index c4ddc8e7604e5157e5de4126288daeb87e7e78cf..9ab8efae4e4bcb96ccd9266162beb8d4c24ddbee 100644 (file)
--- a/lfs/perl
+++ b/lfs/perl
@@ -77,6 +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) && patch -Np1 < $(DIR_SRC)/src/patches/perl-Fix-Errno.pm-generation-for-gcc-5.0.patch
 ifneq "$(ROOT)" ""
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-libc-2.patch
 endif
diff --git a/lfs/php b/lfs/php
index 8139e2128400e4c6ad77061aad91fbb9e8ac3b27..8717ccac14c5c1dcbe1946bf600f92432e0187e1 100644 (file)
--- a/lfs/php
+++ b/lfs/php
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
-ifeq "$(MACHINE_TYPE)" "arm"
+ifeq "$(BUILD_PLATFORM)" "arm"
        CFLAGS    := $(patsubst -march=%,,$(CFLAGS))
 endif
 
@@ -79,47 +79,49 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) $(DIR_SRC)/idn-* $(DIR_SRC)/Log-* $(DIR_SRC)/package.xml && \
                cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+
        cd $(DIR_APP) && ./configure --prefix=/usr \
-                                                                                           --sysconfdir=/etc \
-                                                                                           --with-apxs2 \
-                                                                                           --enable-force-cgi-redirect \
-                                                                                           --enable-discard-path \
-                                                                                           --enable-fastcgi \
-                                                                                           --with-config-file-path=/etc \
-                                                                                           --with-openssl \
-                                                                                           --with-kerberos \
-                                                                                           --with-zlib \
-                                                                                           --enable-bcmath \
-                                                                                           --with-bz2 \
-                                                                                           --enable-calendar \
-                                                                                           --with-curl \
-                                                                                           --with-curlwrappers \
-                                                                                           --enable-dba=shared \
-                                                                                           --with-gdbm \
-                                                                                           --with-db4 \
-                                                                                           --with-inifile \
-                                                                                           --with-flatfile \
-                                                                                           --enable-exif \
-                                                                                           --enable-ftp \
-                                                                                           --with-openssl-dir=/usr \
-                                                                                           --with-gd=/usr \
-                                                                                           --with-jpeg-dir=/usr \
-                                                                                           --with-png-dir=/usr \
-                                                                                           --with-zlib-dir=/usr \
-                                                                                           --with-freetype-dir=/usr \
-                                                                                           --with-gettext \
-                                                                                           --with-gmp \
-                                                                                           --enable-mbstring \
-                                                                                           --with-mysql \
-                                                                                           --with-mysql-sock=/var/run/mysql \
-                                                                                           --with-ncurses \
-                                                                                           --with-pdo-mysql \
-                                                                                           --with-pdo-sqlite \
-                                                                                           --with-readline \
-                                                                                           --enable-sockets \
-                                                                                           --with-xsl \
-                                                                                           --with-iconv \
-                                                                                           --enable-zip
+            --sysconfdir=/etc \
+            --with-apxs2 \
+            --enable-force-cgi-redirect \
+            --enable-discard-path \
+            --enable-fastcgi \
+            --with-config-file-path=/etc \
+            --with-openssl \
+            --with-kerberos \
+            --with-zlib \
+            --enable-bcmath \
+            --with-bz2 \
+            --enable-calendar \
+            --with-curl \
+            --with-curlwrappers \
+            --enable-dba=shared \
+            --with-gdbm \
+            --with-db4 \
+            --with-inifile \
+            --with-flatfile \
+            --enable-exif \
+            --enable-ftp \
+            --with-openssl-dir=/usr \
+            --with-gd=/usr \
+            --with-jpeg-dir=/usr \
+            --with-png-dir=/usr \
+            --with-zlib-dir=/usr \
+            --with-freetype-dir=/usr \
+            --with-gettext \
+            --with-gmp \
+            --enable-mbstring \
+            --with-mysql \
+            --with-mysql-sock=/var/run/mysql \
+            --with-ncurses \
+            --with-pdo-mysql \
+            --with-pdo-sqlite \
+            --with-readline \
+            --enable-sockets \
+            --with-xsl \
+            --with-iconv \
+            --enable-zip
+
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        cd $(DIR_APP) && install -v -m644 $(DIR_SRC)/config/php/php.ini /etc/php.ini
index 1cb2a08df46887ce7bc6ad412b6a84ef5884efdd..e06e0c473e67ffb48500831162bc3fdceb29ed5a 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.26.0
+VER        = 0.34.0
 
 THISAPP    = pixman-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 6563b6400b9fa23b47fd52105faf72b4
+$(DL_FILE)_MD5 = e80ebae4da01e77f68744319f01d52a3
 
 install : $(TARGET)
 
index ed95102fd77d708595316ee911f09f29f722cd5c..36fb40ae9cd97fe4007bf71e070d59e23ce769ec 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.29
+VER        = 0.29.2
 
 THISAPP    = pkg-config-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -50,7 +50,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 77f27dce7ef88d0634d0d6f90e03a77f
+$(DL_FILE)_MD5 = f6e931e319531b736fadc017f470e68a
 
 install : $(TARGET)
 
diff --git a/lfs/poppler b/lfs/poppler
new file mode 100644 (file)
index 0000000..3207e5d
--- /dev/null
@@ -0,0 +1,85 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2016  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.52.0
+
+THISAPP    = poppler-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+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 = dfdd55d5df39685bbb82b0c08fa4ef66
+
+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 \
+                       --enable-cairo-output \
+                       --enable-cms=lcms2 \
+                       --enable-libjpeg \
+                       --enable-libpng \
+                       --enable-xpdf-headers
+
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 4864fb9f6eb1de58c0a1684211c215d8bb91f14e..9f5ad380946e13ea99c165bf8f2870ec709bedcb 100644 (file)
@@ -117,5 +117,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        install -v -m 644 $(DIR_SRC)/config/backup/includes/postfix \
                         /var/ipfire/backup/addons/includes/postfix
        mv /usr/sbin/sendmail /usr/sbin/sendmail.postfix
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,postfix)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 3860122a9f9d9a434941cd8adf0a132b83add0ce..b4206d0e57c6e6513c144b9006ee3fe73243e393 100644 (file)
--- a/lfs/pound
+++ b/lfs/pound
@@ -81,6 +81,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                --with-dh=1024
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,pound)
+
        install -v -m 644 $(DIR_SRC)/config/backup/includes/pound \
                         /var/ipfire/backup/addons/includes/pound
 
index 013f9c1a8ad43b16a76dedc3ddb9e19ebe86c687..14ccb690c9e3111b0206759cc9c99cbd07169710 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.7.10
+VER        = 2.7.13
 
 THISAPP    = Python-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = c685ef0b8e9f27b5e3db5db12b268ac6
+$(DL_FILE)_MD5 = 53b43534153bb2a0363f08bae8b9d990
 
 install : $(TARGET)
 
@@ -71,6 +71,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE)
        rm -rf $(DIR_APP)/Modules/_ctypes/{darwin,libffi,libffi_arm_wince,libffi_msvc,libffi_osx}
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/python-2.7.13-getentropy.patch
        cd $(DIR_APP) && OPT="$(CFLAGS)" ./configure \
                --prefix=/usr --enable-shared --with-system-ffi
        cd $(DIR_APP) && make $(MAKETUNING)
index 68210623c8274aaf86476fcf947ace34d6964a78..0fe493ba97d86f2fda76ca87d11a0c5e813a7d25 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.6.0
+VER        = 3.6.1
 
 THISAPP    = Python-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = python3
-PAK_VER    = 1
+PAK_VER    = 2
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 82b143ebbf4514d7e05876bed7a6b1f5
+$(DL_FILE)_MD5 = 692b4fc3a2ba0d54d1495d4ead5b0b5c
 
 install : $(TARGET)
 
similarity index 90%
rename from lfs/dfb++
rename to lfs/python3-libvirt
index 56c01d140b30e07475e5f79503f041d471425155..6539b156a6dbd6638e849fb4469a128dd30a4120 100644 (file)
--- a/lfs/dfb++
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2017  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.0
+VER        = 3.1.0
 
-THISAPP    = DFB++-$(VER)
+THISAPP    = libvirt-python-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = dfb++
+SUP_ARCH   = i586 x86_64
+PROG       = python3-libvirt
 PAK_VER    = 1
 
-DEPS       = "directfb"
-
-
+DEPS       = "libvirt python3"
 
 ###############################################################################
 # Top-level Rules
@@ -46,7 +45,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = c7d0b98bcc648a25ff11bfc74635f4ca
+$(DL_FILE)_MD5 = 322185007e2e70f2e862fc55e9970d10
 
 install : $(TARGET)
 
@@ -79,8 +78,6 @@ $(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 
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
+       cd $(DIR_APP) && python3 setup.py install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 26c2f24ec1f869cae70ac6624422c866d1e63cd4..6d5f91926eb90c56f3255c59b6cf3161962cd349 100644 (file)
--- a/lfs/qemu
+++ b/lfs/qemu
@@ -79,7 +79,7 @@ $(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 --sysconfdir=/etc \
-               --enable-kvm --disable-bluez --disable-attr \
+               --localstatedir=/var --enable-kvm --disable-bluez --disable-attr \
                --target-list="i386-linux-user x86_64-linux-user arm-linux-user i386-softmmu x86_64-softmmu arm-softmmu" \
                --extra-cflags="$(CFLAGS)" --enable-spice --enable-usb-redir
        cd $(DIR_APP) && make $(MAKETUNING)
@@ -89,12 +89,13 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        install -m 755 $(DIR_SRC)/config/qemu/qemu /usr/bin/qemu
 
        # disable PaX MPROTECT and RANDMMAP
-       paxctl -m -r /usr/bin/qemu-system-arm
-       paxctl -m -r /usr/bin/qemu-system-i386
-       paxctl -m -r /usr/bin/qemu-system-x86_64
-       paxctl -m -r /usr/bin/qemu-arm
-       paxctl -m -r /usr/bin/qemu-i386
-       paxctl -m -r /usr/bin/qemu-x86_64
+       paxctl -cmr /usr/bin/qemu-system-arm
+       paxctl -cmr /usr/bin/qemu-system-i386
+       paxctl -cmr /usr/bin/qemu-system-x86_64
+       paxctl -cmr /usr/bin/qemu-arm
+       paxctl -cmr /usr/bin/qemu-i386
+       paxctl -cmr /usr/bin/qemu-x86_64
+
        # install an udev script to set the permissions of /dev/kvm
        cp -avf $(DIR_SRC)/config/qemu/65-kvm.rules /lib/udev/rules.d/65-kvm.rules
 
similarity index 92%
rename from lfs/tcpick
rename to lfs/qpdf
index 52ba75b682a434b8f54ca92b3c191bd6ce6e6019..44cd23fe81ba3a37dcaf5a5ba84334baaf5a4d1b 100644 (file)
+++ b/lfs/qpdf
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2016  IPFire Team <info@ipfire.org>                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 
 include Config
 
-VER        = 0.2.1
+VER        = 6.0.0
 
-THISAPP    = tcpick-$(VER)
+THISAPP    = qpdf-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = tcpick
-PAK_VER    = 1
-
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = bb94f2f9ea81aeb645619fbe9b3b9a29
+$(DL_FILE)_MD5 = e014bd3ecf1c4d1a520bbc14d84ac20e
 
 install : $(TARGET)
 
@@ -54,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       @$(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
index 402753ee02597d9cef162fead7cc96cda0df0675..3018aa16977111570e1735e8560872353ec86ec0 100644 (file)
 
 include Config
 
-VER        = 3.6.21
+VER        = 3.6.25
 
 THISAPP    = reiserfsprogs-$(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 = 0639cefac8f8150536cfa7531c2aa2d2
+$(DL_FILE)_MD5 = 027a598b055dccb8da3aea1378a19f3c
 
 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 axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure --prefix=/usr --sbindir=/sbin
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index e7f9eff08bcb32634b2a5c1007dc8dd7e46992b3..046121f362733fc7f722f80f365dbe567fddc972 100644 (file)
@@ -82,5 +82,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && ./configure --prefix=/usr --bindir=/sbin --with-rpcuser=root --without-systemdsystemunitdir --disable-ipv6
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,rpcbind)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index b85c797364cd5c84944ca81e9f52f3f3dfe61c91..5d7c8943dd4ea07795c6eeab2aeac9226e185c13 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2015  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2016  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.5.5
+VER        = 1.6.0
 
 THISAPP    = rrdtool-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d8b3dcb3d193c2d6ad0a282bde69ee11
+$(DL_FILE)_MD5 = 4ff52cc44b935b02d2742e6875094da5
 
 install : $(TARGET)
 
index 88715dd7825f05941a53ff2bbd077af0c85100a0..be276c6dc5eebe79fdcec3f22f9aa39c678369b8 100644 (file)
@@ -80,6 +80,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,rtpproxy)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
 
index 74a1b769edd88ec9f087decb563c9c2facb1ac76..d54d507af755d65ecd83fdb9bdd9e61c38847620 100644 (file)
--- a/lfs/samba
+++ b/lfs/samba
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = samba
-PAK_VER    = 64
+PAK_VER    = 67
 
 DEPS       = "cups krb5"
 
@@ -54,7 +54,7 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
+dist:
        @$(PAK)
 
 ###############################################################################
@@ -78,8 +78,61 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
 
-       # Apply Redhat CVE patches
+       # Apply patches from RHEL6
+       # Upstream patches
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_nbt_query_with_many_components.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_group_expansion_with_nss_templates.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_group_expansion_in_service_path.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_memleak_in_printer_list.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_lookups_with_one_way_trusts.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_setup_domain_child_logic.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_force_user_with_security_ads.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-add_timeout_option_to_smbclient.patch
+       # Additional Red Hat patches
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.2.0pre1-pipedir.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.2.0pre1-grouppwd.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.2.5-inotify.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.5.11-idmapdebug.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.5.11-docs.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.5.11-nss_info_doc.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.5.11-wbinfo_manpage.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.5.12-dns.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.5.12-pam_radio_type.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.18-fix_net_ads_join_segfault.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.19-valid_users_doc.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.23-gecos.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.23-glusterfs.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.23-libsmbclient.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.23-fix_libads_krb5_ipv6.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.26-smb2_case_sensitive.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_gecos_interactive.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_dropbox_share.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-add_spoolss_os_version.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-nt_printer_publish_guid.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_keytab_null_termination.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_printcap_cpu_utilization.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_smbclient_ntlmv2_auth.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_smb_conf_doc.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-bug-1117059.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-bug-1192211.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_usergroup_cache_lookup.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_force_user_winbind_default_domain.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_rpcclient_timeout_command.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_force_group.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_pam_winbind_parsing_segfault.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_mangling_hash_segfault.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-doc_netbios_name_length_limit.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_map_to_guest_bad_uid.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_security_server_share_access.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_stale_printer_entries_on_rename.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2015-5299-v3-6-bso11529.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2015-5296-v3-6-bso11536.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2015-5252-v3-6-bso11395.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2015-5330-v3-6-bso11599.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-net_ads_join_no_dns_updates.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-asserted_identity_sid-S-1-18-1.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2015-7560-v3-6.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_symlink_verification.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-preparation-v3-6.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2016-2110-v3-6.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2016-2111-v3-6.patch
@@ -87,6 +140,21 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2016-2115-v3-6.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2016-2118-v3-6.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2015-5370-v3-6.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_winbind_cache_memory_leak.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_memleak_winbind_cached_creds.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-idmap_ad_memleak.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-libsmb_fix_dfs_connections.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-2110-ntlmssp-session-setup-nas.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_rpc_query_user_list.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-nt_printer_unpublish_fix.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2016-2126-v3.6.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2016-2125-v3.6.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_member_auth_after_changed_secret.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.99-fix_dirsort_ea-support.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/CVE-2017-7494-v3-6.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/doc-update.patch
+#      cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/samba/samba-3.6.x-winbind_tevent_poll.patch
+
 
        cd $(DIR_APP)/source3 && ./autogen.sh
        cd $(DIR_APP)/source3 && ./configure \
@@ -102,10 +170,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                --with-libsmbclient \
                --with-libsmbsharemodes \
                --with-sendfile-support \
-               --without-smbwrapper \
-               --with-mmap \
                --with-fhs \
-               --with-vfs \
                --with-winbind \
                --disable-swat \
                --enable-cups \
@@ -119,8 +184,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        #cd $(DIR_APP)/source3 && install -v -m755 nsswitch/libnss_winbind.so /lib
        #cd $(DIR_APP)/source3 && ln -v -sf libnss_winbind.so /lib/libnss_winbind.so.2
        #cd $(DIR_APP)/source3 && ln -v -sf libnss_wins.so /lib/libnss_wins.so.2
+       -mkdir -p /var/ipfire/samba
        cd $(DIR_APP)/source3 && install -v -m644 ../examples/smb.conf.default /var/ipfire/samba
-       -mkdir -p /var/ipfire/samba     
        cp -vrf $(DIR_SRC)/config/samba/* /var/ipfire/samba/
        chown nobody:nobody -R /var/ipfire/samba/
        cp -vfp /var/ipfire/samba/default.global /var/ipfire/samba/global
@@ -136,5 +201,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        chmod 750 /var/lib/samba/winbindd_privileged
        chgrp wbpriv /var/lib/samba/winbindd_privileged
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,samba)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 64f337592b5bbdc6e2b87a205a8f27c75dbe9296..9e456f017f9419c98793ffba9c8407ce1be77f33 100644 (file)
--- a/lfs/sane
+++ b/lfs/sane
@@ -85,6 +85,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && make install
        chmod 4755 /usr/bin/scanimage
        cp -vf $(DIR_SRC)/config/sane/saned.conf /etc/sane.d/
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,sane)
+
        ln -sf ../init.d/sane /etc/rc.d/rc3.d/S95sane
        ln -sf ../init.d/sane /etc/rc.d/rc0.d/K10sane
        ln -sf ../init.d/sane /etc/rc.d/rc6.d/K10sane
diff --git a/lfs/sdl b/lfs/sdl
index 5f5ecdcef48b455f4bda3203f316443b70a709a5..84c395a3a29f9c456ceb2c78d7067c21a5a23673 100644 (file)
--- a/lfs/sdl
+++ b/lfs/sdl
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.2.11
+VER        = 1.2.15
 
 THISAPP    = SDL-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = sdl
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       = "alsa"
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 418b42956b7cd103bfab1b9077ccc149
+$(DL_FILE)_MD5 = 9d96df8417572a2afb781a7c4c811a85
 
 install : $(TARGET)
 
@@ -77,8 +77,6 @@ dist:
 $(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/SDL-1.2.11-asm-page.h.patch
-       cd $(DIR_APP) && sed "/asm\/page.h/d" -i src/video/fbcon/SDL_fbvideo.c
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index 9df159e72c0e6e7426873fcf2696f17db81275e6..4f658cf540562b176d7ab4cd647ea0be83ff5420 100644 (file)
@@ -48,5 +48,5 @@ install : $(DIR_INFO)/_build.othersrc-list.log
        
        # make the sources CDROM iso
        cd /install/cdrom && mkisofs -J -r -V "$(NAME)_$(VERSION)" \
-               . > /install/images/$(SNAME)-sources-cd-$(VERSION).$(MACHINE).iso
+               . > /install/images/$(SNAME)-sources-cd-$(VERSION).$(BUILD_ARCH).iso
        rm -rf /install/cdrom/*
index 02d60fe05167c026c26804a98b5b44659bda0f36..75944a78c713ddc34d5d38734037f91abd48f855 100644 (file)
@@ -80,5 +80,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && yes 'n' | perl Makefile.PL
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,spamassassin)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 4a8d9d8e07be29048d67db0681efca34b303871c..22659ed84238763fefa2a3f3bfc7577d7a3fc111 100644 (file)
--- a/lfs/squid
+++ b/lfs/squid
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.5.24
+VER        = 3.5.26
 
 THISAPP    = squid-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 3fae511e16b6379b61c011914673973d
+$(DL_FILE)_MD5 = 510e2c84773879c00d0e7ced997864d9
 
 install : $(TARGET)
 
@@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xaf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/squid-3.5.24-fix-max-file-descriptors.patch
+       cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/squid-3.5.26-fix-max-file-descriptors.patch
 
        cd $(DIR_APP) && autoreconf -vfi
        cd $(DIR_APP)/libltdl && autoreconf -vfi
@@ -147,7 +147,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cp -f $(DIR_SRC)/config/updxlrator/lscache /var/ipfire/updatexlrator/bin/lscache
        cp -f $(DIR_SRC)/config/updxlrator/checkdeaddl /var/ipfire/updatexlrator/bin/checkdeaddl
 
-       cp -f $(DIR_SRC)/config/updxlrator/updxlrator-lib.pl /var/ipfire/updatexlrator//updxlrator-lib.pl
+       cp -f $(DIR_SRC)/config/updxlrator/updxlrator-lib.pl /var/ipfire/updatexlrator/updxlrator-lib.pl
 
        chmod 755 /usr/sbin/updxlrator /var/ipfire/updatexlrator/bin/checkup \
                /var/ipfire/updatexlrator/bin/download \
index f4201c33526cd8d87e1457e50814225887b27e21..8262a5fc657a208ceeb1070941e7c18f0b7d5905 100644 (file)
--- a/lfs/sslh
+++ b/lfs/sslh
@@ -79,5 +79,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && make CFLAGS="$(CFLAGS)" $(MAKETUNING)
        cd $(DIR_APP) && install -v -m 755 sslh /usr/sbin
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,sslh)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
similarity index 69%
rename from lfs/fwhits
rename to lfs/stage1
index b7d8b61eaa27cdaacd65087894a04dd0f2a8e653..c4c578411eb19980033dddb1335a98bc73569338 100644 (file)
 
 include Config
 
-VER = ipfire
+VER        = ipfire
 
-THISAPP    = fwhits
-DL_FILE    = logtailfwhits
-DL_FROM    = $(URL_IPFIRE)
+THISAPP    = stage1
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
 ###############################################################################
 
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = c548cb78ecd652e8175414c35f14ec4f
-
 install : $(TARGET)
 
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+check :
 
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
+download :
 
-md5 : $(subst %,%_MD5,$(objects))
+md5 :
 
 ###############################################################################
-# Downloading, checking, md5sum
+# Installation Details
 ###############################################################################
 
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
+$(TARGET) :
+       @$(PREBUILD)
 
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
+       mkdir -pv /tools/lib
 
-###############################################################################
-# Installation Details
-###############################################################################
+ifeq "$(IS_64BIT)" "1"
+       ln -svf lib /tools/lib64
+endif
 
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       cp $(DIR_DL)/logtailfwhits /usr/local/bin/
-       chmod 755 /usr/local/bin/logtailfwhits
-       chown root.root /usr/local/bin/logtailfwhits
-       # logtailfwhits /var/log/snort/alert /var/log/snort/fwhits.alert.offset
-       # logtailfwhits /var/log/messages /var/log/fwhits.messages.offset
        @$(POSTBUILD)
index 2d2a6459de9424e683b7d643f7af5c9710aa6db5..b70bde78a4e273bc37444d3fc1aea2b986657470 100644 (file)
@@ -64,7 +64,7 @@ $(TARGET) :
        # Symlink /var/run -> /run.
        ln -svf ../run /var/run
 
-ifeq "$(MACHINE)" "x86_64"
+ifeq "$(IS_64BIT)" "1"
        ln -svf lib /lib64
        ln -svf lib /usr/lib64
 endif
@@ -127,6 +127,7 @@ endif
        -mkdir -pv /var/log/{counter,calamaris}
        chown nobody.nobody /var/log/calamaris
        touch /var/log/{btmp,lastlog,wtmp}
+       chmod -v 600 /var/log/btmp
        chgrp -v utmp /var/log/lastlog
        chmod -v 664 /var/log/lastlog
 
index d07ff43ee04ae02b29c116bf8628588061402fa3..237f4d2b3b5a243a007c89b886f6d3a01326a038 100644 (file)
--- a/lfs/strip
+++ b/lfs/strip
@@ -49,6 +49,6 @@ $(TARGET) :
        # Don't strip VDR binaries, because they use a weird plugin system
        # which does not work when unneeded symbols get stripped from
        # /usr/sbin/vdr.
-       STRIP="/tools/bin/strip" $(DIR_SRC)/src/stripper / \
+       $(DIR_SRC)/src/stripper $(ROOT) \
                --exclude=/usr/src --exclude=/tools \
                --exclude=/usr/sbin/vdr --exclude=/usr/lib/vdr
index 9e8f155e66f83015da03ba9b121d12b3f7781f41..85c4f2b85815d492cb69a7777afd8723d2b33415 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 5.5.1
+VER        = 5.5.3
 
 THISAPP    = strongswan-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/strongswan-$(VER)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
-ifeq "$(MACHINE)" "i586"
+ifeq "$(BUILD_ARCH)" "i586"
        CONFIGURE_OPTIONS = \
                --enable-padlock
 else
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4eba9474f7dc6c8c8d7037261358e68d
+$(DL_FILE)_MD5 = 4afffe3c219bb2e04f09510905af836b
 
 install : $(TARGET)
 
@@ -78,6 +78,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) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-disable-ipv6.patch
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-ipfire.patch
 
        cd $(DIR_APP) && ./configure \
@@ -108,8 +109,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        # 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
        ln -sf $(CONFIG_ROOT)/vpn/ipsec.conf /etc/ipsec.conf
        ln -sf $(CONFIG_ROOT)/vpn/ipsec.secrets /etc/ipsec.secrets
index 4585151a86dee01a0e0b5eccf223a32972720fad..684e4522d2362cce93a4dee3f660e926f499013c 100644 (file)
@@ -88,6 +88,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        install -v -m750 -o stunnel -g stunnel -d /var/lib/stunnel/run
        chown -v stunnel:stunnel /var/lib/stunnel
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,stunnel)
+
+
        # Install default configuration
        -mkdir -pv /etc/stunnel
        install -v -m 644 $(DIR_SRC)/config/stunnel/stunnel.conf \
index 75bde5fee52cccbf8014fde320a933b6fe722d51..58d1073579ab99ef558b6596fcd42e7202986243 100644 (file)
@@ -70,6 +70,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+
+       # Compile fix
+       cd $(DIR_APP) && sed -i "s/union wait/int/" syslogd.c
+
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        touch /var/log/{dhcpcd.log,messages}
index 2ebf84a95a4ccd622825aab60705d97cee67e846..e0cd93bdae08ddc73a3e28d6864081e6cceedf64 100644 (file)
--- a/lfs/tftpd
+++ b/lfs/tftpd
@@ -81,5 +81,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        mv -fv /usr/sbin/in.tftpd /usr/sbin/tftpd
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,tftpd)
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 300080d5ff1626a202b38fd867edc0b34494d25d..c485a60f232ba6aa10b5ee01851de2e53a0870ed 100644 (file)
--- a/lfs/tmux
+++ b/lfs/tmux
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.3
+VER        = 2.5
 
 THISAPP    = tmux-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = tmux
-PAK_VER    = 4
+PAK_VER    = 5
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = fcfd1611d705d8b31df3c26ebc93bd3e
+$(DL_FILE)_MD5 = 4a5d73d96d8f11b0bdf9b6f15ab76d15
 
 install : $(TARGET)
 
diff --git a/lfs/tor b/lfs/tor
index be812e021ffd3b2b045650ebadc420dad8ea10a6..f718843031c4c04fdf6f684fcfdcef3d0086ed48 100644 (file)
--- a/lfs/tor
+++ b/lfs/tor
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2013   IPFire Team   <info@ipfire.org>                   #
+# Copyright (C) 2007-2017   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.2.9.9
+VER        = 0.3.0.8
 
 THISAPP    = tor-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = tor
-PAK_VER    = 19
+PAK_VER    = 21
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d9d8a2d1f65c151eb2b448f6a93fc326
+$(DL_FILE)_MD5 = c5c88b7e17f652c9fb4fc2c2ee92943c
 
 install : $(TARGET)
 
@@ -107,6 +107,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        install -v -m 644 $(DIR_SRC)/config/tor/defaults-torrc \
                /usr/share/tor/defaults-torrc
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,tor)
+
        # Install start links and backup include file.
        ln -sf ../init.d/tor /etc/rc.d/rc3.d/S60tor
        ln -sf ../init.d/tor /etc/rc.d/rc0.d/K40tor
index 36eb3c424ecaee897a71489dfe135d13f28b1454..79ebaa1f90f501050ea8976adaff1f9200f592cc 100644 (file)
@@ -88,6 +88,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cp -vf $(DIR_SRC)/config/transmission/* /etc/transmission/
        chown -Rv nobody.nobody /etc/transmission
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,transmission)
+
        # Install backup include
        install -v -m 644 $(DIR_SRC)/config/backup/includes/transmission \
                         /var/ipfire/backup/addons/includes/transmission
index 3b3fbf22117fe5027aa89eda1ae31a01f42f6eb1..e34f76a151c8f663f86ae896d2dd49cccb650953 100644 (file)
@@ -76,6 +76,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/U-Boot-v2-fs-fat-read-fix-fat16-ls-read-issue.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/u-boot-support-gcc-6.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/u-boot-c99-inline-fix.patch
 
        # Pandaboard
        -mkdir -pv /usr/share/u-boot/pandaboard
index f6686954d157728dd37d14bc018c9501704189d1..1e6323620b88002b32aca0b7893a3695b173a82d 100644 (file)
--- a/lfs/udev
+++ b/lfs/udev
@@ -78,8 +78,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-208_remove_systemd_log.patch
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-208-fix_uint8_t.patch
 
-       cd $(DIR_APP)/udev-lfs-$(VER)-1 && sed -i "s/HANDLE_AT 1/HANDLE_AT 0/g" cfg.h
-
        rm -rf /lib/udev/devices
        install -dv /lib/firmware
 
index 3494a7b0645c7697afba3948b6c30b6ca4079f42..1270b35c3cbc8f6fb7fcc625cd3d90b1241acced 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2016  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2017  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.6.0
+VER        = 1.6.3
 
 THISAPP    = unbound-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 78409eccf7260d260b6463f85e59c66b
+$(DL_FILE)_MD5 = d964d04c8d2b25f3271ac60fc630b654
 
 install : $(TARGET)
 
@@ -70,6 +70,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) && patch -Np1 < $(DIR_SRC)/src/patches/unbound-allow-setting-validator-permissive-mode-at-runtime.patch
        cd $(DIR_APP) && \
                ./configure \
                        --prefix=/usr \
@@ -77,7 +78,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                        --with-pidfile=/var/run/unbound.pid \
                        --with-rootkey-file=/var/lib/unbound/root.key \
                        --disable-static \
-                       --with-libevent
+                       --with-libevent \
+                       --enable-event-api \
+                       ac_cv_func_getentropy=no
+
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
index f479d7e9f9fab3d42eebcf641e0080c075b1aa92..793890d2871b56f93238abd8437b09938f714389 100644 (file)
--- a/lfs/unzip
+++ b/lfs/unzip
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2016  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        = 552
+VER        = 60
 
 THISAPP    = unzip$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/unzip-5.52
+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 = 9d23919999d6eac9217d1f41472034a9
+$(DL_FILE)_MD5 = 62b490407489521db863b523a7f86375
 
 install : $(TARGET)
 
@@ -70,12 +70,14 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(MACHINE)" "i586"
-       cd $(DIR_APP) && make -f unix/Makefile LOCAL_UNZIP=-D_FILE_OFFSET_BITS=64 linux
+       cd $(DIR_APP) && make -f unix/Makefile clean
+       cd $(DIR_APP)/unix && ./configure
+ifeq "$(BUILD_ARCH)" "i586"
+       cd $(DIR_APP) && make -f unix/Makefile LOCAL_UNZIP=-D_FILE_OFFSET_BITS=64 generic
 else
        # ARM/x86_64 cannot use the x86 32 bit assembly code.
        cd $(DIR_APP) && make -f unix/Makefile LOCAL_UNZIP=-D_FILE_OFFSET_BITS=64 linux_noasm
 endif
-       cd $(DIR_APP) && make prefix=/usr install
+       cd $(DIR_APP) && make prefix=/usr MANDIR=/usr/share/man/man1 -f unix/Makefile install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 7f69e67514bfbedcd5df82ee18a6d24c306e4ab3..ac8d7410a60b2014f7f96674fb29808f1a367e1c 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2013   IPFire Team  <info@ipfire.org>                    #
+# Copyright (C) 2007-2017   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.24
+VER        = 2.28.2
 
 THISAPP    = util-linux-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = util-linux
+
 
 ###############################################################################
 # Top-level Rules
@@ -40,7 +42,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4fac6443427f575fc5f3531a4ad2ca01
+$(DL_FILE)_MD5 = 46a232a37bce45371a86d19300edc47a
 
 install : $(TARGET)
 
@@ -70,11 +72,21 @@ $(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) && ./configure
-       cd $(DIR_APP) && make $(MAKETUNING) HAVE_KILL=yes HAVE_SLN=yes
-       cd $(DIR_APP) && make HAVE_KILL=yes HAVE_SLN=yes install
+       cd $(DIR_APP) && ./configure \
+               --docdir=/usr/share/doc/util-linux \
+               --disable-static \
+               --disable-nls \
+               --disable-static \
+               --enable-pg \
+               --without-python \
+               --without-systemd \
+               --without-systemdsystemunitdir
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+
        # Install fstrim cronjob
        mkdir -p /etc/fcron.daily
        install -m 0755 $(DIR_SRC)/config/fstrim/trim /etc/fcron.daily/trim
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/vdr b/lfs/vdr
index 52ecdd54354fe21c86f712beb4cd927d8af20e0a..99e81048a7be0f4fd627dd105c271ad95fd3ecc4 100644 (file)
--- a/lfs/vdr
+++ b/lfs/vdr
@@ -131,6 +131,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        ln -svf ../../include/vdr/config.h /usr/lib/vdr/config.h
        ln -svf ../../include/vdr/device.h /usr/lib/vdr/device.h
 
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,vdr)
+
        # Install start links and backup include file.
        ln -sf ../init.d/vdr /etc/rc.d/rc3.d/S60vdr
        ln -sf ../init.d/vdr /etc/rc.d/rc0.d/K40vdr
index 2cf34e73dfe1012d6e457d90f235074d415fc31c..781f00d26cc45c2b01a6fd6baed25273401fdc1e 100644 (file)
@@ -25,6 +25,8 @@
 include Config
 
 VER        = 1.0.6
+SUP_ARCHES =
+
 THISAPP    = vdr-plugin-dvbapi-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 
@@ -102,7 +104,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP)* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 
-ifeq "$(MACHINE)" "i586"
+ifeq "$(BUILD_ARCH)" "i586"
        # Build an SSE enabled version.
        $(call BUILD,-sse)
 endif
index 3a91256f1081a90ffce9bebc40f848a44f45370c..c8dd7f6fdc99b01e8ee7d8ac5c77d98e6a7dbee5 100644 (file)
@@ -26,6 +26,8 @@ include Config
 
 GIT_VER    = 69b47ba4bf0195fd6820beb2cf4f7c7ea31f4011
 VER        = master
+SUP_ARCHES =
+
 THISAPP    = vdr-plugin-eepg-$(VER)
 DL_FILE    = vdr-plugin-eepg-$(GIT_VER).tar.bz2
 
index e62167049793a69c4f25fd4892dbd95670cbb1aa..e0065accbea64203a83d21b86a74b5b39e6b2d09 100644 (file)
@@ -25,6 +25,8 @@
 include Config
 
 VER        = 1.0.1.beta5
+SUP_ARCHES =
+
 THISAPP    = vdr-epgsearch-$(VER)
 DL_FILE    = $(THISAPP).tgz
 
index c230a69afb9afaa85a01402d29129c10cc1d96fb..b67843e6e8182823f8b00b6ddd78625eb310807d 100644 (file)
@@ -26,6 +26,8 @@ include Config
 
 VER        = 0.6.1
 GIT_VER    = 10db11ac
+SUP_ARCHES =
+
 THISAPP    = vdr-streamdev-$(GIT_VER)
 DL_FILE    = $(THISAPP).tar.xz
 
diff --git a/lfs/vdr_vnsiserver5 b/lfs/vdr_vnsiserver5
deleted file mode 100644 (file)
index 0416416..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2013  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.0.0
-THISAPP    = vdr-vnsiserver5-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = vdr_vnsiserver5
-PAK_VER    = 1
-
-DEPS       = "vdr"
-
-VDRPLUGVER = 2.0.0
-
-EXTRA_FLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-CFLAGS    += $(EXTRA_FLAGS)
-CXXFLAGS  += $(EXTRA_FLAGS)
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE)  = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5  = 3d1a0b21d11187e43a56f9e4cf7cb1c9
-
-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) && make $(MAKE_TUNING) LIBDIR=. VDRDIR=/usr/lib/vdr \
-               CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" \
-               LOCALEDIR=$$(pwd)/locale all
-
-       -mkdir -pv /etc/vdr/plugins/vnsiserver5
-       cd $(DIR_APP) && install -m 755 libvdr-vnsiserver5.so \
-               /usr/lib/vdr/libvdr-vnsiserver5.so.$(VDRPLUGVER)
-       ln -svf ../../svdrphosts.conf /etc/vdr/plugins/vnsiserver5/allowed_hosts.conf
-       install -m 644 $(DIR_SRC)/config/vdr/plugins.d/vnsiserver5.conf \
-               /etc/sysconfig/vdr-plugins.d
-
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index b38ecca4d1e89d42784abe24701e282dce93b610..bca5c58357172c48a57f51098d5198bee76c920e 100644 (file)
@@ -81,6 +81,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        export "LANG=de_DE"
        cp $(DIR_SRC)/config/vdradmin/install-ipfire.sh $(DIR_APP)/
        cd $(DIR_APP) && ./install-ipfire.sh
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,vdradmin)
+
        install -v -m 644 $(DIR_SRC)/config/vdradmin/vdradmind.conf \
                 /etc/vdradmin/vdradmind.conf
        mkdir -pv /var/log/vdradmin
index 1c1333b536edc1ba35b3af0761028d987b37a92d..376a1e99971f2b2ad45ae39c9d1905bacd2935a7 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2017  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.11
+VER        = 1.17
 
 THISAPP    = vnstat-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a5a113f9176cd61fb954f2ba297f5fdb
+$(DL_FILE)_MD5 = 8de1c7e40806509943804bb4b26f5409
 
 install : $(TARGET)
 
@@ -73,9 +73,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) && make all $(MAKETUNING)                                                                         LOCAL_CONFIGURE_OPTIONS="--enable-readline=yes"
+
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --sysconfdir=/etc
+
+       cd $(DIR_APP) && make all $(MAKETUNING)         LOCAL_CONFIGURE_OPTIONS="--enable-readline=yes"
        cd $(DIR_APP) && make install
        sed -i 's|eth0|green0|g' /etc/vnstat.conf
        sed -i 's|/var/lib/vnstat|/var/log/vnstat|g' /etc/vnstat.conf
+       sed -i 's|/var/log/vnstat/vnstat.log|/var/log/vnstat.log|g' /etc/vnstat.conf
+       sed -i 's|/var/run/vnstat/vnstat.pid|/var/run/vnstat.pid|g' /etc/vnstat.conf
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 7284be96150a4987b7a812b3b30a08fd42c7d9f9..07dda3098580e52b1c0e3837a6c3e1fdc8f09bdb 100644 (file)
@@ -87,6 +87,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && install -v -m 644 vsftpd.conf.5 /usr/share/man/man5
        cd $(DIR_APP) && install -v -m 644 $(DIR_SRC)/config/vsftpd/vsftpd.conf /etc
        cd $(DIR_APP) && install -v -m 644 $(DIR_SRC)/config/vsftpd/vsftpd.user_list /etc
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,vsftpd)
+
        ln -sf ../init.d/vsftpd /etc/rc.d/rc3.d/S65vsftpd
        ln -sf ../init.d/vsftpd /etc/rc.d/rc0.d/K35vsftpd
        ln -sf ../init.d/vsftpd /etc/rc.d/rc6.d/K35vsftpd
index 70bf6921ea5ae6ea5487a95db9828a9714ddfb08..9bef907287f11fb858b8d5f5cb65f5597f13bf9c 100644 (file)
@@ -80,6 +80,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,watchdog)
        install -v -m 644 $(DIR_SRC)/config/backup/includes/watchdog \
                         /var/ipfire/backup/addons/includes/watchdog 
        @rm -rf $(DIR_APP)
index baf4df06944fdc0da33e8a2e1cd7528ad0287904..8d3d13c2755caef9e61c8f34d04d9bad7140fd97 100644 (file)
--- a/lfs/wget
+++ b/lfs/wget
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.19
+VER        = 1.19.1
 
 THISAPP    = wget-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 1814393c5955a6148ff6d82c4a9e3c21
+$(DL_FILE)_MD5 = d30d82186b93fcabb4116ff513bfa9bd
 
 install : $(TARGET)
 
index d5a747bcd370cc770a15429f741d9edcf9dd315b..78c242bf82829efae53d8adc5f94339861c8bdad 100644 (file)
@@ -47,7 +47,7 @@ md5 :
 ###############################################################################
 # Installation Details
 ###############################################################################
-IMGinst  := /install/images/$(SNAME)-$(VERSION).xen.$(MACHINE)-downloader-core$(CORE).tar.bz2
+IMGinst  := /install/images/$(SNAME)-$(VERSION).xen.$(BUILD_ARCH)-downloader-core$(CORE).tar.bz2
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        rm -rf /install/images/$(SNAME) $(IMGinst) && mkdir -p /install/images/$(SNAME)
index 62f34eabba3bd50ad9456337de59971ebe8a09dd..42d9288abcf6b98865865c3974072ac9752e757f 100644 (file)
@@ -81,5 +81,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && make install
        -mkdir -pv /etc/xinetd.d
        cp -f $(DIR_SRC)/config/xinetd/xinetd.conf /etc/xinetd.conf
+
+       #install initscripts
+       $(call INSTALL_INITSCRIPT,xinetd)
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index 7351b5ad9523b1547bf6c97b3af383df2c7e24d3..89c3e56cafaba1c0df9b6fc3f6501ce10e755507 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -25,8 +25,8 @@
 NAME="IPFire"                                                  # Software name
 SNAME="ipfire"                                                 # Short name
 VERSION="2.19"                                                 # Version number
-CORE="109"                                                     # Core Level (Filename)
-PAKFIRE_CORE="109"                                             # Core Level (PAKFIRE)
+CORE="112"                                                     # Core Level (Filename)
+PAKFIRE_CORE="112"                                             # Core Level (PAKFIRE)
 GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`                   # Git Branch
 SLOGAN="www.ipfire.org"                                                # Software slogan
 CONFIG_ROOT=/var/ipfire                                                # Configuration rootdir
@@ -36,11 +36,11 @@ BUILD_IMAGES=1                                                      # Flash and Xen Downloader
 KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
 GIT_TAG=$(git tag | tail -1)                                   # Git Tag
 GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit
-TOOLCHAINVER=12
+
+TOOLCHAINVER=20170705
 
 # New architecture variables
-BUILD_ARCH="$(uname -m)"
-BUILDMACHINE="${BUILD_ARCH}"
+HOST_ARCH="$(uname -m)"
 
 # Debian specific settings
 if [ ! -e /etc/debian_version ]; then
@@ -69,10 +69,13 @@ if [ -f .config ]; then
        . .config
 fi
 
-if [ -n "${TARGET_ARCH}" ]; then
-       configure_target "${TARGET_ARCH}"
+if [ -n "${BUILD_ARCH}" ]; then
+       configure_build "${BUILD_ARCH}"
+elif [ -n "${TARGET_ARCH}" ]; then
+       configure_build "${TARGET_ARCH}"
+       unset TARGET_ARCH
 else
-       configure_target "default"
+       configure_build "default"
 fi
 
 if [ -z $EDITOR ]; then
@@ -221,13 +224,13 @@ prepareenv() {
     # Run LFS static binary creation scripts one by one
     export CCACHE_DIR=$BASEDIR/ccache
     export CCACHE_COMPRESS=1
-    export CCACHE_COMPILERCHECK="string:toolchain-${TOOLCHAINVER} ${TARGET_ARCH}"
+    export CCACHE_COMPILERCHECK="string:toolchain-${TOOLCHAINVER} ${BUILD_ARCH}"
 
     # 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
 
     # Prepare string for /etc/system-release.
-    SYSTEM_RELEASE="${NAME} ${VERSION} (${MACHINE})"
+    SYSTEM_RELEASE="${NAME} ${VERSION} (${BUILD_ARCH})"
     if [ "$(git status -s | wc -l)" == "0" ]; then
        GIT_STATUS=""
     else
@@ -245,7 +248,7 @@ prepareenv() {
 
 buildtoolchain() {
     local error=false
-    case "${TARGET_ARCH}:${BUILD_ARCH}" in
+    case "${BUILD_ARCH}:${HOST_ARCH}" in
         # x86_64
         x86_64:x86_64)
              # This is working.
@@ -260,6 +263,10 @@ buildtoolchain() {
             ;;
 
         # ARM
+        arvm7hl:armv7hl|armv7hl:armv7l)
+            # These are working.
+            ;;
+
         armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv6l|armv5tel:armv7l|armv5tel:aarch64)
             # These are working.
             ;;
@@ -269,7 +276,7 @@ buildtoolchain() {
     esac
 
     ${error} && \
-        exiterror "Cannot build ${MACHINE} toolchain on $(uname -m). Please use the download if any."
+        exiterror "Cannot build ${BUILD_ARCH} toolchain on $(uname -m). Please use the download if any."
 
     local gcc=$(type -p gcc)
     if [ -z "${gcc}" ]; then
@@ -279,14 +286,12 @@ buildtoolchain() {
     LOGFILE="$BASEDIR/log/_build.toolchain.log"
     export LOGFILE
 
-    local ORG_PATH=$PATH
-    export PATH="/tools/ccache/bin:/tools/bin:$PATH"
+    lfsmake1 stage1
     lfsmake1 ccache                    PASS=1
     lfsmake1 binutils                  PASS=1
     lfsmake1 gcc                       PASS=1
-    lfsmake1 linux                     TOOLS=1 KCFG="-headers"
+    lfsmake1 linux                     KCFG="-headers"
     lfsmake1 glibc
-    lfsmake1 cleanup-toolchain         PASS=1
     lfsmake1 gcc                       PASS=L
     lfsmake1 binutils                  PASS=2
     lfsmake1 gcc                       PASS=2
@@ -315,8 +320,7 @@ buildtoolchain() {
     lfsmake1 texinfo
     lfsmake1 xz
     lfsmake1 fake-environ
-    lfsmake1 cleanup-toolchain         PASS=2
-    export PATH=$ORG_PATH
+    lfsmake1 cleanup-toolchain
 }
 
 buildbase() {
@@ -327,7 +331,7 @@ buildbase() {
     lfsmake2 man-pages
     lfsmake2 glibc
     lfsmake2 tzdata
-    lfsmake2 cleanup-toolchain         PASS=3
+    lfsmake2 cleanup-toolchain
     lfsmake2 zlib
     lfsmake2 binutils
     lfsmake2 gmp
@@ -337,9 +341,9 @@ buildbase() {
     lfsmake2 file
     lfsmake2 gcc
     lfsmake2 sed
-    lfsmake2 berkeley
     lfsmake2 autoconf
     lfsmake2 automake
+    lfsmake2 berkeley
     lfsmake2 coreutils
     lfsmake2 iana-etc
     lfsmake2 m4
@@ -392,503 +396,504 @@ buildbase() {
 buildipfire() {
   LOGFILE="$BASEDIR/log/_build.ipfire.log"
   export LOGFILE
-  ipfiremake configroot
-  ipfiremake backup
-  ipfiremake pkg-config
-  ipfiremake libusb
-  ipfiremake libusb-compat
-  ipfiremake libpcap
-  ipfiremake ppp
-  ipfiremake pptp
-  ipfiremake unzip
-  ipfiremake which
-  ipfiremake linux-firmware
-  ipfiremake ath10k-firmware
-  ipfiremake dvb-firmwares
-  ipfiremake mt7601u-firmware
-  ipfiremake zd1211-firmware
-  ipfiremake rpi-firmware
-  ipfiremake bc
-  ipfiremake u-boot
-  ipfiremake cpio
-  ipfiremake mdadm
-  ipfiremake dracut
-  ipfiremake lvm2
-  ipfiremake multipath-tools
-  ipfiremake freetype
-  ipfiremake grub
-  ipfiremake libmnl
-  ipfiremake libnfnetlink
-  ipfiremake libnetfilter_queue
-  ipfiremake libnetfilter_conntrack
-  ipfiremake libnetfilter_cthelper
-  ipfiremake libnetfilter_cttimeout
-  ipfiremake iptables
-
-  case "${TARGET_ARCH}" in
+  lfsmake2 configroot
+  lfsmake2 initscripts
+  lfsmake2 backup
+  lfsmake2 pkg-config
+  lfsmake2 libusb
+  lfsmake2 libusb-compat
+  lfsmake2 libpcap
+  lfsmake2 ppp
+  lfsmake2 pptp
+  lfsmake2 unzip
+  lfsmake2 which
+  lfsmake2 linux-firmware
+  lfsmake2 ath10k-firmware
+  lfsmake2 dvb-firmwares
+  lfsmake2 mt7601u-firmware
+  lfsmake2 zd1211-firmware
+  lfsmake2 rpi-firmware
+  lfsmake2 bc
+  lfsmake2 u-boot
+  lfsmake2 cpio
+  lfsmake2 mdadm
+  lfsmake2 dracut
+  lfsmake2 lvm2
+  lfsmake2 multipath-tools
+  lfsmake2 freetype
+  lfsmake2 grub
+  lfsmake2 libmnl
+  lfsmake2 libnfnetlink
+  lfsmake2 libnetfilter_queue
+  lfsmake2 libnetfilter_conntrack
+  lfsmake2 libnetfilter_cthelper
+  lfsmake2 libnetfilter_cttimeout
+  lfsmake2 iptables
+
+  case "${BUILD_ARCH}" in
        x86_64)
-               ipfiremake linux                        KCFG=""
-#              ipfiremake backports                    KCFG=""
-#              ipfiremake e1000e                       KCFG=""
-#              ipfiremake igb                          KCFG=""
-#              ipfiremake ixgbe                        KCFG=""
-               ipfiremake xtables-addons               KCFG=""
-               ipfiremake linux-initrd                 KCFG=""
+               lfsmake2 linux                  KCFG=""
+#              lfsmake2 backports                      KCFG=""
+#              lfsmake2 e1000e                 KCFG=""
+#              lfsmake2 igb                            KCFG=""
+#              lfsmake2 ixgbe                  KCFG=""
+               lfsmake2 xtables-addons         KCFG=""
+               lfsmake2 linux-initrd                   KCFG=""
                ;;
        i586)
                # x86-pae (Native and new XEN) kernel build
-               ipfiremake linux                        KCFG="-pae"
-#              ipfiremake backports                    KCFG="-pae"
-#              ipfiremake e1000e                       KCFG="-pae"
-#              ipfiremake igb                          KCFG="-pae"
-#              ipfiremake ixgbe                        KCFG="-pae"
-               ipfiremake xtables-addons               KCFG="-pae"
-               ipfiremake linux-initrd                 KCFG="-pae"
+               lfsmake2 linux                  KCFG="-pae"
+#              lfsmake2 backports                      KCFG="-pae"
+#              lfsmake2 e1000e                 KCFG="-pae"
+#              lfsmake2 igb                            KCFG="-pae"
+#              lfsmake2 ixgbe                  KCFG="-pae"
+               lfsmake2 xtables-addons         KCFG="-pae"
+               lfsmake2 linux-initrd                   KCFG="-pae"
 
                # x86 kernel build
-               ipfiremake linux                        KCFG=""
-#              ipfiremake backports                    KCFG=""
-#              ipfiremake e1000e                       KCFG=""
-#              ipfiremake igb                          KCFG=""
-#              ipfiremake ixgbe                        KCFG=""
-               ipfiremake xtables-addons               KCFG=""
-               ipfiremake linux-initrd                 KCFG=""
+               lfsmake2 linux                  KCFG=""
+#              lfsmake2 backports                      KCFG=""
+#              lfsmake2 e1000e                 KCFG=""
+#              lfsmake2 igb                            KCFG=""
+#              lfsmake2 ixgbe                  KCFG=""
+               lfsmake2 xtables-addons         KCFG=""
+               lfsmake2 linux-initrd                   KCFG=""
                ;;
 
        armv5tel)
                # arm-rpi (Raspberry Pi) kernel build
-               ipfiremake linux                        KCFG="-rpi"
-               ipfiremake backports                    KCFG="-rpi"
-               ipfiremake xtables-addons               KCFG="-rpi"
-               ipfiremake linux-initrd                 KCFG="-rpi"
+               lfsmake2 linux                  KCFG="-rpi"
+               lfsmake2 backports                      KCFG="-rpi"
+               lfsmake2 xtables-addons         KCFG="-rpi"
+               lfsmake2 linux-initrd                   KCFG="-rpi"
 
                # arm multi platform (Panda, Wandboard ...) kernel build
-               ipfiremake linux                        KCFG="-multi"
-               ipfiremake backports                    KCFG="-multi"
-               ipfiremake e1000e                       KCFG="-multi"
-               ipfiremake igb                          KCFG="-multi"
-               ipfiremake ixgbe                        KCFG="-multi"
-               ipfiremake xtables-addons               KCFG="-multi"
-               ipfiremake linux-initrd                 KCFG="-multi"
+               lfsmake2 linux                  KCFG="-multi"
+               lfsmake2 backports                      KCFG="-multi"
+               lfsmake2 e1000e                 KCFG="-multi"
+               lfsmake2 igb                            KCFG="-multi"
+               lfsmake2 ixgbe                  KCFG="-multi"
+               lfsmake2 xtables-addons         KCFG="-multi"
+               lfsmake2 linux-initrd                   KCFG="-multi"
 
                # arm-kirkwood (Dreamplug, ICY-Box ...) kernel build
-               ipfiremake linux                        KCFG="-kirkwood"
-               ipfiremake backports                    KCFG="-kirkwood"
-               ipfiremake e1000e                       KCFG="-kirkwood"
-               ipfiremake igb                          KCFG="-kirkwood"
-               ipfiremake ixgbe                        KCFG="-kirkwood"
-               ipfiremake xtables-addons               KCFG="-kirkwood"
-               ipfiremake linux-initrd                 KCFG="-kirkwood"
+               lfsmake2 linux                  KCFG="-kirkwood"
+               lfsmake2 backports                      KCFG="-kirkwood"
+               lfsmake2 e1000e                 KCFG="-kirkwood"
+               lfsmake2 igb                            KCFG="-kirkwood"
+               lfsmake2 ixgbe                  KCFG="-kirkwood"
+               lfsmake2 xtables-addons         KCFG="-kirkwood"
+               lfsmake2 linux-initrd                   KCFG="-kirkwood"
                ;;
   esac
-  ipfiremake xtables-addons                    USPACE="1"
-  ipfiremake openssl
-  [ "${TARGET_ARCH}" = "i586" ] && ipfiremake openssl KCFG='-sse2'
-  ipfiremake libgpg-error
-  ipfiremake libgcrypt
-  ipfiremake libassuan
-  ipfiremake bind
-  ipfiremake dhcp
-  ipfiremake dhcpcd
-  ipfiremake boost
-  ipfiremake linux-atm
-  ipfiremake expat
-  ipfiremake gdbm
-  ipfiremake pam
-  ipfiremake curl
-  ipfiremake tcl
-  ipfiremake sqlite
-  ipfiremake libffi
-  ipfiremake python
-  ipfiremake python3
-  ipfiremake ca-certificates
-  ipfiremake fireinfo
-  ipfiremake libnet
-  ipfiremake libnl
-  ipfiremake libnl-3
-  ipfiremake libidn
-  ipfiremake nasm
-  ipfiremake libjpeg
-  ipfiremake libjpeg-compat
-  ipfiremake libexif
-  ipfiremake libpng
-  ipfiremake libtiff
-  ipfiremake libart
-  ipfiremake gd
-  ipfiremake popt
-  ipfiremake pcre
-  ipfiremake slang
-  ipfiremake newt
-  ipfiremake libsmooth
-  ipfiremake attr
-  ipfiremake acl
-  ipfiremake libcap
-  ipfiremake pciutils
-  ipfiremake usbutils
-  ipfiremake libxml2
-  ipfiremake libxslt
-  ipfiremake BerkeleyDB
-  ipfiremake mysql
-  ipfiremake cyrus-sasl
-  ipfiremake openldap
-  ipfiremake apache2
-  ipfiremake php
-  ipfiremake web-user-interface
-  ipfiremake flag-icons
-  ipfiremake jquery
-  ipfiremake arping
-  ipfiremake beep
-  ipfiremake dvdrtools
-  ipfiremake nettle
-  ipfiremake libevent
-  ipfiremake libevent2
-  ipfiremake unbound
-  ipfiremake dosfstools
-  ipfiremake reiserfsprogs
-  ipfiremake xfsprogs
-  ipfiremake sysfsutils
-  ipfiremake fuse
-  ipfiremake ntfs-3g
-  ipfiremake ethtool
-  ipfiremake ez-ipupdate
-  ipfiremake fcron
-  ipfiremake perl-GD
-  ipfiremake GD-Graph
-  ipfiremake GD-TextUtil
-  ipfiremake perl-Device-SerialPort
-  ipfiremake perl-Device-Modem
-  ipfiremake perl-Apache-Htpasswd
-  ipfiremake gnupg
-  ipfiremake hdparm
-  ipfiremake sdparm
-  ipfiremake mtools
-  ipfiremake initscripts
-  ipfiremake whatmask
-  ipfiremake conntrack-tools
-  ipfiremake libupnp
-  ipfiremake ipaddr
-  ipfiremake iputils
-  ipfiremake l7-protocols
-  ipfiremake mISDNuser
-  ipfiremake capi4k-utils
-  ipfiremake hwdata
-  ipfiremake logrotate
-  ipfiremake logwatch
-  ipfiremake misc-progs
-  ipfiremake nano
-  ipfiremake URI
-  ipfiremake HTML-Tagset
-  ipfiremake HTML-Parser
-  ipfiremake HTML-Template
-  ipfiremake Compress-Zlib
-  ipfiremake Digest
-  ipfiremake Digest-SHA1
-  ipfiremake Digest-HMAC
-  ipfiremake libwww-perl
-  ipfiremake Net-DNS
-  ipfiremake Net-IPv4Addr
-  ipfiremake Net_SSLeay
-  ipfiremake IO-Stringy
-  ipfiremake IO-Socket-SSL
-  ipfiremake Unix-Syslog
-  ipfiremake Mail-Tools
-  ipfiremake MIME-Tools
-  ipfiremake Net-Server
-  ipfiremake Convert-TNEF
-  ipfiremake Convert-UUlib
-  ipfiremake Archive-Tar
-  ipfiremake Archive-Zip
-  ipfiremake Text-Tabs+Wrap
-  ipfiremake Locale-Country
-  ipfiremake XML-Parser
-  ipfiremake Crypt-PasswdMD5
-  ipfiremake Net-Telnet
-  ipfiremake python-setuptools
-  ipfiremake python-clientform
-  ipfiremake python-mechanize
-  ipfiremake python-feedparser
-  ipfiremake python-rssdler
-  ipfiremake python-inotify
-  ipfiremake python-docutils
-  ipfiremake python-daemon
-  ipfiremake python-ipaddress
-  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
-  ipfiremake libdnet
-  ipfiremake daq
-  ipfiremake snort
-  ipfiremake oinkmaster
-  ipfiremake squid
-  ipfiremake squidguard
-  ipfiremake calamaris
-  ipfiremake tcpdump
-  ipfiremake traceroute
-  ipfiremake vlan
-  ipfiremake wireless
-  ipfiremake pakfire
-  ipfiremake spandsp
-  ipfiremake lzo
-  ipfiremake openvpn
-  ipfiremake pammysql
-  ipfiremake mpage
-  ipfiremake dbus
-  ipfiremake cups
-  ipfiremake ghostscript
-  ipfiremake foomatic
-  ipfiremake hplip
-  ipfiremake cifs-utils
-  ipfiremake krb5
-  ipfiremake samba
-  ipfiremake sudo
-  ipfiremake mc
-  ipfiremake wget
-  ipfiremake bridge-utils
-  ipfiremake screen
-  ipfiremake smartmontools
-  ipfiremake htop
-  ipfiremake chkconfig
-  ipfiremake postfix
-  ipfiremake fetchmail
-  ipfiremake cyrus-imapd
-  ipfiremake openmailadmin
-  ipfiremake clamav
-  ipfiremake spamassassin
-  ipfiremake amavisd
-  ipfiremake dma
-  ipfiremake alsa
-  ipfiremake mpfire
-  ipfiremake guardian
-  ipfiremake libid3tag
-  ipfiremake libmad
-  ipfiremake libogg
-  ipfiremake libvorbis
-  ipfiremake libdvbpsi
-  ipfiremake flac
-  ipfiremake lame
-  ipfiremake sox
-  ipfiremake libshout
-  ipfiremake xvid
-  ipfiremake libmpeg2
-  ipfiremake libarchive
-  ipfiremake cmake
-  ipfiremake gnump3d
-  ipfiremake rsync
-  ipfiremake tcpwrapper
-  ipfiremake libtirpc
-  ipfiremake rpcbind
-  ipfiremake nfs
-  ipfiremake gnu-netcat
-  ipfiremake ncat
-  ipfiremake nmap
-  ipfiremake ncftp
-  ipfiremake etherwake
-  ipfiremake bwm-ng
-  ipfiremake sysstat
-  ipfiremake vsftpd
-  ipfiremake strongswan
-  ipfiremake rng-tools
-  ipfiremake lsof
-  ipfiremake br2684ctl
-  ipfiremake pcmciautils
-  ipfiremake lm_sensors
-  ipfiremake liboping
-  ipfiremake collectd
-  ipfiremake elinks
-  ipfiremake igmpproxy
-  ipfiremake fbset
-  ipfiremake opus
-  ipfiremake python-six
-  ipfiremake python-pyparsing
-  ipfiremake spice-protocol
-  ipfiremake spice
-  ipfiremake sdl
-  ipfiremake libusbredir
-  ipfiremake qemu
-  ipfiremake sane
-  ipfiremake netpbm
-  ipfiremake phpSANE
-  ipfiremake tunctl
-  ipfiremake netsnmpd
-  ipfiremake nagios
-  ipfiremake nagios_nrpe
-  ipfiremake icinga
-  ipfiremake ebtables
-  ipfiremake directfb
-  ipfiremake dfb++
-  ipfiremake faad2
-  ipfiremake ffmpeg
-  ipfiremake vdr
-  ipfiremake vdr_streamdev
-  ipfiremake vdr_vnsiserver5
-  ipfiremake vdr_epgsearch
-  ipfiremake vdr_dvbapi
-  ipfiremake vdr_eepg
-  ipfiremake w_scan
-  ipfiremake icecast
-  ipfiremake icegenerator
-  ipfiremake mpd
-  ipfiremake libmpdclient
-  ipfiremake mpc
-  ipfiremake perl-Net-SMTP-SSL
-  ipfiremake perl-MIME-Base64
-  ipfiremake perl-Authen-SASL
-  ipfiremake perl-MIME-Lite
-  ipfiremake perl-Email-Date-Format
-  ipfiremake git
-  ipfiremake squidclamav
-  ipfiremake vnstat
-  ipfiremake iw
-  ipfiremake wpa_supplicant
-  ipfiremake hostapd
-  ipfiremake pycurl
-  ipfiremake urlgrabber
-  ipfiremake syslinux
-  ipfiremake tftpd
-  ipfiremake cpufrequtils
-  ipfiremake bluetooth
-  ipfiremake gutenprint
-  ipfiremake apcupsd
-  ipfiremake iperf
-  ipfiremake iperf3
-  ipfiremake 7zip
-  ipfiremake lynis
-  ipfiremake streamripper
-  ipfiremake sshfs
-  ipfiremake taglib
-  #ipfiremake mediatomb
-  ipfiremake sslh
-  ipfiremake perl-gettext
-  ipfiremake perl-Sort-Naturally
-  ipfiremake vdradmin
-  ipfiremake miau
-  ipfiremake perl-DBI
-  ipfiremake perl-DBD-mysql
-  ipfiremake perl-DBD-SQLite
-  ipfiremake perl-File-ReadBackwards
-  ipfiremake cacti
-  ipfiremake openvmtools
-  ipfiremake nagiosql
-  ipfiremake iftop
-  ipfiremake motion
-  ipfiremake joe
-  ipfiremake monit
-  ipfiremake nut
-  ipfiremake watchdog
-  ipfiremake libpri
-  ipfiremake libsrtp
-  ipfiremake asterisk
-  ipfiremake lcr
-  ipfiremake usb_modeswitch
-  ipfiremake usb_modeswitch_data
-  ipfiremake zerofree
-  ipfiremake pound
-  ipfiremake minicom
-  ipfiremake ddrescue
-  ipfiremake imspector
-  ipfiremake miniupnpd
-  ipfiremake client175
-  ipfiremake powertop
-  ipfiremake parted
-  ipfiremake swig
-  ipfiremake python-m2crypto
-  ipfiremake wireless-regdb
-  ipfiremake crda
-  ipfiremake libsolv
-  ipfiremake python-distutils-extra
-  ipfiremake python-lzma
-  ipfiremake python-progressbar
-  ipfiremake python-xattr
-  ipfiremake intltool
-  ipfiremake ddns
-  ipfiremake transmission
-  ipfiremake dpfhack
-  ipfiremake lcd4linux
-  ipfiremake mtr
-  ipfiremake tcpick
-  ipfiremake minidlna
-  ipfiremake acpid
-  ipfiremake fping
-  ipfiremake telnet
-  ipfiremake xinetd
-  ipfiremake gpgme
-  ipfiremake pygpgme
-  ipfiremake pakfire3
-  ipfiremake stress
-  ipfiremake libstatgrab
-  ipfiremake sarg
-  ipfiremake check_mk_agent
-  ipfiremake libdaemon
-  ipfiremake avahi
-  ipfiremake nginx
-  ipfiremake sendEmail
-  ipfiremake sysbench
-  ipfiremake strace
-  ipfiremake ipfire-netboot
-  ipfiremake lcdproc
-  ipfiremake bitstream
-  ipfiremake multicat
-  ipfiremake keepalived
-  ipfiremake ipvsadm
-  ipfiremake perl-Carp-Clan
-  ipfiremake perl-Date-Calc
-  ipfiremake perl-Date-Manip
-  ipfiremake perl-File-Tail
-  ipfiremake perl-TimeDate
-  ipfiremake swatch
-  ipfiremake tor
-  ipfiremake arm
-  ipfiremake wavemon
-  ipfiremake iptraf-ng
-  ipfiremake iotop
-  ipfiremake stunnel
-  ipfiremake sslscan
-  ipfiremake owncloud
-  ipfiremake bacula
-  ipfiremake batctl
-  ipfiremake perl-PDF-API2
-  ipfiremake squid-accounting
-  ipfiremake pigz
-  ipfiremake tmux
-  ipfiremake perl-Text-CSV_XS
-  ipfiremake swconfig
-  ipfiremake haproxy
-  ipfiremake ipset
-  ipfiremake lua
-  ipfiremake dnsdist
-  ipfiremake bird
-  ipfiremake dmidecode
-  ipfiremake mcelog
-  ipfiremake rtpproxy
-  ipfiremake util-macros
-  ipfiremake libpciaccess
-  ipfiremake libyajl
-  ipfiremake libvirt
-  ipfiremake freeradius
-  ipfiremake perl-common-sense
-  ipfiremake perl-inotify2
-  ipfiremake perl-Net-IP
+  lfsmake2 xtables-addons                      USPACE="1"
+  lfsmake2 openssl
+  [ "${BUILD_ARCH}" = "i586" ] && lfsmake2 openssl KCFG='-sse2'
+  lfsmake2 libgpg-error
+  lfsmake2 libgcrypt
+  lfsmake2 libassuan
+  lfsmake2 nettle
+  lfsmake2 libevent
+  lfsmake2 libevent2
+  lfsmake2 libevent2-compat
+  lfsmake2 expat
+  lfsmake2 unbound
+  lfsmake2 gnutls
+  lfsmake2 bind
+  lfsmake2 dhcp
+  lfsmake2 dhcpcd
+  lfsmake2 boost
+  lfsmake2 linux-atm
+  lfsmake2 gdbm
+  lfsmake2 pam
+  lfsmake2 curl
+  lfsmake2 tcl
+  lfsmake2 sqlite
+  lfsmake2 libffi
+  lfsmake2 python
+  lfsmake2 python3
+  lfsmake2 ca-certificates
+  lfsmake2 fireinfo
+  lfsmake2 libnet
+  lfsmake2 libnl
+  lfsmake2 libnl-3
+  lfsmake2 libidn
+  lfsmake2 nasm
+  lfsmake2 libjpeg
+  lfsmake2 libjpeg-compat
+  lfsmake2 libexif
+  lfsmake2 libpng
+  lfsmake2 libtiff
+  lfsmake2 libart
+  lfsmake2 gd
+  lfsmake2 popt
+  lfsmake2 slang
+  lfsmake2 newt
+  lfsmake2 libsmooth
+  lfsmake2 attr
+  lfsmake2 acl
+  lfsmake2 libcap
+  lfsmake2 pciutils
+  lfsmake2 usbutils
+  lfsmake2 libxml2
+  lfsmake2 libxslt
+  lfsmake2 BerkeleyDB
+  lfsmake2 mysql
+  lfsmake2 cyrus-sasl
+  lfsmake2 openldap
+  lfsmake2 apache2
+  lfsmake2 php
+  lfsmake2 web-user-interface
+  lfsmake2 flag-icons
+  lfsmake2 jquery
+  lfsmake2 arping
+  lfsmake2 beep
+  lfsmake2 dvdrtools
+  lfsmake2 dosfstools
+  lfsmake2 reiserfsprogs
+  lfsmake2 xfsprogs
+  lfsmake2 sysfsutils
+  lfsmake2 fuse
+  lfsmake2 ntfs-3g
+  lfsmake2 ethtool
+  lfsmake2 ez-ipupdate
+  lfsmake2 fcron
+  lfsmake2 perl-GD
+  lfsmake2 GD-Graph
+  lfsmake2 GD-TextUtil
+  lfsmake2 perl-Device-SerialPort
+  lfsmake2 perl-Device-Modem
+  lfsmake2 perl-Apache-Htpasswd
+  lfsmake2 gnupg
+  lfsmake2 hdparm
+  lfsmake2 sdparm
+  lfsmake2 mtools
+  lfsmake2 whatmask
+  lfsmake2 conntrack-tools
+  lfsmake2 libupnp
+  lfsmake2 ipaddr
+  lfsmake2 iputils
+  lfsmake2 l7-protocols
+  lfsmake2 mISDNuser
+  lfsmake2 capi4k-utils
+  lfsmake2 hwdata
+  lfsmake2 logrotate
+  lfsmake2 logwatch
+  lfsmake2 misc-progs
+  lfsmake2 nano
+  lfsmake2 URI
+  lfsmake2 HTML-Tagset
+  lfsmake2 HTML-Parser
+  lfsmake2 HTML-Template
+  lfsmake2 Compress-Zlib
+  lfsmake2 Digest
+  lfsmake2 Digest-SHA1
+  lfsmake2 Digest-HMAC
+  lfsmake2 libwww-perl
+  lfsmake2 Net-DNS
+  lfsmake2 Net-IPv4Addr
+  lfsmake2 Net_SSLeay
+  lfsmake2 IO-Stringy
+  lfsmake2 IO-Socket-SSL
+  lfsmake2 Unix-Syslog
+  lfsmake2 Mail-Tools
+  lfsmake2 MIME-Tools
+  lfsmake2 Net-Server
+  lfsmake2 Convert-TNEF
+  lfsmake2 Convert-UUlib
+  lfsmake2 Archive-Tar
+  lfsmake2 Archive-Zip
+  lfsmake2 Text-Tabs+Wrap
+  lfsmake2 Locale-Country
+  lfsmake2 XML-Parser
+  lfsmake2 Crypt-PasswdMD5
+  lfsmake2 Net-Telnet
+  lfsmake2 python-setuptools
+  lfsmake2 python-clientform
+  lfsmake2 python-mechanize
+  lfsmake2 python-feedparser
+  lfsmake2 python-rssdler
+  lfsmake2 python-inotify
+  lfsmake2 python-docutils
+  lfsmake2 python-daemon
+  lfsmake2 python-ipaddress
+  lfsmake2 glib
+  lfsmake2 GeoIP
+  lfsmake2 noip_updater
+  lfsmake2 ntp
+  lfsmake2 openssh
+  lfsmake2 fontconfig
+  lfsmake2 dejavu-fonts-ttf
+  lfsmake2 freefont
+  lfsmake2 pixman
+  lfsmake2 cairo
+  lfsmake2 pango
+  lfsmake2 rrdtool
+  lfsmake2 setserial
+  lfsmake2 setup
+  lfsmake2 libdnet
+  lfsmake2 daq
+  lfsmake2 snort
+  lfsmake2 oinkmaster
+  lfsmake2 squid
+  lfsmake2 squidguard
+  lfsmake2 calamaris
+  lfsmake2 tcpdump
+  lfsmake2 traceroute
+  lfsmake2 vlan
+  lfsmake2 wireless
+  lfsmake2 pakfire
+  lfsmake2 spandsp
+  lfsmake2 lzo
+  lfsmake2 openvpn
+  lfsmake2 pammysql
+  lfsmake2 mpage
+  lfsmake2 dbus
+  lfsmake2 intltool
+  lfsmake2 libdaemon
+  lfsmake2 cups
+  lfsmake2 lcms2
+  lfsmake2 ghostscript
+  lfsmake2 qpdf
+  lfsmake2 poppler
+  lfsmake2 cups-filters
+  lfsmake2 epson-inkjet-printer-escpr
+  lfsmake2 foomatic
+  lfsmake2 hplip
+  lfsmake2 cifs-utils
+  lfsmake2 krb5
+  lfsmake2 samba
+  lfsmake2 sudo
+  lfsmake2 mc
+  lfsmake2 wget
+  lfsmake2 bridge-utils
+  lfsmake2 screen
+  lfsmake2 smartmontools
+  lfsmake2 htop
+  lfsmake2 chkconfig
+  lfsmake2 postfix
+  lfsmake2 fetchmail
+  lfsmake2 cyrus-imapd
+  lfsmake2 openmailadmin
+  lfsmake2 clamav
+  lfsmake2 spamassassin
+  lfsmake2 amavisd
+  lfsmake2 dma
+  lfsmake2 alsa
+  lfsmake2 mpfire
+  lfsmake2 guardian
+  lfsmake2 libid3tag
+  lfsmake2 libmad
+  lfsmake2 libogg
+  lfsmake2 libvorbis
+  lfsmake2 libdvbpsi
+  lfsmake2 flac
+  lfsmake2 lame
+  lfsmake2 sox
+  lfsmake2 libshout
+  lfsmake2 xvid
+  lfsmake2 libmpeg2
+  lfsmake2 libarchive
+  lfsmake2 cmake
+  lfsmake2 gnump3d
+  lfsmake2 rsync
+  lfsmake2 tcpwrapper
+  lfsmake2 libtirpc
+  lfsmake2 rpcbind
+  lfsmake2 nfs
+  lfsmake2 gnu-netcat
+  lfsmake2 ncat
+  lfsmake2 nmap
+  lfsmake2 etherwake
+  lfsmake2 bwm-ng
+  lfsmake2 sysstat
+  lfsmake2 vsftpd
+  lfsmake2 strongswan
+  lfsmake2 rng-tools
+  lfsmake2 lsof
+  lfsmake2 br2684ctl
+  lfsmake2 pcmciautils
+  lfsmake2 lm_sensors
+  lfsmake2 liboping
+  lfsmake2 collectd
+  lfsmake2 elinks
+  lfsmake2 igmpproxy
+  lfsmake2 fbset
+  lfsmake2 opus
+  lfsmake2 python-six
+  lfsmake2 python-pyparsing
+  lfsmake2 spice-protocol
+  lfsmake2 spice
+  lfsmake2 sdl
+  lfsmake2 libusbredir
+  lfsmake2 qemu
+  lfsmake2 sane
+  lfsmake2 netpbm
+  lfsmake2 phpSANE
+  lfsmake2 tunctl
+  lfsmake2 netsnmpd
+  lfsmake2 nagios
+  lfsmake2 nagios_nrpe
+  lfsmake2 icinga
+  lfsmake2 ebtables
+  lfsmake2 directfb
+  lfsmake2 faad2
+  lfsmake2 ffmpeg
+  lfsmake2 vdr
+  lfsmake2 vdr_streamdev
+  lfsmake2 vdr_epgsearch
+  lfsmake2 vdr_dvbapi
+  lfsmake2 vdr_eepg
+  lfsmake2 w_scan
+  lfsmake2 icecast
+  lfsmake2 icegenerator
+  lfsmake2 mpd
+  lfsmake2 libmpdclient
+  lfsmake2 mpc
+  lfsmake2 perl-Net-SMTP-SSL
+  lfsmake2 perl-MIME-Base64
+  lfsmake2 perl-Authen-SASL
+  lfsmake2 perl-MIME-Lite
+  lfsmake2 perl-Email-Date-Format
+  lfsmake2 git
+  lfsmake2 squidclamav
+  lfsmake2 vnstat
+  lfsmake2 iw
+  lfsmake2 wpa_supplicant
+  lfsmake2 hostapd
+  lfsmake2 pycurl
+  lfsmake2 urlgrabber
+  lfsmake2 syslinux
+  lfsmake2 tftpd
+  lfsmake2 cpufrequtils
+  lfsmake2 bluetooth
+  lfsmake2 gutenprint
+  lfsmake2 apcupsd
+  lfsmake2 iperf
+  lfsmake2 iperf3
+  lfsmake2 7zip
+  lfsmake2 lynis
+  lfsmake2 streamripper
+  lfsmake2 sshfs
+  lfsmake2 taglib
+  #lfsmake2 mediatomb
+  lfsmake2 sslh
+  lfsmake2 perl-gettext
+  lfsmake2 perl-Sort-Naturally
+  lfsmake2 vdradmin
+  lfsmake2 miau
+  lfsmake2 perl-DBI
+  lfsmake2 perl-DBD-mysql
+  lfsmake2 perl-DBD-SQLite
+  lfsmake2 perl-File-ReadBackwards
+  lfsmake2 cacti
+  lfsmake2 openvmtools
+  lfsmake2 nagiosql
+  lfsmake2 motion
+  lfsmake2 joe
+  lfsmake2 monit
+  lfsmake2 nut
+  lfsmake2 watchdog
+  lfsmake2 libpri
+  lfsmake2 libsrtp
+  lfsmake2 asterisk
+  lfsmake2 lcr
+  lfsmake2 usb_modeswitch
+  lfsmake2 usb_modeswitch_data
+  lfsmake2 zerofree
+  lfsmake2 pound
+  lfsmake2 minicom
+  lfsmake2 ddrescue
+  lfsmake2 miniupnpd
+  lfsmake2 client175
+  lfsmake2 powertop
+  lfsmake2 parted
+  lfsmake2 swig
+  lfsmake2 python-m2crypto
+  lfsmake2 wireless-regdb
+  lfsmake2 crda
+  lfsmake2 libsolv
+  lfsmake2 python-distutils-extra
+  lfsmake2 python-lzma
+  lfsmake2 python-progressbar
+  lfsmake2 python-xattr
+  lfsmake2 ddns
+  lfsmake2 transmission
+  lfsmake2 dpfhack
+  lfsmake2 lcd4linux
+  lfsmake2 mtr
+  lfsmake2 minidlna
+  lfsmake2 acpid
+  lfsmake2 fping
+  lfsmake2 telnet
+  lfsmake2 xinetd
+  lfsmake2 gpgme
+  lfsmake2 pygpgme
+  lfsmake2 pakfire3
+  lfsmake2 stress
+  lfsmake2 libstatgrab
+  lfsmake2 sarg
+  lfsmake2 check_mk_agent
+  lfsmake2 nginx
+  lfsmake2 sendEmail
+  lfsmake2 sysbench
+  lfsmake2 strace
+  lfsmake2 elfutils
+  lfsmake2 ltrace
+  lfsmake2 ipfire-netboot
+  lfsmake2 lcdproc
+  lfsmake2 bitstream
+  lfsmake2 multicat
+  lfsmake2 keepalived
+  lfsmake2 ipvsadm
+  lfsmake2 perl-Carp-Clan
+  lfsmake2 perl-Date-Calc
+  lfsmake2 perl-Date-Manip
+  lfsmake2 perl-File-Tail
+  lfsmake2 perl-TimeDate
+  lfsmake2 swatch
+  lfsmake2 tor
+  lfsmake2 arm
+  lfsmake2 wavemon
+  lfsmake2 iptraf-ng
+  lfsmake2 iotop
+  lfsmake2 stunnel
+  lfsmake2 sslscan
+  lfsmake2 owncloud
+  lfsmake2 bacula
+  lfsmake2 batctl
+  lfsmake2 perl-PDF-API2
+  lfsmake2 squid-accounting
+  lfsmake2 pigz
+  lfsmake2 tmux
+  lfsmake2 perl-Text-CSV_XS
+  lfsmake2 swconfig
+  lfsmake2 haproxy
+  lfsmake2 ipset
+  lfsmake2 lua
+  lfsmake2 dnsdist
+  lfsmake2 bird
+  lfsmake2 dmidecode
+  lfsmake2 mcelog
+  lfsmake2 rtpproxy
+  lfsmake2 util-macros
+  lfsmake2 libpciaccess
+  lfsmake2 libyajl
+  lfsmake2 libvirt
+  lfsmake2 python3-libvirt
+  lfsmake2 freeradius
+  lfsmake2 perl-common-sense
+  lfsmake2 perl-inotify2
+  lfsmake2 perl-Net-IP
 }
 
 buildinstaller() {
   # Run installer scripts one by one
   LOGFILE="$BASEDIR/log/_build.installer.log"
   export LOGFILE
-  ipfiremake memtest
-  ipfiremake installer
-  installmake strip
+  lfsmake2 memtest
+  lfsmake2 installer
+  lfsmake1 strip
 }
 
 buildpackages() {
@@ -919,26 +924,26 @@ buildpackages() {
   git log -n 500 --no-merges --pretty=medium --shortstat $EXT > $BASEDIR/doc/ChangeLog
 
   # Create images for install
-  ipfiremake cdrom
+  lfsmake2 cdrom
 
   # Check if there is a loop device for building in virtual environments
   modprobe loop 2>/dev/null
   if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ] || [ -e "/dev/loop-control" ]); then
-       ipfiremake flash-images
-       ipfiremake flash-images SCON=1
+       lfsmake2 flash-images
+       lfsmake2 flash-images SCON=1
   fi
 
   mv $LFS/install/images/{*.iso,*.tgz,*.img.gz,*.bz2} $BASEDIR >> $LOGFILE 2>&1
 
   ipfirepackages
 
-  ipfiremake xen-image
+  lfsmake2 xen-image
   mv $LFS/install/images/*.bz2 $BASEDIR >> $LOGFILE 2>&1
 
   cd $BASEDIR
 
   # remove not useable iso on armv5tel (needed to build flash images)
-  [ "${TARGET_ARCH}" = "armv5tel" ] && rm -rf *.iso
+  [ "${BUILD_ARCH}" = "armv5tel" ] && rm -rf *.iso
 
   for i in `ls *.bz2 *.img.gz *.iso`; do
        md5sum $i > $i.md5
@@ -966,10 +971,10 @@ buildpackages() {
 }
 
 ipfirepackages() {
-       ipfiremake core-updates
+       lfsmake2 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{/${BUILD_ARCH},} -maxdepth 1 -type f); do
                i=$(basename ${i})
                if [ -e $BASEDIR/lfs/$i ]; then
                        ipfiredist $i
@@ -986,7 +991,7 @@ ipfirepackages() {
 while [ $# -gt 0 ]; do
        case "${1}" in
                --target=*)
-                       configure_target "${1#--target=}"
+                       configure_build "${1#--target=}"
                        ;;
                -*)
                        exiterror "Unknown configuration option: ${1}"
@@ -1003,11 +1008,11 @@ done
 case "$1" in 
 build)
        clear
-       PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz 2> /dev/null | head -n 1`
+       PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.gz 2> /dev/null | head -n 1`
        #only restore on a clean disk
-       if [ ! -f log/cleanup-toolchain-2-tools ]; then
+       if [ ! -e "${BASEDIR}/build/tools/.toolchain-successful" ]; then
                if [ ! -n "$PACKAGE" ]; then
-                       beautify build_stage "Full toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
+                       beautify build_stage "Full toolchain compilation"
                        prepareenv
                        buildtoolchain
                else
@@ -1097,7 +1102,7 @@ downloadsrc)
                        if [ -f "$i" -a "$i" != "Config" ]; then
                                lfsmakecommoncheck ${i} || continue
 
-                               make -s -f $i LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \
+                               make -s -f $i LFS_BASEDIR=$BASEDIR BUILD_ARCH="${BUILD_ARCH}" \
                                        MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1
                                if [ $? -ne 0 ]; then
                                        beautify message FAIL
@@ -1115,7 +1120,7 @@ downloadsrc)
        for i in *; do
                if [ -f "$i" -a "$i" != "Config" ]; then
                        lfsmakecommoncheck ${i} > /dev/null || continue
-                       make -s -f $i LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \
+                       make -s -f $i LFS_BASEDIR=$BASEDIR BUILD_ARCH="${BUILD_ARCH}" \
                                MESSAGE="$i\t " md5 >> $LOGFILE 2>&1
                        if [ $? -ne 0 ]; then
                                echo -ne "MD5 difference in lfs/$i"
@@ -1136,27 +1141,27 @@ downloadsrc)
 toolchain)
        clear
        prepareenv
-       beautify build_stage "Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
+       beautify build_stage "Toolchain compilation"
        buildtoolchain
-       echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $MACHINE" | tee -a $LOGFILE
+       echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for ${BUILD_ARCH}" | 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 \
+       cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.gz \
                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
+       md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.gz \
+               > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.md5
        stdumount
        ;;
 gettoolchain)
        # arbitrary name to be updated in case of new toolchain package upload
-       PACKAGE=$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE
+       PACKAGE=$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}
        if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.gz ]; then
                URL_TOOLCHAIN=`grep URL_TOOLCHAIN lfs/Config | awk '{ print $3 }'`
                test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
-               echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $MACHINE" | tee -a $LOGFILE
+               echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for ${BUILD_ARCH}" | tee -a $LOGFILE
                cd $BASEDIR/cache/toolchains
                wget -U "IPFireSourceGrabber/2.x" $URL_TOOLCHAIN/$PACKAGE.tar.gz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null
                if [ $? -ne 0 ]; then
-                       echo "`date -u '+%b %e %T'`: error downloading $PACKAGE toolchain for $MACHINE machine" | tee -a $LOGFILE
+                       echo "`date -u '+%b %e %T'`: error downloading $PACKAGE toolchain for ${BUILD_ARCH} machine" | tee -a $LOGFILE
                else
                        if [ "`md5sum $PACKAGE.tar.gz | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then
                                echo "`date -u '+%b %e %T'`: toolchain md5 ok" | tee -a $LOGFILE
@@ -1170,11 +1175,11 @@ gettoolchain)
        ;;
 othersrc)
        prepareenv
-       echo -ne "`date -u '+%b %e %T'`: Build sources iso for $MACHINE" | tee -a $LOGFILE
+       echo -ne "`date -u '+%b %e %T'`: Build sources iso for ${BUILD_ARCH}" | tee -a $LOGFILE
        chroot $LFS /tools/bin/env -i   HOME=/root \
        TERM=$TERM PS1='\u:\w\$ ' \
        PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
-       VERSION=$VERSION NAME="$NAME" SNAME="$SNAME" MACHINE=$MACHINE \
+       VERSION=$VERSION NAME="$NAME" SNAME="$SNAME" BUILD_ARCH="${BUILD_ARCH}" \
        /bin/bash -x -c "cd /usr/src/lfs && make -f sources-iso LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
        mv $LFS/install/images/ipfire-* $BASEDIR >> $LOGFILE 2>&1
        if [ $? -eq "0" ]; then
index 3c3a3b42aeb579065d949f2f719f17f9969a699c..5af7718ffb4c60ec33b05cb57f7d5dfd98472609 100644 (file)
@@ -1,10 +1,10 @@
 
 ifeq "$(CFLAGS)" ""
-  $(error CLFAGS not defined.)
+  $(error CFLAGS not defined)
 endif
 
 ifeq "$(TOOLS_DIR)" ""
-  $(error TOOLS_DIR not defined.)
+  $(error TOOLS_DIR not defined)
 endif
 
 LIB = libpakfire_preload.so
diff --git a/src/initscripts/init.d/applejuice b/src/initscripts/init.d/applejuice
deleted file mode 100644 (file)
index d8bbc8c..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-########################################################################
-# Begin $rc_base/init.d/applejuice
-#
-# Description : Applejuice Init script
-#
-# Authors     : Michael Tremer - www.ipfire.org
-#
-# Version     : 01.00
-#
-# Notes       :
-#
-########################################################################
-
-. /etc/sysconfig/rc
-. ${rc_functions}
-eval $(/usr/local/bin/readhash /var/ipfire/applejuice/settings)
-
-
-case "${1}" in
-       start)
-               boot_mesg "Starting Applejuice Core..."
-               cd /opt/applejuice
-               screen -dmS ajcore /usr/bin/java -Xmx${RAMSIZE} -Djava.library.path=. -jar ajcore.jar
-               evaluate_retval
-               ;;
-
-       stop)
-               boot_mesg "Stopping Applejuice Core..."
-               killproc /usr/bin/java
-               ;;
-
-       restart)
-               ${0} stop
-               sleep 1
-               ${0} start
-               ;;
-
-       status)
-               statusproc /usr/bin/java
-               ;;
-               
-       core)
-               screen -x ajcore
-               ;;
-
-       *)
-               echo "Usage: ${0} {start|stop|restart|status|core}"
-               exit 1
-               ;;
-esac
-
-# End $rc_base/init.d/applejuice
diff --git a/src/initscripts/init.d/imspector b/src/initscripts/init.d/imspector
deleted file mode 100644 (file)
index 7a5a986..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/sh
-# Begin $rc_base/init.d/imspector
-
-. /etc/sysconfig/rc
-. $rc_functions
-
-case "$1" in
-       start)
-               boot_mesg "Inserting imspector redirects..."
-                       iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 1863 -j REDIRECT --to-ports 16667
-                       iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 5222 -j REDIRECT --to-ports 16667
-                       iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 5223 -j REDIRECT --to-ports 16667
-                       iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 5190 -j REDIRECT --to-ports 16667
-                       iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 5050 -j REDIRECT --to-ports 16667
-                       iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 6667 -j REDIRECT --to-ports 16667
-                       iptables -t nat -A CUSTOMPREROUTING -p tcp --destination-port 8074 -j REDIRECT --to-ports 16667
-
-               boot_mesg "Starting imspector Deamon..."
-                       loadproc imspector -c /etc/imspector/imspector.conf
-                       evaluate_retval 
-               ;;
-
-       stop)
-               boot_mesg "Stopping imspector Deamon..."
-               killproc /usr/sbin/imspector
-               evaluate_retval
-
-               boot_mesg "Remove imspector redirects..."
-                       iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 1863 -j REDIRECT --to-ports 16667
-                       iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 5222 -j REDIRECT --to-ports 16667
-                       iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 5223 -j REDIRECT --to-ports 16667
-                       iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 5190 -j REDIRECT --to-ports 16667
-                       iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 5050 -j REDIRECT --to-ports 16667
-                       iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 6667 -j REDIRECT --to-ports 16667
-                       iptables -t nat -D CUSTOMPREROUTING -p tcp --destination-port 8074 -j REDIRECT --to-ports 16667
-               ;;
-
-       restart)
-               $0 stop
-               sleep 1
-               $0 start
-               ;;
-
-       status)
-               statusproc /usr/sbin/imspector
-               ;;
-
-       *)
-               echo "Usage: $0 {start|stop|restart|status}"
-               exit 1
-               ;;
-esac
-
-# End $rc_base/init.d/imspector
similarity index 99%
rename from src/initscripts/init.d/networking/red
rename to src/initscripts/networking/red
index 9dfbad65ed8c62de510f71c0c6ca5d43e6e76046..20567ce512d7a40ec0c27f3f8f9e05ff26faf481 100644 (file)
@@ -124,6 +124,9 @@ case "${1}" in
                        echo -n "${DNS2}" > /var/ipfire/red/dns2
                        touch /var/ipfire/red/active
                        
+                       # Create route to default gateway
+                       ip route add ${GATEWAY} dev ${DEVICE}
+
                        boot_mesg "Setting up default gateway ${GATEWAY}..."
                        ip route add default via ${GATEWAY} dev ${DEVICE}
                        evaluate_retval
@@ -454,6 +457,8 @@ case "${1}" in
                ;;
 
        stop)
+               rm -f /var/ipfire/red/{active,device,dial-on-demand,dns1,dns2,local-ipaddress,remote-ipaddress,resolv.conf}
+
                if [ "$TYPE" == "STATIC" ]; then
                        boot_mesg "Stopping default gateway ${GATEWAY}..."
                        ip route del default via ${GATEWAY} >/dev/null 2>&1
@@ -518,7 +523,6 @@ case "${1}" in
                ## Disable vnstat collection
                /usr/bin/vnstat -u -i ${DEVICE} -r --disable > /dev/null 2>&1
 
-               rm -f /var/ipfire/red/{active,device,dial-on-demand,dns1,dns2,local-ipaddress,remote-ipaddress,resolv.conf}
                exit 0;
                ;;
 esac
similarity index 82%
rename from src/initscripts/init.d/unbound
rename to src/initscripts/system/unbound
index 880278150aed80fd557d32b3b1b944fbfc79e35c..7437d93b835c6e4c9f76835b95ea7f6cdeecc3ea 100644 (file)
@@ -114,17 +114,38 @@ update_forwarders() {
                        echo_warning
                fi
 
-               if [ -n "${broken_forwarders}" -a -z "${forwarders}" ]; then
-                       boot_mesg "Falling back to recursor mode" ${WARNING}
-                       echo_warning
-
-               elif [ -n "${forwarders}" ]; then
+               if [ -n "${forwarders}" ]; then
                        boot_mesg "Configuring upstream name server(s): ${forwarders:1}" ${INFO}
                        echo_ok
 
+                       # Make sure DNSSEC is activated
+                       enable_dnssec
+
                        echo "${forwarders}" > /var/ipfire/red/dns
                        unbound-control -q forward ${forwarders}
                        return 0
+
+               # In case we have found no working forwarders
+               else
+                       # Test if the recursor mode is available
+                       if can_resolve_root +bufsize=${new_edns_buffer_size}; then
+                               # Make sure DNSSEC is activated
+                               enable_dnssec
+
+                               boot_mesg "Falling back to recursor mode" ${WARNING}
+                               echo_warning
+
+                       # If not, we set DNSSEC in permissive mode and allow using all recursors
+                       elif [ -n "${broken_forwarders}" ]; then
+                               disable_dnssec
+
+                               boot_mesg "DNSSEC has been set to permissive mode" ${FAILURE}
+                               echo_failure
+
+                               echo "${broken_forwarders}" > /var/ipfire/red/dns
+                               unbound-control -q forward ${broken_forwarders}
+                               return 0
+                       fi
                fi
        fi
 
@@ -223,17 +244,29 @@ write_tuning_conf() {
        # In the worst case scenario, unbound can use double the
        # amount of memory allocated to a cache due to malloc overhead
 
+       # Even larger systems with more than 8GB of RAM
+       if [ ${mem} -ge 8192 ]; then
+               mem=1024
+
+       # Extra large systems with more than 4GB of RAM
+       elif [ ${mem} -ge 4096 ]; then
+               mem=512
+
        # Large systems with more than 2GB of RAM
-       if [ ${mem} -ge 2048 ]; then
+       elif [ ${mem} -ge 2048 ]; then
+               mem=256
+
+       # Medium systems with more than 1GB of RAM
+       elif [ ${mem} -ge 1024 ]; then
                mem=128
 
        # Small systems with less than 256MB of RAM
        elif [ ${mem} -le 256 ]; then
-               mem=8
+               mem=16
 
        # Everything else
        else
-               mem=32
+               mem=64
        fi
 
        (
@@ -241,6 +274,7 @@ write_tuning_conf() {
 
                # We run one thread per processor
                echo "num-threads: ${processors}"
+               echo "so-reuseport: yes"
 
                # Adjust number of slabs
                echo "infra-cache-slabs: ${slabs}"
@@ -252,6 +286,14 @@ write_tuning_conf() {
                echo "rrset-cache-size: $(( ${mem} / 2 ))m"
                echo "msg-cache-size: $(( ${mem} / 4 ))m"
                echo "key-cache-size: $(( ${mem} / 4 ))m"
+
+               # Increase parallel queries
+               echo "outgoing-range: 8192"
+               echo "num-queries-per-thread: 4096"
+
+               # Use larger send/receive buffers
+               echo "so-sndbuf: 4m"
+               echo "so-rcvbuf: 4m"
        ) > /etc/unbound/tuning.conf
 }
 
@@ -370,6 +412,48 @@ ns_determine_edns_buffer_size() {
        return 1
 }
 
+get_root_nameservers() {
+       while read -r hostname ttl record address; do
+               # Searching for A records
+               [ "${record}" = "A" ] || continue
+
+               echo "${address}"
+       done < /etc/unbound/root.hints
+}
+
+can_resolve_root() {
+       local ns
+       for ns in $(get_root_nameservers); do
+               if dig @${ns} +dnssec SOA . $@ >/dev/null; then
+                       return 0
+               fi
+       done
+
+       # none of the servers was reachable
+       return 1
+}
+
+enable_dnssec() {
+       local status=$(unbound-control get_option val-permissive-mode)
+
+       # Log DNSSEC status
+       echo "on" > /var/ipfire/red/dnssec-status
+
+       # Don't do anything if DNSSEC is already activated
+       [ "${status}" = "no" ] && return 0
+
+       # Activate DNSSEC and flush cache with any stale and unvalidated data
+       unbound-control -q set_option val-permissive-mode: no
+       unbound-control -q flush_zone .
+}
+
+disable_dnssec() {
+       # Log DNSSEC status
+       echo "off" > /var/ipfire/red/dnssec-status
+
+       unbound-control -q set_option val-permissive-mode: yes
+}
+
 case "$1" in
        start)
                # Print a nicer messagen when unbound is already running
similarity index 83%
rename from src/initscripts/init.d/wlanclient
rename to src/initscripts/system/wlanclient
index ee24c43a19a68e52cedf4ad652f46d1ffe8e9255..b32a4cb4acada5a7fc1c96d589c7b353ae2fc6b0 100644 (file)
@@ -62,7 +62,11 @@ function wpa_supplicant_make_config() {
                        --wpa-mode="${line[4]}" \
                        --ssid="${line[5]}" \
                        --psk="${line[6]}" \
-                       --priority="${line[7]}"
+                       --priority="${line[7]}" \
+                       --auth-mode="${line[8]}" \
+                       --anonymous-identity="${line[9]}" \
+                       --identity="${line[10]}" \
+                       --password="${line[11]}"
 
                items=$(( ${items} + 1 ))
 
@@ -82,12 +86,16 @@ function wpa_supplicant_config_line() {
        local config=${2}
        shift 2
 
+       local anonymous_identity
        local auth_alg
+       local auth_mode
+       local identity
        local proto
        local key_mgmt
        local pairwise
        local group
        local mode
+       local password
        local priority
        local psk
        local ssid
@@ -98,9 +106,21 @@ function wpa_supplicant_config_line() {
 
        while [ $# -gt 0 ]; do
                case "${1}" in
+                       --anonymous-identity=*)
+                               anonymous_identity=${1#--anonymous-identity=}
+                               ;;
+                       --auth-mode=*)
+                               auth_mode=${1#--auth-mode=}
+                               ;;
+                       --identity=*)
+                               identity=${1#--identity=}
+                               ;;
                        --mode=*)
                                mode=${1#--mode=}
                                ;;
+                       --password=*)
+                               password=${1#--password=}
+                               ;;
                        --priority=*)
                                priority=${1#--priority=}
                                ;;
@@ -121,6 +141,9 @@ function wpa_supplicant_config_line() {
        done
 
        case "${mode}" in
+               EAP)
+                       key_mgmt="WPA-EAP"
+                       ;;
                WPA2)
                        auth_alg="OPEN"
                        proto="RSN"
@@ -149,7 +172,7 @@ function wpa_supplicant_config_line() {
                        ;;
        esac
 
-       if [ "${mode}" = "WPA" -o "${mode}" = "WPA2" ]; then
+       if [ "${mode}" = "EAP" -o "${mode}" = "WPA" -o "${mode}" = "WPA2" ]; then
                case "${wpa_mode}" in
                        CCMP-CCMP)
                                pairwise="CCMP"
@@ -205,6 +228,24 @@ function wpa_supplicant_config_line() {
                        echo "  priority=${priority}"
                fi
 
+               # EAP
+               if [ "${mode}" = "EAP" ]; then
+                       if [ -n "${auth_mode}" ]; then
+                               echo "  eap=${auth_mode}"
+                       else
+                               echo "  eap=PEAP TTLS"
+                       fi
+
+                       if [ "${auth_mode}" = "TTLS" -a -n "${anonymous_identity}" ]; then
+                               echo "  anonymous_identity=\"${anonymous_identity}\""
+                       fi
+
+                       if [ -n "${identity}" -a -n "${password}" ]; then
+                               echo "  identity=\"${identity}\""
+                               echo "  password=\"${password}\""
+                       fi
+               fi
+
                echo "}"
                echo
        ) >> ${config}
index 38701686e8743ec841e54f58ec8cc25b293eb0b4..c806d54a9b0145aa2f0a11c848bc158f6e70a481 100644 (file)
@@ -3,7 +3,7 @@
  * Get the list from IPTABLES -L
  * 
  */
-         
+
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
@@ -17,11 +17,11 @@ int main(void)
 {
        if (!(initsetuid()))
                exit(1);
-       
-       safe_system("/sbin/iptables -L -v -n > /srv/web/ipfire/html/iptables.txt");
-       safe_system("/sbin/iptables -L -v -n -t nat > /srv/web/ipfire/html/iptablesnat.txt");
-       safe_system("/sbin/iptables -t mangle -L -v -n > /srv/web/ipfire/html/iptablesmangle.txt");
-       safe_system("chown nobody.nobody /srv/web/ipfire/html/iptables.txt /srv/web/ipfire/html/iptablesnat.txt /srv/web/ipfire/html/iptablesmangle.txt");
+
+       safe_system("/sbin/iptables -L -v -n > /var/tmp/iptables.txt");
+       safe_system("/sbin/iptables -L -v -n -t nat > /var/tmp/iptablesnat.txt");
+       safe_system("/sbin/iptables -t mangle -L -v -n > /var/tmp/iptablesmangle.txt");
+       safe_system("chown nobody.nobody /var/tmp/iptables.txt /var/tmp/iptablesnat.txt /var/tmp/iptablesmangle.txt");
        
        return 0;
 }
index 7499e94c9a7f384e6d0fd809203d32163cb84e96..204753640a5bea3f42f783d3bcae3f05cad9b82c 100644 (file)
@@ -173,6 +173,9 @@ void turn_connection_off (char *name) {
 
        // Reload, so the connection is dropped.
        ipsec_reload();
+
+       // Reload the IPsec block chain
+       safe_system("/usr/lib/firewall/ipsec-block >/dev/null");
 }
 
 int main(int argc, char *argv[]) {
index 11b1e37d583382cdef82e21a220131545865beec..c347916d80cd5f6bb8eae23406c1bb4f42de1bd5 100644 (file)
@@ -541,7 +541,7 @@ sub dblist {
        }
 }
 
-sub resolvedeps {
+sub resolvedeps_one {
        my $pak = shift;
        
        getmetafile("$pak");
@@ -553,7 +553,7 @@ sub resolvedeps {
        close(FILE);
        
        my $line;
-       my (@templine, @deps, @tempdeps, @all);
+       my (@templine, @deps, @all);
        foreach $line (@file) {
                @templine = split(/\: /,$line);
                if ("$templine[0]" eq "Dependencies") {
@@ -568,30 +568,41 @@ sub resolvedeps {
                        message("PAKFIRE RESV: $pak: Dependency is already installed: $_");
                  } else {
                        message("PAKFIRE RESV: $pak: Need to install dependency: $_");
-                               push(@tempdeps,$_);
                                push(@all,$_);
                        } 
                }
        }
 
-       foreach (@tempdeps) {
-               if ($_) {
-                       my @newdeps = resolvedeps("$_");
-                       foreach(@newdeps) {
-                               unless (($_ eq " ") || ($_ eq "")) {
-                                       my $return = &isinstalled($_);
-                                       if ($return eq 0) {
-                                               message("PAKFIRE RESV: $pak: Dependency is already installed: $_");
-                                       } else {
-                                               message("PAKFIRE RESV: $pak: Need to install dependency: $_");
-                                               push(@all,$_);
-                                       }
-                               }
+       return @all;
+}
+
+sub resolvedeps {
+       my $pak = shift;
+       my @all;
+
+       # Resolve all not yet installed dependencies of $pak
+       my @deps = &resolvedeps_one($pak);
+       push(@all, @deps);
+
+       # For each dependency, we check if more dependencies exist
+       while (@deps) {
+               my $dep = pop(@deps);
+
+               my @subdeps = &resolvedeps_one($dep);
+               foreach my $subdep (@subdeps) {
+                       # Skip the package we are currently resolving for
+                       next if ($pak eq $subdep);
+
+                       # If the package is not already to be installed,
+                       # we add it to the list (@all) and check if it has
+                       # more dependencies on its own.
+                       unless (grep {$_ eq $subdep} @all) {
+                               push(@deps, $subdep);
+                               push(@all, $subdep);
                        }
                }
        }
-       message("");
-       chomp (@all);
+
        return @all;
 }
 
diff --git a/src/paks/avahi/uninstall.sh b/src/paks/avahi/uninstall.sh
deleted file mode 100644 (file)
index 1c8e67c..0000000
+++ /dev/null
@@ -1,28 +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}
-make_backup ${NAME}
-remove_files
-rm -rf /etc/rc.d/rc*.d/*avahi
diff --git a/src/paks/avahi/update.sh b/src/paks/avahi/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 8b5c749bef335afb8cce1ba976ed753d9405c706..bf4e5a6d5869a9208dc80f39e1ab75ab325e31a1 100644 (file)
 . /opt/pakfire/lib/functions.sh
 extract_files
 useradd messagebus
-start_service ${NAME}
+
+# Create start links
+ln -svf  ../init.d/messagebus /etc/rc.d/rc3.d/S15messagebus
+ln -svf  ../init.d/messagebus /etc/rc.d/rc0.d/K85messagebus
+ln -svf  ../init.d/messagebus /etc/rc.d/rc6.d/K85messagebus
+
+start_service messagebus
index f5b8042aed4512c366cad4e79a80d219368c36f7..49fc30e300fa9cdd87e476f148de80a6c06e4024 100644 (file)
@@ -23,4 +23,8 @@
 #
 . /opt/pakfire/lib/functions.sh
 stop_service ${NAME}
+
+# Remove start files
+rm -rf /etc/rc.d/rc*.d/*messagebus
+
 remove_files
index a27d09ed6130782f77f27cd1e11164b461112d16..1653c9abf3668e4e5db3f746cd6a6f0f30e7cbbc 100644 (file)
@@ -29,6 +29,9 @@ ln -svf  ../init.d/mysql /etc/rc.d/rc0.d/K26mysql
 ln -svf  ../init.d/mysql /etc/rc.d/rc3.d/S34mysql
 ln -svf  ../init.d/mysql /etc/rc.d/rc6.d/K26mysql
 
+# Initialise database
+mysql_install_db --user=mysql
+
 restore_backup "${NAME}"
 
 start_service "${NAME}"
diff --git a/src/paks/vdr_vnsiserver5/uninstall.sh b/src/paks/vdr_vnsiserver5/uninstall.sh
deleted file mode 100644 (file)
index cb55446..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
-stop_service vdr
-remove_files
-start_service vdr --background
diff --git a/src/patches/DirectFB-1.5.3-add-missing-davinci-files.patch b/src/patches/DirectFB-1.5.3-add-missing-davinci-files.patch
new file mode 100644 (file)
index 0000000..bdea601
--- /dev/null
@@ -0,0 +1,1697 @@
+diff -urNp DirectFB-1.5.3_orig/gfxdrivers/davinci/davinci_c64x.h DirectFB-1.5.3/gfxdrivers/davinci/davinci_c64x.h
+--- DirectFB-1.5.3_orig/gfxdrivers/davinci/davinci_c64x.h      1969-12-31 19:00:00.000000000 -0500
++++ DirectFB-1.5.3/gfxdrivers/davinci/davinci_c64x.h   2012-05-09 02:20:38.342006623 -0400
+@@ -0,0 +1,935 @@
++/*
++   TI Davinci driver - C64X+ DSP Library
++
++   (c) Copyright 2008  directfb.org
++   (c) Copyright 2007  Telio AG
++
++   Written by Denis Oliver Kropp <dok@directfb.org> and
++              Olaf Dreesen <olaf@directfb.org>.
++
++   All rights reserved.
++
++   This library 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.
++
++   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; if not, write to the
++   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++   Boston, MA 02111-1307, USA.
++*/
++
++#ifndef __DAVINCI_C64X_H__
++#define __DAVINCI_C64X_H__
++
++#include <unistd.h>
++
++#include <directfb.h>
++
++#include <direct/messages.h>
++#include <direct/trace.h>
++
++#include <linux/c64x.h>
++
++#define mb() __asm__ __volatile__ ("" : : : "memory")
++
++/**********************************************************************************************************************/
++
++typedef struct {
++     int                 magic;
++
++     int                 fd;
++     c64xTaskControl    *ctl;
++     void               *mem;
++
++     c64xTask           *QueueL;
++} DavinciC64x;
++
++typedef struct {
++     int                 magic;
++     unsigned int        max_tasks;
++     unsigned int        num_tasks;
++     c64xTask           *tasks;
++} DavinciC64xTasks;
++
++typedef enum {
++     C64X_TEF_NONE       = 0x0000,
++     C64X_TEF_RESET      = 0x0001
++} DavinciC64xEmitFlags;
++
++/**********************************************************************************************************************/
++
++DFBResult davinci_c64x_open    ( DavinciC64x *c64x );
++
++DFBResult davinci_c64x_close   ( DavinciC64x *c64x );
++
++DFBResult davinci_c64x_wait_low( DavinciC64x *c64x );
++
++/**********************************************************************************************************************/
++
++DFBResult davinci_c64x_tasks_init   ( DavinciC64xTasks *tasks,
++                                      unsigned int      size );
++
++DFBResult davinci_c64x_tasks_destroy( DavinciC64xTasks *tasks );
++
++/**********************************************************************************************************************/
++
++DFBResult davinci_c64x_emit_tasks( DavinciC64x          *c64x,
++                                   DavinciC64xTasks     *tasks,
++                                   DavinciC64xEmitFlags  flags );
++
++/**********************************************************************************************************************/
++
++static const char *state_names[] = { "DONE", "ERROR", "TODO", "RUNNING" };
++
++static inline c64xTask *
++c64x_get_task( DavinciC64x *c64x )
++{
++     c64xTaskControl *ctl   = c64x->ctl;
++     uint32_t         idx   = ctl->QL_arm;
++     uint32_t         next  = (idx + 1) & C64X_QUEUE_MASK;
++     c64xTask        *task  = &c64x->QueueL[idx];
++     int              loops = 0;
++     uint32_t         idle  = 0;
++
++     /* Wait for the entry (and next) to be processed by the DSP (rare case). */
++     while (task->c64x_flags & C64X_FLAG_TODO || ctl->QL_dsp == next) {
++          if (loops > 666 || (idle && ctl->idlecounter - idle > 666)) {
++               c64xTask *dsp_task = &c64x->QueueL[ctl->QL_dsp];
++
++               D_PERROR( "Davinci/C64X+: Blocked! [DSP %d / %d (%s), ARM %d / %d (%s)]\n",
++                         ctl->QL_dsp,
++                         (dsp_task->c64x_function >> 2) & 0x3fff,
++                         state_names[dsp_task->c64x_function & 3],
++                         ctl->QL_arm,
++                         (task->c64x_function >> 2) & 0x3fff,
++                         state_names[task->c64x_function & 3] );
++
++               break;
++          }
++
++          idle = ctl->idlecounter;
++
++          /* Queue is full, waiting 10-20ms should not be too bad. */
++          if (loops++ > 10)
++               usleep( 5000 );
++     }
++
++     return task;
++}
++
++static inline void
++c64x_submit_task( DavinciC64x *c64x, c64xTask *task )
++{
++     c64xTaskControl *ctl  = c64x->ctl;
++     uint32_t         idx  = ctl->QL_arm;
++     uint32_t         next = (idx + 1) & C64X_QUEUE_MASK;
++
++     mb();
++
++     ctl->QL_arm = next;
++
++     mb();
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_wb_inv_range( DavinciC64x   *c64x,
++                           unsigned long  start,
++                           u32            length,
++                           u32            func )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = start;
++     task->c64x_arg[1] = length;
++     task->c64x_arg[2] = func;
++
++     task->c64x_function = C64X_WB_INV_RANGE | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_write_back_all( DavinciC64x *c64x )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_function = C64X_WRITE_BACK_ALL | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_load_block__L( DavinciC64xTasks *tasks,
++                            unsigned long     words,
++                            u32               num,
++                            u32               flags )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = words;
++     task->c64x_arg[1] = num;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_load_block( DavinciC64x   *c64x,
++                         unsigned long  words,
++                         u32            num,
++                         u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = words;
++     task->c64x_arg[1] = num;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_LOAD_BLOCK | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_fetch_uyvy( DavinciC64x   *c64x,
++                         unsigned long  dest,
++                         unsigned long  source,
++                         u32            pitch,
++                         u32            height,
++                         u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = source;
++     task->c64x_arg[2] = pitch;
++     task->c64x_arg[3] = height;
++     task->c64x_arg[4] = flags;
++
++     task->c64x_function = C64X_FETCH_UYVY | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_mc( DavinciC64x   *c64x,
++                 unsigned long  dest,
++                 u32            dpitch,
++                 unsigned long  source0,
++                 unsigned long  source1,
++                 u32            spitch,
++                 u32            height,
++                 int            func )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = source0;
++     task->c64x_arg[3] = source1;
++     task->c64x_arg[4] = spitch;
++     task->c64x_arg[5] = height;
++
++     task->c64x_function = func | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_put_idct_uyvy_16x16__L( DavinciC64xTasks *tasks,
++                                     unsigned long     dest,
++                                     u32               pitch,
++                                     u32               flags )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_put_idct_uyvy_16x16( DavinciC64x   *c64x,
++                                  unsigned long  dest,
++                                  u32            pitch,
++                                  u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_IDCT_UYVY_16x16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_put_mc_uyvy_16x16__L( DavinciC64xTasks *tasks,
++                                   unsigned long     dest,
++                                   u32               pitch,
++                                   u32               flags )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_put_mc_uyvy_16x16( DavinciC64x   *c64x,
++                                unsigned long  dest,
++                                u32            pitch,
++                                u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_MC_UYVY_16x16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_put_sum_uyvy_16x16__L( DavinciC64xTasks *tasks,
++                                    unsigned long     dest,
++                                    u32               pitch,
++                                    u32               flags )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_put_sum_uyvy_16x16( DavinciC64x   *c64x,
++                                 unsigned long  dest,
++                                 u32            pitch,
++                                 u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = flags;
++
++     task->c64x_function = C64X_PUT_SUM_UYVY_16x16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_dva_begin_frame__L( DavinciC64xTasks *tasks,
++                                 u32               pitch,
++                                 unsigned long     current,
++                                 unsigned long     past,
++                                 unsigned long     future,
++                                 u32               flags )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = pitch;
++     task->c64x_arg[1] = current;
++     task->c64x_arg[2] = past;
++     task->c64x_arg[3] = future;
++     task->c64x_arg[4] = flags;
++
++     task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_dva_begin_frame( DavinciC64x   *c64x,
++                              u32            pitch,
++                              unsigned long  current,
++                              unsigned long  past,
++                              unsigned long  future,
++                              u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = pitch;
++     task->c64x_arg[1] = current;
++     task->c64x_arg[2] = past;
++     task->c64x_arg[3] = future;
++     task->c64x_arg[4] = flags;
++
++     task->c64x_function = C64X_DVA_BEGIN_FRAME | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_dva_motion_block__L( DavinciC64xTasks *tasks,
++                                  unsigned long     macroblock )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = macroblock;
++
++     task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_dva_motion_block( DavinciC64x   *c64x,
++                               unsigned long  macroblock )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = macroblock;
++
++     task->c64x_function = C64X_DVA_MOTION_BLOCK | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_dva_idct( DavinciC64x   *c64x,
++                                 unsigned long  dest,
++                                 u32            pitch,
++                                 unsigned long  source )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = source;
++
++     task->c64x_function = C64X_DVA_IDCT | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++/**********************************************************************************************************************/
++
++static inline void
++davinci_c64x_put_uyvy_16x16( DavinciC64x   *c64x,
++                             unsigned long  dest,
++                             u32            pitch,
++                             unsigned long  source,
++                             u32            flags )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = source;
++     task->c64x_arg[3] = flags;
++
++     task->c64x_function = C64X_PUT_UYVY_16x16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_dither_argb__L( DavinciC64xTasks *tasks,
++                             unsigned long     dst_rgb,
++                             unsigned long     dst_alpha,
++                             u32               dst_pitch,
++                             unsigned long     source,
++                             u32               src_pitch,
++                             u32               width,
++                             u32               height )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dst_rgb;
++     task->c64x_arg[1] = dst_alpha;
++     task->c64x_arg[2] = dst_pitch;
++     task->c64x_arg[3] = source;
++     task->c64x_arg[4] = src_pitch;
++     task->c64x_arg[5] = width;
++     task->c64x_arg[6] = height;
++
++     task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_dither_argb( DavinciC64x   *c64x,
++                          unsigned long  dst_rgb,
++                          unsigned long  dst_alpha,
++                          u32            dst_pitch,
++                          unsigned long  source,
++                          u32            src_pitch,
++                          u32            width,
++                          u32            height )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dst_rgb;
++     task->c64x_arg[1] = dst_alpha;
++     task->c64x_arg[2] = dst_pitch;
++     task->c64x_arg[3] = source;
++     task->c64x_arg[4] = src_pitch;
++     task->c64x_arg[5] = width;
++     task->c64x_arg[6] = height;
++
++     task->c64x_function = C64X_DITHER_ARGB | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_fill_16__L( DavinciC64xTasks *tasks,
++                         unsigned long     dest,
++                         u32               pitch,
++                         u32               width,
++                         u32               height,
++                         u32               value )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = width;
++     task->c64x_arg[3] = height;
++     task->c64x_arg[4] = value;
++
++     task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_fill_16( DavinciC64x   *c64x,
++                      unsigned long  dest,
++                      u32            pitch,
++                      u32            width,
++                      u32            height,
++                      u32            value )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = width;
++     task->c64x_arg[3] = height;
++     task->c64x_arg[4] = value;
++
++     task->c64x_function = C64X_FILL_16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_fill_32__L( DavinciC64xTasks *tasks,
++                         unsigned long     dest,
++                         u32               pitch,
++                         u32               width,
++                         u32               height,
++                         u32               value )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = width;
++     task->c64x_arg[3] = height;
++     task->c64x_arg[4] = value;
++
++     task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_fill_32( DavinciC64x   *c64x,
++                      unsigned long  dest,
++                      u32            pitch,
++                      u32            width,
++                      u32            height,
++                      u32            value )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = pitch;
++     task->c64x_arg[2] = width;
++     task->c64x_arg[3] = height;
++     task->c64x_arg[4] = value;
++
++     task->c64x_function = C64X_FILL_32 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_16__L( DavinciC64xTasks *tasks,
++                         unsigned long     dest,
++                         u32               dpitch,
++                         unsigned long     src,
++                         u32               spitch,
++                         u32               width,
++                         u32               height )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width;
++     task->c64x_arg[5] = height;
++
++     task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_16( DavinciC64x   *c64x,
++                      unsigned long  dest,
++                      u32            dpitch,
++                      unsigned long  src,
++                      u32            spitch,
++                      u32            width,
++                      u32            height )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width;
++     task->c64x_arg[5] = height;
++
++     task->c64x_function = C64X_COPY_16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_32__L( DavinciC64xTasks *tasks,
++                         unsigned long     dest,
++                         u32               dpitch,
++                         unsigned long     src,
++                         u32               spitch,
++                         u32               width,
++                         u32               height )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width;
++     task->c64x_arg[5] = height;
++
++     task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_32( DavinciC64x   *c64x,
++                      unsigned long  dest,
++                      u32            dpitch,
++                      unsigned long  src,
++                      u32            spitch,
++                      u32            width,
++                      u32            height )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width;
++     task->c64x_arg[5] = height;
++
++     task->c64x_function = C64X_COPY_32 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_stretch_32__L( DavinciC64xTasks *tasks,
++                            unsigned long     dest,
++                            u32               dpitch,
++                            unsigned long     src,
++                            u32               spitch,
++                            u32               dw,
++                            u32               dh,
++                            u32               sw,
++                            u32               sh,
++                            const DFBRegion  *clip )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = src;
++     task->c64x_arg[2] = dpitch   | (spitch   << 16);
++     task->c64x_arg[3] = dh       | (dw       << 16);
++     task->c64x_arg[4] = sh       | (sw       << 16);
++     task->c64x_arg[5] = clip->x2 | (clip->y2 << 16);
++     task->c64x_arg[6] = clip->x1 | (clip->y1 << 16);
++
++     if (sw > dw && sh > dh)
++          task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO;
++     else
++          task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_stretch_32( DavinciC64x     *c64x,
++                         unsigned long    dest,
++                         u32              dpitch,
++                         unsigned long    src,
++                         u32              spitch,
++                         u32              dw,
++                         u32              dh,
++                         u32              sw,
++                         u32              sh,
++                         const DFBRegion *clip )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = src;
++     task->c64x_arg[2] = dpitch   | (spitch   << 16);
++     task->c64x_arg[3] = dh       | (dw       << 16);
++     task->c64x_arg[4] = sh       | (sw       << 16);
++     task->c64x_arg[5] = clip->x2 | (clip->y2 << 16);
++     task->c64x_arg[6] = clip->x1 | (clip->y1 << 16);
++
++     if (sw > dw && sh > dh)
++          task->c64x_function = C64X_STRETCH_32_down | C64X_FLAG_TODO;
++     else
++          task->c64x_function = C64X_STRETCH_32_up | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_blend_32__L( DavinciC64xTasks *tasks,
++                               u32               sub_func,
++                               unsigned long     dest,
++                               u32               dpitch,
++                               unsigned long     src,
++                               u32               spitch,
++                               u32               width,
++                               u32               height,
++                               u32               argb,
++                               u8                alpha )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width | (height << 16);
++     task->c64x_arg[5] = argb;
++     task->c64x_arg[6] = alpha;
++
++     task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_blend_32( DavinciC64x   *c64x,
++                            u32            sub_func,
++                            unsigned long  dest,
++                            u32            dpitch,
++                            unsigned long  src,
++                            u32            spitch,
++                            u32            width,
++                            u32            height,
++                            u32            argb,
++                            u8             alpha )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = dpitch;
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = spitch;
++     task->c64x_arg[4] = width | (height << 16);
++     task->c64x_arg[5] = argb;
++     task->c64x_arg[6] = alpha;
++
++     task->c64x_function = (sub_func << 16) | C64X_BLEND_32 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_keyed_16__L( DavinciC64xTasks *tasks,
++                               unsigned long     dest,
++                               u32               dpitch,
++                               unsigned long     src,
++                               u32               spitch,
++                               u32               width,
++                               u32               height,
++                               u32               key,
++                               u32               mask )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = width;
++     task->c64x_arg[4] = height;
++     task->c64x_arg[5] = key;
++     task->c64x_arg[6] = mask;
++
++     task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_keyed_16( DavinciC64x   *c64x,
++                            unsigned long  dest,
++                            u32            dpitch,
++                            unsigned long  src,
++                            u32            spitch,
++                            u32            width,
++                            u32            height,
++                            u32            key,
++                            u32            mask )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = width;
++     task->c64x_arg[4] = height;
++     task->c64x_arg[5] = key;
++     task->c64x_arg[6] = mask;
++
++     task->c64x_function = C64X_COPY_KEYED_16 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++static inline void
++davinci_c64x_blit_keyed_32__L( DavinciC64xTasks *tasks,
++                               unsigned long     dest,
++                               u32               dpitch,
++                               unsigned long     src,
++                               u32               spitch,
++                               u32               width,
++                               u32               height,
++                               u32               key,
++                               u32               mask )
++{
++     c64xTask *task = &tasks->tasks[tasks->num_tasks];
++
++     D_ASSERT( tasks->num_tasks < tasks->max_tasks );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = width;
++     task->c64x_arg[4] = height;
++     task->c64x_arg[5] = key;
++     task->c64x_arg[6] = mask;
++
++     task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO;
++
++     tasks->num_tasks++;
++}
++
++static inline void
++davinci_c64x_blit_keyed_32( DavinciC64x   *c64x,
++                            unsigned long  dest,
++                            u32            dpitch,
++                            unsigned long  src,
++                            u32            spitch,
++                            u32            width,
++                            u32            height,
++                            u32            key,
++                            u32            mask )
++{
++     c64xTask *task = c64x_get_task( c64x );
++
++     task->c64x_arg[0] = dest;
++     task->c64x_arg[1] = (dpitch << 16) | (spitch & 0xffff);
++     task->c64x_arg[2] = src;
++     task->c64x_arg[3] = width;
++     task->c64x_arg[4] = height;
++     task->c64x_arg[5] = key;
++     task->c64x_arg[6] = mask;
++
++     task->c64x_function = C64X_COPY_KEYED_32 | C64X_FLAG_TODO;
++
++     c64x_submit_task( c64x, task );
++}
++
++#endif
++
+diff -urNp DirectFB-1.5.3_orig/gfxdrivers/davinci/davincifb.h DirectFB-1.5.3/gfxdrivers/davinci/davincifb.h
+--- DirectFB-1.5.3_orig/gfxdrivers/davinci/davincifb.h 1969-12-31 19:00:00.000000000 -0500
++++ DirectFB-1.5.3/gfxdrivers/davinci/davincifb.h      2012-05-09 02:20:07.271230380 -0400
+@@ -0,0 +1,581 @@
++/* 
++ * Copyright (C) 2006 Texas Instruments 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * File: davincifb.h  
++ */
++
++#ifndef DAVINVI_VPBE_H
++#define DAVINVI_VPBE_H
++
++/* include Linux files */
++#include <linux/fb.h>
++
++/* define the custom FBIO_WAITFORVSYNC ioctl */
++#define FBIO_WAITFORVSYNC     _IOW('F', 0x20, u_int32_t)
++#define FBIO_SETATTRIBUTE       _IOW('F', 0x21, struct fb_fillrect)
++
++/* Backported IOCTLS. */
++#define FBIO_SETPOSX                            _IOW('F', 0x22, u_int32_t)
++#define FBIO_SETPOSY                            _IOW('F', 0x23, u_int32_t)
++#define FBIO_SETZOOM                          _IOW('F', 0x24, struct zoom_params)
++#define FBIO_GETSTD                             _IOR('F', 0x25, u_int32_t)
++#define FBIO_RESIZER                          _IOW('F', 0x26, struct vpfe_resizer_params)
++#define FBIO_SYNC                             _IOW('F', 0x27, u_int32_t)
++
++typedef struct zoom_params {
++      u_int32_t window_id;
++      u_int32_t zoom_h;
++      u_int32_t zoom_v;
++} zoom_params_t;
++
++typedef struct vpfe_resizer_params
++{
++      u_int32_t rsz_cnt;      //busy-lock
++      u_int32_t out_size;     //busy-lock
++      u_int32_t in_start;     //busy-lock
++      u_int32_t in_size;      //busy-lock
++      u_int32_t sdr_inadd;    //shadowed
++      u_int32_t sdr_inoff;    //shadowed
++      u_int32_t sdr_outadd;   //shadowed
++      u_int32_t sdr_outoff;   //shadowed
++      u_int32_t hfilt[16];    //busy-lock
++      u_int32_t vfilt[16];    //busy-lock
++      u_int32_t yenh;         //busy-lock
++} vpfe_resizer_params_t;
++
++typedef struct fb_set_start {
++      int             offset;         /* offset from smem_start */
++      unsigned long   physical;       /* absolute physical address when offset < 0 */
++
++      u_int64_t       sync;           /* input:  target sync counter for change or 0 for no sync at all,
++                                         output: sync counter of actual change or 0 if still pending */
++} fb_set_start_t;
++
++
++#ifdef _IOC_TYPECHECK
++#undef _IOC_TYPECHECK
++#define _IOC_TYPECHECK(x)     (sizeof(x))
++#endif
++
++#define       RAM_CLUT_SIZE   256*3
++#define FBIO_ENABLE_DISABLE_WIN               \
++      _IOW('F', 0x30, unsigned char)
++#define FBIO_SET_BITMAP_BLEND_FACTOR  \
++      _IOW('F', 0x31, vpbe_bitmap_blend_params_t)
++#define FBIO_SET_BITMAP_WIN_RAM_CLUT    \
++      _IOW('F', 0x32, unsigned char)*RAM_CLUT_SIZE)
++#define FBIO_ENABLE_DISABLE_ATTRIBUTE_WIN \
++      _IOW('F', 0x33, unsigned int)
++#define FBIO_GET_BLINK_INTERVAL               \
++      _IOR('F', 0x34, vpbe_blink_option_t)
++#define FBIO_SET_BLINK_INTERVAL         \
++      _IOW('F', 0x35, vpbe_blink_option_t)
++#define FBIO_GET_VIDEO_CONFIG_PARAMS    \
++      _IOR('F', 0x36, vpbe_video_config_params_t)
++#define FBIO_SET_VIDEO_CONFIG_PARAMS    \
++      _IOW('F', 0x37, vpbe_video_config_params_t)
++#define FBIO_GET_BITMAP_CONFIG_PARAMS   \
++      _IOR('F', 0x38, vpbe_bitmap_config_params_t)
++#define FBIO_SET_BITMAP_CONFIG_PARAMS   \
++      _IOW('F', 0x39, vpbe_bitmap_config_params_t)
++#define FBIO_SET_DCLK                   \
++      _IOW('F', 0x40, vpbe_dclk_t)
++#define FBIO_SET_INTERFACE            \
++      _IOW('F', 0x41, unsigned char)
++#define FBIO_GET_INTERFACE            \
++      _IOR('F', 0x42, unsigned char)
++#define FBIO_QUERY_TIMING             \
++      _IOWR('F', 0x43, struct vpbe_mode_info)
++#define FBIO_SET_TIMING                       \
++      _IOW('F', 0x44, struct vpbe_fb_videomode)
++#define FBIO_GET_TIMING                 \
++      _IOR('F', 0x45, struct vpbe_fb_videomode)
++#define FBIO_SET_VENC_CLK_SOURCE      \
++      _IOW('F', 0x46, unsigned char)
++#define FBIO_SET_BACKG_COLOR            \
++      _IOW('F', 0x47, vpbe_backg_color_t)
++#define FBIO_ENABLE_DISPLAY           \
++      _IOW('F', 0x48, unsigned char)
++#define FBIO_SETPOS                           \
++      _IOW('F', 0x49, u_int32_t)
++#define FBIO_SET_CURSOR               \
++      _IOW('F', 0x50, struct fb_cursor)
++#define FBIO_SET_START                \
++      _IOW('F', 0x66, struct fb_set_start)
++
++/* 
++ * Defines and Constants
++ */
++#ifdef __KERNEL__
++#define DAVINCIFB_DEVICE "davincifb"
++#define DAVINCIFB_DRIVER "davincifb"
++
++#define MULTIPLE_BUFFERING      1
++
++#ifdef MULTIPLE_BUFFERING
++#define DOUBLE_BUF      2
++#define TRIPLE_BUF      3
++#else
++#define DOUBLE_BUF      1
++#define TRIPLE_BUF      1
++#endif
++
++/* usage:     if (is_win(info->fix.id, OSD0)) ... */
++#define is_win(name, x) ((strcmp(name, x ## _FBNAME) == 0) ? 1 : 0)
++
++/*
++ * display controller register I/O routines
++ */
++u32 dispc_reg_in(u32 offset);
++u32 dispc_reg_out(u32 offset, u32 val);
++u32 dispc_reg_merge(u32 offset, u32 val, u32 mask);
++
++#endif                                /*__KERNEL__*/
++
++/*  Error return codes  */
++#define VPBE_INVALID_PARA_VALUE         700
++#define VPBE_WRONG_WINDOW_ID            701
++#define VPBE_CURRENTLY_IN_REQUIRED_MODE 702
++#define VPBE_INSUFFICIENT_CLUT_VALUES   703
++#define VPBE_CLUT_WRITE_TIMEOUT         704
++#define VPBE_VID0_BUF_ADR_NULL          705
++#define VPBE_WINDOW_NOT_DISABLED        706
++#define VPBE_WINDOW_NOT_ENABLED         707
++
++#ifndef __KERNEL__
++/*  Window ID definations */
++#define OSD0      0
++#define VID0      1
++#define OSD1      2
++#define VID1      3
++#endif
++
++/* There are 4 framebuffers, each represented by an fb_info and
++ * a dm_win_info structure */
++#define OSD0_FBNAME "dm_osd0_fb"
++#define OSD1_FBNAME "dm_osd1_fb"
++#define VID0_FBNAME "dm_vid0_fb"
++#define VID1_FBNAME "dm_vid1_fb"
++
++/*  FIXME: Digital LCD RGB matrix coefficients */
++#define DLCD_DGY_VAL    0
++#define DLCD_DRV_VAL    0
++#define DLCD_DGU_VAL    0
++#define DLCD_DBU_VAL          0
++
++/* Defines for bitmap format */
++#define VPBE_BITMAP_BIT_1     1
++#define VPBE_BITMAP_BIT_2     2
++#define VPBE_BITMAP_BIT_4     4
++#define VPBE_BITMAP_BIT_8     8
++#define VPBE_BITMAP_RGB565    16
++#define VPBE_VIDEO_YUV422     16
++#define VPBE_VIDEO_RGB888     24
++
++/* Defines foe cursor parameter validation*/
++#define MAX_CURSOR_WIDTH      0x3FF
++#define MAX_CURSOR_HEIGHT     0x1FF
++#define MAX_CURSOR_LINEWIDTH    7
++
++#define BASEX         0x80
++#define BASEY         0x12
++#define BASEX_DLCD            0x59
++#define BASEY_DLCD            0x22
++
++/*
++ * Enumerations 
++ */
++/*  Enum for blending factor  */
++typedef enum vpbe_blend_factor {
++      OSD_CONTRIBUTION_ZERO = 0,
++      OSD_CONTRIBUTION_1_BY_8 = 1,
++      OSD_CONTRIBUTION_2_BY_8 = 2,
++      OSD_CONTRIBUTION_3_BY_8 = 3,
++      OSD_CONTRIBUTION_4_BY_8 = 4,
++      OSD_CONTRIBUTION_5_BY_8 = 5,
++      OSD_CONTRIBUTION_6_BY_8 = 6,
++      OSD_CONTRIBUTION_ONE = 7
++} vpbe_blend_factor_t;
++
++/*  Enum for Boolean variables  */
++typedef enum {
++      SET_0 = 0,
++      SET_1 = 1
++} CB_CR_ORDER, ATTRIBUTE, ROM_RAM_CLUT;
++
++/*  Defines for Display Interface */
++#define  PRGB         0
++#define  COMPOSITE      1
++#define  SVIDEO       2
++#define  COMPONENT    3
++#define  RGB          4
++#define  YCC16        5
++#define  YCC8         6
++#define  SRGB         7
++#define  EPSON        8
++#define  CASIO1G      9
++#define  UDISP        10
++#define  STN          11
++#define VPBE_MAX_INTERFACES   12
++
++/*  Defines for Display Mode */
++#define  LCD    0
++#define  NTSC 1
++#define  PAL    2
++#define  P525   3
++#define  P625   4
++
++#define DEFAULT_MODE 0
++#define  P480   0
++#define  P400   1
++#define  P350   2
++#define NON_EXISTING_MODE 255
++/*  Enable/Disable enum */
++typedef enum {
++      VPBE_DISABLE = 0,
++      VPBE_ENABLE = 1
++} ATTENUATION, TRANSPARENCY, EXPANSION, BLINKING;
++
++typedef enum clk_source {
++      CLK_SOURCE_CLK27 = 0,
++      CLK_SOURCE_CLK54 = 1,
++      CLK_SOURCE_VPBECLK = 2
++} CLK_SOURCE;
++
++/*
++ * Structures and Union Definitions
++ */
++
++/*  Structure for transparency and the blending factor for the bitmap window  */
++typedef struct vpbe_bitmap_blend_params {
++      unsigned int colorkey;  /* color key to be blend */
++      unsigned int enable_colorkeying;        /* enable color keying */
++      unsigned int bf;        /* valid range from 0 to 7 only. */
++} vpbe_bitmap_blend_params_t;
++
++/*  Structure for window expansion  */
++typedef struct vpbe_win_expansion {
++      EXPANSION horizontal;
++      EXPANSION vertical;     /* 1: Enable 0:disable */
++} vpbe_win_expansion_t;
++
++/*  Structure for OSD window blinking options */
++typedef struct vpbe_blink_option {
++      BLINKING blinking;      /* 1: Enable blinking 0: Disable */
++      unsigned int interval;  /* Valid only if blinking is 1 */
++} vpbe_blink_option_t;
++
++/*  Structure for DCLK parameters */
++typedef struct vpbe_dclk {
++      unsigned char dclk_pattern_width;
++      unsigned int dclk_pattern0;
++      unsigned int dclk_pattern1;
++      unsigned int dclk_pattern2;
++      unsigned int dclk_pattern3;
++} vpbe_dclk_t;
++
++/*  Structure for display format  */
++typedef struct vpbe_display_format {
++      unsigned char interface;        /* Output interface type */
++      unsigned char mode;     /* output mode */
++} vpbe_display_format_t;
++
++/*  Structure for background color  */
++typedef struct vpbe_backg_color {
++      unsigned char clut_select;      /* 2: RAM CLUT 1:ROM1 CLUT 0:ROM0 CLUT */
++      unsigned char color_offset;     /* index of color */
++} vpbe_backg_color_t;
++
++/*  Structure for Video window configurable parameters  */
++typedef struct vpbe_video_config_params {
++      CB_CR_ORDER cb_cr_order;        /*Cb/Cr order in input data for a pixel. */
++      /*    0: cb cr  1:  cr cb */
++      vpbe_win_expansion_t exp_info;  /* HZ/VT Expansion enable disable */
++} vpbe_video_config_params_t;
++
++/*Union of structures giving the CLUT index for the 1, 2, 4 bit bitmap values.*/
++typedef union vpbe_clut_idx {
++      struct _for_4bit_bimap {
++              unsigned char bitmap_val_0;
++              unsigned char bitmap_val_1;
++              unsigned char bitmap_val_2;
++              unsigned char bitmap_val_3;
++              unsigned char bitmap_val_4;
++              unsigned char bitmap_val_5;
++              unsigned char bitmap_val_6;
++              unsigned char bitmap_val_7;
++              unsigned char bitmap_val_8;
++              unsigned char bitmap_val_9;
++              unsigned char bitmap_val_10;
++              unsigned char bitmap_val_11;
++              unsigned char bitmap_val_12;
++              unsigned char bitmap_val_13;
++              unsigned char bitmap_val_14;
++              unsigned char bitmap_val_15;
++      } for_4bit_bimap;
++      struct _for_2bit_bimap {
++              unsigned char bitmap_val_0;
++              unsigned char dummy0[4];
++              unsigned char bitmap_val_1;
++              unsigned char dummy1[4];
++              unsigned char bitmap_val_2;
++              unsigned char dummy2[4];
++              unsigned char bitmap_val_3;
++      } for_2bit_bimap;
++      struct _for_1bit_bimap {
++              unsigned char bitmap_val_0;
++              unsigned char dummy0[14];
++              unsigned char bitmap_val_1;
++      } for_1bit_bimap;
++} vpbe_clut_idx_t;
++
++/*  Structure for bitmap window configurable parameters */
++typedef struct vpbe_bitmap_config_params {
++      /* Only for bitmap width = 1,2,4 bits */
++      vpbe_clut_idx_t clut_idx;
++      /* Attenuation value for YUV o/p for bitmap window */
++      unsigned char attenuation_enable;
++      /* 0: ROM DM270, 1:ROM DM320, 2:RAM CLUT */
++      unsigned char clut_select;
++} vpbe_bitmap_config_params_t;
++
++/*  Unioun for video/OSD configuration parameters  */
++typedef union vpbe_conf_params {
++
++      struct vpbe_video_params {
++              CB_CR_ORDER cb_cr_order;
++              /* HZ/VT Expansion enable disable */
++              vpbe_win_expansion_t exp_info;
++      } video_params;
++
++      struct vpbe_bitmap_params {
++              /* Attenuation value for YUV o/p */
++              ATTENUATION attenuation_enable;
++              /* 0: ROM DM270, 1: ROM DM320, 2:RAM CLUT */
++              unsigned char clut_select;
++              /* Only for bitmap width = 1,2,4 bits */
++              vpbe_clut_idx_t clut_idx;
++              /* 0: OSD window is bitmap window */
++              /* 1: OSD window is attribute window */
++              ATTRIBUTE enable_attribute;
++              /* To hold bps value. 
++                 Used to switch back from attribute to bitmap. */
++              unsigned int stored_bits_per_pixel;
++              /* Blending information */
++              vpbe_bitmap_blend_params_t blend_info;
++              /* OSD Blinking information */
++              vpbe_blink_option_t blink_info;
++      } bitmap_params;
++
++} vpbe_conf_params_t;
++
++typedef struct vpbe_video_params vpbe_video_params_t;
++typedef struct vpbe_bitmap_params vpbe_bitmap_params_t;
++
++/* Structure to hold window position */
++typedef struct vpbe_window_position {
++      unsigned int xpos;      /* X position of the window */
++      unsigned int ypos;      /* Y position of the window */
++} vpbe_window_position_t;
++
++#ifdef __KERNEL__
++/*  Structure for each window */
++typedef struct vpbe_dm_win_info {
++      struct fb_info info;
++      vpbe_window_position_t win_pos; /* X,Y position of window */
++      /* Size of window is already there in var_info structure. */
++
++      dma_addr_t fb_base_phys;        /*framebuffer area */
++      unsigned int fb_base;   /*window memory pointer */
++      unsigned int fb_size;   /*memory size */
++      unsigned int pseudo_palette[17];
++      int alloc_fb_mem;
++      /*flag to identify if framebuffer area is fixed or not */
++      unsigned long sdram_address;
++      struct vpbe_dm_info *dm;
++      unsigned char window_enable;    /*Additions for all windows */
++      zoom_params_t zoom;     /*Zooming parameters */
++      unsigned char field_frame_select;       /*To select Field or frame */
++      unsigned char numbufs;  /*Number of buffers valid 2 or 3 */
++      vpbe_conf_params_t conf_params;
++      /*window configuration parameter union pointer */
++} vpbe_dm_win_info_t;
++#endif                                /*__KERNEL__*/
++
++/*
++ *  Videmode structure for display interface and mode settings
++ */
++typedef struct vpbe_fb_videomode {
++      unsigned char name[10]; /* Mode name ( NTSC , PAL) */
++      unsigned int vmode;     /* FB_MODE_INTERLACED or FB_MODE_NON_INTERLACED */
++      unsigned int xres;      /* X Resolution of the display */
++      unsigned int yres;      /* Y Resolution of the display */
++      unsigned int fps;       /* frames per second */
++      /* Timing Parameters applicable for std = 0 only */
++      unsigned int left_margin;
++      unsigned int right_margin;
++      unsigned int upper_margin;
++      unsigned int lower_margin;
++      unsigned int hsync_len;
++      unsigned int vsync_len;
++      unsigned int sync;      /* 0: hsync -ve/vsync -ve */
++      /*1: hsync -ve/vsync +ve */
++      /*2: hsync +ve/vsync -ve */
++      /*3: hsync +ve/vsync +ve */
++      unsigned int basepx;    /* Display x,y start position */
++      unsigned int basepy;
++/*  1= Mode s available in modelist 0=Mode is not available in modelist */
++      unsigned int std;
++} vpbe_fb_videomode_t;
++
++/* Structure to interface videomode to application*/
++typedef struct vpbe_mode_info {
++      vpbe_fb_videomode_t vid_mode;
++      unsigned char interface;
++      unsigned char mode_idx;
++} vpbe_mode_info_t;
++
++#ifdef __KERNEL__
++/* 
++ * Structure for the driver holding information of windows, 
++ *  memory base addresses etc.
++ */
++typedef struct vpbe_dm_info {
++      vpbe_dm_win_info_t *osd0;
++      vpbe_dm_win_info_t *osd1;
++      vpbe_dm_win_info_t *vid0;
++      vpbe_dm_win_info_t *vid1;
++
++/* to map the registers */
++      dma_addr_t mmio_base_phys;
++      unsigned int mmio_base;
++      unsigned int mmio_size;
++
++      wait_queue_head_t vsync_wait;
++      unsigned int vsync_cnt;
++      int timeout;
++
++      /* this is the function that configures the output device (NTSC/PAL/LCD)
++       * for the required output format (composite/s-video/component/rgb)
++       */
++      void (*output_device_config) (void);
++
++      struct device *dev;
++
++      vpbe_backg_color_t backg;       /* background color */
++      vpbe_dclk_t dclk;       /*DCLK parameters */
++      vpbe_display_format_t display;  /*Display interface and mode */
++      vpbe_fb_videomode_t videomode;  /*Cuurent videomode */
++      char ram_clut[256][3];  /*RAM CLUT array */
++      struct fb_cursor cursor;        /* cursor config params from fb.h */
++/*Flag that indicates whether any of the display is enabled or not*/
++      int display_enable;
++} vpbe_dm_info_t;
++
++/*
++ * Functions Definitions for 'davincifb' module
++ */
++int vpbe_mem_alloc_window_buf(vpbe_dm_win_info_t *);
++int vpbe_mem_release_window_buf(vpbe_dm_win_info_t *);
++void init_display_function(vpbe_display_format_t *);
++int vpbe_mem_alloc_struct(vpbe_dm_win_info_t **);
++void set_vid0_default_conf(void);
++void set_vid1_default_conf(void);
++void set_osd0_default_conf(void);
++void set_osd1_default_conf(void);
++void set_cursor_default_conf(void);
++void set_dm_default_conf(void);
++void set_win_enable(char *, unsigned int);
++int within_vid0_limits(u32, u32, u32, u32);
++void vpbe_set_display_default(void);
++#ifdef __KERNEL__
++void set_win_position(char *, u32, u32, u32, u32);
++void change_win_param(int);
++void set_interlaced(char *, unsigned int);
++#endif /* __KERNEL__ */
++
++/*
++ *    Function definations for 'osd' module
++ */
++
++int vpbe_enable_window(vpbe_dm_win_info_t *);
++int vpbe_disable_window(vpbe_dm_win_info_t *);
++int vpbe_vid_osd_select_field_frame(u8 *, u8);
++int vpbe_bitmap_set_blend_factor(u8 *, vpbe_bitmap_blend_params_t *);
++int vpbe_bitmap_set_ram_clut(void);
++int vpbe_enable_disable_attribute_window(u32);
++int vpbe_get_blinking(u8 *, vpbe_blink_option_t *);
++int vpbe_set_blinking(u8 *, vpbe_blink_option_t *);
++int vpbe_set_vid_params(u8 *, vpbe_video_config_params_t *);
++int vpbe_get_vid_params(u8 *, vpbe_video_config_params_t *);
++int vpbe_bitmap_get_params(u8 *, vpbe_bitmap_config_params_t *);
++int vpbe_bitmap_set_params(u8 *, vpbe_bitmap_config_params_t *);
++int vpbe_set_cursor_params(struct fb_cursor *);
++int vpbe_set_vid_expansion(vpbe_win_expansion_t *);
++int vpbe_set_dclk(vpbe_dclk_t *);
++int vpbe_set_display_format(vpbe_display_format_t *);
++int vpbe_set_backg_color(vpbe_backg_color_t *);
++int vpbe_set_interface(u8);
++int vpbe_query_mode(vpbe_mode_info_t *);
++int vpbe_set_mode(struct vpbe_fb_videomode *);
++int vpbe_set_venc_clk_source(u8);
++void set_vid0_default_conf(void);
++void set_osd0_default_conf(void);
++void set_vid1_default_conf(void);
++void set_osd1_default_conf(void);
++void set_cursor_default_conf(void);
++void set_dm_default_conf(void);
++/*
++ * Function definations for 'venc' module
++ */
++
++void davincifb_ntsc_composite_config(void);
++void davincifb_ntsc_svideo_config(void);
++void davincifb_ntsc_component_config(void);
++void davincifb_pal_composite_config(void);
++void davincifb_pal_svideo_config(void);
++void davincifb_pal_component_config(void);
++
++void vpbe_davincifb_ntsc_rgb_config(void);
++void vpbe_davincifb_pal_rgb_config(void);
++void vpbe_davincifb_525p_component_config(void);
++void vpbe_davincifb_625p_component_config(void);
++
++void vpbe_enable_venc(int);
++void vpbe_enable_dacs(int);
++/*
++ * Function definations for 'dlcd' module
++ */
++void vpbe_davincifb_480p_prgb_config(void);
++void vpbe_davincifb_400p_prgb_config(void);
++void vpbe_davincifb_350p_prgb_config(void);
++void vpbe_set_display_timing(struct vpbe_fb_videomode *);
++
++void vpbe_enable_lcd(int);
++/*
++ * Following functions are not implemented
++ */
++void vpbe_davincifb_default_ycc16_config(void);
++void vpbe_davincifb_default_ycc8_config(void);
++void vpbe_davincifb_default_srgb_config(void);
++void vpbe_davincifb_default_epson_config(void);
++void vpbe_davincifb_default_casio_config(void);
++void vpbe_davincifb_default_UDISP_config(void);
++void vpbe_davincifb_default_STN_config(void);
++#endif                                /*__KERNEL__*/
++
++#endif                                /* End of #ifndef DAVINCI_VPBE_H */
+diff -urNp DirectFB-1.5.3_orig/gfxdrivers/davinci/davinci_gfxdriver.h DirectFB-1.5.3/gfxdrivers/davinci/davinci_gfxdriver.h
+--- DirectFB-1.5.3_orig/gfxdrivers/davinci/davinci_gfxdriver.h 1969-12-31 19:00:00.000000000 -0500
++++ DirectFB-1.5.3/gfxdrivers/davinci/davinci_gfxdriver.h      2012-05-09 02:19:40.797421031 -0400
+@@ -0,0 +1,169 @@
++/*
++   TI Davinci driver - Graphics Driver
++
++   (c) Copyright 2007  Telio AG
++
++   Written by Denis Oliver Kropp <dok@directfb.org>
++
++   Code is derived from VMWare driver.
++
++   (c) Copyright 2001-2009  The world wide DirectFB Open Source Community (directfb.org)
++   (c) Copyright 2000-2004  Convergence (integrated media) GmbH
++
++   All rights reserved.
++
++   This 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 of the License, 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
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with this library; if not, write to the
++   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++   Boston, MA 02111-1307, USA.
++*/
++
++#ifndef __DAVINCI_GFXDRIVER_H__
++#define __DAVINCI_GFXDRIVER_H__
++
++#include <sys/ioctl.h>
++#include <davincifb.h>
++
++#include <core/surface_buffer.h>
++
++#include "davincifb.h"
++
++#include "davinci_c64x.h"
++
++
++typedef struct {
++     /* validation flags */
++     int                       v_flags;
++
++     /* cached/computed values */
++     void                     *dst_addr;
++     unsigned long             dst_phys;
++     unsigned int              dst_size;
++     unsigned long             dst_pitch;
++     DFBSurfacePixelFormat     dst_format;
++     unsigned long             dst_bpp;
++
++     void                     *src_addr;
++     unsigned long             src_phys;
++     unsigned long             src_pitch;
++     DFBSurfacePixelFormat     src_format;
++     unsigned long             src_bpp;
++
++     unsigned long             source_mult;
++
++     unsigned long             fillcolor;
++
++     int                       blit_blend_sub_function;
++     int                       draw_blend_sub_function;
++
++     DFBColor                  color;
++     unsigned long             color_argb;
++     unsigned long             colorkey;
++
++     DFBSurfaceBlittingFlags   blitting_flags;
++
++     DFBRegion                 clip;
++
++     /** Add shared data here... **/
++     struct fb_fix_screeninfo  fix[4];
++
++     CoreSurfacePool          *osd_pool;
++     CoreSurfacePool          *video_pool;
++
++     bool                      synced;
++} DavinciDeviceData;
++
++
++typedef struct {
++     int                       num;
++     int                       fd;
++     void                     *mem;
++     int                       size;
++} DavinciFB;
++
++typedef struct {
++     DavinciDeviceData        *ddev;
++
++     CoreDFB                  *core;
++
++     CoreScreen               *screen;
++     CoreLayer                *osd;
++     CoreLayer                *video;
++
++     DavinciFB                 fb[4];
++
++     DavinciC64x               c64x;
++     bool                      c64x_present;
++
++     DavinciC64xTasks          tasks;
++} DavinciDriverData;
++
++
++static inline DFBResult
++davincifb_pan_display( const DavinciFB             *fb,
++                       struct fb_var_screeninfo    *var,
++                       const CoreSurfaceBufferLock *lock,
++                       DFBSurfaceFlipFlags          flags,
++                       int                          x,
++                       int                          y )
++{
++     int ret;
++
++     if (lock) {
++#ifdef FBIO_SET_START
++          CoreSurfaceBuffer   *buffer = lock->buffer;
++          struct fb_set_start  set_start;
++
++          /* physical mode */
++          set_start.offset   = -1;
++          set_start.sync     = (flags & DSFLIP_ONSYNC) ? 1 : 0;
++
++          /* life's so easy */
++          set_start.physical = lock->phys + DFB_BYTES_PER_LINE( buffer->format, x ) + y * lock->pitch;
++
++          ret = ioctl( fb->fd, FBIO_SET_START, &set_start );
++          if (ret < 0)
++               D_DEBUG( "FBIO_SET_START (0x%08lx, sync %llu) failed!\n",
++                         set_start.physical, set_start.sync );
++
++          if (ret == 0) {
++               if (flags & DSFLIP_WAIT)
++                    ioctl( fb->fd, FBIO_WAITFORVSYNC );
++
++               return DFB_OK;
++          }
++
++          /* fallback */
++#endif
++          var->xoffset = x;                  /* poor version */
++          var->yoffset = y + lock->offset / lock->pitch;
++     }
++     else {
++          var->xoffset = x;
++          var->yoffset = y;
++     }
++
++     var->activate = /*(flags & DSFLIP_ONSYNC) ? FB_ACTIVATE_VBL :*/ FB_ACTIVATE_NOW;
++
++     ret = ioctl( fb->fd, FBIOPAN_DISPLAY, var );
++     if (ret)
++          D_PERROR( "Davinci/FB: FBIOPAN_DISPLAY (fb%d - %d,%d) failed!\n",
++                    fb->num, var->xoffset, var->yoffset );
++
++     if (flags & DSFLIP_WAIT)
++          ioctl( fb->fd, FBIO_WAITFORVSYNC );
++
++     return DFB_OK;
++}
++
++#endif
diff --git a/src/patches/SDL-1.2.11-asm-page.h.patch b/src/patches/SDL-1.2.11-asm-page.h.patch
deleted file mode 100644 (file)
index ece702d..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-diff -urN SDL-1.2.11.orig/src/video/fbcon/SDL_fbvideo.c SDL-1.2.11/src/video/fbcon/SDL_fbvideo.c
---- SDL-1.2.11.orig/src/video/fbcon/SDL_fbvideo.c      2006-05-17 06:16:06.000000000 +0300
-+++ SDL-1.2.11/src/video/fbcon/SDL_fbvideo.c   2007-06-24 22:19:41.000000000 +0300
-@@ -29,9 +29,17 @@
- #include <unistd.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
--#include <asm/page.h>         /* For definition of PAGE_SIZE */
- #include <linux/vt.h>
-+#if defined(linux)
-+#define HAS_MMAP_ANON
-+#include <sys/types.h>
-+#include <sys/mman.h>
-+#include <asm/page.h>   /* PAGE_SIZE */
-+#define HAS_SC_PAGESIZE /* _SC_PAGESIZE may be an enum for Linux */
-+#define HAS_GETPAGESIZE
-+#endif /* linux */
-+
- #include "SDL_video.h"
- #include "SDL_mouse.h"
- #include "../SDL_sysvideo.h"
-@@ -474,6 +482,7 @@
-       unsigned int current_h;
-       const char *SDL_fbdev;
-       FILE *modesdb;
-+      int pagesize = -1;
-       /* Initialize the library */
-       SDL_fbdev = SDL_getenv("SDL_FBDEV");
-@@ -545,9 +554,27 @@
-               }
-       }
-+#if defined(_SC_PAGESIZE) && defined(HAS_SC_PAGESIZE)
-+      pagesize = sysconf(_SC_PAGESIZE);
-+#endif
-+#ifdef _SC_PAGE_SIZE
-+      if (pagesize == -1)
-+              pagesize = sysconf(_SC_PAGE_SIZE);
-+#endif
-+#ifdef HAS_GETPAGESIZE
-+      if (pagesize == -1)
-+              pagesize = getpagesize();
-+#endif
-+#ifdef PAGE_SIZE
-+      if (pagesize == -1)
-+              pagesize = PAGE_SIZE;
-+#endif
-+      if (pagesize == -1)
-+              pagesize = 4096;
-+
-       /* Memory map the device, compensating for buggy PPC mmap() */
-       mapped_offset = (((long)finfo.smem_start) -
--                      (((long)finfo.smem_start)&~(PAGE_SIZE-1)));
-+                      (((long)finfo.smem_start)&~(pagesize-1)));
-       mapped_memlen = finfo.smem_len+mapped_offset;
-       mapped_mem = do_mmap(NULL, mapped_memlen,
-                         PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);
diff --git a/src/patches/bash/bash32-052 b/src/patches/bash/bash32-052
deleted file mode 100644 (file)
index 78e7d92..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-052
-
-Bug-Reported-by:       Stephane Chazelas <stephane.chazelas@gmail.com>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-Under certain circumstances, bash will execute user code while processing the
-environment for exported function definitions.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-3.2.51/builtins/common.h   2006-03-06 09:38:44.000000000 -0500
---- builtins/common.h  2014-09-16 19:08:02.000000000 -0400
-***************
-*** 34,37 ****
---- 34,39 ----
-  
-  /* Flags for describe_command, shared between type.def and command.def */
-+ #define SEVAL_FUNCDEF        0x080           /* only allow function definitions */
-+ #define SEVAL_ONECMD 0x100           /* only allow a single command */
-  #define CDESC_ALL            0x001   /* type -a */
-  #define CDESC_SHORTDESC              0x002   /* command -V */
-*** ../bash-3.2.51/builtins/evalstring.c       2008-11-15 17:47:04.000000000 -0500
---- builtins/evalstring.c      2014-09-16 19:08:02.000000000 -0400
-***************
-*** 235,238 ****
---- 235,246 ----
-             struct fd_bitmap *bitmap;
-  
-+            if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
-+              {
-+                internal_warning ("%s: ignoring function definition attempt", from_file);
-+                should_jump_to_top_level = 0;
-+                last_result = last_command_exit_value = EX_BADUSAGE;
-+                break;
-+              }
-+ 
-             bitmap = new_fd_bitmap (FD_BITMAP_SIZE);
-             begin_unwind_frame ("pe_dispose");
-***************
-*** 292,295 ****
---- 300,306 ----
-             dispose_fd_bitmap (bitmap);
-             discard_unwind_frame ("pe_dispose");
-+ 
-+            if (flags & SEVAL_ONECMD)
-+              break;
-           }
-       }
-*** ../bash-3.2.51/variables.c 2008-11-15 17:15:06.000000000 -0500
---- variables.c        2014-09-16 19:10:39.000000000 -0400
-***************
-*** 319,328 ****
-         strcpy (temp_string + char_index + 1, string);
-  
-!        parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST);
-! 
-!        /* Ancient backwards compatibility.  Old versions of bash exported
-!           functions like name()=() {...} */
-!        if (name[char_index - 1] == ')' && name[char_index - 2] == '(')
-!          name[char_index - 2] = '\0';
-  
-         if (temp_var = find_function (name))
---- 319,326 ----
-         strcpy (temp_string + char_index + 1, string);
-  
-!        /* Don't import function names that are invalid identifiers from the
-!           environment. */
-!        if (legal_identifier (name))
-!          parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
-  
-         if (temp_var = find_function (name))
-***************
-*** 333,340 ****
-         else
-           report_error (_("error importing function definition for `%s'"), name);
-- 
--        /* ( */
--        if (name[char_index - 1] == ')' && name[char_index - 2] == '\0')
--          name[char_index - 2] = '(';         /* ) */
-       }
-  #if defined (ARRAY_VARS)
---- 331,334 ----
-*** ../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 51
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 52
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-053 b/src/patches/bash/bash32-053
deleted file mode 100644 (file)
index e7efce7..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release: 3.2
-Patch-ID: bash32-053
-
-Bug-Reported-by:       Tavis Ormandy <taviso () cmpxchg8b com>
-Bug-Reference-ID:
-Bug-Reference-URL:     http://twitter.com/taviso/statuses/514887394294652929
-
-Bug-Description:
-
-Under certain circumstances, bash can incorrectly save a lookahead character and
-return it on a subsequent call, even when reading a new line.
-
-Patch:
-
-*** ../bash-3.2.52/parse.y     2008-04-29 21:24:55.000000000 -0400
---- parse.y    2014-09-25 16:18:41.000000000 -0400
-***************
-*** 2504,2507 ****
---- 2504,2509 ----
-    word_desc_to_read = (WORD_DESC *)NULL;
-  
-+   eol_ungetc_lookahead = 0;
-+ 
-    last_read_token = '\n';
-    token_to_read = '\n';
-*** ../bash-3.2.52/y.tab.c     2006-09-25 08:15:16.000000000 -0400
---- y.tab.c    2014-09-25 20:28:17.000000000 -0400
-***************
-*** 3833,3836 ****
---- 3833,3838 ----
-    word_desc_to_read = (WORD_DESC *)NULL;
-  
-+   eol_ungetc_lookahead = 0;
-+ 
-    last_read_token = '\n';
-    token_to_read = '\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 52
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 53
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/binutils-2.24-pt-pax-flags-20131231.patch b/src/patches/binutils-2.24-pt-pax-flags-20131231.patch
deleted file mode 100644 (file)
index cfb2035..0000000
+++ /dev/null
@@ -1,1030 +0,0 @@
---- binutils-2.24/bfd/elf-bfd.h
-+++ binutils-2.24/bfd/elf-bfd.h
-@@ -1577,6 +1577,9 @@ struct elf_obj_tdata
-   /* Segment flags for the PT_GNU_STACK segment.  */
-   unsigned int stack_flags;
-+  /* Segment flags for the PT_PAX_FLAGS segment.  */
-+  unsigned int pax_flags;
-+
-   /* This is set to TRUE if the object was created by the backend
-      linker.  */
-   bfd_boolean linker;
-@@ -1707,6 +1707,7 @@
- #define elf_eh_frame_hdr(bfd) (elf_tdata(bfd) -> o->eh_frame_hdr)
- #define elf_linker(bfd)               (elf_tdata(bfd) -> o->linker)
- #define elf_stack_flags(bfd)  (elf_tdata(bfd) -> o->stack_flags)
-+#define elf_pax_flags(bfd)    (elf_tdata(bfd) -> o->pax_flags)
- #define elf_shstrtab(bfd)     (elf_tdata(bfd) -> o->strtab_ptr)
- #define elf_onesymtab(bfd)    (elf_tdata(bfd) -> symtab_section)
- #define elf_symtab_shndx(bfd) (elf_tdata(bfd) -> symtab_shndx_section)
---- binutils-2.24/bfd/elf.c
-+++ binutils-2.24/bfd/elf.c
-@@ -1158,6 +1158,7 @@ get_segment_type (unsigned int p_type)
-     case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break;
-     case PT_GNU_STACK: pt = "STACK"; break;
-     case PT_GNU_RELRO: pt = "RELRO"; break;
-+    case PT_PAX_FLAGS: pt = "PAX_FLAGS"; break;
-     default: pt = NULL; break;
-     }
-   return pt;
-@@ -2477,6 +2478,9 @@ bfd_section_from_phdr (bfd *abfd, Elf_Internal_Phdr *hdr, int hdr_index)
-     case PT_GNU_RELRO:
-       return _bfd_elf_make_section_from_phdr (abfd, hdr, hdr_index, "relro");
-+    case PT_PAX_FLAGS:
-+      return _bfd_elf_make_section_from_phdr (abfd, hdr, hdr_index, "pax_flags");
-+
-     default:
-       /* Check for any processor-specific program segment types.  */
-       bed = get_elf_backend_data (abfd);
-@@ -3551,6 +3555,11 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info)
-       ++segs;
-     }
-+    {
-+      /* We need a PT_PAX_FLAGS segment.  */
-+      ++segs;
-+    }
-+
-   for (s = abfd->sections; s != NULL; s = s->next)
-     {
-       if ((s->flags & SEC_LOAD) != 0
-@@ -4153,6 +4162,20 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
-           }
-       }
-+    {
-+      amt = sizeof (struct elf_segment_map);
-+      m = bfd_zalloc (abfd, amt);
-+      if (m == NULL)
-+      goto error_return;
-+      m->next = NULL;
-+      m->p_type = PT_PAX_FLAGS;
-+      m->p_flags = elf_pax_flags (abfd);
-+      m->p_flags_valid = 1;
-+
-+      *pm = m;
-+      pm = &m->next;
-+    }
-+
-       free (sections);
-       elf_tdata (abfd)->segment_map = mfirst;
-     }
-@@ -5417,7 +5440,8 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
-        6. PT_TLS segment includes only SHF_TLS sections.
-        7. SHF_TLS sections are only in PT_TLS or PT_LOAD segments.
-        8. PT_DYNAMIC should not contain empty sections at the beginning
--        (with the possible exception of .dynamic).  */
-+        (with the possible exception of .dynamic).
-+       9. PT_PAX_FLAGS segments do not include any sections.  */
- #define IS_SECTION_IN_INPUT_SEGMENT(section, segment, bed)            \
-   ((((segment->p_paddr                                                        \
-       ? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr)      \
-@@ -5425,6 +5449,7 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
-      && (section->flags & SEC_ALLOC) != 0)                            \
-     || IS_NOTE (segment, section))                                    \
-    && segment->p_type != PT_GNU_STACK                                 \
-+   && segment->p_type != PT_PAX_FLAGS                                 \
-    && (segment->p_type != PT_TLS                                      \
-        || (section->flags & SEC_THREAD_LOCAL))                                \
-    && (segment->p_type == PT_LOAD                                     \
---- binutils-2.24/bfd/elflink.c
-+++ binutils-2.24/bfd/elflink.c
-@@ -5545,17 +5545,30 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
-       && ! (*bed->elf_backend_always_size_sections) (output_bfd, info))
-     return FALSE;
-+  elf_pax_flags (output_bfd) = PF_NORANDEXEC;
-+  if (info->execheap)
-+    elf_pax_flags (output_bfd) |= PF_NOMPROTECT;
-+  else if (info->noexecheap)
-+    elf_pax_flags (output_bfd) |= PF_MPROTECT;
-+
-   /* Determine any GNU_STACK segment requirements, after the backend
-      has had a chance to set a default segment size.  */
-   if (info->execstack)
--    elf_stack_flags (output_bfd) = PF_R | PF_W | PF_X;
-+    {
-+      elf_stack_flags (output_bfd) = PF_R | PF_W | PF_X;
-+      elf_pax_flags (output_bfd) |= PF_EMUTRAMP;
-+    }
-   else if (info->noexecstack)
--    elf_stack_flags (output_bfd) = PF_R | PF_W;
-+    {
-+      elf_stack_flags (output_bfd) = PF_R | PF_W;
-+      elf_pax_flags (output_bfd) |= PF_NOEMUTRAMP;
-+    }
-   else
-     {
-       bfd *inputobj;
-       asection *notesec = NULL;
-       int exec = 0;
-+      elf_pax_flags (output_bfd) |= PF_NOEMUTRAMP;
-       for (inputobj = info->input_bfds;
-          inputobj;
-          inputobj = inputobj->link_next)
-@@ -5567,7 +5581,11 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
-         if (s)
-           {
-             if (s->flags & SEC_CODE)
--              exec = PF_X;
-+              {
-+                elf_pax_flags (output_bfd) &= ~PF_NOEMUTRAMP;
-+                elf_pax_flags (output_bfd) |= PF_EMUTRAMP;
-+                exec = PF_X;
-+              }
-             notesec = s;
-           }
-         else if (bed->default_execstack)
---- binutils-2.24/binutils/readelf.c
-+++ binutils-2.24/binutils/readelf.c
-@@ -2740,6 +2740,7 @@ get_segment_type (unsigned long p_type)
-                       return "GNU_EH_FRAME";
-     case PT_GNU_STACK:        return "GNU_STACK";
-     case PT_GNU_RELRO:  return "GNU_RELRO";
-+    case PT_PAX_FLAGS:  return "PAX_FLAGS";
-     default:
-       if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC))
---- binutils-2.24/include/bfdlink.h
-+++ binutils-2.24/include/bfdlink.h
-@@ -322,6 +322,14 @@ struct bfd_link_info
-   /* TRUE if PT_GNU_RELRO segment should be created.  */
-   unsigned int relro: 1;
-+  /* TRUE if PT_PAX_FLAGS segment should be created with PF_NOMPROTECT
-+     flags.  */
-+  unsigned int execheap: 1;
-+
-+  /* TRUE if PT_PAX_FLAGS segment should be created with PF_MPROTECT
-+     flags.  */
-+  unsigned int noexecheap: 1;
-+
-   /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment
-      should be created.  */
-   unsigned int eh_frame_hdr: 1;
---- binutils-2.24/include/elf/common.h
-+++ binutils-2.24/include/elf/common.h
-@@ -429,6 +429,7 @@
- #define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME      /* Solaris uses the same value */
- #define PT_GNU_STACK  (PT_LOOS + 0x474e551) /* Stack flags */
- #define PT_GNU_RELRO  (PT_LOOS + 0x474e552) /* Read-only after relocation */
-+#define PT_PAX_FLAGS  (PT_LOOS + 0x5041580) /* PaX flags */
- /* Program segment permissions, in program header p_flags field.  */
-@@ -439,6 +440,21 @@
- #define PF_MASKOS     0x0FF00000      /* New value, Oct 4, 1999 Draft */
- #define PF_MASKPROC   0xF0000000      /* Processor-specific reserved bits */
-+/* Flags to control PaX behavior.  */
-+
-+#define PF_PAGEEXEC   (1 << 4)        /* Enable  PAGEEXEC */
-+#define PF_NOPAGEEXEC (1 << 5)        /* Disable PAGEEXEC */
-+#define PF_SEGMEXEC   (1 << 6)        /* Enable  SEGMEXEC */
-+#define PF_NOSEGMEXEC (1 << 7)        /* Disable SEGMEXEC */
-+#define PF_MPROTECT   (1 << 8)        /* Enable  MPROTECT */
-+#define PF_NOMPROTECT (1 << 9)        /* Disable MPROTECT */
-+#define PF_RANDEXEC   (1 << 10)       /* Enable  RANDEXEC */
-+#define PF_NORANDEXEC (1 << 11)       /* Disable RANDEXEC */
-+#define PF_EMUTRAMP   (1 << 12)       /* Enable  EMUTRAMP */
-+#define PF_NOEMUTRAMP (1 << 13)       /* Disable EMUTRAMP */
-+#define PF_RANDMMAP   (1 << 14)       /* Enable  RANDMMAP */
-+#define PF_NORANDMMAP (1 << 15)       /* Disable RANDMMAP */
-+
- /* Values for section header, sh_type field.  */
- #define SHT_NULL      0               /* Section header table entry unused */
---- binutils-2.24/ld/emultempl/elf32.em
-+++ binutils-2.24/ld/emultempl/elf32.em
-@@ -2285,6 +2285,16 @@ fragment <<EOF
-         link_info.noexecstack = TRUE;
-         link_info.execstack = FALSE;
-       }
-+      else if (strcmp (optarg, "execheap") == 0)
-+      {
-+        link_info.execheap = TRUE;
-+        link_info.noexecheap = FALSE;
-+      }
-+      else if (strcmp (optarg, "noexecheap") == 0)
-+      {
-+        link_info.noexecheap = TRUE;
-+        link_info.execheap = FALSE;
-+      }
- EOF
- if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
- fragment <<EOF
-@@ -2368,6 +2378,8 @@ fragment <<EOF
-   -z defs                     Report unresolved symbols in object files.\n"));
-   fprintf (file, _("\
-   -z execstack                Mark executable as requiring executable stack\n"));
-+  fprintf (file, _("\
-+  -z execheap                 Mark executable as requiring executable heap\n"));
- EOF
- if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
-@@ -2391,6 +2403,8 @@ fragment <<EOF
- fragment <<EOF
-   fprintf (file, _("\
-   -z noexecstack              Mark executable as not requiring executable stack\n"));
-+  fprintf (file, _("\
-+  -z noexecheap               Mark executable as not requiring executable heap\n"));
- EOF
- if test x"$GENERATE_SHLIB_SCRIPT" = xyes; then
- fragment <<EOF
---- binutils-2.24/ld/ldgram.y
-+++ binutils-2.24/ld/ldgram.y
-@@ -1119,6 +1119,8 @@ phdr_type:
-                           $$ = exp_intop (0x6474e550);
-                         else if (strcmp (s, "PT_GNU_STACK") == 0)
-                           $$ = exp_intop (0x6474e551);
-+                        else if (strcmp (s, "PT_PAX_FLAGS") == 0)
-+                          $$ = exp_intop (0x65041580);
-                         else
-                           {
-                             einfo (_("\
---- binutils-2.24/ld/testsuite/ld-alpha/tlsbin.rd
-+++ binutils-2.24/ld/testsuite/ld-alpha/tlsbin.rd
-@@ -35,13 +35,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+
- Program Headers:
-   Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
--  PHDR +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+150 R E 0x8
-+  PHDR +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+188 R E 0x8
-   INTERP +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1
- .*Requesting program interpreter.*
-   LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x10000
-   LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x10000
-   DYNAMIC +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW +0x8
-   TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 3 entries:
---- binutils-2.24/ld/testsuite/ld-alpha/tlsbinr.rd
-+++ binutils-2.24/ld/testsuite/ld-alpha/tlsbinr.rd
-@@ -42,6 +42,7 @@ Program Headers:
-  +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x10000
-  +DYNAMIC +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW +0x8
-  +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries:
---- binutils-2.24/ld/testsuite/ld-alpha/tlspic.rd
-+++ binutils-2.24/ld/testsuite/ld-alpha/tlspic.rd
-@@ -38,6 +38,7 @@ Program Headers:
-  +LOAD +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x10000
-  +DYNAMIC +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ RW +0x8
-  +TLS +0x0+10e0 0x0+110e0 0x0+110e0 0x0+60 0x0+80 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 7 entries:
---- binutils-2.24/ld/testsuite/ld-elf/eh1.d
-+++ binutils-2.24/ld/testsuite/ld-elf/eh1.d
-@@ -22,11 +22,11 @@ Contents of the .eh_frame section:
-   DW_CFA_nop
-   DW_CFA_nop
--0+0018 0+001c 0+001c FDE cie=0+0000 pc=0+400078..0+400078
--  DW_CFA_advance_loc: 0 to 0+400078
-+0+0018 0+001c 0+001c FDE cie=0+0000 pc=([0-9a-f]+)..\1
-+  DW_CFA_advance_loc: 0 to [0-9a-f]+
-   DW_CFA_def_cfa_offset: 16
-   DW_CFA_offset: r6 \(rbp\) at cfa-16
--  DW_CFA_advance_loc: 0 to 0+400078
-+  DW_CFA_advance_loc: 0 to [0-9a-f]+
-   DW_CFA_def_cfa_register: r6 \(rbp\)
- 0+0038 ZERO terminator
---- binutils-2.24/ld/testsuite/ld-elf/eh2.d
-+++ binutils-2.24/ld/testsuite/ld-elf/eh2.d
-@@ -22,11 +22,11 @@ Contents of the .eh_frame section:
-   DW_CFA_nop
-   DW_CFA_nop
--0+0018 0+001c 0+001c FDE cie=0+0000 pc=0+400078..0+400078
--  DW_CFA_advance_loc: 0 to 0+400078
-+0+0018 0+001c 0+001c FDE cie=0+0000 pc=([0-9a-f]+)..\1
-+  DW_CFA_advance_loc: 0 to [0-9a-f]+
-   DW_CFA_def_cfa_offset: 16
-   DW_CFA_offset: r6 \(rbp\) at cfa-16
--  DW_CFA_advance_loc: 0 to 0+400078
-+  DW_CFA_advance_loc: 0 to [0-9a-f]+
-   DW_CFA_def_cfa_register: r6 \(rbp\)
- 0+0038 ZERO terminator
---- binutils-2.24/ld/testsuite/ld-elf/eh3.d
-+++ binutils-2.24/ld/testsuite/ld-elf/eh3.d
-@@ -22,11 +22,11 @@ Contents of the .eh_frame section:
-   DW_CFA_nop
-   DW_CFA_nop
--0+0018 0+001c 0+001c FDE cie=0+0000 pc=0+400078..0+400078
--  DW_CFA_advance_loc: 0 to 0+400078
-+0+0018 0+001c 0+001c FDE cie=0+0000 pc=([0-9a-f]+)..\1
-+  DW_CFA_advance_loc: 0 to [0-9a-f]+
-   DW_CFA_def_cfa_offset: 16
-   DW_CFA_offset: r6 \(rbp\) at cfa-16
--  DW_CFA_advance_loc: 0 to 0+400078
-+  DW_CFA_advance_loc: 0 to [0-9a-f]+
-   DW_CFA_def_cfa_register: r6 \(rbp\)
- 0+0038 ZERO terminator
---- binutils-2.24/ld/testsuite/ld-elf/orphan-region.d
-+++ binutils-2.24/ld/testsuite/ld-elf/orphan-region.d
-@@ -15,7 +15,9 @@
- Program Headers:
-   Type.*
-   LOAD[ \t]+0x[0-9a-f]+ 0x0*40000000 0x0*40000000 0x[0-9a-f]+ 0x[0-9a-f]+ RWE 0x[0-9a-f]+
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-   Segment Sections...
-    00     .text .rodata .moredata *
-+   01 +
---- binutils-2.24/ld/testsuite/ld-i386/tlsbin.rd
-+++ binutils-2.24/ld/testsuite/ld-i386/tlsbin.rd
-@@ -44,6 +44,7 @@ Program Headers:
-  +LOAD.*
-  +DYNAMIC.*
-  +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections...
-@@ -53,6 +54,7 @@ Program Headers:
-  +03 +.tdata .dynamic .got .got.plt *
-  +04 +.dynamic *
-  +05 +.tdata .tbss *
-+ +06 +
- Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries:
-  Offset +Info +Type +Sym.Value +Sym. Name
---- binutils-2.24/ld/testsuite/ld-i386/tlsbindesc.rd
-+++ binutils-2.24/ld/testsuite/ld-i386/tlsbindesc.rd
-@@ -42,6 +42,7 @@ Program Headers:
-  +LOAD.*
-  +DYNAMIC.*
-  +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+a0 R +0x1000
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections...
-@@ -51,6 +52,7 @@ Program Headers:
-  +03 +.tdata .dynamic .got .got.plt *
-  +04 +.dynamic *
-  +05 +.tdata .tbss *
-+ +06 +
- Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 9 entries:
-  Offset +Info +Type +Sym.Value +Sym. Name
---- binutils-2.24/ld/testsuite/ld-i386/tlsdesc.rd
-+++ binutils-2.24/ld/testsuite/ld-i386/tlsdesc.rd
-@@ -39,6 +39,7 @@ Program Headers:
-  +LOAD.*
-  +DYNAMIC.*
-  +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections...
-@@ -46,6 +47,7 @@ Program Headers:
-  +01 +.tdata .dynamic .got .got.plt *
-  +02 +.dynamic *
-  +03 +.tdata .tbss *
-+ +04 +
- Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries:
-  Offset +Info +Type +Sym.Value +Sym. Name
---- binutils-2.24/ld/testsuite/ld-i386/tlsgdesc.rd
-+++ binutils-2.24/ld/testsuite/ld-i386/tlsgdesc.rd
-@@ -36,12 +36,14 @@ Program Headers:
-  +LOAD.*
-  +LOAD.*
-  +DYNAMIC.*
-+ +PAX_FLAGS.*
-  Section to Segment mapping:
-  +Segment Sections...
-  +00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text *
-  +01 +.dynamic .got .got.plt *
-  +02 +.dynamic *
-+ +03 +
- Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 8 entries:
-  Offset +Info +Type +Sym.Value +Sym. Name
---- binutils-2.24/ld/testsuite/ld-i386/tlsnopic.rd
-+++ binutils-2.24/ld/testsuite/ld-i386/tlsnopic.rd
-@@ -37,6 +37,7 @@ Program Headers:
-  +LOAD.*
-  +DYNAMIC.*
-  +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+ 0x0+24 R +0x1
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections...
-@@ -44,6 +45,7 @@ Program Headers:
-  +01 +.dynamic .got .got.plt *
-  +02 +.dynamic *
-  +03 +.tbss *
-+ +04 +
- Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries:
-  Offset +Info +Type +Sym.Value +Sym. Name
---- binutils-2.24/ld/testsuite/ld-i386/tlspic.rd
-+++ binutils-2.24/ld/testsuite/ld-i386/tlspic.rd
-@@ -40,6 +40,7 @@ Program Headers:
-  +LOAD.*
-  +DYNAMIC.*
-  +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+60 0x0+80 R +0x1
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections...
-@@ -47,6 +48,7 @@ Program Headers:
-  +01 +.tdata .dynamic .got .got.plt *
-  +02 +.dynamic *
-  +03 +.tdata .tbss *
-+ +04 +
- Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 26 entries:
-  Offset +Info +Type +Sym.Value +Sym. Name
---- binutils-2.24/ld/testsuite/ld-ia64/merge1.d
-+++ binutils-2.24/ld/testsuite/ld-ia64/merge1.d
-@@ -4,7 +4,7 @@
- #objdump: -d
- #...
--0+1e0 <.text>:
-+[a-f0-9]+ <.text>:
- [     ]*[a-f0-9]+:    0b 60 80 02 00 24       \[MMI\]       addl r12=32,r1;;
- [     ]*[a-f0-9]+:    c0 c0 04 00 48 00                   addl r12=24,r1
- [     ]*[a-f0-9]+:    00 00 04 00                         nop.i 0x0;;
---- binutils-2.24/ld/testsuite/ld-ia64/merge2.d
-+++ binutils-2.24/ld/testsuite/ld-ia64/merge2.d
-@@ -4,7 +4,7 @@
- #objdump: -d
- #...
--0+1e0 <.text>:
-+[a-f0-9]+ <.text>:
- [     ]*[a-f0-9]+:    0b 60 80 02 00 24       \[MMI\]       addl r12=32,r1;;
- [     ]*[a-f0-9]+:    c0 c0 04 00 48 00                   addl r12=24,r1
- [     ]*[a-f0-9]+:    00 00 04 00                         nop.i 0x0;;
---- binutils-2.24/ld/testsuite/ld-ia64/merge3.d
-+++ binutils-2.24/ld/testsuite/ld-ia64/merge3.d
-@@ -4,7 +4,7 @@
- #objdump: -d
- #...
--0+210 <.text>:
-+[a-f0-9]+ <.text>:
- [     ]*[a-f0-9]+:    0b 60 80 02 00 24       \[MMI\]       addl r12=32,r1;;
- [     ]*[a-f0-9]+:    c0 40 05 00 48 00                   addl r12=40,r1
- [     ]*[a-f0-9]+:    00 00 04 00                         nop.i 0x0;;
---- binutils-2.24/ld/testsuite/ld-ia64/merge4.d
-+++ binutils-2.24/ld/testsuite/ld-ia64/merge4.d
-@@ -4,7 +4,7 @@
- #objdump: -d
- #...
--0+240 <.text>:
-+[a-f0-9]+ <.text>:
- [     ]*[a-f0-9]+:    0b 60 80 02 00 24       \[MMI\]       addl r12=32,r1;;
- [     ]*[a-f0-9]+:    c0 40 05 00 48 00                   addl r12=40,r1
- [     ]*[a-f0-9]+:    00 00 04 00                         nop.i 0x0;;
---- binutils-2.24/ld/testsuite/ld-ia64/merge5.d
-+++ binutils-2.24/ld/testsuite/ld-ia64/merge5.d
-@@ -4,7 +4,7 @@
- #objdump: -d
- #...
--0+270 <.text>:
-+[a-f0-9]+ <.text>:
- [     ]*[a-f0-9]+:    0b 60 80 02 00 24       \[MMI\]       addl r12=32,r1;;
- [     ]*[a-f0-9]+:    c0 40 05 00 48 00                   addl r12=40,r1
- [     ]*[a-f0-9]+:    00 00 04 00                         nop.i 0x0;;
---- binutils-2.24/ld/testsuite/ld-ia64/tlsbin.rd
-+++ binutils-2.24/ld/testsuite/ld-ia64/tlsbin.rd
-@@ -36,13 +36,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+
- Program Headers:
-  +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
-- +PHDR +0x0+40 0x40+40 0x40+40 0x0+188 0x0+188 R E 0x8
-- +INTERP +0x0+1c8 0x40+1c8 0x40+1c8 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1
-+ +PHDR +0x0+40 0x40+40 0x40+40 (0x[0-9a-f]+) \1 R E 0x8
-+ +INTERP +0x0+([0-9a-f]+) (0x40+\1) \2 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1
- .*Requesting program interpreter.*
-  +LOAD +0x0+ 0x40+ 0x40+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ R E 0x10000
-  +LOAD +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+0[0-9a-f]+ 0x0+0[0-9a-f]+ RW +0x10000
-  +DYNAMIC +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+150 0x0+150 RW +0x8
-  +TLS +0x0+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x60+1[0-9a-f]+ 0x0+60 0x0+a0 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  +IA_64_UNWIND .* R +0x8
- #...
---- binutils-2.24/ld/testsuite/ld-ia64/tlspic.rd
-+++ binutils-2.24/ld/testsuite/ld-ia64/tlspic.rd
-@@ -40,6 +40,7 @@ Program Headers:
-  +LOAD +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+0[0-9a-f]+ 0x0+0[0-9a-f]+ RW +0x10000
-  +DYNAMIC +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+140 0x0+140 RW +0x8
-  +TLS +0x0+1[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+11[0-9a-f]+ 0x0+60 0x0+80 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  +IA_64_UNWIND +0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ 0x0+1[0-9a-f]+ 0x0+18 0x0+18 R +0x8
- #...
---- binutils-2.24/ld/testsuite/ld-mips-elf/multi-got-no-shared.d
-+++ binutils-2.24/ld/testsuite/ld-mips-elf/multi-got-no-shared.d
-@@ -8,9 +8,9 @@
- .*: +file format.*
- Disassembly of section \.text:
--004000b0 <[^>]*> 3c1c0043     lui     gp,0x43
--004000b4 <[^>]*> 279c9ff0     addiu   gp,gp,-24592
--004000b8 <[^>]*> afbc0008     sw      gp,8\(sp\)
-+004000d0 <[^>]*> 3c1c0043     lui     gp,0x43
-+004000d4 <[^>]*> 279c9ff0     addiu   gp,gp,-24592
-+004000d8 <[^>]*> afbc0008     sw      gp,8\(sp\)
- #...
- 00408d60 <[^>]*> 3c1c0043     lui     gp,0x43
- 00408d64 <[^>]*> 279c2c98     addiu   gp,gp,11416
---- binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd
-+++ binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd
-@@ -1,7 +1,7 @@
- Elf file type is DYN \(Shared object file\)
- Entry point .*
--There are 5 program headers, starting at offset .*
-+There are [0-9] program headers, starting at offset .*
- Program Headers:
-  * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
-@@ -9,6 +9,7 @@ Program Headers:
-  * LOAD * [^ ]+ * 0x0+00000 * 0x0+00000 [^ ]+ * [^ ]+ * R E * 0x.*
-  * LOAD * [^ ]+ * 0x0+10000 * 0x0+10000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * DYNAMIC * [^ ]+ * 0x0+00400 * 0x0+00400 .*
-+ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  * NULL * .*
-  *Section to Segment mapping:
-@@ -18,3 +19,4 @@ Program Headers:
-  *0*2 * \.data \.got *
-  *0*3 * \.dynamic *
-  *0*4 *
-+ *0*5 *
---- binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd
-+++ binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd
-@@ -1,7 +1,7 @@
- Elf file type is EXEC \(Executable file\)
- Entry point 0x44000
--There are 8 program headers, starting at offset .*
-+There are [0-9] program headers, starting at offset .*
- Program Headers:
-  * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
-@@ -13,6 +13,7 @@ Program Headers:
-  * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
-+ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  * NULL * .*
-  *Section to Segment mapping:
-@@ -25,3 +26,4 @@ Program Headers:
-  *0*5 *\.got \.data *
-  *0*6 *\.dynamic *
-  *0*7 *
-+ *0*8 *
---- binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd
-+++ binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd
-@@ -1,7 +1,7 @@
- Elf file type is EXEC \(Executable file\)
- Entry point 0x44000
--There are 8 program headers, starting at offset .*
-+There are [0-9] program headers, starting at offset .*
- Program Headers:
-  * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
-@@ -13,6 +13,7 @@ Program Headers:
-  * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
-+ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  * NULL * .*
-  *Section to Segment mapping:
-@@ -25,3 +26,4 @@ Program Headers:
-  *0*5 * \.got \.data \.bss *
-  *0*6 * \.dynamic *
-  *0*7 *
-+ *0*8 *
---- binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd
-+++ binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd
-@@ -1,7 +1,7 @@
- Elf file type is EXEC \(Executable file\)
- Entry point 0x44000
--There are 8 program headers, starting at offset .*
-+There are [0-9] program headers, starting at offset .*
- Program Headers:
-  * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
-@@ -13,6 +13,7 @@ Program Headers:
-  * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
-+ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  * NULL * .*
-  *Section to Segment mapping:
-@@ -25,3 +26,4 @@ Program Headers:
-  *0*5 * \.got \.data \.bss *
-  *0*6 * \.dynamic *
-  *0*7 *
-+ *0*8 *
---- binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd
-+++ binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd
-@@ -1,7 +1,7 @@
- Elf file type is EXEC \(Executable file\)
- Entry point 0x44000
--There are 8 program headers, starting at offset .*
-+There are [0-9] program headers, starting at offset .*
- Program Headers:
-  * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
-@@ -13,6 +13,7 @@ Program Headers:
-  * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
-+ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  * NULL * .*
-  *Section to Segment mapping:
-@@ -25,3 +26,4 @@ Program Headers:
-  *0*5 * \.got \.data \.bss *
-  *0*6 * \.dynamic *
-  *0*7 *
-+ *0*8 *
---- binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd
-+++ binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd
-@@ -1,7 +1,7 @@
- Elf file type is EXEC \(Executable file\)
- Entry point 0x44000
--There are 7 program headers, starting at offset .*
-+There are [0-9] program headers, starting at offset .*
- Program Headers:
-  * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
-@@ -12,6 +12,7 @@ Program Headers:
-  * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
-+ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  * NULL * .*
-  *Section to Segment mapping:
-@@ -23,3 +24,4 @@ Program Headers:
-  *0*4 * \.got \.data \.bss *
-  *0*5 * \.dynamic *
-  *0*6 *
-+ *0*7 *
---- binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd
-+++ binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd
-@@ -1,7 +1,7 @@
- Elf file type is EXEC \(Executable file\)
- Entry point 0x44000
--There are 8 program headers, starting at offset .*
-+There are [0-9] program headers, starting at offset .*
- Program Headers:
-  * Type * Offset * VirtAddr * PhysAddr * FileSiz * MemSiz * Flg * Align
-@@ -13,6 +13,7 @@ Program Headers:
-  * LOAD * [^ ]+ * 0x0+80000 * 0x0+80000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * LOAD * [^ ]+ * 0x0+a0000 * 0x0+a0000 [^ ]+ * [^ ]+ * RW  * 0x.*
-  * DYNAMIC * [^ ]+ * 0x0+42000 * 0x0+42000 .*
-+ * PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  * NULL * .*
-  *Section to Segment mapping:
-@@ -25,3 +26,4 @@ Program Headers:
-  *0*5 * \.got \.data \.bss *
-  *0*6 * \.dynamic *
-  *0*7 *
-+ *0*8 *
---- binutils-2.24/ld/testsuite/ld-powerpc/tlsexe32.r
-+++ binutils-2.24/ld/testsuite/ld-powerpc/tlsexe32.r
-@@ -33,13 +33,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+
- Program Headers:
-  +Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
-- +PHDR +0x000034 0x01800034 0x01800034 0x000c0 0x000c0 R E 0x4
-- +INTERP +0x0000f4 0x018000f4 0x018000f4 0x00011 0x00011 R +0x1
-+ +PHDR +0x000034 0x01800034 0x01800034 (0x000[0-9a-f]{2}) \1 R E 0x4
-+ +INTERP +0x000([0-9a-f]{3}) 0x01800\1 0x01800\1 0x00011 0x00011 R +0x1
-  +\[Requesting program interpreter: .*\]
-  +LOAD .* R E 0x10000
-  +LOAD .* RWE 0x10000
-  +DYNAMIC .* RW +0x4
-  +TLS .* 0x0001c 0x00038 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections\.\.\.
-@@ -49,6 +50,7 @@ Program Headers:
-  +03 +\.tdata \.dynamic \.got \.plt 
-  +04 +\.dynamic 
-  +05 +\.tdata \.tbss 
-+ +06 +
- Relocation section '\.rela\.dyn' at offset .* contains 2 entries:
-  Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
---- binutils-2.24/ld/testsuite/ld-powerpc/tlsso32.r
-+++ binutils-2.24/ld/testsuite/ld-powerpc/tlsso32.r
-@@ -35,6 +35,7 @@ Program Headers:
-  +LOAD .* RWE 0x10000
-  +DYNAMIC .* RW +0x4
-  +TLS .* 0x0+1c 0x0+38 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections\.\.\.
-@@ -42,6 +43,7 @@ Program Headers:
-  +01 +\.tdata \.dynamic \.got \.plt 
-  +02 +\.dynamic 
-  +03 +\.tdata \.tbss 
-+ +04 +
- Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
-  Offset +Info +Type +Sym\. Value +Symbol's Name \+ Addend
-@@ -52,9 +54,9 @@ Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 18 entries:
- [0-9a-f ]+R_PPC_TPREL16 +0+30 +le0 \+ 0
- [0-9a-f ]+R_PPC_TPREL16_HA +0+34 +le1 \+ 0
- [0-9a-f ]+R_PPC_TPREL16_LO +0+34 +le1 \+ 0
--[0-9a-f ]+R_PPC_TPREL16 +0+103d0 +\.tdata \+ 103e4
--[0-9a-f ]+R_PPC_TPREL16_HA +0+103d0 +\.tdata \+ 103e8
--[0-9a-f ]+R_PPC_TPREL16_LO +0+103d0 +\.tdata \+ 103e8
-+[0-9a-f ]+R_PPC_TPREL16 +0+103[df]0 +\.tdata \+ 10[0-9a-f]{3}
-+[0-9a-f ]+R_PPC_TPREL16_HA +0+103[df]0 +\.tdata \+ 10[0-9a-f]{3}
-+[0-9a-f ]+R_PPC_TPREL16_LO +0+103[df]0 +\.tdata \+ 10[0-9a-f]{3}
- [0-9a-f ]+R_PPC_DTPMOD32 +0
- [0-9a-f ]+R_PPC_DTPREL32 +0
- [0-9a-f ]+R_PPC_DTPMOD32 +0
---- binutils-2.24/ld/testsuite/ld-s390/tlsbin.rd
-+++ binutils-2.24/ld/testsuite/ld-s390/tlsbin.rd
-@@ -36,6 +36,7 @@ There are [0-9]+ program headers, starting at offset [0-9]+
-  +LOAD .* RW +0x1000
-  +DYNAMIC .* RW +0x4
-  +TLS .* 0x0+60 0x0+a0 R +0x20
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections...
-@@ -52,6 +53,7 @@ Program Headers:
-  +03 +.tdata .dynamic .got *
-  +04 +.dynamic *
-  +05 +.tdata .tbss *
-+ +06 +
- Relocation section '.rela.dyn' at offset .* contains 4 entries:
-  Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
---- binutils-2.24/ld/testsuite/ld-s390/tlsbin_64.rd
-+++ binutils-2.24/ld/testsuite/ld-s390/tlsbin_64.rd
-@@ -36,6 +36,7 @@ There are [0-9]+ program headers, starting at offset [0-9]+
-  +LOAD .* RW +0x1000
-  +DYNAMIC .* RW +0x8
-  +TLS .* 0x0+60 0x0+a0 R +0x20
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections...
-@@ -52,6 +53,7 @@ Program Headers:
-  +03 +.tdata .dynamic .got *
-  +04 +.dynamic *
-  +05 +.tdata .tbss *
-+ +06 +
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
-  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
---- binutils-2.24/ld/testsuite/ld-s390/tlspic.rd
-+++ binutils-2.24/ld/testsuite/ld-s390/tlspic.rd
-@@ -39,6 +39,7 @@ Program Headers:
-  +LOAD .* RW +0x1000
-  +DYNAMIC .* RW +0x4
-  +TLS .* 0x0+60 0x0+80 R +0x20
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections...
-@@ -46,6 +47,7 @@ Program Headers:
-  +01 +.tdata .dynamic .got 
-  +02 +.dynamic 
-  +03 +.tdata .tbss 
-+ +04 +
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
-  Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
---- binutils-2.24/ld/testsuite/ld-s390/tlspic_64.rd
-+++ binutils-2.24/ld/testsuite/ld-s390/tlspic_64.rd
-@@ -39,6 +39,7 @@ Program Headers:
-  +LOAD .* RW +0x1000
-  +DYNAMIC .* RW +0x8
-  +TLS .* 0x0+60 0x0+80 R +0x20
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections...
-@@ -46,6 +47,7 @@ Program Headers:
-  +01 +.tdata .dynamic .got *
-  +02 +.dynamic *
-  +03 +.tdata .tbss *
-+ +04 +
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
-  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
---- binutils-2.24/ld/testsuite/ld-sh/tlsbin-2.d
-+++ binutils-2.24/ld/testsuite/ld-sh/tlsbin-2.d
-@@ -44,6 +44,7 @@ Program Headers:
-  +LOAD.*
-  +DYNAMIC.*
-  +TLS +0x[0-9a-f]+ 0x[0-9a-f]+ 0x[0-9a-f]+ 0x0+18 0x0+28 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections\.\.\.
-@@ -53,6 +54,7 @@ Program Headers:
-  +03 +\.tdata \.dynamic \.got *
-  +04 +\.dynamic *
-  +05 +\.tdata \.tbss *
-+ +06 +
- Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
-  Offset +Info +Type +Sym\.Value +Sym\. Name \+ Addend
---- binutils-2.24/ld/testsuite/ld-sh/tlspic-2.d
-+++ binutils-2.24/ld/testsuite/ld-sh/tlspic-2.d
-@@ -32,7 +32,7 @@ Key to Flags:
- Elf file type is DYN \(Shared object file\)
- Entry point 0x[0-9a-f]+
--There are 4 program headers, starting at offset [0-9]+
-+There are [0-9] program headers, starting at offset [0-9]+
- Program Headers:
-  +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
-@@ -40,6 +40,7 @@ Program Headers:
-  +LOAD.*
-  +DYNAMIC.*
-  +TLS .* 0x0+18 0x0+20 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections\.\.\.
-@@ -47,6 +48,7 @@ Program Headers:
-  +01 +\.tdata \.dynamic \.got *
-  +02 +\.dynamic *
-  +03 +\.tdata \.tbss *
-+ +04 +
- Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 10 entries:
-  Offset +Info +Type +Sym\.Value +Sym\. Name \+ Addend
---- binutils-2.24/ld/testsuite/ld-sparc/gotop32.rd
-+++ binutils-2.24/ld/testsuite/ld-sparc/gotop32.rd
-@@ -31,6 +31,7 @@ Program Headers:
-  +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x10000
-  +LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+2000 0x0+2000 RW +0x10000
-  +DYNAMIC +0x0+2000 0x0+12000 0x0+12000 0x0+70 0x0+70 RW +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
---- binutils-2.24/ld/testsuite/ld-sparc/gotop64.rd
-+++ binutils-2.24/ld/testsuite/ld-sparc/gotop64.rd
-@@ -31,6 +31,7 @@ Program Headers:
-  +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x100000
-  +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+2000 0x0+2000 RW +0x100000
-  +DYNAMIC +0x0+2000 0x0+102000 0x0+102000 0x0+e0 0x0+e0 RW +0x8
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
---- binutils-2.24/ld/testsuite/ld-sparc/tlssunbin32.rd
-+++ binutils-2.24/ld/testsuite/ld-sparc/tlssunbin32.rd
-@@ -30,13 +30,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+
- Program Headers:
-  +Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
-- +PHDR +0x0+34 0x0+10034 0x0+10034 0x0+c0 0x0+c0 R E 0x4
-- +INTERP +0x0+f4 0x0+100f4 0x0+100f4 0x0+11 0x0+11 R +0x1
-+ +PHDR +0x0+34 0x0+10034 0x0+10034 (0x[0-9a-f]+) \1 R E 0x4
-+ +INTERP +(0x[0-9a-f]+ ){3}0x0+11 0x0+11 R +0x1
- .*Requesting program interpreter.*
-  +LOAD .* R E 0x10000
-  +LOAD .* RW +0x10000
-  +DYNAMIC .* RW +0x4
-  +TLS .* 0x0+1060 0x0+10a0 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
---- binutils-2.24/ld/testsuite/ld-sparc/tlssunbin64.rd
-+++ binutils-2.24/ld/testsuite/ld-sparc/tlssunbin64.rd
-@@ -30,13 +30,14 @@ There are [0-9]+ program headers, starting at offset [0-9]+
- Program Headers:
-  +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
-- +PHDR +0x0+40 0x0+100040 0x0+100040 0x0+150 0x0+150 R E 0x8
-- +INTERP +0x0+190 0x0+100190 0x0+100190 0x0+19 0x0+19 R +0x1
-+ +PHDR +0x0+40 0x0+100040 0x0+100040 (0x[0-9a-f]+) \1 R E 0x8
-+ +INTERP +0x0+([0-9a-f]+) (0x0+10+\1) \2 0x0+19 0x0+19 R +0x1
- .*Requesting program interpreter.*
-  +LOAD .* R E 0x100000
-  +LOAD .* RW +0x100000
-  +DYNAMIC .* RW +0x8
-  +TLS .* 0x0+60 0x0+a0 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
---- binutils-2.24/ld/testsuite/ld-sparc/tlssunnopic32.rd
-+++ binutils-2.24/ld/testsuite/ld-sparc/tlssunnopic32.rd
-@@ -32,6 +32,7 @@ Program Headers:
-  +LOAD .* RW +0x10000
-  +DYNAMIC .* RW +0x4
-  +TLS .* 0x0+ 0x0+24 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 12 entries:
---- binutils-2.24/ld/testsuite/ld-sparc/tlssunnopic64.rd
-+++ binutils-2.24/ld/testsuite/ld-sparc/tlssunnopic64.rd
-@@ -32,6 +32,7 @@ Program Headers:
-  +LOAD .* RW +0x100000
-  +DYNAMIC .* RW +0x8
-  +TLS .* 0x0+ 0x0+24 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
---- binutils-2.24/ld/testsuite/ld-sparc/tlssunpic32.rd
-+++ binutils-2.24/ld/testsuite/ld-sparc/tlssunpic32.rd
-@@ -36,6 +36,7 @@ Program Headers:
-  +LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+184 0x0+184 RWE 0x10000
-  +DYNAMIC +0x0+2060 0x0+12060 0x0+12060 0x0+98 0x0+98 RW +0x4
-  +TLS +0x0+2000 0x0+12000 0x0+12000 0x0+60 0x0+80 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
---- binutils-2.24/ld/testsuite/ld-sparc/tlssunpic64.rd
-+++ binutils-2.24/ld/testsuite/ld-sparc/tlssunpic64.rd
-@@ -36,6 +36,7 @@ Program Headers:
-  +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+3a0 0x0+3a0 RWE 0x100000
-  +DYNAMIC +0x0+2060 0x0+102060 0x0+102060 0x0+130 0x0+130 RW +0x8
-  +TLS +0x0+2000 0x0+102000 0x0+102000 0x0+60 0x0+80 R +0x4
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
- #...
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
---- binutils-2.24/ld/testsuite/ld-x86-64/tlsgdesc.rd
-+++ binutils-2.24/ld/testsuite/ld-x86-64/tlsgdesc.rd
-@@ -36,12 +36,14 @@ Program Headers:
-  +LOAD.*
-  +LOAD.*
-  +DYNAMIC.*
-+ +PAX_FLAGS.*
-  Section to Segment mapping:
-  +Segment Sections...
-  +00 +.hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text *
-  +01 +.dynamic .got .got.plt *
-  +02 +.dynamic *
-+ +03 +
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 8 entries:
-  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
---- binutils-2.24/ld/testsuite/ld-x86-64/tlspic.rd
-+++ binutils-2.24/ld/testsuite/ld-x86-64/tlspic.rd
-@@ -40,6 +40,7 @@ Program Headers:
-  +LOAD +0x0+131a 0x0+20131a 0x0+20131a 0x0+246 0x0+246 RW +0x200000
-  +DYNAMIC +0x0+1380 0x0+201380 0x0+201380 0x0+130 0x0+130 RW +0x8
-  +TLS +0x0+131a 0x0+20131a 0x0+20131a 0x0+60 0x0+80 R +0x1
-+ +PAX_FLAGS +0x0+ 0x0+ 0x0+ 0x0+ 0x0+ +0x[48]
-  Section to Segment mapping:
-  +Segment Sections...
-@@ -47,6 +48,7 @@ Program Headers:
-  +01 +.tdata .dynamic .got .got.plt *
-  +02 +.dynamic *
-  +03 +.tdata .tbss *
-+ +04 +
- Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
-  +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
diff --git a/src/patches/clamav-0.99.2-gcc-6.patch b/src/patches/clamav-0.99.2-gcc-6.patch
new file mode 100644 (file)
index 0000000..2031edb
--- /dev/null
@@ -0,0 +1,84 @@
+diff --git a/libclamav/c++/llvm/include/llvm/ADT/StringMap.h b/libclamav/c++/llvm/include/llvm/ADT/StringMap.h
+index 59ff6aa..1325394 100644
+--- a/libclamav/c++/llvm/include/llvm/ADT/StringMap.h
++++ b/libclamav/c++/llvm/include/llvm/ADT/StringMap.h
+@@ -169,3 +169,3 @@ public:
+       KeyLength+1;
+-    unsigned Alignment = alignof<StringMapEntry>();
++    unsigned Alignment = alignOf<StringMapEntry>();
+diff --git a/libclamav/c++/llvm/include/llvm/CodeGen/SlotIndexes.h b/libclamav/c++/llvm/include/llvm/CodeGen/SlotIndexes.h
+index 88044c7..86b0f40 100644
+--- a/libclamav/c++/llvm/include/llvm/CodeGen/SlotIndexes.h
++++ b/libclamav/c++/llvm/include/llvm/CodeGen/SlotIndexes.h
+@@ -417,3 +417,3 @@ namespace llvm {
+           ileAllocator.Allocate(sizeof(IndexListEntry),
+-          alignof<IndexListEntry>()));
++          alignOf<IndexListEntry>()));
+diff --git a/libclamav/c++/llvm/include/llvm/Support/AlignOf.h b/libclamav/c++/llvm/include/llvm/Support/AlignOf.h
+index 6a7a1a6..979e597 100644
+--- a/libclamav/c++/llvm/include/llvm/Support/AlignOf.h
++++ b/libclamav/c++/llvm/include/llvm/Support/AlignOf.h
+@@ -51,8 +51,8 @@ struct AlignOf {
+-/// alignof - A templated function that returns the mininum alignment of
++/// alignOf - A templated function that returns the mininum alignment of
+ ///  of a type.  This provides no extra functionality beyond the AlignOf
+ ///  class besides some cosmetic cleanliness.  Example usage:
+-///  alignof<int>() returns the alignment of an int.
++///  alignOf<int>() returns the alignment of an int.
+ template <typename T>
+-static inline unsigned alignof() { return AlignOf<T>::Alignment; }
++static inline unsigned alignOf() { return AlignOf<T>::Alignment; }
+diff --git a/libclamav/c++/llvm/include/llvm/Support/Allocator.h b/libclamav/c++/llvm/include/llvm/Support/Allocator.h
+index 4a7251f..17caf5e 100644
+--- a/libclamav/c++/llvm/include/llvm/Support/Allocator.h
++++ b/libclamav/c++/llvm/include/llvm/Support/Allocator.h
+@@ -203,3 +203,3 @@ public:
+       for (char *Ptr = (char*)(Slab+1); Ptr < End; Ptr += sizeof(T)) {
+-        Ptr = Allocator.AlignPtr(Ptr, alignof<T>());
++        Ptr = Allocator.AlignPtr(Ptr, alignOf<T>());
+         if (Ptr + sizeof(T) <= End)
+diff --git a/libclamav/c++/llvm/lib/Analysis/ScalarEvolution.cpp b/libclamav/c++/llvm/lib/Analysis/ScalarEvolution.cpp
+index b892d85..dc72346 100644
+--- a/libclamav/c++/llvm/lib/Analysis/ScalarEvolution.cpp
++++ b/libclamav/c++/llvm/lib/Analysis/ScalarEvolution.cpp
+@@ -495,3 +495,3 @@ void SCEVUnknown::print(raw_ostream &OS) const {
+   if (isAlignOf(AllocTy)) {
+-    OS << "alignof(" << *AllocTy << ")";
++    OS << "alignOf(" << *AllocTy << ")";
+     return;
+diff --git a/libclamav/c++/llvm/lib/Target/X86/X86CodeEmitter.cpp b/libclamav/c++/llvm/lib/Target/X86/X86CodeEmitter.cpp
+index 824021c..757ca50 100644
+--- a/libclamav/c++/llvm/lib/Target/X86/X86CodeEmitter.cpp
++++ b/libclamav/c++/llvm/lib/Target/X86/X86CodeEmitter.cpp
+@@ -569,3 +569,3 @@ void Emitter<CodeEmitter>::emitMemModRMByte(const MachineInstr &MI,
+   // Calculate what the SS field value should be...
+-  static const unsigned SSTable[] = { ~0, 0, 1, ~0, 2, ~0, ~0, ~0, 3 };
++  static const unsigned SSTable[] = { ~0u, 0u, 1u, ~0u, 2u, ~0u, ~0u, ~0u, 3u };
+   unsigned SS = SSTable[Scale.getImm()];
+diff --git a/libclamav/c++/llvm/lib/Target/X86/X86MCCodeEmitter.cpp b/libclamav/c++/llvm/lib/Target/X86/X86MCCodeEmitter.cpp
+index 9564fe0..b2b7986 100644
+--- a/libclamav/c++/llvm/lib/Target/X86/X86MCCodeEmitter.cpp
++++ b/libclamav/c++/llvm/lib/Target/X86/X86MCCodeEmitter.cpp
+@@ -332,3 +332,3 @@ void X86MCCodeEmitter::EmitMemModRMByte(const MCInst &MI, unsigned Op,
+   // Calculate what the SS field value should be...
+-  static const unsigned SSTable[] = { ~0, 0, 1, ~0, 2, ~0, ~0, ~0, 3 };
++  static const unsigned SSTable[] = { ~0u, 0u, 1u, ~0u, 2u, ~0u, ~0u, ~0u, 3u };
+   unsigned SS = SSTable[Scale.getImm()];
+diff --git a/libclamav/mpool.c b/libclamav/mpool.c
+index cd38e15..b5e537d 100644
+--- a/libclamav/mpool.c
++++ b/libclamav/mpool.c
+@@ -417,3 +417,3 @@ static size_t from_bits(unsigned int bits) {
+-static inline unsigned int alignof(size_t size)
++static inline unsigned int alignOf(size_t size)
+ {
+@@ -609,3 +609,3 @@ static void* allocate_aligned(struct MPMAP *mpm, size_t size, unsigned align, co
+ void *mpool_malloc(struct MP *mp, size_t size) {
+-  size_t align = alignof(size);
++  size_t align = alignOf(size);
+   size_t i, needed = align_increase(size+FRAG_OVERHEAD, align);
similarity index 72%
rename from src/patches/coreutils-8.25-i18n-2.patch
rename to src/patches/coreutils-8.27-i18n-1.patch
index ad984ec87321d03743b3c8d0e9e9ddd96b41f756..4318905c6fa6aac0449c8141527adb92d6eba3c6 100644 (file)
@@ -1,13 +1,37 @@
 Submitted by:            DJ Lucas (dj_AT_linuxfromscratch_DOT_org)
-Date:                    2016-02-09
-Initial Package Version: 8.25
+Date:                    2017-03-12
+Initial Package Version: 8.27
 Upstream Status:         Rejected
-Origin:                  Based on Suse's i18n patches at https://build.opensuse.org/package/view_file/Base:System/coreutils/coreutils-i18n.patch
-Description:             Fixes several i18n issues with various Coreutils programs
+Origin:                  Based on Fedora's i18n patches at
+                         http://pkgs.fedoraproject.org/cgit/rpms/coreutils.git/tree/
+Description:             Fixes i18n issues with various Coreutils programs
 
-diff -Naurp coreutils-8.25-orig/lib/linebuffer.h coreutils-8.25/lib/linebuffer.h
---- coreutils-8.25-orig/lib/linebuffer.h       2016-01-01 07:45:55.000000000 -0600
-+++ coreutils-8.25/lib/linebuffer.h    2016-02-08 19:07:10.298944609 -0600
+diff -Naurp coreutils-8.27-orig/bootstrap.conf coreutils-8.27/bootstrap.conf
+--- coreutils-8.27-orig/bootstrap.conf 2017-03-07 23:34:06.000000000 -0600
++++ coreutils-8.27/bootstrap.conf      2017-03-11 23:47:38.068058445 -0600
+@@ -152,6 +152,7 @@ gnulib_modules="
+   maintainer-makefile
+   malloc-gnu
+   manywarnings
++  mbfile
+   mbrlen
+   mbrtowc
+   mbsalign
+diff -Naurp coreutils-8.27-orig/configure.ac coreutils-8.27/configure.ac
+--- coreutils-8.27-orig/configure.ac   2017-02-26 08:52:29.000000000 -0600
++++ coreutils-8.27/configure.ac        2017-03-11 23:47:38.068058445 -0600
+@@ -429,6 +429,8 @@ fi
+ # I'm leaving it here for now.  This whole thing needs to be modernized...
+ gl_WINSIZE_IN_PTEM
++gl_MBFILE
++
+ gl_HEADER_TIOCGWINSZ_IN_TERMIOS_H
+ if test $gl_cv_sys_tiocgwinsz_needs_termios_h = no && \
+diff -Naurp coreutils-8.27-orig/lib/linebuffer.h coreutils-8.27/lib/linebuffer.h
+--- coreutils-8.27-orig/lib/linebuffer.h       2017-01-01 16:35:38.000000000 -0600
++++ coreutils-8.27/lib/linebuffer.h    2017-03-11 23:47:13.089286391 -0600
 @@ -21,6 +21,11 @@
  
  # include <stdio.h>
@@ -30,9 +54,293 @@ diff -Naurp coreutils-8.25-orig/lib/linebuffer.h coreutils-8.25/lib/linebuffer.h
  };
  
  /* Initialize linebuffer LINEBUFFER for use. */
-diff -Naurp coreutils-8.25-orig/src/cut.c coreutils-8.25/src/cut.c
---- coreutils-8.25-orig/src/cut.c      2016-01-13 05:08:59.000000000 -0600
-+++ coreutils-8.25/src/cut.c   2016-02-08 19:07:10.300944616 -0600
+diff -Naurp coreutils-8.27-orig/lib/mbfile.c coreutils-8.27/lib/mbfile.c
+--- coreutils-8.27-orig/lib/mbfile.c   1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/lib/mbfile.c        2017-03-11 23:47:38.069058397 -0600
+@@ -0,0 +1,3 @@
++#include <config.h>
++#define MBFILE_INLINE _GL_EXTERN_INLINE
++#include "mbfile.h"
+diff -Naurp coreutils-8.27-orig/lib/mbfile.h coreutils-8.27/lib/mbfile.h
+--- coreutils-8.27-orig/lib/mbfile.h   1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/lib/mbfile.h        2017-03-11 23:47:38.069058397 -0600
+@@ -0,0 +1,255 @@
++/* Multibyte character I/O: macros for multi-byte encodings.
++   Copyright (C) 2001, 2005, 2009-2017 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 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/>.  */
++
++/* Written by Mitsuru Chinen <mchinen@yamato.ibm.com>
++   and Bruno Haible <bruno@clisp.org>.  */
++
++/* The macros in this file implement multi-byte character input from a
++   stream.
++
++   mb_file_t
++     is the type for multibyte character input stream, usable for variable
++     declarations.
++
++   mbf_char_t
++     is the type for multibyte character or EOF, usable for variable
++     declarations.
++
++   mbf_init (mbf, stream)
++     initializes the MB_FILE for reading from stream.
++
++   mbf_getc (mbc, mbf)
++     reads the next multibyte character from mbf and stores it in mbc.
++
++   mb_iseof (mbc)
++     returns true if mbc represents the EOF value.
++
++   Here are the function prototypes of the macros.
++
++   extern void          mbf_init (mb_file_t mbf, FILE *stream);
++   extern void          mbf_getc (mbf_char_t mbc, mb_file_t mbf);
++   extern bool          mb_iseof (const mbf_char_t mbc);
++ */
++
++#ifndef _MBFILE_H
++#define _MBFILE_H 1
++
++#include <assert.h>
++#include <stdbool.h>
++#include <stdio.h>
++#include <string.h>
++
++/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
++   <wchar.h>.
++   BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
++   <wchar.h>.  */
++#include <stdio.h>
++#include <time.h>
++#include <wchar.h>
++
++#include "mbchar.h"
++
++#ifndef _GL_INLINE_HEADER_BEGIN
++ #error "Please include config.h first."
++#endif
++_GL_INLINE_HEADER_BEGIN
++#ifndef MBFILE_INLINE
++# define MBFILE_INLINE _GL_INLINE
++#endif
++
++struct mbfile_multi {
++  FILE *fp;
++  bool eof_seen;
++  bool have_pushback;
++  mbstate_t state;
++  unsigned int bufcount;
++  char buf[MBCHAR_BUF_SIZE];
++  struct mbchar pushback;
++};
++
++MBFILE_INLINE void
++mbfile_multi_getc (struct mbchar *mbc, struct mbfile_multi *mbf)
++{
++  size_t bytes;
++
++  /* If EOF has already been seen, don't use getc.  This matters if
++     mbf->fp is connected to an interactive tty.  */
++  if (mbf->eof_seen)
++    goto eof;
++
++  /* Return character pushed back, if there is one.  */
++  if (mbf->have_pushback)
++    {
++      mb_copy (mbc, &mbf->pushback);
++      mbf->have_pushback = false;
++      return;
++    }
++
++  /* Before using mbrtowc, we need at least one byte.  */
++  if (mbf->bufcount == 0)
++    {
++      int c = getc (mbf->fp);
++      if (c == EOF)
++        {
++          mbf->eof_seen = true;
++          goto eof;
++        }
++      mbf->buf[0] = (unsigned char) c;
++      mbf->bufcount++;
++    }
++
++  /* Handle most ASCII characters quickly, without calling mbrtowc().  */
++  if (mbf->bufcount == 1 && mbsinit (&mbf->state) && is_basic (mbf->buf[0]))
++    {
++      /* These characters are part of the basic character set.  ISO C 99
++         guarantees that their wide character code is identical to their
++         char code.  */
++      mbc->wc = mbc->buf[0] = mbf->buf[0];
++      mbc->wc_valid = true;
++      mbc->ptr = &mbc->buf[0];
++      mbc->bytes = 1;
++      mbf->bufcount = 0;
++      return;
++    }
++
++  /* Use mbrtowc on an increasing number of bytes.  Read only as many bytes
++     from mbf->fp as needed.  This is needed to give reasonable interactive
++     behaviour when mbf->fp is connected to an interactive tty.  */
++  for (;;)
++    {
++      /* We don't know whether the 'mbrtowc' function updates the state when
++         it returns -2, - this is the ISO C 99 and glibc-2.2 behaviour - or
++         not - amended ANSI C, glibc-2.1 and Solaris 2.7 behaviour.  We
++         don't have an autoconf test for this, yet.
++         The new behaviour would allow us to feed the bytes one by one into
++         mbrtowc.  But the old behaviour forces us to feed all bytes since
++         the end of the last character into mbrtowc.  Since we want to retry
++         with more bytes when mbrtowc returns -2, we must backup the state
++         before calling mbrtowc, because implementations with the new
++         behaviour will clobber it.  */
++      mbstate_t backup_state = mbf->state;
++
++      bytes = mbrtowc (&mbc->wc, &mbf->buf[0], mbf->bufcount, &mbf->state);
++
++      if (bytes == (size_t) -1)
++        {
++          /* An invalid multibyte sequence was encountered.  */
++          /* Return a single byte.  */
++          bytes = 1;
++          mbc->wc_valid = false;
++          break;
++        }
++      else if (bytes == (size_t) -2)
++        {
++          /* An incomplete multibyte character.  */
++          mbf->state = backup_state;
++          if (mbf->bufcount == MBCHAR_BUF_SIZE)
++            {
++              /* An overlong incomplete multibyte sequence was encountered.  */
++              /* Return a single byte.  */
++              bytes = 1;
++              mbc->wc_valid = false;
++              break;
++            }
++          else
++            {
++              /* Read one more byte and retry mbrtowc.  */
++              int c = getc (mbf->fp);
++              if (c == EOF)
++                {
++                  /* An incomplete multibyte character at the end.  */
++                  mbf->eof_seen = true;
++                  bytes = mbf->bufcount;
++                  mbc->wc_valid = false;
++                  break;
++                }
++              mbf->buf[mbf->bufcount] = (unsigned char) c;
++              mbf->bufcount++;
++            }
++        }
++      else
++        {
++          if (bytes == 0)
++            {
++              /* A null wide character was encountered.  */
++              bytes = 1;
++              assert (mbf->buf[0] == '\0');
++              assert (mbc->wc == 0);
++            }
++          mbc->wc_valid = true;
++          break;
++        }
++    }
++
++  /* Return the multibyte sequence mbf->buf[0..bytes-1].  */
++  mbc->ptr = &mbc->buf[0];
++  memcpy (&mbc->buf[0], &mbf->buf[0], bytes);
++  mbc->bytes = bytes;
++
++  mbf->bufcount -= bytes;
++  if (mbf->bufcount > 0)
++    {
++      /* It's not worth calling memmove() for so few bytes.  */
++      unsigned int count = mbf->bufcount;
++      char *p = &mbf->buf[0];
++
++      do
++        {
++          *p = *(p + bytes);
++          p++;
++        }
++      while (--count > 0);
++    }
++  return;
++
++eof:
++  /* An mbchar_t with bytes == 0 is used to indicate EOF.  */
++  mbc->ptr = NULL;
++  mbc->bytes = 0;
++  mbc->wc_valid = false;
++  return;
++}
++
++MBFILE_INLINE void
++mbfile_multi_ungetc (const struct mbchar *mbc, struct mbfile_multi *mbf)
++{
++  mb_copy (&mbf->pushback, mbc);
++  mbf->have_pushback = true;
++}
++
++typedef struct mbfile_multi mb_file_t;
++
++typedef mbchar_t mbf_char_t;
++
++#define mbf_init(mbf, stream)                                           \
++  ((mbf).fp = (stream),                                                 \
++   (mbf).eof_seen = false,                                              \
++   (mbf).have_pushback = false,                                         \
++   memset (&(mbf).state, '\0', sizeof (mbstate_t)),                     \
++   (mbf).bufcount = 0)
++
++#define mbf_getc(mbc, mbf) mbfile_multi_getc (&(mbc), &(mbf))
++
++#define mbf_ungetc(mbc, mbf) mbfile_multi_ungetc (&(mbc), &(mbf))
++
++#define mb_iseof(mbc) ((mbc).bytes == 0)
++
++#ifndef _GL_INLINE_HEADER_BEGIN
++ #error "Please include config.h first."
++#endif
++_GL_INLINE_HEADER_BEGIN
++
++#endif /* _MBFILE_H */
+diff -Naurp coreutils-8.27-orig/m4/mbfile.m4 coreutils-8.27/m4/mbfile.m4
+--- coreutils-8.27-orig/m4/mbfile.m4   1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/m4/mbfile.m4        2017-03-11 23:47:38.070058349 -0600
+@@ -0,0 +1,14 @@
++# mbfile.m4 serial 7
++dnl Copyright (C) 2005, 2008-2017 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++
++dnl autoconf tests required for use of mbfile.h
++dnl From Bruno Haible.
++
++AC_DEFUN([gl_MBFILE],
++[
++  AC_REQUIRE([AC_TYPE_MBSTATE_T])
++  :
++])
+diff -Naurp coreutils-8.27-orig/src/cut.c coreutils-8.27/src/cut.c
+--- coreutils-8.27-orig/src/cut.c      2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/cut.c   2017-03-11 23:47:59.526048471 -0600
 @@ -28,6 +28,11 @@
  #include <assert.h>
  #include <getopt.h>
@@ -594,205 +902,318 @@ diff -Naurp coreutils-8.25-orig/src/cut.c coreutils-8.25/src/cut.c
      }
  
    if (optind == argc)
-diff -Naurp coreutils-8.25-orig/src/expand.c coreutils-8.25/src/expand.c
---- coreutils-8.25-orig/src/expand.c   2016-01-01 07:48:50.000000000 -0600
-+++ coreutils-8.25/src/expand.c        2016-02-08 19:07:10.301944619 -0600
-@@ -37,12 +37,34 @@
+diff -Naurp coreutils-8.27-orig/src/expand.c coreutils-8.27/src/expand.c
+--- coreutils-8.27-orig/src/expand.c   2017-02-26 15:42:25.000000000 -0600
++++ coreutils-8.27/src/expand.c        2017-03-11 23:49:06.758133530 -0600
+@@ -37,6 +37,9 @@
  #include <stdio.h>
  #include <getopt.h>
  #include <sys/types.h>
 +
-+/* Get mbstate_t, mbrtowc(), wcwidth(). */
-+#if HAVE_WCHAR_H
-+# include <wchar.h>
-+#endif
-+
-+/* Get iswblank(). */
-+#if HAVE_WCTYPE_H
-+# include <wctype.h>
-+#endif
++#include <mbfile.h>
 +
  #include "system.h"
- #include "error.h"
- #include "fadvise.h"
- #include "quote.h"
+ #include "die.h"
  #include "xstrndup.h"
+@@ -100,19 +103,41 @@ expand (void)
+ {
+   /* Input stream.  */
+   FILE *fp = next_file (NULL);
++  mb_file_t mbf;
++  mbf_char_t c;
++  /* True if the starting locale is utf8.  */
++  bool using_utf_locale;
++
++  /* True if the first file contains BOM header.  */
++  bool found_bom;
++  using_utf_locale=check_utf_locale();
+   if (!fp)
+     return;
++  mbf_init (mbf, fp);
++  found_bom=check_bom(fp,&mbf);
  
-+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
-+   installation; work around this configuration error.  */
-+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
-+# define MB_LEN_MAX 16
-+#endif
+-  while (true)
++  if (using_utf_locale == false && found_bom == true)
++  {
++    /*try using some predefined locale */
 +
-+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-+#if HAVE_MBRTOWC && defined mbstate_t
-+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-+#endif
++    if (set_utf_locale () != 0)
+     {
+-      /* Input character, or EOF.  */
+-      int c;
++      error (EXIT_FAILURE, errno, _("cannot set UTF-8 locale"));
++    }
++  }
 +
- /* The official name of this program (e.g., no 'g' prefix).  */
- #define PROGRAM_NAME "expand"
  
-@@ -357,6 +379,142 @@ expand (void)
++  if (found_bom == true)
++  {
++    print_bom();
++  }
++
++  while (true)
++    {
+       /* If true, perform translations.  */
+       bool convert = true;
+-
+       /* The following variables have valid values only when CONVERT
+          is true:  */
+@@ -122,17 +147,48 @@ expand (void)
+       /* Index in TAB_LIST of next tab stop to examine.  */
+       size_t tab_index = 0;
+-
+       /* Convert a line of text.  */
+       do
+         {
+-          while ((c = getc (fp)) < 0 && (fp = next_file (fp)))
+-            continue;
++          while (true) {
++            mbf_getc (c, mbf);
++            if ((mb_iseof (c)) && (fp = next_file (fp)))
++              {
++                mbf_init (mbf, fp);
++                if (fp!=NULL)
++                {
++                  if (check_bom(fp,&mbf)==true)
++                  {
++                    /*Not the first file - check BOM header*/
++                    if (using_utf_locale==false && found_bom==false)
++                    {
++                      /*BOM header in subsequent file but not in the first one. */
++                      error (EXIT_FAILURE, errno, _("combination of files with and without BOM header"));
++                    }
++                  }
++                  else
++                  {
++                    if(using_utf_locale==false && found_bom==true)
++                    {
++                      /*First file conatined BOM header - locale was switched to UTF
++                      /*all subsequent files should contain BOM. */
++                      error (EXIT_FAILURE, errno, _("combination of files with and without BOM header"));
++                    }
++                  }
++                }
++                continue;
++              }
++            else
++              {
++                break;
++              }
++            }
++
+           if (convert)
+             {
+-              if (c == '\t')
++              if (mb_iseq (c, '\t'))
+                 {
+                   /* Column the next input tab stop is on.  */
+                   uintmax_t next_tab_column;
+@@ -151,32 +207,34 @@ expand (void)
+                     if (putchar (' ') < 0)
+                       die (EXIT_FAILURE, errno, _("write error"));
+-                  c = ' ';
++                  mb_setascii (&c, ' ');
+                 }
+-              else if (c == '\b')
++              else if (mb_iseq (c, '\b'))
+                 {
+                   /* Go back one column, and force recalculation of the
+                      next tab stop.  */
+                   column -= !!column;
+                   tab_index -= !!tab_index;
+                 }
+-              else
++              /* A leading control character could make us trip over.  */
++              else if (!mb_iscntrl (c))
+                 {
+-                  column++;
++                  column += mb_width (c);
+                   if (!column)
+                     die (EXIT_FAILURE, 0, _("input line is too long"));
+                 }
+-              convert &= convert_entire_line || !! isblank (c);
++              convert &= convert_entire_line || mb_isblank (c);
+             }
+-          if (c < 0)
++          if (mb_iseof (c))
+             return;
+-          if (putchar (c) < 0)
++          mb_putc (c, stdout);
++          if (ferror (stdout))
+             die (EXIT_FAILURE, errno, _("write error"));
+         }
+-      while (c != '\n');
++      while (!mb_iseq (c, '\n'));
      }
  }
  
-+#if HAVE_MBRTOWC
-+static void
-+expand_multibyte (void)
+diff -Naurp coreutils-8.27-orig/src/expand-common.c coreutils-8.27/src/expand-common.c
+--- coreutils-8.27-orig/src/expand-common.c    2017-03-01 11:22:55.000000000 -0600
++++ coreutils-8.27/src/expand-common.c 2017-03-11 23:49:06.757133570 -0600
+@@ -18,6 +18,7 @@
+ #include <stdio.h>
+ #include <sys/types.h>
++#include <mbfile.h>
+ #include "system.h"
+ #include "die.h"
+ #include "error.h"
+@@ -105,6 +106,119 @@ set_extend_size (uintmax_t tabval)
+   return ok;
+ }
++extern int
++set_utf_locale (void)
 +{
-+  FILE *fp;                   /* Input strem. */
-+  mbstate_t i_state;          /* Current shift state of the input stream. */
-+  mbstate_t i_state_bak;      /* Back up the I_STATE. */
-+  mbstate_t o_state;          /* Current shift state of the output stream. */
-+  char buf[MB_LEN_MAX + BUFSIZ];  /* For spooling a read byte sequence. */
-+  char *bufpos = buf;                 /* Next read position of BUF. */
-+  size_t buflen = 0;          /* The length of the byte sequence in buf. */
-+  wchar_t wc;                 /* A gotten wide character. */
-+  size_t mblength;            /* The byte size of a multibyte character
-+                                 which shows as same character as WC. */
-+  int tab_index = 0;          /* Index in `tab_list' of next tabstop. */
-+  int column = 0;             /* Column on screen of the next char. */
-+  int next_tab_column;                /* Column the next tab stop is on. */
-+  int convert = 1;            /* If nonzero, perform translations. */
-+
-+  fp = next_file ((FILE *) NULL);
-+  if (fp == NULL)
-+    return;
++      /*try using some predefined locale */
++      const char* predef_locales[] = {"C.UTF8","en_US.UTF8","en_GB.UTF8"};
 +
-+  memset (&o_state, '\0', sizeof(mbstate_t));
-+  memset (&i_state, '\0', sizeof(mbstate_t));
++      const int predef_locales_count=3;
++      for (int i=0;i<predef_locales_count;i++)
++        {
++          if (setlocale(LC_ALL,predef_locales[i])!=NULL)
++          {
++            break;
++          }
++          else if (i==predef_locales_count-1)
++          {
++            return 1;
++            error (EXIT_FAILURE, errno, _("cannot set UTF-8 locale"));
++          }
++        }
++        return 0;
++}
 +
-+  for (;;)
-+    {
-+      /* Refill the buffer BUF. */
-+      if (buflen < MB_LEN_MAX && !feof(fp) && !ferror(fp))
-+      {
-+        memmove (buf, bufpos, buflen);
-+        buflen += fread (buf + buflen, sizeof(char), BUFSIZ, fp);
-+        bufpos = buf;
-+      }
++extern bool
++check_utf_locale(void)
++{
++  char* locale = setlocale (LC_CTYPE , NULL);
++  if (locale == NULL)
++  {
++    return false;
++  }
++  else if (strcasestr(locale, "utf8") == NULL && strcasestr(locale, "utf-8") == NULL)
++  {
++    return false;
++  }
++  return true;
++}
 +
-+      /* No character is left in BUF. */
-+      if (buflen < 1)
-+      {
-+        fp = next_file (fp);
++extern bool
++check_bom(FILE* fp, mb_file_t *mbf)
++{
++  int c;
 +
-+        if (fp == NULL)
-+          break;              /* No more files. */
-+        else
-+          {
-+            memset (&i_state, '\0', sizeof(mbstate_t));
-+            continue;
-+          }
-+      }
 +
-+      /* Get a wide character. */
-+      i_state_bak = i_state;
-+      mblength = mbrtowc (&wc, bufpos, buflen, &i_state);
++  c=fgetc(fp);
 +
-+      switch (mblength)
-+      {
-+      case (size_t)-1:        /* illegal byte sequence. */
-+      case (size_t)-2:
-+        mblength = 1;
-+        i_state = i_state_bak;
-+        if (convert)
-+          {
-+            ++column;
-+            if (convert_entire_line == 0 && !isblank(*bufpos))
-+              convert = 0;
-+          }
-+        putchar (*bufpos);
-+        break;
-+
-+      case 0:         /* null. */
-+        mblength = 1;
-+        if (convert && convert_entire_line == 0)
-+          convert = 0;
-+        putchar ('\0');
-+        break;
-+
-+      default:
-+        if (wc == L'\n')   /* LF. */
-+          {
-+            tab_index = 0;
-+            column = 0;
-+            convert = 1;
-+            putchar ('\n');
-+          }
-+        else if (wc == L'\t' && convert)      /* Tab. */
-+          {
-+            if (tab_size == 0)
-+              {
-+                /* Do not let tab_index == first_free_tab;
-+                   stop when it is 1 less. */
-+                while (tab_index < first_free_tab - 1
-+                    && column >= tab_list[tab_index])
-+                  tab_index++;
-+                next_tab_column = tab_list[tab_index];
-+                if (tab_index < first_free_tab - 1)
-+                  tab_index++;
-+                if (column >= next_tab_column)
-+                  next_tab_column = column + 1;
-+              }
-+            else
-+              next_tab_column = column + tab_size - column % tab_size;
++  /*test BOM header of the first file */
++  mbf->bufcount=0;
++  if (c == 0xEF)
++  {
++    c=fgetc(fp);
++  }
++  else
++  {
++    if (c != EOF)
++    {
++      ungetc(c,fp);
++    }
++    return false;
++  }
 +
-+            while (column < next_tab_column)
-+              {
-+                putchar (' ');
-+                ++column;
-+              }
-+          }
-+        else  /* Others. */
-+          {
-+            if (convert)
-+              {
-+                if (wc == L'\b')
-+                  {
-+                    if (column > 0)
-+                      --column;
-+                  }
-+                else
-+                  {
-+                    int width;                /* The width of WC. */
-+
-+                    width = wcwidth (wc);
-+                    column += (width > 0) ? width : 0;
-+                    if (convert_entire_line == 0 && !iswblank(wc))
-+                      convert = 0;
-+                  }
-+              }
-+            fwrite (bufpos, sizeof(char), mblength, stdout);
-+          }
-+      }
-+      buflen -= mblength;
-+      bufpos += mblength;
++  if (c == 0xBB)
++  {
++    c=fgetc(fp);
++  }
++  else
++  {
++    if ( c!= EOF )
++    {
++      mbf->buf[0]=(unsigned char) 0xEF;
++      mbf->bufcount=1;
++      ungetc(c,fp);
++      return false;
++    }
++    else
++    {
++      ungetc(0xEF,fp);
++      return false;
 +    }
++  }
++  if (c == 0xBF)
++  {
++    mbf->bufcount=0;
++    return true;
++  }
++  else
++  {
++    if (c != EOF)
++    {
++      mbf->buf[0]=(unsigned char) 0xEF;
++      mbf->buf[1]=(unsigned char) 0xBB;
++      mbf->bufcount=2;
++      ungetc(c,fp);
++      return false;
++    }
++    else
++    {
++      mbf->buf[0]=(unsigned char) 0xEF;
++      mbf->bufcount=1;
++      ungetc(0xBB,fp);
++      return false;
++    }
++  }
++  return false;
 +}
-+#endif
 +
- int
- main (int argc, char **argv)
- {
-@@ -421,7 +579,12 @@ main (int argc, char **argv)
-   file_list = (optind < argc ? &argv[optind] : stdin_argv);
--  expand ();
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1)
-+    expand_multibyte ();
-+  else
-+#endif
-+    expand ();
-   if (have_read_stdin && fclose (stdin) != 0)
-     error (EXIT_FAILURE, errno, "-");
-diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
---- coreutils-8.25-orig/src/fold.c     2016-01-01 07:48:50.000000000 -0600
-+++ coreutils-8.25/src/fold.c  2016-02-08 19:07:10.302944622 -0600
-@@ -22,11 +22,33 @@
++extern void
++print_bom(void)
++{
++  putc (0xEF, stdout);
++  putc (0xBB, stdout);
++  putc (0xBF, stdout);
++}
++
+ /* Add the comma or blank separated list of tab stops STOPS
+    to the list of tab stops.  */
+ extern void
+diff -Naurp coreutils-8.27-orig/src/expand-common.h coreutils-8.27/src/expand-common.h
+--- coreutils-8.27-orig/src/expand-common.h    2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/expand-common.h 2017-03-11 23:49:06.758133530 -0600
+@@ -34,6 +34,18 @@ extern size_t max_column_width;
+ /* The desired exit status.  */
+ extern int exit_status;
++extern int
++set_utf_locale (void);
++
++extern bool
++check_utf_locale(void);
++
++extern bool
++check_bom(FILE* fp, mb_file_t *mbf);
++
++extern void
++print_bom(void);
++
+ /* Add tab stop TABVAL to the end of 'tab_list'.  */
+ extern void
+ add_tab_stop (uintmax_t tabval);
+diff -Naurp coreutils-8.27-orig/src/fold.c coreutils-8.27/src/fold.c
+--- coreutils-8.27-orig/src/fold.c     2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/fold.c  2017-03-11 23:49:30.982169404 -0600
+@@ -22,12 +22,34 @@
  #include <getopt.h>
  #include <sys/types.h>
  
@@ -807,6 +1228,7 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
 +#endif
 +
  #include "system.h"
+ #include "die.h"
  #include "error.h"
  #include "fadvise.h"
  #include "xdectoint.h"
@@ -826,7 +1248,7 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
  #define TAB_WIDTH 8
  
  /* The official name of this program (e.g., no 'g' prefix).  */
-@@ -34,20 +56,41 @@
+@@ -35,20 +57,41 @@
  
  #define AUTHORS proper_name ("David MacKenzie")
  
@@ -872,7 +1294,7 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
    {"spaces", no_argument, NULL, 's'},
    {"width", required_argument, NULL, 'w'},
    {GETOPT_HELP_OPTION_DECL},
-@@ -75,6 +118,7 @@ Wrap input lines in each FILE, writing t
+@@ -76,6 +119,7 @@ Wrap input lines in each FILE, writing t
  
        fputs (_("\
    -b, --bytes         count bytes rather than columns\n\
@@ -880,7 +1302,7 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
    -s, --spaces        break at spaces\n\
    -w, --width=WIDTH   use WIDTH columns instead of 80\n\
  "), stdout);
-@@ -92,7 +136,7 @@ Wrap input lines in each FILE, writing t
+@@ -93,7 +137,7 @@ Wrap input lines in each FILE, writing t
  static size_t
  adjust_column (size_t column, char c)
  {
@@ -889,7 +1311,7 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
      {
        if (c == '\b')
          {
-@@ -115,30 +159,14 @@ adjust_column (size_t column, char c)
+@@ -116,30 +160,14 @@ adjust_column (size_t column, char c)
     to stdout, with maximum line length WIDTH.
     Return true if successful.  */
  
@@ -922,7 +1344,7 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
  
    fadvise (istream, FADVISE_SEQUENTIAL);
  
-@@ -168,6 +196,15 @@ fold_file (char const *filename, size_t
+@@ -169,6 +197,15 @@ fold_file (char const *filename, size_t
                bool found_blank = false;
                size_t logical_end = offset_out;
  
@@ -938,7 +1360,7 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
                /* Look for the last blank. */
                while (logical_end)
                  {
-@@ -214,11 +251,221 @@ fold_file (char const *filename, size_t
+@@ -215,11 +252,220 @@ fold_file (char const *filename, size_t
        line_out[offset_out++] = c;
      }
  
@@ -1033,39 +1455,38 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
 +        }
 +
 +rescan:
-+      if (operating_mode == byte_mode)                        /* byte mode */
++      if (convfail)
++        increment = 1;
++      else if (wc == L'\n')
++        {
++          /* preserve newline */
++          fwrite (line_out, sizeof(char), offset_out, stdout);
++          START_NEW_LINE;
++          continue;
++        }
++      else if (operating_mode == byte_mode)                  /* byte mode */
 +        increment = mblength;
 +      else if (operating_mode == character_mode)        /* character mode */
 +        increment = 1;
-+      else                                                /* column mode */
++      else                                                 /* column mode */
 +        {
-+          if (convfail)
-+            increment = 1;
-+          else
++          switch (wc)
 +            {
-+              switch (wc)
-+                {
-+                case L'\n':
-+                  fwrite (line_out, sizeof(char), offset_out, stdout);
-+                  START_NEW_LINE;
-+                  continue;
-+
-+                case L'\b':
-+                  increment = (column > 0) ? -1 : 0;
-+                  break;
++            case L'\b':
++              increment = (column > 0) ? -1 : 0;
++              break;
 +
-+                case L'\r':
-+                  increment = -1 * column;
-+                  break;
++            case L'\r':
++              increment = -1 * column;
++              break;
 +
-+                case L'\t':
-+                  increment = 8 - column % 8;
-+                  break;
++            case L'\t':
++              increment = 8 - column % 8;
++              break;
 +
-+                default:
-+                  increment = wcwidth (wc);
-+                  increment = (increment < 0) ? 0 : increment;
-+                }
++            default:
++              increment = wcwidth (wc);
++              increment = (increment < 0) ? 0 : increment;
 +            }
 +        }
 +
@@ -1146,7 +1567,7 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
 +
 +  if (istream == NULL)
 +    {
-+      error (0, errno, "%s", quotef (filename));
++      error (0, errno, "%s", filename);
 +      return 1;
 +    }
 +
@@ -1161,7 +1582,7 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
    if (ferror (istream))
      {
        error (0, saved_errno, "%s", quotef (filename));
-@@ -251,7 +498,8 @@ main (int argc, char **argv)
+@@ -252,7 +498,8 @@ main (int argc, char **argv)
  
    atexit (close_stdout);
  
@@ -1171,7 +1592,7 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
  
    while ((optc = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1)
      {
-@@ -260,7 +508,15 @@ main (int argc, char **argv)
+@@ -261,7 +508,15 @@ main (int argc, char **argv)
        switch (optc)
          {
          case 'b':             /* Count bytes rather than columns. */
@@ -1188,10 +1609,10 @@ diff -Naurp coreutils-8.25-orig/src/fold.c coreutils-8.25/src/fold.c
            break;
  
          case 's':             /* Break at word boundaries. */
-diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
---- coreutils-8.25-orig/src/join.c     2016-01-13 05:08:59.000000000 -0600
-+++ coreutils-8.25/src/join.c  2016-02-08 19:07:10.303944625 -0600
-@@ -22,18 +22,32 @@
+diff -Naurp coreutils-8.27-orig/src/join.c coreutils-8.27/src/join.c
+--- coreutils-8.27-orig/src/join.c     2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/join.c  2017-03-11 23:47:13.091286290 -0600
+@@ -22,19 +22,33 @@
  #include <sys/types.h>
  #include <getopt.h>
  
@@ -1206,6 +1627,7 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
 +#endif
 +
  #include "system.h"
+ #include "die.h"
  #include "error.h"
  #include "fadvise.h"
  #include "hard-locale.h"
@@ -1225,7 +1647,7 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
  /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "join"
  
-@@ -135,10 +149,12 @@ static struct outlist outlist_head;
+@@ -136,10 +150,12 @@ static struct outlist outlist_head;
  /* Last element in 'outlist', where a new element can be added.  */
  static struct outlist *outlist_end = &outlist_head;
  
@@ -1242,7 +1664,7 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
  
  /* If nonzero, check that the input is correctly ordered. */
  static enum
-@@ -275,13 +291,14 @@ xfields (struct line *line)
+@@ -276,13 +292,14 @@ xfields (struct line *line)
    if (ptr == lim)
      return;
  
@@ -1260,7 +1682,7 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
      {
        /* Skip leading blanks before the first field.  */
        while (field_sep (*ptr))
-@@ -305,6 +322,147 @@ xfields (struct line *line)
+@@ -306,6 +323,147 @@ xfields (struct line *line)
    extract_field (line, ptr, lim - ptr);
  }
  
@@ -1408,7 +1830,7 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
  static void
  freeline (struct line *line)
  {
-@@ -326,56 +484,133 @@ keycmp (struct line const *line1, struct
+@@ -327,56 +485,133 @@ keycmp (struct line const *line1, struct
          size_t jf_1, size_t jf_2)
  {
    /* Start of field to compare in each file.  */
@@ -1539,8 +1961,8 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
 -      diff = memcmp (beg1, beg2, MIN (len1, len2));
 +      copy[0] = beg[0];
 +      copy[1] = beg[1];
-+    }
-+
+     }
 +  if (hard_LC_COLLATE)
 +    {
 +      diff = xmemcoll ((char *) copy[0], len[0], (char *) copy[1], len[1]);
@@ -1550,14 +1972,14 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
 +          free (copy[i]);
 +
 +      return diff;
-     }
++    }
 +  diff = memcmp (copy[0], copy[1], MIN (len[0], len[1]));
 +
 +  if (mallocd)
 +    for (i = 0; i < 2; i++)
 +      free (copy[i]);
 +
++
    if (diff)
      return diff;
 -  return len1 < len2 ? -1 : len1 != len2;
@@ -1565,7 +1987,7 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
  }
  
  /* Check that successive input lines PREV and CURRENT from input file
-@@ -467,6 +702,11 @@ get_line (FILE *fp, struct line **linep,
+@@ -468,6 +703,11 @@ get_line (FILE *fp, struct line **linep,
      }
    ++line_no[which - 1];
  
@@ -1577,7 +1999,7 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
    xfields (line);
  
    if (prevline[which - 1])
-@@ -566,21 +806,28 @@ prfield (size_t n, struct line const *li
+@@ -567,21 +807,28 @@ prfield (size_t n, struct line const *li
  
  /* Output all the fields in line, other than the join field.  */
  
@@ -1609,7 +2031,7 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
        prfield (i, line);
      }
  }
-@@ -591,7 +838,6 @@ static void
+@@ -592,7 +839,6 @@ static void
  prjoin (struct line const *line1, struct line const *line2)
  {
    const struct outlist *outlist;
@@ -1617,7 +2039,7 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
    size_t field;
    struct line const *line;
  
-@@ -625,7 +871,7 @@ prjoin (struct line const *line1, struct
+@@ -626,7 +872,7 @@ prjoin (struct line const *line1, struct
            o = o->next;
            if (o == NULL)
              break;
@@ -1626,7 +2048,7 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
          }
        putchar (eolchar);
      }
-@@ -1103,21 +1349,46 @@ main (int argc, char **argv)
+@@ -1104,20 +1350,43 @@ main (int argc, char **argv)
  
          case 't':
            {
@@ -1653,16 +2075,14 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
 +              newtablen = 1;
              if (! newtab)
 -              newtab = '\n'; /* '' => process the whole line.  */
-+            {
 +              newtab = (char*)"\n"; /* '' => process the whole line.  */
-+            }
              else if (optarg[1])
                {
 -                if (STREQ (optarg, "\\0"))
 -                  newtab = '\0';
 -                else
--                  error (EXIT_FAILURE, 0, _("multi-character tab %s"),
--                         quote (optarg));
+-                  die (EXIT_FAILURE, 0, _("multi-character tab %s"),
+-                       quote (optarg));
 +                if (newtablen == 1 && newtab[1])
 +                {
 +                  if (STREQ (newtab, "\\0"))
@@ -1672,20 +2092,18 @@ diff -Naurp coreutils-8.25-orig/src/join.c coreutils-8.25/src/join.c
 +            if (tab != NULL && strcmp (tab, newtab))
 +              {
 +                free (newtab);
-+                error (EXIT_FAILURE, 0, _("incompatible tabs"));
++                die (EXIT_FAILURE, 0, _("incompatible tabs"));
                }
 -            if (0 <= tab && tab != newtab)
--              error (EXIT_FAILURE, 0, _("incompatible tabs"));
+-              die (EXIT_FAILURE, 0, _("incompatible tabs"));
              tab = newtab;
--          }
 +            tablen = newtablen;
-+           }
+           }
            break;
  
-         case 'z':
-diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
---- coreutils-8.25-orig/src/pr.c       2016-01-01 07:48:50.000000000 -0600
-+++ coreutils-8.25/src/pr.c    2016-02-08 19:07:10.306944635 -0600
+diff -Naurp coreutils-8.27-orig/src/pr.c coreutils-8.27/src/pr.c
+--- coreutils-8.27-orig/src/pr.c       2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/pr.c    2017-03-11 23:47:13.094286139 -0600
 @@ -311,6 +311,24 @@
  
  #include <getopt.h>
@@ -1709,9 +2127,9 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
 +#endif
 +
  #include "system.h"
+ #include "die.h"
  #include "error.h"
- #include "fadvise.h"
-@@ -323,6 +341,18 @@
+@@ -324,6 +342,18 @@
  #include "xstrtol.h"
  #include "xdectoint.h"
  
@@ -1730,7 +2148,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "pr"
  
-@@ -415,7 +445,20 @@ struct COLUMN
+@@ -416,7 +446,20 @@ struct COLUMN
  
  typedef struct COLUMN COLUMN;
  
@@ -1752,7 +2170,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  static bool read_line (COLUMN *p);
  static bool print_page (void);
  static bool print_stored (COLUMN *p);
-@@ -427,6 +470,7 @@ static void add_line_number (COLUMN *p);
+@@ -428,6 +471,7 @@ static void add_line_number (COLUMN *p);
  static void getoptnum (const char *n_str, int min, int *num,
                         const char *errfmt);
  static void getoptarg (char *arg, char switch_char, char *character,
@@ -1760,7 +2178,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
                         int *number);
  static void print_files (int number_of_files, char **av);
  static void init_parameters (int number_of_files);
-@@ -440,7 +484,6 @@ static void store_char (char c);
+@@ -441,7 +485,6 @@ static void store_char (char c);
  static void pad_down (unsigned int lines);
  static void read_rest_of_line (COLUMN *p);
  static void skip_read (COLUMN *p, int column_number);
@@ -1768,7 +2186,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  static void cleanup (void);
  static void print_sep_string (void);
  static void separator_string (const char *optarg_S);
-@@ -452,7 +495,7 @@ static COLUMN *column_vector;
+@@ -453,7 +496,7 @@ static COLUMN *column_vector;
     we store the leftmost columns contiguously in buff.
     To print a line from buff, get the index of the first character
     from line_vector[i], and print up to line_vector[i + 1]. */
@@ -1777,7 +2195,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  
  /* Index of the position in buff where the next character
     will be stored. */
-@@ -556,7 +599,7 @@ static int chars_per_column;
+@@ -557,7 +600,7 @@ static int chars_per_column;
  static bool untabify_input = false;
  
  /* (-e) The input tab character. */
@@ -1786,7 +2204,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  
  /* (-e) Tabstops are at chars_per_tab, 2*chars_per_tab, 3*chars_per_tab, ...
     where the leftmost column is 1. */
-@@ -566,7 +609,10 @@ static int chars_per_input_tab = 8;
+@@ -567,7 +610,10 @@ static int chars_per_input_tab = 8;
  static bool tabify_output = false;
  
  /* (-i) The output tab character. */
@@ -1798,7 +2216,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  
  /* (-i) The width of the output tab. */
  static int chars_per_output_tab = 8;
-@@ -636,7 +682,13 @@ static int line_number;
+@@ -637,7 +683,13 @@ static int line_number;
  static bool numbered_lines = false;
  
  /* (-n) Character which follows each line number. */
@@ -1813,18 +2231,18 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  
  /* (-n) line counting starts with 1st line of input file (not with 1st
     line of 1st page printed). */
-@@ -689,6 +741,7 @@ static bool use_col_separator = false;
+@@ -690,6 +742,7 @@ static bool use_col_separator = false;
     -a|COLUMN|-m is a 'space' and with the -J option a 'tab'. */
- static char *col_sep_string = (char *) "";
+ static char const *col_sep_string = "";
  static int col_sep_length = 0;
 +static int col_sep_width = 0;
  static char *column_separator = (char *) " ";
  static char *line_separator = (char *) "\t";
  
-@@ -839,6 +892,13 @@ separator_string (const char *optarg_S)
-   col_sep_length = (int) strlen (optarg_S);
-   col_sep_string = xmalloc (col_sep_length + 1);
-   strcpy (col_sep_string, optarg_S);
+@@ -851,6 +904,13 @@ separator_string (const char *optarg_S)
+     integer_overflow ();
+   col_sep_length = len;
+   col_sep_string = optarg_S;
 +
 +#if HAVE_MBRTOWC
 +  if (MB_CUR_MAX > 1)
@@ -1835,7 +2253,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  }
  
  int
-@@ -863,6 +923,21 @@ main (int argc, char **argv)
+@@ -875,6 +935,21 @@ main (int argc, char **argv)
  
    atexit (close_stdout);
  
@@ -1856,8 +2274,8 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
 +
    n_files = 0;
    file_names = (argc > 1
-                 ? xmalloc ((argc - 1) * sizeof (char *))
-@@ -939,8 +1014,12 @@ main (int argc, char **argv)
+                 ? xnmalloc (argc - 1, sizeof (char *))
+@@ -951,8 +1026,12 @@ main (int argc, char **argv)
            break;
          case 'e':
            if (optarg)
@@ -1872,7 +2290,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
            /* Could check tab width > 0. */
            untabify_input = true;
            break;
-@@ -953,8 +1032,12 @@ main (int argc, char **argv)
+@@ -965,8 +1044,12 @@ main (int argc, char **argv)
            break;
          case 'i':
            if (optarg)
@@ -1887,7 +2305,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
            /* Could check tab width > 0. */
            tabify_output = true;
            break;
-@@ -972,8 +1055,8 @@ main (int argc, char **argv)
+@@ -984,8 +1067,8 @@ main (int argc, char **argv)
          case 'n':
            numbered_lines = true;
            if (optarg)
@@ -1898,16 +2316,15 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
            break;
          case 'N':
            skip_count = false;
-@@ -997,7 +1080,7 @@ main (int argc, char **argv)
-           old_s = false;
+@@ -1010,6 +1093,7 @@ main (int argc, char **argv)
            /* Reset an additional input of -s, -S dominates -s */
-           col_sep_string = bad_cast ("");
--          col_sep_length = 0;
-+          col_sep_length = col_sep_width = 0;
+           col_sep_string = "";
+           col_sep_length = 0;
++          col_sep_width = 0;
            use_col_separator = true;
            if (optarg)
              separator_string (optarg);
-@@ -1152,10 +1235,45 @@ getoptnum (const char *n_str, int min, i
+@@ -1166,10 +1250,45 @@ getoptnum (const char *n_str, int min, i
     a number. */
  
  static void
@@ -1955,7 +2372,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
    if (*arg)
      {
        long int tmp_long;
-@@ -1177,6 +1295,11 @@ static void
+@@ -1191,6 +1310,11 @@ static void
  init_parameters (int number_of_files)
  {
    int chars_used_by_number = 0;
@@ -1967,7 +2384,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  
    lines_per_body = lines_per_page - lines_per_header - lines_per_footer;
    if (lines_per_body <= 0)
-@@ -1214,7 +1337,7 @@ init_parameters (int number_of_files)
+@@ -1228,7 +1352,7 @@ init_parameters (int number_of_files)
            else
              col_sep_string = column_separator;
  
@@ -1976,7 +2393,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
            use_col_separator = true;
          }
        /* It's rather pointless to define a TAB separator with column
-@@ -1244,11 +1367,11 @@ init_parameters (int number_of_files)
+@@ -1258,11 +1382,11 @@ init_parameters (int number_of_files)
               + TAB_WIDTH (chars_per_input_tab, chars_per_number);   */
  
        /* Estimate chars_per_text without any margin and keep it constant. */
@@ -1990,16 +2407,16 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  
        /* The number is part of the column width unless we are
           printing files in parallel. */
-@@ -1257,7 +1380,7 @@ init_parameters (int number_of_files)
+@@ -1271,7 +1395,7 @@ init_parameters (int number_of_files)
      }
  
-   chars_per_column = (chars_per_line - chars_used_by_number
--                      - (columns - 1) * col_sep_length) / columns;
-+                      - (columns - 1) * col_sep_width) / columns;
-   if (chars_per_column < 1)
-     error (EXIT_FAILURE, 0, _("page width too narrow"));
-@@ -1275,7 +1398,7 @@ init_parameters (int number_of_files)
+   int sep_chars, useful_chars;
+-  if (INT_MULTIPLY_WRAPV (columns - 1, col_sep_length, &sep_chars))
++  if (INT_MULTIPLY_WRAPV (columns - 1, col_sep_width, &sep_chars))
+     sep_chars = INT_MAX;
+   if (INT_SUBTRACT_WRAPV (chars_per_line - chars_used_by_number, sep_chars,
+                           &useful_chars))
+@@ -1294,7 +1418,7 @@ init_parameters (int number_of_files)
       We've to use 8 as the lower limit, if we use chars_per_default_tab = 8
       to expand a tab which is not an input_tab-char. */
    free (clump_buff);
@@ -2008,7 +2425,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  }
  
  /* Open the necessary files,
-@@ -1383,7 +1506,7 @@ init_funcs (void)
+@@ -1402,7 +1526,7 @@ init_funcs (void)
  
    /* Enlarge p->start_position of first column to use the same form of
       padding_not_printed with all columns. */
@@ -2017,7 +2434,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  
    /* This loop takes care of all but the rightmost column. */
  
-@@ -1417,7 +1540,7 @@ init_funcs (void)
+@@ -1436,7 +1560,7 @@ init_funcs (void)
          }
        else
          {
@@ -2026,19 +2443,19 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
            h_next = h + chars_per_column;
          }
      }
-@@ -1708,9 +1831,9 @@ static void
+@@ -1727,9 +1851,9 @@ static void
  align_column (COLUMN *p)
  {
    padding_not_printed = p->start_position;
--  if (padding_not_printed - col_sep_length > 0)
-+  if (padding_not_printed - col_sep_width > 0)
+-  if (col_sep_length < padding_not_printed)
++  if (col_sep_width < padding_not_printed)
      {
 -      pad_across_to (padding_not_printed - col_sep_length);
 +      pad_across_to (padding_not_printed - col_sep_width);
        padding_not_printed = ANYWHERE;
      }
  
-@@ -1981,13 +2104,13 @@ store_char (char c)
+@@ -2004,13 +2128,13 @@ store_char (char c)
        /* May be too generous. */
        buff = X2REALLOC (buff, &buff_allocated);
      }
@@ -2054,7 +2471,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
    char *s;
    int num_width;
  
-@@ -2004,22 +2127,24 @@ add_line_number (COLUMN *p)
+@@ -2027,22 +2151,24 @@ add_line_number (COLUMN *p)
        /* Tabification is assumed for multiple columns, also for n-separators,
           but 'default n-separator = TAB' hasn't been given priority over
           equal column_width also specified by POSIX. */
@@ -2083,7 +2500,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
          output_position = POS_AFTER_TAB (chars_per_output_tab,
                            output_position);
      }
-@@ -2180,7 +2305,7 @@ print_white_space (void)
+@@ -2203,7 +2329,7 @@ print_white_space (void)
    while (goal - h_old > 1
           && (h_new = POS_AFTER_TAB (chars_per_output_tab, h_old)) <= goal)
      {
@@ -2092,15 +2509,15 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
        h_old = h_new;
      }
    while (++h_old <= goal)
-@@ -2200,6 +2325,7 @@ print_sep_string (void)
+@@ -2223,6 +2349,7 @@ print_sep_string (void)
  {
-   char *s;
+   char const *s = col_sep_string;
    int l = col_sep_length;
 +  int not_space_flag;
  
-   s = col_sep_string;
-@@ -2213,6 +2339,7 @@ print_sep_string (void)
+   if (separators_not_printed <= 0)
+     {
+@@ -2234,6 +2361,7 @@ print_sep_string (void)
      {
        for (; separators_not_printed > 0; --separators_not_printed)
          {
@@ -2108,7 +2525,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
            while (l-- > 0)
              {
                /* 3 types of sep_strings: spaces only, spaces and chars,
-@@ -2226,12 +2353,15 @@ print_sep_string (void)
+@@ -2247,12 +2375,15 @@ print_sep_string (void)
                  }
                else
                  {
@@ -2125,7 +2542,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
            /* sep_string ends with some spaces */
            if (spaces_not_printed > 0)
              print_white_space ();
-@@ -2259,7 +2389,7 @@ print_clump (COLUMN *p, int n, char *clu
+@@ -2280,7 +2411,7 @@ print_clump (COLUMN *p, int n, char *clu
     required number of tabs and spaces. */
  
  static void
@@ -2134,7 +2551,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  {
    if (tabify_output)
      {
-@@ -2283,6 +2413,74 @@ print_char (char c)
+@@ -2304,6 +2435,74 @@ print_char (char c)
    putchar (c);
  }
  
@@ -2209,19 +2626,19 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  /* Skip to page PAGE before printing.
     PAGE may be larger than total number of pages. */
  
-@@ -2462,9 +2660,9 @@ read_line (COLUMN *p)
+@@ -2483,9 +2682,9 @@ read_line (COLUMN *p)
            align_empty_cols = false;
          }
  
--      if (padding_not_printed - col_sep_length > 0)
-+      if (padding_not_printed - col_sep_width > 0)
+-      if (col_sep_length < padding_not_printed)
++      if (col_sep_width < padding_not_printed)
          {
 -          pad_across_to (padding_not_printed - col_sep_length);
 +          pad_across_to (padding_not_printed - col_sep_width);
            padding_not_printed = ANYWHERE;
          }
  
-@@ -2534,7 +2732,7 @@ print_stored (COLUMN *p)
+@@ -2555,7 +2754,7 @@ print_stored (COLUMN *p)
    int i;
  
    int line = p->current_line++;
@@ -2230,7 +2647,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
    /* FIXME
       UMR: Uninitialized memory read:
       * This is occurring while in:
-@@ -2546,7 +2744,7 @@ print_stored (COLUMN *p)
+@@ -2567,7 +2766,7 @@ print_stored (COLUMN *p)
       xmalloc        [xmalloc.c:94]
       init_store_cols [pr.c:1648]
       */
@@ -2239,19 +2656,19 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  
    pad_vertically = true;
  
-@@ -2565,9 +2763,9 @@ print_stored (COLUMN *p)
+@@ -2586,9 +2785,9 @@ print_stored (COLUMN *p)
          }
      }
  
--  if (padding_not_printed - col_sep_length > 0)
-+  if (padding_not_printed - col_sep_width > 0)
+-  if (col_sep_length < padding_not_printed)
++  if (col_sep_width < padding_not_printed)
      {
 -      pad_across_to (padding_not_printed - col_sep_length);
 +      pad_across_to (padding_not_printed - col_sep_width);
        padding_not_printed = ANYWHERE;
      }
  
-@@ -2580,8 +2778,8 @@ print_stored (COLUMN *p)
+@@ -2601,8 +2800,8 @@ print_stored (COLUMN *p)
    if (spaces_not_printed == 0)
      {
        output_position = p->start_position + end_vector[line];
@@ -2262,7 +2679,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
      }
  
    return true;
-@@ -2600,7 +2798,7 @@ print_stored (COLUMN *p)
+@@ -2621,7 +2820,7 @@ print_stored (COLUMN *p)
     number of characters is 1.) */
  
  static int
@@ -2271,7 +2688,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  {
    unsigned char uc = c;
    char *s = clump_buff;
-@@ -2610,10 +2808,10 @@ char_to_clump (char c)
+@@ -2631,10 +2830,10 @@ char_to_clump (char c)
    int chars;
    int chars_per_c = 8;
  
@@ -2284,7 +2701,7 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
      {
        width = TAB_WIDTH (chars_per_c, input_position);
  
-@@ -2694,6 +2892,164 @@ char_to_clump (char c)
+@@ -2715,6 +2914,164 @@ char_to_clump (char c)
    return chars;
  }
  
@@ -2449,9 +2866,9 @@ diff -Naurp coreutils-8.25-orig/src/pr.c coreutils-8.25/src/pr.c
  /* We've just printed some files and need to clean up things before
     looking for more options and printing the next batch of files.
  
-diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
---- coreutils-8.25-orig/src/sort.c     2016-01-16 13:09:33.000000000 -0600
-+++ coreutils-8.25/src/sort.c  2016-02-08 19:07:10.310944648 -0600
+diff -Naurp coreutils-8.27-orig/src/sort.c coreutils-8.27/src/sort.c
+--- coreutils-8.27-orig/src/sort.c     2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/sort.c  2017-03-11 23:49:22.416505389 -0600
 @@ -29,6 +29,14 @@
  #include <sys/wait.h>
  #include <signal.h>
@@ -2466,8 +2883,8 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
 +
  #include "system.h"
  #include "argmatch.h"
- #include "error.h"
-@@ -163,14 +171,39 @@ static int decimal_point;
+ #include "die.h"
+@@ -165,14 +173,39 @@ static int decimal_point;
  /* Thousands separator; if -1, then there isn't one.  */
  static int thousands_sep;
  
@@ -2508,7 +2925,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  /* The kind of blanks for '-b' to skip in various options. */
  enum blanktype { bl_start, bl_end, bl_both };
  
-@@ -344,13 +377,11 @@ static bool reverse;
+@@ -346,13 +379,11 @@ static bool reverse;
     they were read if all keys compare equal.  */
  static bool stable;
  
@@ -2525,7 +2942,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  
  /* Flag to remove consecutive duplicate lines from the output.
     Only the last of a sequence of equal lines will be output. */
-@@ -810,6 +841,46 @@ reap_all (void)
+@@ -811,6 +842,46 @@ reap_all (void)
      reap (-1);
  }
  
@@ -2572,7 +2989,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  /* Clean up any remaining temporary files.  */
  
  static void
-@@ -1254,7 +1325,7 @@ zaptemp (char const *name)
+@@ -1255,7 +1326,7 @@ zaptemp (char const *name)
    free (node);
  }
  
@@ -2581,7 +2998,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  
  static int
  struct_month_cmp (void const *m1, void const *m2)
-@@ -1269,7 +1340,7 @@ struct_month_cmp (void const *m1, void c
+@@ -1270,7 +1341,7 @@ struct_month_cmp (void const *m1, void c
  /* Initialize the character class tables. */
  
  static void
@@ -2590,7 +3007,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  {
    size_t i;
  
-@@ -1281,7 +1352,7 @@ inittables (void)
+@@ -1282,7 +1353,7 @@ inittables (void)
        fold_toupper[i] = toupper (i);
      }
  
@@ -2599,7 +3016,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
    /* If we're not in the "C" locale, read different names for months.  */
    if (hard_LC_TIME)
      {
-@@ -1363,6 +1434,84 @@ specify_nmerge (int oi, char c, char con
+@@ -1364,6 +1435,84 @@ specify_nmerge (int oi, char c, char con
      xstrtol_fatal (e, oi, c, long_options, s);
  }
  
@@ -2684,7 +3101,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  /* Specify the amount of main memory to use when sorting.  */
  static void
  specify_sort_size (int oi, char c, char const *s)
-@@ -1596,7 +1745,7 @@ buffer_linelim (struct buffer const *buf
+@@ -1597,7 +1746,7 @@ buffer_linelim (struct buffer const *buf
     by KEY in LINE. */
  
  static char *
@@ -2693,7 +3110,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  {
    char *ptr = line->text, *lim = ptr + line->length - 1;
    size_t sword = key->sword;
-@@ -1605,10 +1754,10 @@ begfield (struct line const *line, struc
+@@ -1606,10 +1755,10 @@ begfield (struct line const *line, struc
    /* The leading field separator itself is included in a field when -t
       is absent.  */
  
@@ -2706,7 +3123,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
            ++ptr;
          if (ptr < lim)
            ++ptr;
-@@ -1634,11 +1783,70 @@ begfield (struct line const *line, struc
+@@ -1635,11 +1784,70 @@ begfield (struct line const *line, struc
    return ptr;
  }
  
@@ -2778,7 +3195,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  {
    char *ptr = line->text, *lim = ptr + line->length - 1;
    size_t eword = key->eword, echar = key->echar;
-@@ -1653,10 +1861,10 @@ limfield (struct line const *line, struc
+@@ -1654,10 +1862,10 @@ limfield (struct line const *line, struc
       'beginning' is the first character following the delimiting TAB.
       Otherwise, leave PTR pointing at the first 'blank' character after
       the preceding field.  */
@@ -2791,7 +3208,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
            ++ptr;
          if (ptr < lim && (eword || echar))
            ++ptr;
-@@ -1702,10 +1910,10 @@ limfield (struct line const *line, struc
+@@ -1703,10 +1911,10 @@ limfield (struct line const *line, struc
       */
  
    /* Make LIM point to the end of (one byte past) the current field.  */
@@ -2804,7 +3221,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
        if (newlim)
          lim = newlim;
      }
-@@ -1736,6 +1944,130 @@ limfield (struct line const *line, struc
+@@ -1737,6 +1945,130 @@ limfield (struct line const *line, struc
    return ptr;
  }
  
@@ -2935,7 +3352,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  /* Fill BUF reading from FP, moving buf->left bytes from the end
     of buf->buf to the beginning first.  If EOF is reached and the
     file wasn't terminated by a newline, supply one.  Set up BUF's line
-@@ -1822,8 +2154,22 @@ fillbuf (struct buffer *buf, FILE *fp, c
+@@ -1823,8 +2155,22 @@ fillbuf (struct buffer *buf, FILE *fp, c
                    else
                      {
                        if (key->skipsblanks)
@@ -2960,7 +3377,23 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
                        line->keybeg = line_start;
                      }
                  }
-@@ -1944,7 +2290,7 @@ human_numcompare (char const *a, char co
+@@ -1958,12 +2304,10 @@ find_unit_order (char const *number)
+        <none/unknown> < K/k < M < G < T < P < E < Z < Y  */
+ static int
+-human_numcompare (char const *a, char const *b)
++human_numcompare (char *a, char *b)
+ {
+-  while (blanks[to_uchar (*a)])
+-    a++;
+-  while (blanks[to_uchar (*b)])
+-    b++;
++  skipblanks(&a, a + strlen(a));
++  skipblanks(&b, b + strlen(b));
+   int diff = find_unit_order (a) - find_unit_order (b);
+   return (diff ? diff : strnumcmp (a, b, decimal_point, thousands_sep));
+@@ -1974,7 +2318,7 @@ human_numcompare (char const *a, char co
     hideously fast. */
  
  static int
@@ -2969,7 +3402,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  {
    while (blanks[to_uchar (*a)])
      a++;
-@@ -1954,6 +2300,25 @@ numcompare (char const *a, char const *b
+@@ -1984,6 +2328,25 @@ numcompare (char const *a, char const *b
    return strnumcmp (a, b, decimal_point, thousands_sep);
  }
  
@@ -2995,7 +3428,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  /* Work around a problem whereby the long double value returned by glibc's
     strtold ("NaN", ...) contains uninitialized bits: clear all bytes of
     A and B before calling strtold.  FIXME: remove this function once
-@@ -2004,7 +2369,7 @@ general_numcompare (char const *sa, char
+@@ -2034,7 +2397,7 @@ general_numcompare (char const *sa, char
     Return 0 if the name in S is not recognized.  */
  
  static int
@@ -3004,7 +3437,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  {
    size_t lo = 0;
    size_t hi = MONTHS_PER_YEAR;
-@@ -2280,15 +2645,14 @@ debug_key (struct line const *line, stru
+@@ -2310,15 +2673,14 @@ debug_key (struct line const *line, stru
            char saved = *lim;
            *lim = '\0';
  
@@ -3022,16 +3455,16 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
            else if (key->general_numeric)
              ignore_value (strtold (beg, &tighter_lim));
            else if (key->numeric || key->human_numeric)
-@@ -2432,7 +2796,7 @@ key_warnings (struct keyfield const *gke
-       bool maybe_space_aligned = !hard_LC_COLLATE && default_key_compare (key)
-                                  && !(key->schar || key->echar);
+@@ -2452,7 +2814,7 @@ key_warnings (struct keyfield const *gke
+       /* Warn about significant leading blanks.  */
+       bool implicit_skip = key_numeric (key) || key->month;
        bool line_offset = key->eword == 0 && key->echar != 0; /* -k1.x,1.y  */
--      if (!gkey_only && tab == TAB_DEFAULT && !line_offset
-+      if (!gkey_only && !tab_length && !line_offset
-           && ((!key->skipsblanks && !(implicit_skip || maybe_space_aligned))
+-      if (!zero_width && !gkey_only && tab == TAB_DEFAULT && !line_offset
++      if (!zero_width && !gkey_only && !tab_length && !line_offset
+           && ((!key->skipsblanks && !implicit_skip)
                || (!key->skipsblanks && key->schar)
                || (!key->skipeblanks && key->echar)))
-@@ -2490,11 +2854,87 @@ key_warnings (struct keyfield const *gke
+@@ -2510,11 +2872,87 @@ key_warnings (struct keyfield const *gke
      error (0, 0, _("option '-r' only applies to last-resort comparison"));
  }
  
@@ -3120,7 +3553,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  {
    struct keyfield *key = keylist;
  
-@@ -2579,7 +3019,7 @@ keycompare (struct line const *a, struct
+@@ -2599,7 +3037,7 @@ keycompare (struct line const *a, struct
            else if (key->human_numeric)
              diff = human_numcompare (ta, tb);
            else if (key->month)
@@ -3129,7 +3562,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
            else if (key->random)
              diff = compare_random (ta, tlena, tb, tlenb);
            else if (key->version)
-@@ -2695,6 +3135,211 @@ keycompare (struct line const *a, struct
+@@ -2715,6 +3153,211 @@ keycompare (struct line const *a, struct
    return key->reverse ? -diff : diff;
  }
  
@@ -3341,7 +3774,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
  /* Compare two lines A and B, returning negative, zero, or positive
     depending on whether A compares less than, equal to, or greater than B. */
  
-@@ -2722,7 +3367,7 @@ compare (struct line const *a, struct li
+@@ -2742,7 +3385,7 @@ compare (struct line const *a, struct li
      diff = - NONZERO (blen);
    else if (blen == 0)
      diff = 1;
@@ -3350,7 +3783,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
      {
        /* Note xmemcoll0 is a performance enhancement as
           it will not unconditionally write '\0' after the
-@@ -4121,6 +4766,7 @@ set_ordering (char const *s, struct keyf
+@@ -4139,6 +4782,7 @@ set_ordering (char const *s, struct keyf
            break;
          case 'f':
            key->translate = fold_toupper;
@@ -3358,7 +3791,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
            break;
          case 'g':
            key->general_numeric = true;
-@@ -4199,7 +4845,7 @@ main (int argc, char **argv)
+@@ -4218,7 +4862,7 @@ main (int argc, char **argv)
    initialize_exit_failure (SORT_FAILURE);
  
    hard_LC_COLLATE = hard_locale (LC_COLLATE);
@@ -3367,7 +3800,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
    hard_LC_TIME = hard_locale (LC_TIME);
  #endif
  
-@@ -4220,6 +4866,29 @@ main (int argc, char **argv)
+@@ -4239,6 +4883,29 @@ main (int argc, char **argv)
        thousands_sep = -1;
    }
  
@@ -3397,7 +3830,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
    have_read_stdin = false;
    inittables ();
  
-@@ -4494,13 +5163,34 @@ main (int argc, char **argv)
+@@ -4513,13 +5180,34 @@ main (int argc, char **argv)
  
          case 't':
            {
@@ -3407,7 +3840,7 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
 +            size_t newtab_length = 1;
 +            strncpy (newtab, optarg, MB_LEN_MAX);
 +            if (! newtab[0])
-               error (SORT_FAILURE, 0, _("empty tab"));
+               die (SORT_FAILURE, 0, _("empty tab"));
 -            if (optarg[1])
 +#if HAVE_MBRTOWC
 +            if (MB_CUR_MAX > 1)
@@ -3436,22 +3869,21 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
                  else
                    {
                      /* Provoke with 'sort -txx'.  Complain about
-@@ -4511,9 +5201,12 @@ main (int argc, char **argv)
-                            quote (optarg));
+@@ -4530,9 +5218,11 @@ main (int argc, char **argv)
+                          quote (optarg));
                    }
                }
 -            if (tab != TAB_DEFAULT && tab != newtab)
-+            if (tab_length
-+                && (tab_length != newtab_length
-+                    || memcmp (tab, newtab, tab_length) != 0))
-               error (SORT_FAILURE, 0, _("incompatible tabs"));
++            if (tab_length && (tab_length != newtab_length
++                        || memcmp (tab, newtab, tab_length) != 0))
+               die (SORT_FAILURE, 0, _("incompatible tabs"));
 -            tab = newtab;
 +            memcpy (tab, newtab, newtab_length);
 +            tab_length = newtab_length;
            }
            break;
  
-@@ -4751,12 +5444,10 @@ main (int argc, char **argv)
+@@ -4770,12 +5460,10 @@ main (int argc, char **argv)
        sort (files, nfiles, outfile, nthreads);
      }
  
@@ -3463,268 +3895,215 @@ diff -Naurp coreutils-8.25-orig/src/sort.c coreutils-8.25/src/sort.c
 -#endif
  
    if (have_read_stdin && fclose (stdin) == EOF)
-     die (_("close failed"), "-");
-diff -Naurp coreutils-8.25-orig/src/unexpand.c coreutils-8.25/src/unexpand.c
---- coreutils-8.25-orig/src/unexpand.c 2016-01-01 07:48:50.000000000 -0600
-+++ coreutils-8.25/src/unexpand.c      2016-02-08 19:07:10.311944651 -0600
-@@ -38,12 +38,29 @@
+     sort_die (_("close failed"), "-");
+diff -Naurp coreutils-8.27-orig/src/unexpand.c coreutils-8.27/src/unexpand.c
+--- coreutils-8.27-orig/src/unexpand.c 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/unexpand.c      2017-03-11 23:49:06.758133530 -0600
+@@ -38,6 +38,9 @@
  #include <stdio.h>
  #include <getopt.h>
  #include <sys/types.h>
 +
-+/* Get mbstate_t, mbrtowc(), wcwidth(). */
-+#if HAVE_WCHAR_H
-+# include <wchar.h>
-+#endif
++#include <mbfile.h>
 +
  #include "system.h"
- #include "error.h"
- #include "fadvise.h"
- #include "quote.h"
+ #include "die.h"
  #include "xstrndup.h"
+@@ -107,24 +110,47 @@ unexpand (void)
+ {
+   /* Input stream.  */
+   FILE *fp = next_file (NULL);
++  mb_file_t mbf;
+   /* The array of pending blanks.  In non-POSIX locales, blanks can
+      include characters other than spaces, so the blanks must be
+      stored, not merely counted.  */
+-  char *pending_blank;
++  mbf_char_t *pending_blank;
++  /* True if the starting locale is utf8.  */
++  bool using_utf_locale;
++
++  /* True if the first file contains BOM header.  */
++  bool found_bom;
++  using_utf_locale=check_utf_locale();
+   if (!fp)
+     return;
++  mbf_init (mbf, fp);
++  found_bom=check_bom(fp,&mbf);
  
-+/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
-+      installation; work around this configuration error.  */
-+#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
-+# define MB_LEN_MAX 16
-+#endif
-+
-+/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t.  */
-+#if HAVE_MBRTOWC && defined mbstate_t
-+# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-+#endif
-+
- /* The official name of this program (e.g., no 'g' prefix).  */
- #define PROGRAM_NAME "unexpand"
-@@ -103,6 +120,210 @@ static struct option const longopts[] =
-   {NULL, 0, NULL, 0}
- };
-+static FILE *next_file (FILE *fp);
-+
-+#if HAVE_MBRTOWC
-+static void
-+unexpand_multibyte (void)
-+{
-+  FILE *fp;                   /* Input stream. */
-+  mbstate_t i_state;          /* Current shift state of the input stream. */
-+  mbstate_t i_state_bak;      /* Back up the I_STATE. */
-+  mbstate_t o_state;          /* Current shift state of the output stream. */
-+  char buf[MB_LEN_MAX + BUFSIZ];  /* For spooling a read byte sequence. */
-+  char *bufpos = buf;                 /* Next read position of BUF. */
-+  size_t buflen = 0;          /* The length of the byte sequence in buf. */
-+  wint_t wc;                  /* A gotten wide character. */
-+  size_t mblength;            /* The byte size of a multibyte character
-+                                 which shows as same character as WC. */
-+  bool prev_tab = false;
-+
-+  /* Index in `tab_list' of next tabstop: */
-+  int tab_index = 0;          /* For calculating width of pending tabs. */
-+  int print_tab_index = 0;    /* For printing as many tabs as possible. */
-+  unsigned int column = 0;    /* Column on screen of next char. */
-+  int next_tab_column;                /* Column the next tab stop is on. */
-+  int convert = 1;            /* If nonzero, perform translations. */
-+  unsigned int pending = 0;   /* Pending columns of blanks. */
-+
-+  fp = next_file ((FILE *) NULL);
-+  if (fp == NULL)
-+    return;
-+
-+  memset (&o_state, '\0', sizeof(mbstate_t));
-+  memset (&i_state, '\0', sizeof(mbstate_t));
++  if (using_utf_locale == false && found_bom == true)
++  {
++    /*try using some predefined locale */
 +
-+  for (;;)
++    if (set_utf_locale () != 0)
 +    {
-+      if (buflen < MB_LEN_MAX && !feof(fp) && !ferror(fp))
-+      {
-+        memmove (buf, bufpos, buflen);
-+        buflen += fread (buf + buflen, sizeof(char), BUFSIZ, fp);
-+        bufpos = buf;
-+      }
-+
-+      /* Get a wide character. */
-+      if (buflen < 1)
-+      {
-+        mblength = 1;
-+        wc = WEOF;
-+      }
-+      else
-+      {
-+        i_state_bak = i_state;
-+        mblength = mbrtowc ((wchar_t *)&wc, bufpos, buflen, &i_state);
-+      }
-+
-+      if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+      {
-+        i_state = i_state_bak;
-+        wc = L'\0';
-+      }
-+
-+      if (wc == L' ' && convert && column < INT_MAX)
-+      {
-+        ++pending;
-+        ++column;
-+      }
-+      else if (wc == L'\t' && convert)
-+      {
-+        if (tab_size == 0)
-+          {
-+            /* Do not let tab_index == first_free_tab;
-+               stop when it is 1 less. */
-+            while (tab_index < first_free_tab - 1
-+                && column >= tab_list[tab_index])
-+              tab_index++;
-+            next_tab_column = tab_list[tab_index];
-+            if (tab_index < first_free_tab - 1)
-+              tab_index++;
-+            if (column >= next_tab_column)
-+              {
-+                convert = 0;  /* Ran out of tab stops. */
-+                goto flush_pend_mb;
-+              }
-+          }
-+        else
-+          {
-+            next_tab_column = column + tab_size - column % tab_size;
-+          }
-+        pending += next_tab_column - column;
-+        column = next_tab_column;
-+      }
-+      else
-+      {
-+flush_pend_mb:
-+        /* Flush pending spaces.  Print as many tabs as possible,
-+           then print the rest as spaces. */
-+        if (pending == 1 && column != 1 && !prev_tab)
-+          {
-+            putchar (' ');
-+            pending = 0;
-+          }
-+        column -= pending;
-+        while (pending > 0)
-+          {
-+            if (tab_size == 0)
-+              {
-+                /* Do not let print_tab_index == first_free_tab;
-+                   stop when it is 1 less. */
-+                while (print_tab_index < first_free_tab - 1
-+                    && column >= tab_list[print_tab_index])
-+                  print_tab_index++;
-+                next_tab_column = tab_list[print_tab_index];
-+                if (print_tab_index < first_free_tab - 1)
-+                  print_tab_index++;
-+              }
-+            else
-+              {
-+                next_tab_column =
-+                  column + tab_size - column % tab_size;
-+              }
-+            if (next_tab_column - column <= pending)
-+              {
-+                putchar ('\t');
-+                pending -= next_tab_column - column;
-+                column = next_tab_column;
-+              }
-+            else
-+              {
-+                --print_tab_index;
-+                column += pending;
-+                while (pending != 0)
-+                  {
-+                    putchar (' ');
-+                    pending--;
-+                  }
-+              }
-+          }
-+
-+        if (wc == WEOF)
-+          {
-+            fp = next_file (fp);
-+            if (fp == NULL)
-+              break;          /* No more files. */
-+            else
-+              {
-+                memset (&i_state, '\0', sizeof(mbstate_t));
-+                continue;
-+              }
-+          }
-+
-+        if (mblength == (size_t)-1 || mblength == (size_t)-2)
-+          {
-+            if (convert)
-+              {
-+                ++column;
-+                if (convert_entire_line == 0)
-+                  convert = 0;
-+              }
-+            mblength = 1;
-+            putchar (buf[0]);
-+          }
-+        else if (mblength == 0)
-+          {
-+            if (convert && convert_entire_line == 0)
-+              convert = 0;
-+            mblength = 1;
-+            putchar ('\0');
-+          }
-+        else
-+          {
-+            if (convert)
-+              {
-+                if (wc == L'\b')
-+                  {
-+                    if (column > 0)
-+                      --column;
-+                  }
-+                else
-+                  {
-+                    int width;            /* The width of WC. */
-+
-+                    width = wcwidth (wc);
-+                    column += (width > 0) ? width : 0;
-+                    if (convert_entire_line == 0)
-+                      convert = 0;
-+                  }
-+              }
-+
-+            if (wc == L'\n')
-+              {
-+                tab_index = print_tab_index = 0;
-+                column = pending = 0;
-+                convert = 1;
-+              }
-+            fwrite (bufpos, sizeof(char), mblength, stdout);
-+          }
-+      }
-+      prev_tab = wc == L'\t';
-+      buflen -= mblength;
-+      bufpos += mblength;
++      error (EXIT_FAILURE, errno, _("cannot set UTF-8 locale"));
 +    }
-+}
-+#endif
++  }
+   /* The worst case is a non-blank character, then one blank, then a
+      tab stop, then MAX_COLUMN_WIDTH - 1 blanks, then a non-blank; so
+      allocate MAX_COLUMN_WIDTH bytes to store the blanks.  */
+-  pending_blank = xmalloc (max_column_width);
++  pending_blank = xmalloc (max_column_width * sizeof (mbf_char_t));
 +
++  if (found_bom == true)
++  {
++    print_bom();
++  }
+   while (true)
+     {
+       /* Input character, or EOF.  */
+-      int c;
++      mbf_char_t c;
+       /* If true, perform translations.  */
+       bool convert = true;
+@@ -158,12 +184,44 @@ unexpand (void)
+       do
+         {
+-          while ((c = getc (fp)) < 0 && (fp = next_file (fp)))
+-            continue;
++          while (true) {
++            mbf_getc (c, mbf);
++            if ((mb_iseof (c)) && (fp = next_file (fp)))
++              {
++                mbf_init (mbf, fp);
++                if (fp!=NULL)
++                {
++                  if (check_bom(fp,&mbf)==true)
++                  {
++                    /*Not the first file - check BOM header*/
++                    if (using_utf_locale==false && found_bom==false)
++                    {
++                      /*BOM header in subsequent file but not in the first one. */
++                      error (EXIT_FAILURE, errno, _("combination of files with and without BOM header"));
++                    }
++                  }
++                  else
++                  {
++                    if(using_utf_locale==false && found_bom==true)
++                    {
++                      /*First file conatined BOM header - locale was switched to UTF
++                      /*all subsequent files should contain BOM. */
++                      error (EXIT_FAILURE, errno, _("combination of files with and without BOM header"));
++                    }
++                  }
++                }
++                continue;
++              }
++            else
++              {
++                break;
++              }
++            }
 +
- void
- usage (int status)
- {
-@@ -523,7 +744,12 @@ main (int argc, char **argv)
  
-   file_list = (optind < argc ? &argv[optind] : stdin_argv);
+           if (convert)
+             {
+-              bool blank = !! isblank (c);
++              bool blank = mb_isblank (c);
  
--  unexpand ();
-+#if HAVE_MBRTOWC
-+  if (MB_CUR_MAX > 1)
-+    unexpand_multibyte ();
-+  else
-+#endif
-+    unexpand ();
+               if (blank)
+                 {
+@@ -180,16 +238,16 @@ unexpand (void)
+                       if (next_tab_column < column)
+                         die (EXIT_FAILURE, 0, _("input line is too long"));
+-                      if (c == '\t')
++                      if (mb_iseq (c, '\t'))
+                         {
+                           column = next_tab_column;
+                           if (pending)
+-                            pending_blank[0] = '\t';
++                            mb_setascii (&pending_blank[0], '\t');
+                         }
+                       else
+                         {
+-                          column++;
++                          column += mb_width (c);
+                           if (! (prev_blank && column == next_tab_column))
+                             {
+@@ -197,13 +255,14 @@ unexpand (void)
+                                  will be replaced by tabs.  */
+                               if (column == next_tab_column)
+                                 one_blank_before_tab_stop = true;
+-                              pending_blank[pending++] = c;
++                              mb_copy (&pending_blank[pending++], &c);
+                               prev_blank = true;
+                               continue;
+                             }
+                           /* Replace the pending blanks by a tab or two.  */
+-                          pending_blank[0] = c = '\t';
++                          mb_setascii (&c, '\t');
++                          mb_setascii (&pending_blank[0], '\t');
+                         }
+                       /* Discard pending blanks, unless it was a single
+@@ -211,7 +270,7 @@ unexpand (void)
+                       pending = one_blank_before_tab_stop;
+                     }
+                 }
+-              else if (c == '\b')
++              else if (mb_iseq (c, '\b'))
+                 {
+                   /* Go back one column, and force recalculation of the
+                      next tab stop.  */
+@@ -219,9 +278,9 @@ unexpand (void)
+                   next_tab_column = column;
+                   tab_index -= !!tab_index;
+                 }
+-              else
++              else if (!mb_iseq (c, '\n'))
+                 {
+-                  column++;
++                  column += mb_width (c);
+                   if (!column)
+                     die (EXIT_FAILURE, 0, _("input line is too long"));
+                 }
+@@ -229,8 +288,11 @@ unexpand (void)
+               if (pending)
+                 {
+                   if (pending > 1 && one_blank_before_tab_stop)
+-                    pending_blank[0] = '\t';
+-                  if (fwrite (pending_blank, 1, pending, stdout) != pending)
++                    mb_setascii (&pending_blank[0], '\t');
++
++                  for (int n = 0; n < pending; ++n)
++                    mb_putc (pending_blank[n], stdout);
++                  if (ferror (stdout))
+                     die (EXIT_FAILURE, errno, _("write error"));
+                   pending = 0;
+                   one_blank_before_tab_stop = false;
+@@ -240,16 +302,17 @@ unexpand (void)
+               convert &= convert_entire_line || blank;
+             }
+-          if (c < 0)
++          if (mb_iseof (c))
+             {
+               free (pending_blank);
+               return;
+             }
+-          if (putchar (c) < 0)
++          mb_putc (c, stdout);
++          if (ferror (stdout))
+             die (EXIT_FAILURE, errno, _("write error"));
+         }
+-      while (c != '\n');
++      while (!mb_iseq (c, '\n'));
+     }
+ }
  
-   if (have_read_stdin && fclose (stdin) != 0)
-     error (EXIT_FAILURE, errno, "-");
-diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
---- coreutils-8.25-orig/src/uniq.c     2016-01-13 05:08:59.000000000 -0600
-+++ coreutils-8.25/src/uniq.c  2016-02-08 19:07:10.312944654 -0600
+diff -Naurp coreutils-8.27-orig/src/uniq.c coreutils-8.27/src/uniq.c
+--- coreutils-8.27-orig/src/uniq.c     2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/src/uniq.c  2017-03-11 23:47:13.098285938 -0600
 @@ -21,6 +21,17 @@
  #include <getopt.h>
  #include <sys/types.h>
@@ -3743,12 +4122,14 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
  #include "system.h"
  #include "argmatch.h"
  #include "linebuffer.h"
-@@ -33,6 +44,18 @@
+@@ -32,9 +43,21 @@
+ #include "stdio--.h"
+ #include "xmemcoll.h"
  #include "xstrtol.h"
- #include "memcasecmp.h"
- #include "quote.h"
+-#include "memcasecmp.h"
 +#include "xmemcoll.h"
-+
+ #include "quote.h"
 +/* MB_LEN_MAX is incorrectly defined to be 1 in at least one GCC
 +   installation; work around this configuration error.  */
 +#if !defined MB_LEN_MAX || MB_LEN_MAX < 2
@@ -3759,10 +4140,12 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
 +#if HAVE_MBRTOWC && defined mbstate_t
 +# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
 +#endif
++
++
  /* The official name of this program (e.g., no 'g' prefix).  */
  #define PROGRAM_NAME "uniq"
-@@ -143,6 +166,10 @@ enum
+@@ -144,6 +167,10 @@ enum
    GROUP_OPTION = CHAR_MAX + 1
  };
  
@@ -3773,7 +4156,7 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
  static struct option const longopts[] =
  {
    {"count", no_argument, NULL, 'c'},
-@@ -252,7 +279,7 @@ size_opt (char const *opt, char const *m
+@@ -260,7 +287,7 @@ size_opt (char const *opt, char const *m
     return a pointer to the beginning of the line's field to be compared. */
  
  static char * _GL_ATTRIBUTE_PURE
@@ -3782,7 +4165,7 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
  {
    size_t count;
    char const *lp = line->buffer;
-@@ -272,6 +299,83 @@ find_field (struct linebuffer const *lin
+@@ -280,6 +307,83 @@ find_field (struct linebuffer const *lin
    return line->buffer + i;
  }
  
@@ -3866,7 +4249,7 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
  /* Return false if two strings OLD and NEW match, true if not.
     OLD and NEW point not to the beginnings of the lines
     but rather to the beginnings of the fields to compare.
-@@ -280,6 +384,8 @@ find_field (struct linebuffer const *lin
+@@ -288,6 +392,8 @@ find_field (struct linebuffer const *lin
  static bool
  different (char *old, char *new, size_t oldlen, size_t newlen)
  {
@@ -3875,7 +4258,7 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
    if (check_chars < oldlen)
      oldlen = check_chars;
    if (check_chars < newlen)
-@@ -287,15 +393,104 @@ different (char *old, char *new, size_t
+@@ -295,14 +401,103 @@ different (char *old, char *new, size_t
  
    if (ignore_case)
      {
@@ -3907,8 +4290,8 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
 +
 +  return xmemcoll (copy_old, oldlen, copy_new, newlen);
 +
- }
++}
++
 +#if HAVE_MBRTOWC
 +static int
 +different_multi (const char *old, const char *new, size_t oldlen, size_t newlen, mbstate_t oldstate, mbstate_t newstate)
@@ -3979,13 +4362,12 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
 +  free (copy[1]);
 +  return rc;
 +
-+}
+ }
 +#endif
-+
  /* Output the line in linebuffer LINE to standard output
     provided that the switches say it should be output.
-    MATCH is true if the line matches the previous line.
-@@ -359,19 +554,38 @@ check_file (const char *infile, const ch
+@@ -367,19 +562,38 @@ check_file (const char *infile, const ch
        char *prevfield IF_LINT ( = NULL);
        size_t prevlen IF_LINT ( = 0);
        bool first_group_printed = false;
@@ -4024,7 +4406,7 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
            new_group = (prevline->length == 0
                         || different (thisfield, prevfield, thislen, prevlen));
  
-@@ -389,6 +603,10 @@ check_file (const char *infile, const ch
+@@ -397,6 +611,10 @@ check_file (const char *infile, const ch
                SWAP_LINES (prevline, thisline);
                prevfield = thisfield;
                prevlen = thislen;
@@ -4035,7 +4417,7 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
                first_group_printed = true;
              }
          }
-@@ -401,17 +619,26 @@ check_file (const char *infile, const ch
+@@ -409,17 +627,26 @@ check_file (const char *infile, const ch
        size_t prevlen;
        uintmax_t match_count = 0;
        bool first_delimiter = true;
@@ -4062,7 +4444,7 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
            if (readlinebuffer_delim (thisline, stdin, delimiter) == 0)
              {
                if (ferror (stdin))
-@@ -420,6 +647,14 @@ check_file (const char *infile, const ch
+@@ -428,6 +655,14 @@ check_file (const char *infile, const ch
              }
            thisfield = find_field (thisline);
            thislen = thisline->length - 1 - (thisfield - thisline->buffer);
@@ -4077,7 +4459,7 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
            match = !different (thisfield, prevfield, thislen, prevlen);
            match_count += match;
  
-@@ -452,6 +687,9 @@ check_file (const char *infile, const ch
+@@ -460,6 +695,9 @@ check_file (const char *infile, const ch
                SWAP_LINES (prevline, thisline);
                prevfield = thisfield;
                prevlen = thislen;
@@ -4087,7 +4469,7 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
                if (!match)
                  match_count = 0;
              }
-@@ -498,6 +736,19 @@ main (int argc, char **argv)
+@@ -506,6 +744,19 @@ main (int argc, char **argv)
  
    atexit (close_stdout);
  
@@ -4107,47 +4489,196 @@ diff -Naurp coreutils-8.25-orig/src/uniq.c coreutils-8.25/src/uniq.c
    skip_chars = 0;
    skip_fields = 0;
    check_chars = SIZE_MAX;
-diff -Naurp coreutils-8.25-orig/tests/i18n/sort-month.sh coreutils-8.25/tests/i18n/sort-month.sh
---- coreutils-8.25-orig/tests/i18n/sort-month.sh       1969-12-31 18:00:00.000000000 -0600
-+++ coreutils-8.25/tests/i18n/sort-month.sh    2016-02-08 19:07:10.312944654 -0600
-@@ -0,0 +1,34 @@
+diff -Naurp coreutils-8.27-orig/tests/expand/mb.sh coreutils-8.27/tests/expand/mb.sh
+--- coreutils-8.27-orig/tests/expand/mb.sh     1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/tests/expand/mb.sh  2017-03-11 23:49:06.759133489 -0600
+@@ -0,0 +1,183 @@
 +#!/bin/sh
-+# Verify sort -M multi-byte support.
 +
-+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
-+print_ver_ sort
-+require_valgrind_
++# Copyright (C) 2012-2017 Free Software Foundation, Inc.
 +
-+# Skip this test if some deallocations are
-+# avoided at process end.
-+grep '^#define lint 1' $CONFIG_HEADER > /dev/null ||
-+  skip_ 'Allocation checks only work reliably in "lint" mode'
++# 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/>.
++
++. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
++print_ver_ expand
 +
 +export LC_ALL=en_US.UTF-8
-+locale -k LC_CTYPE | grep -q "charmap.*UTF-8" \
-+  || skip_ "No UTF-8 locale available"
 +
-+# Note the use of ɑ here which expands to
-+# a wider representation upon case conversion
-+# which triggered an assertion in sort -M
-+cat <<EOF > exp
-+.
-+ɑ
++#input containing multibyte characters
++cat <<\EOF > in || framework_failure_
++1234567812345678123456781
++.       .       .       .
++a     b       c       d
++.       .       .       .
++ä    ö      ü      ß
++.       .       .       .
++EOF
++env printf '   äöü\t.    öüä.   \tä xx\n' >> in || framework_failure_
++
++cat <<\EOF > exp || framework_failure_
++1234567812345678123456781
++.       .       .       .
++a       b       c       d
++.       .       .       .
++ä       ö       ü       ß
++.       .       .       .
++   äöü  .    öüä.       ä xx
 +EOF
 +
++expand < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++#multiple files as an input
++cat <<\EOF >> exp || framework_failure_
++1234567812345678123456781
++.       .       .       .
++a       b       c       d
++.       .       .       .
++ä       ö       ü       ß
++.       .       .       .
++   äöü  .    öüä.       ä xx
++EOF
 +
-+# check large mem leak with --month-sort
-+# https://bugzilla.redhat.com/show_bug.cgi?id=1259942
-+valgrind --leak-check=full \
-+         --error-exitcode=1 --errors-for-leak-kinds=definite \
-+         sort -M < exp > out || fail=1
-+compare exp out || { fail=1; cat out; }
++expand ./in ./in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++#test characters with display widths != 1
++env printf '12345678
++e\t|ascii(1)
++\u00E9\t|composed(1)
++e\u0301\t|decomposed(1)
++\u3000\t|ideo-space(2)
++\uFF0D\t|full-hypen(2)
++' > in || framework_failure_
++
++env printf '12345678
++e       |ascii(1)
++\u00E9       |composed(1)
++e\u0301       |decomposed(1)
++\u3000      |ideo-space(2)
++\uFF0D      |full-hypen(2)
++' > exp || framework_failure_
++
++expand < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++#shouldn't fail with "input line too long"
++#when a line starts with a control character
++env printf '\n' > in || framework_failure_
++
++expand < in > out || fail=1
++compare in out > /dev/null 2>&1 || fail=1
++
++#non-Unicode characters interspersed between Unicode ones
++env printf '12345678
++\t\xFF|
++\xFF\t|
++\t\xFFä|
++ä\xFF\t|
++\tä\xFF|
++\xFF\tä|
++äbcdef\xFF\t|
++' > in || framework_failure_
++
++env printf '12345678
++        \xFF|
++\xFF       |
++        \xFFä|
++ä\xFF      |
++        ä\xFF|
++\xFF       ä|
++äbcdef\xFF |
++' > exp || framework_failure_
++
++expand < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++
++
++#BOM header test 1
++printf "\xEF\xBB\xBF" > in; cat <<\EOF >> in || framework_failure_
++1234567812345678123456781
++.       .       .       .
++a     b       c       d
++.       .       .       .
++ä    ö      ü      ß
++.       .       .       .
++EOF
++env printf '   äöü\t.    öüä.   \tä xx\n' >> in || framework_failure_
++
++printf "\xEF\xBB\xBF" > exp; cat <<\EOF >> exp || framework_failure_
++1234567812345678123456781
++.       .       .       .
++a       b       c       d
++.       .       .       .
++ä       ö       ü       ß
++.       .       .       .
++   äöü  .    öüä.       ä xx
++EOF
 +
 +
-+Exit $fail
-diff -Naurp coreutils-8.25-orig/tests/i18n/sort.sh coreutils-8.25/tests/i18n/sort.sh
---- coreutils-8.25-orig/tests/i18n/sort.sh     1969-12-31 18:00:00.000000000 -0600
-+++ coreutils-8.25/tests/i18n/sort.sh  2016-02-08 19:07:10.312944654 -0600
++expand < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++LANG=C expand < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++LC_ALL=C expand < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++
++printf '\xEF\xBB\xBF' > in1; cat <<\EOF >> in1 || framework_failure_
++1234567812345678123456781
++.       .       .       .
++a     b       c       d
++.       .       .       .
++ä    ö      ü      ß
++.       .       .       .
++EOF
++env printf '   äöü\t.    öüä.   \tä xx\n' >> in1 || framework_failure_
++
++
++printf '\xEF\xBB\xBF' > exp; cat <<\EOF >> exp || framework_failure_
++1234567812345678123456781
++.       .       .       .
++a       b       c       d
++.       .       .       .
++ä       ö       ü       ß
++.       .       .       .
++   äöü  .    öüä.       ä xx
++1234567812345678123456781
++.       .       .       .
++a       b       c       d
++.       .       .       .
++ä       ö       ü       ß
++.       .       .       .
++   äöü  .    öüä.       ä xx
++EOF
++
++expand in1 in1 > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++LANG=C expand in1 in1  > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++LC_ALL=C expand in1 in1 > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++exit $fail
+diff -Naurp coreutils-8.27-orig/tests/i18n/sort.sh coreutils-8.27/tests/i18n/sort.sh
+--- coreutils-8.27-orig/tests/i18n/sort.sh     1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/tests/i18n/sort.sh  2017-03-11 23:47:13.100285838 -0600
 @@ -0,0 +1,29 @@
 +#!/bin/sh
 +# Verify sort's multi-byte support.
@@ -4178,22 +4709,37 @@ diff -Naurp coreutils-8.25-orig/tests/i18n/sort.sh coreutils-8.25/tests/i18n/sor
 +
 +
 +Exit $fail
-diff -Naurp coreutils-8.25-orig/tests/local.mk coreutils-8.25/tests/local.mk
---- coreutils-8.25-orig/tests/local.mk 2016-01-16 12:18:13.000000000 -0600
-+++ coreutils-8.25/tests/local.mk      2016-02-08 19:07:10.313944658 -0600
-@@ -344,6 +344,9 @@ all_tests =                                        \
+diff -Naurp coreutils-8.27-orig/tests/local.mk coreutils-8.27/tests/local.mk
+--- coreutils-8.27-orig/tests/local.mk 2017-02-28 22:25:37.000000000 -0600
++++ coreutils-8.27/tests/local.mk      2017-03-11 23:47:38.072058253 -0600
+@@ -352,6 +352,8 @@ all_tests =                                        \
    tests/misc/sort-discrim.sh                  \
    tests/misc/sort-files0-from.pl              \
    tests/misc/sort-float.sh                    \
 +  tests/misc/sort-mb-tests.sh                 \
 +  tests/i18n/sort.sh                          \
-+  tests/i18n/sort-month.sh                    \
+   tests/misc/sort-h-thousands-sep.sh          \
    tests/misc/sort-merge.pl                    \
    tests/misc/sort-merge-fdlimit.sh            \
-   tests/misc/sort-month.sh                    \
-diff -Naurp coreutils-8.25-orig/tests/misc/cut.pl coreutils-8.25/tests/misc/cut.pl
---- coreutils-8.25-orig/tests/misc/cut.pl      2016-01-16 12:18:13.000000000 -0600
-+++ coreutils-8.25/tests/misc/cut.pl   2016-02-08 19:07:10.314944661 -0600
+@@ -544,6 +546,7 @@ all_tests =                                        \
+   tests/du/threshold.sh                               \
+   tests/du/trailing-slash.sh                  \
+   tests/du/two-args.sh                                \
++  tests/expand/mb.sh                          \
+   tests/id/gnu-zero-uids.sh                   \
+   tests/id/no-context.sh                      \
+   tests/id/context.sh                         \
+@@ -684,6 +687,7 @@ all_tests =                                        \
+   tests/touch/read-only.sh                    \
+   tests/touch/relative.sh                     \
+   tests/touch/trailing-slash.sh                       \
++  tests/unexpand/mb.sh                                \
+   $(all_root_tests)
+ # See tests/factor/create-test.sh.
+diff -Naurp coreutils-8.27-orig/tests/misc/cut.pl coreutils-8.27/tests/misc/cut.pl
+--- coreutils-8.27-orig/tests/misc/cut.pl      2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/cut.pl   2017-03-11 23:47:13.100285838 -0600
 @@ -23,9 +23,11 @@ use strict;
  # Turn off localization of executable's output.
  @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
@@ -4216,10 +4762,10 @@ diff -Naurp coreutils-8.25-orig/tests/misc/cut.pl coreutils-8.25/tests/misc/cut.
          push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
        }
      push @Tests, @new;
-diff -Naurp coreutils-8.25-orig/tests/misc/expand.pl coreutils-8.25/tests/misc/expand.pl
---- coreutils-8.25-orig/tests/misc/expand.pl   2016-01-16 12:18:13.000000000 -0600
-+++ coreutils-8.25/tests/misc/expand.pl        2016-02-08 19:07:10.314944661 -0600
-@@ -23,6 +23,15 @@ use strict;
+diff -Naurp coreutils-8.27-orig/tests/misc/expand.pl coreutils-8.27/tests/misc/expand.pl
+--- coreutils-8.27-orig/tests/misc/expand.pl   2017-03-01 11:16:46.000000000 -0600
++++ coreutils-8.27/tests/misc/expand.pl        2017-03-11 23:47:13.101285788 -0600
+@@ -27,6 +27,15 @@ my $prog = 'expand';
  # Turn off localization of executable's output.
  @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
  
@@ -4235,8 +4781,17 @@ diff -Naurp coreutils-8.25-orig/tests/misc/expand.pl coreutils-8.25/tests/misc/e
  my @Tests =
    (
     ['t1', '--tabs=3',     {IN=>"a\tb"}, {OUT=>"a  b"}],
-@@ -31,6 +40,37 @@ my @Tests =
-    ['i2', '--tabs=3 -i', {IN=>" \ta\tb"}, {OUT=>"   a\tb"}],
+@@ -152,6 +161,8 @@ my @Tests =
+    ['trail9', '--tab=1,2 -t/5',{IN=>"\ta\tb\tc"}, {OUT=>" a   b    c"}],
+    # Test errors
++   # FIXME: The following tests contain ‘quoting’ specific to LC_MESSAGES
++   # So we force LC_MESSAGES=C to make them pass.
+    ['e1', '--tabs="a"', {IN=>''}, {OUT=>''}, {EXIT=>1},
+     {ERR => "$prog: tab size contains invalid character(s): 'a'\n"}],
+    ['e2', "-t $UINTMAX_OFLOW", {IN=>''}, {OUT=>''}, {EXIT=>1},
+@@ -168,6 +179,37 @@ my @Tests =
+     {ERR => "$prog: '/' specifier not at start of number: '/'\n"}],
    );
  
 +if ($mb_locale ne 'C')
@@ -4262,7 +4817,7 @@ diff -Naurp coreutils-8.25-orig/tests/misc/expand.pl coreutils-8.25/tests/misc/e
 +            push @new_t, $sub;
 +            push @$t, $sub;
 +          }
-+        push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
++        push @new, ["$test_name-mb", @new_t, {ENV => "LANG=$mb_locale LC_MESSAGES=C"}];
 +      }
 +    push @Tests, @new;
 +  }
@@ -4273,9 +4828,9 @@ diff -Naurp coreutils-8.25-orig/tests/misc/expand.pl coreutils-8.25/tests/misc/e
  my $save_temps = $ENV{DEBUG};
  my $verbose = $ENV{VERBOSE};
  
-diff -Naurp coreutils-8.25-orig/tests/misc/fold.pl coreutils-8.25/tests/misc/fold.pl
---- coreutils-8.25-orig/tests/misc/fold.pl     2016-01-16 12:18:13.000000000 -0600
-+++ coreutils-8.25/tests/misc/fold.pl  2016-02-08 19:07:10.314944661 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/fold.pl coreutils-8.27/tests/misc/fold.pl
+--- coreutils-8.27-orig/tests/misc/fold.pl     2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/fold.pl  2017-03-11 23:47:13.101285788 -0600
 @@ -20,9 +20,18 @@ use strict;
  
  (my $program_name = $0) =~ s|.*/||;
@@ -4345,9 +4900,9 @@ diff -Naurp coreutils-8.25-orig/tests/misc/fold.pl coreutils-8.25/tests/misc/fol
 -my $prog = 'fold';
  my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose);
  exit $fail;
-diff -Naurp coreutils-8.25-orig/tests/misc/join.pl coreutils-8.25/tests/misc/join.pl
---- coreutils-8.25-orig/tests/misc/join.pl     2016-01-16 12:18:13.000000000 -0600
-+++ coreutils-8.25/tests/misc/join.pl  2016-02-08 19:07:10.315944664 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/join.pl coreutils-8.27/tests/misc/join.pl
+--- coreutils-8.27-orig/tests/misc/join.pl     2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/join.pl  2017-03-11 23:47:13.102285737 -0600
 @@ -25,6 +25,15 @@ my $limits = getlimits ();
  
  my $prog = 'join';
@@ -4414,9 +4969,9 @@ diff -Naurp coreutils-8.25-orig/tests/misc/join.pl coreutils-8.25/tests/misc/joi
  my $save_temps = $ENV{DEBUG};
  my $verbose = $ENV{VERBOSE};
  
-diff -Naurp coreutils-8.25-orig/tests/misc/sort-mb-tests.sh coreutils-8.25/tests/misc/sort-mb-tests.sh
---- coreutils-8.25-orig/tests/misc/sort-mb-tests.sh    1969-12-31 18:00:00.000000000 -0600
-+++ coreutils-8.25/tests/misc/sort-mb-tests.sh 2016-02-08 19:07:10.315944664 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/sort-mb-tests.sh coreutils-8.27/tests/misc/sort-mb-tests.sh
+--- coreutils-8.27-orig/tests/misc/sort-mb-tests.sh    1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/tests/misc/sort-mb-tests.sh 2017-03-11 23:47:13.102285737 -0600
 @@ -0,0 +1,45 @@
 +#!/bin/sh
 +# Verify sort's multi-byte support.
@@ -4463,9 +5018,9 @@ diff -Naurp coreutils-8.25-orig/tests/misc/sort-mb-tests.sh coreutils-8.25/tests
 +compare exp out || { fail=1; cat out; }
 +
 +Exit $fail
-diff -Naurp coreutils-8.25-orig/tests/misc/sort-merge.pl coreutils-8.25/tests/misc/sort-merge.pl
---- coreutils-8.25-orig/tests/misc/sort-merge.pl       2016-01-16 12:18:14.000000000 -0600
-+++ coreutils-8.25/tests/misc/sort-merge.pl    2016-02-08 19:07:10.316944667 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/sort-merge.pl coreutils-8.27/tests/misc/sort-merge.pl
+--- coreutils-8.27-orig/tests/misc/sort-merge.pl       2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/sort-merge.pl    2017-03-11 23:47:13.102285737 -0600
 @@ -26,6 +26,15 @@ my $prog = 'sort';
  # Turn off localization of executable's output.
  @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
@@ -4522,9 +5077,9 @@ diff -Naurp coreutils-8.25-orig/tests/misc/sort-merge.pl coreutils-8.25/tests/mi
  my $save_temps = $ENV{DEBUG};
  my $verbose = $ENV{VERBOSE};
  
-diff -Naurp coreutils-8.25-orig/tests/misc/sort.pl coreutils-8.25/tests/misc/sort.pl
---- coreutils-8.25-orig/tests/misc/sort.pl     2016-01-16 12:18:14.000000000 -0600
-+++ coreutils-8.25/tests/misc/sort.pl  2016-02-08 19:07:10.316944667 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/sort.pl coreutils-8.27/tests/misc/sort.pl
+--- coreutils-8.27-orig/tests/misc/sort.pl     2017-01-21 08:53:43.000000000 -0600
++++ coreutils-8.27/tests/misc/sort.pl  2017-03-11 23:47:13.103285687 -0600
 @@ -24,10 +24,15 @@ my $prog = 'sort';
  # Turn off localization of executable's output.
  @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
@@ -4542,7 +5097,7 @@ diff -Naurp coreutils-8.25-orig/tests/misc/sort.pl coreutils-8.25/tests/misc/sor
  # Since each test is run with a file name and with redirected stdin,
  # the name in the diagnostic is either the file name or "-".
  # Normalize each diagnostic to use '-'.
-@@ -424,6 +429,38 @@ foreach my $t (@Tests)
+@@ -423,6 +428,38 @@ foreach my $t (@Tests)
        }
    }
  
@@ -4581,7 +5136,7 @@ diff -Naurp coreutils-8.25-orig/tests/misc/sort.pl coreutils-8.25/tests/misc/sor
  @Tests = triple_test \@Tests;
  
  # Remember that triple_test creates from each test with exactly one "IN"
-@@ -433,6 +470,7 @@ foreach my $t (@Tests)
+@@ -432,6 +469,7 @@ foreach my $t (@Tests)
  # Remove the IN_PIPE version of the "output-is-input" test above.
  # The others aren't susceptible because they have three inputs each.
  @Tests = grep {$_->[0] ne 'output-is-input.p'} @Tests;
@@ -4589,9 +5144,9 @@ diff -Naurp coreutils-8.25-orig/tests/misc/sort.pl coreutils-8.25/tests/misc/sor
  
  my $save_temps = $ENV{DEBUG};
  my $verbose = $ENV{VERBOSE};
-diff -Naurp coreutils-8.25-orig/tests/misc/unexpand.pl coreutils-8.25/tests/misc/unexpand.pl
---- coreutils-8.25-orig/tests/misc/unexpand.pl 2016-01-16 12:18:14.000000000 -0600
-+++ coreutils-8.25/tests/misc/unexpand.pl      2016-02-08 19:07:10.317944671 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/unexpand.pl coreutils-8.27/tests/misc/unexpand.pl
+--- coreutils-8.27-orig/tests/misc/unexpand.pl 2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/unexpand.pl      2017-03-11 23:47:13.103285687 -0600
 @@ -27,6 +27,14 @@ my $limits = getlimits ();
  
  my $prog = 'unexpand';
@@ -4607,8 +5162,8 @@ diff -Naurp coreutils-8.25-orig/tests/misc/unexpand.pl coreutils-8.25/tests/misc
  my @Tests =
      (
       ['a1', {IN=> ' 'x 1 ."y\n"}, {OUT=> ' 'x 1 ."y\n"}],
-@@ -92,6 +100,37 @@ my @Tests =
-       {EXIT => 1}, {ERR => "$prog: tab stop value is too large\n"}],
+@@ -128,6 +136,37 @@ my @Tests =
+      ['ts2', '-t5,8', {IN=>"x\t \t y\n"},    {OUT=>"x\t\t y\n"}],
      );
  
 +if ($mb_locale ne 'C')
@@ -4645,9 +5200,9 @@ diff -Naurp coreutils-8.25-orig/tests/misc/unexpand.pl coreutils-8.25/tests/misc
  my $save_temps = $ENV{DEBUG};
  my $verbose = $ENV{VERBOSE};
  
-diff -Naurp coreutils-8.25-orig/tests/misc/uniq.pl coreutils-8.25/tests/misc/uniq.pl
---- coreutils-8.25-orig/tests/misc/uniq.pl     2016-01-16 12:18:14.000000000 -0600
-+++ coreutils-8.25/tests/misc/uniq.pl  2016-02-08 19:07:10.317944671 -0600
+diff -Naurp coreutils-8.27-orig/tests/misc/uniq.pl coreutils-8.27/tests/misc/uniq.pl
+--- coreutils-8.27-orig/tests/misc/uniq.pl     2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/misc/uniq.pl  2017-03-11 23:47:13.103285687 -0600
 @@ -23,9 +23,17 @@ my $limits = getlimits ();
  my $prog = 'uniq';
  my $try = "Try '$prog --help' for more information.\n";
@@ -4720,9 +5275,9 @@ diff -Naurp coreutils-8.25-orig/tests/misc/uniq.pl coreutils-8.25/tests/misc/uni
  @Tests = add_z_variants \@Tests;
  @Tests = triple_test \@Tests;
  
-diff -Naurp coreutils-8.25-orig/tests/pr/pr-tests.pl coreutils-8.25/tests/pr/pr-tests.pl
---- coreutils-8.25-orig/tests/pr/pr-tests.pl   2016-01-16 12:18:14.000000000 -0600
-+++ coreutils-8.25/tests/pr/pr-tests.pl        2016-02-08 19:07:10.318944674 -0600
+diff -Naurp coreutils-8.27-orig/tests/pr/pr-tests.pl coreutils-8.27/tests/pr/pr-tests.pl
+--- coreutils-8.27-orig/tests/pr/pr-tests.pl   2017-01-01 16:34:24.000000000 -0600
++++ coreutils-8.27/tests/pr/pr-tests.pl        2017-03-11 23:47:13.103285687 -0600
 @@ -24,6 +24,15 @@ use strict;
  my $prog = 'pr';
  my $normalize_strerror = "s/': .*/'/";
@@ -4739,9 +5294,9 @@ diff -Naurp coreutils-8.25-orig/tests/pr/pr-tests.pl coreutils-8.25/tests/pr/pr-
  my @tv = (
  
  # -b option is no longer an official option. But it's still working to
-@@ -467,8 +476,48 @@ push @Tests,
-     {IN=>{3=>"x\ty\tz\n"}},
-      {OUT=>join("\t", qw(a b c m n o x y z)) . "\n"} ];
+@@ -474,8 +483,48 @@ push @Tests,
+     {IN=>{2=>"a\n"}},
+      {OUT=>"a\t\t\t\t  \t\t\ta\n"} ];
  
 +# Add _POSIX2_VERSION=199209 to the environment of each test
 +# that uses an old-style option like +1.
@@ -4769,7 +5324,7 @@ diff -Naurp coreutils-8.25-orig/tests/pr/pr-tests.pl coreutils-8.25/tests/pr/pr-
 +            push @$t, $sub;
 +          }
 +        #temporarily skip some failing tests
-+        next if ($test_name =~ "col-0" or $test_name =~ "col-inval");
++        next if ($test_name =~ "col-0" or $test_name =~ "col-inval" or $test_name =~ "asan1");
 +        push @new, ["$test_name-mb", @new_t, {ENV => "LC_ALL=$mb_locale"}];
 +      }
 +    push @Tests, @new;
@@ -4788,3 +5343,179 @@ diff -Naurp coreutils-8.25-orig/tests/pr/pr-tests.pl coreutils-8.25/tests/pr/pr-
  my $save_temps = $ENV{DEBUG};
  my $verbose = $ENV{VERBOSE};
  
+diff -Naurp coreutils-8.27-orig/tests/unexpand/mb.sh coreutils-8.27/tests/unexpand/mb.sh
+--- coreutils-8.27-orig/tests/unexpand/mb.sh   1969-12-31 18:00:00.000000000 -0600
++++ coreutils-8.27/tests/unexpand/mb.sh        2017-03-11 23:49:06.759133489 -0600
+@@ -0,0 +1,172 @@
++#!/bin/sh
++
++# Copyright (C) 2012-2017 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 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/>.
++
++. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
++print_ver_ unexpand
++
++export LC_ALL=en_US.UTF-8
++
++#input containing multibyte characters
++cat > in <<\EOF
++1234567812345678123456781
++.       .       .       .
++a       b       c       d
++.       .       .       .
++ä       ö       ü       ß
++.       .       .       .
++   äöü  .    öüä.       ä xx
++EOF
++
++cat > exp <<\EOF
++1234567812345678123456781
++.     .       .       .
++a     b       c       d
++.     .       .       .
++ä    ö      ü      ß
++.     .       .       .
++   äöü     .    öüä.    ä xx
++EOF
++
++unexpand -a < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++
++#multiple files as an input
++cat >> exp <<\EOF
++1234567812345678123456781
++.     .       .       .
++a     b       c       d
++.     .       .       .
++ä    ö      ü      ß
++.     .       .       .
++   äöü     .    öüä.    ä xx
++EOF
++
++
++unexpand -a ./in ./in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++#test characters with a display width larger than 1
++
++env printf '12345678
++e       |ascii(1)
++\u00E9       |composed(1)
++e\u0301       |decomposed(1)
++\u3000      |ideo-space(2)
++\uFF0D      |full-hypen(2)
++' > in || framework_failure_
++
++env printf '12345678
++e\t|ascii(1)
++\u00E9\t|composed(1)
++e\u0301\t|decomposed(1)
++\u3000\t|ideo-space(2)
++\uFF0D\t|full-hypen(2)
++' > exp || framework_failure_
++
++unexpand -a < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++#test input where a blank of width > 1 is not being substituted
++in="$(LC_ALL=en_US.UTF-8 printf ' \u3000  ö       ü       ß')"
++exp='    ö      ü      ß'
++
++unexpand -a < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++#non-Unicode characters interspersed between Unicode ones
++env printf '12345678
++        \xFF|
++\xFF       |
++        \xFFä|
++ä\xFF      |
++        ä\xFF|
++\xFF       ä|
++äbcdef\xFF |
++' > in || framework_failure_
++
++env printf '12345678
++\t\xFF|
++\xFF\t|
++\t\xFFä|
++ä\xFF\t|
++\tä\xFF|
++\xFF\tä|
++äbcdef\xFF\t|
++' > exp || framework_failure_
++
++unexpand -a < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++#BOM header test 1
++printf "\xEF\xBB\xBF" > in; cat <<\EOF >> in || framework_failure_
++1234567812345678123456781
++.       .       .       .
++a       b       c       d
++.       .       .       .
++ä       ö       ü       ß
++.       .       .       .
++   äöü  .    öüä.       ä xx
++EOF
++env printf '   äöü\t.    öüä.   \tä xx\n' >> in || framework_failure_
++
++printf "\xEF\xBB\xBF" > exp; cat <<\EOF >> exp || framework_failure_
++1234567812345678123456781
++.     .       .       .
++a     b       c       d
++.     .       .       .
++ä    ö      ü      ß
++.     .       .       .
++   äöü     .    öüä.    ä xx
++EOF
++
++unexpand < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++LANG=C unexpand < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++LC_ALL=C unexpand < in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++
++printf "\xEF\xBB\xBF" > exp; cat <<\EOF >> exp || framework_failure_
++1234567812345678123456781
++.     .       .       .
++a     b       c       d
++.     .       .       .
++ä    ö      ü      ß
++.     .       .       .
++   äöü     .    öüä.    ä xx
++1234567812345678123456781
++.     .       .       .
++a     b       c       d
++.     .       .       .
++ä    ö      ü      ß
++.     .       .       .
++   äöü     .    öüä.    ä xx
++EOF
++
++
++unexpand in in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++LANG=C unexpand in in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
++
++LC_ALL=C unexpand in in > out || fail=1
++compare exp out > /dev/null 2>&1 || fail=1
diff --git a/src/patches/coreutils-8.27-uname-1.patch b/src/patches/coreutils-8.27-uname-1.patch
new file mode 100644 (file)
index 0000000..716f586
--- /dev/null
@@ -0,0 +1,170 @@
+Submitted by:            DJ Lucas (dj_at_linuxfromscratch_dot_org)
+Date:                    2012-04-21
+Initial Package Version: 8.16
+Upstream Status:         Rejected
+Origin:                  Based on Gentoo patch
+Description:             Makes uname -m output more descriptive
+
+diff -Naurp coreutils-8.16-orig/src/uname.c coreutils-8.16/src/uname.c
+--- coreutils-8.16-orig/src/uname.c    2012-04-22 20:02:39.000000000 +0000
++++ coreutils-8.16/src/uname.c 2012-04-22 20:02:50.000000000 +0000
+@@ -49,6 +49,11 @@
+ # include <mach-o/arch.h>
+ #endif
++#if defined(__linux__)
++# define USE_PROCINFO
++# define UNAME_HARDWARE_PLATFORM
++#endif
++
+ #include "system.h"
+ #include "die.h"
+ #include "error.h"
+@@ -153,6 +158,117 @@ Print machine architecture.\n\
+   exit (status);
+ }
++#if defined(USE_PROCINFO)
++
++# if defined(__s390__) || defined(__s390x__)
++#  define CPUINFO_FILE    "/proc/sysinfo"
++#  define CPUINFO_FORMAT  "%64[^\t :]%*[ :]%256[^\n]%c"
++# else
++#  define CPUINFO_FILE    "/proc/cpuinfo"
++#  define CPUINFO_FORMAT  "%64[^\t:]\t:%256[^\n]%c"
++# endif
++
++# define PROCINFO_PROCESSOR      0
++# define PROCINFO_HARDWARE_PLATFORM 1
++
++static void __eat_cpuinfo_space(char *buf)
++{
++      /* first eat trailing space */
++      char *tmp = buf + strlen(buf) - 1;
++      while (tmp > buf && isspace(*tmp))
++              *tmp-- = '\0';
++      /* then eat leading space */
++      tmp = buf;
++      while (*tmp && isspace(*tmp))
++              tmp++;
++      if (tmp != buf)
++              memmove(buf, tmp, strlen(tmp)+1);
++      /* finally collapse whitespace */
++      tmp = buf;
++      while (tmp[0] && tmp[1]) {
++              if (isspace(tmp[0]) && isspace(tmp[1])) {
++                      memmove(tmp, tmp+1, strlen(tmp));
++                      continue;
++              }
++              ++tmp;
++      }
++}
++
++static int __linux_procinfo(int x, char *fstr, size_t s)
++{
++      FILE *fp;
++
++      char *procinfo_keys[] = {
++              /* --processor --hardware-platform */
++              #if defined(__alpha__)
++                      "cpu model", "system type"
++              #elif defined(__arm__)
++                      "Processor", "Hardware"
++              #elif defined(__avr32__)
++                      "processor", "cpu family"
++              #elif defined(__bfin__)
++                      "CPU", "BOARD Name"
++              #elif defined(__cris__)
++                      "cpu", "cpu model"
++              #elif defined(__frv__)
++                      "CPU-Core", "System"
++              #elif defined(__i386__) || defined(__x86_64__)
++                      "model name", "vendor_id"
++              #elif defined(__ia64__)
++                      "family", "vendor"
++              #elif defined(__hppa__)
++                      "cpu", "model"
++              #elif defined(__m68k__)
++                      "CPU", "MMU"
++              #elif defined(__mips__)
++                      "cpu model", "system type"
++              #elif defined(__powerpc__) || defined(__powerpc64__)
++                      "cpu", "machine"
++              #elif defined(__s390__) || defined(__s390x__)
++                      "Type", "Manufacturer"
++              #elif defined(__sh__)
++                      "cpu type", "machine"
++              #elif defined(sparc) || defined(__sparc__)
++                      "type", "cpu"
++              #elif defined(__vax__)
++                      "cpu type", "cpu"
++              #else
++                      "unknown", "unknown"
++              #endif
++      };
++
++      if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) {
++              char key[65], value[257], eol, *ret = NULL;
++
++              while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) {
++                      __eat_cpuinfo_space(key);
++                      if (!strcmp(key, procinfo_keys[x])) {
++                              __eat_cpuinfo_space(value);
++                              ret = value;
++                              break;
++                      }
++                      if (eol != '\n') {
++                              /* we need two fscanf's here in case the previous
++                               * length limit caused us to read right up to the
++                               * newline ... doing "%*[^\n]\n" wont eat the newline
++                               */
++                              fscanf(fp, "%*[^\n]");
++                              fscanf(fp, "\n");
++                      }
++              }
++              fclose(fp);
++
++              if (ret) {
++                      strncpy(fstr, ret, s);
++                      return 0;
++              }
++      }
++
++      return -1;
++}
++
++#endif
++
+ /* Print ELEMENT, preceded by a space if something has already been
+    printed.  */
+@@ -300,10 +416,14 @@ main (int argc, char **argv)
+   if (toprint & PRINT_PROCESSOR)
+     {
+       char const *element = unknown;
+-#if HAVE_SYSINFO && defined SI_ARCHITECTURE
++#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO)
+       {
+         static char processor[257];
++#if defined(USE_PROCINFO)
++        if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor))
++#else
+         if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
++#endif
+           element = processor;
+       }
+ #endif
+@@ -356,9 +476,13 @@ main (int argc, char **argv)
+       if (element == unknown)
+         {
+           static char hardware_platform[257];
++#if defined(USE_PROCINFO)
++          if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform))
++#else
+           size_t s = sizeof hardware_platform;
+           static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM };
+           if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0)
++#endif
+             element = hardware_platform;
+         }
+ #endif
diff --git a/src/patches/dbus-1.0.3-compile-fix-1.patch b/src/patches/dbus-1.0.3-compile-fix-1.patch
deleted file mode 100644 (file)
index 86fd2b3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- 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/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS.patch b/src/patches/fontconfig-avoid-conflicts-with-integer-width-macros-from-TS.patch
new file mode 100644 (file)
index 0000000..cad7170
--- /dev/null
@@ -0,0 +1,72 @@
+From 20cddc824c6501c2082cac41b162c34cd5fcc530 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 11 Dec 2016 14:32:00 -0800
+Subject: [PATCH] Avoid conflicts with integer width macros from TS
+ 18661-1:2014
+
+glibc 2.25+ has now defined these macros in <limits.h>
+https://sourceware.org/git/?p=glibc.git;a=commit;h=5b17fd0da62bf923cb61d1bb7b08cf2e1f1f9c1a
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ fontconfig/fontconfig.h | 2 +-
+ src/fcobjs.h            | 2 +-
+ src/fcobjshash.gperf    | 2 +-
+ src/fcobjshash.h        | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+Index: fontconfig-2.12.1/fontconfig/fontconfig.h
+===================================================================
+--- fontconfig-2.12.1.orig/fontconfig/fontconfig.h
++++ fontconfig-2.12.1/fontconfig/fontconfig.h
+@@ -128,7 +128,8 @@ typedef int                FcBool;
+ #define FC_USER_CACHE_FILE        ".fonts.cache-" FC_CACHE_VERSION
+ /* Adjust outline rasterizer */
+-#define FC_CHAR_WIDTH     "charwidth" /* Int */
++#define FC_CHARWIDTH      "charwidth" /* Int */
++#define FC_CHAR_WIDTH     FC_CHARWIDTH
+ #define FC_CHAR_HEIGHT            "charheight"/* Int */
+ #define FC_MATRIX         "matrix"    /* FcMatrix */
+Index: fontconfig-2.12.1/src/fcobjs.h
+===================================================================
+--- fontconfig-2.12.1.orig/src/fcobjs.h
++++ fontconfig-2.12.1/src/fcobjs.h
+@@ -51,7 +51,7 @@ FC_OBJECT (DPI,                      FcTypeDouble,   NULL)
+ FC_OBJECT (RGBA,              FcTypeInteger,  NULL)
+ FC_OBJECT (SCALE,             FcTypeDouble,   NULL)
+ FC_OBJECT (MINSPACE,          FcTypeBool,     NULL)
+-FC_OBJECT (CHAR_WIDTH,                FcTypeInteger,  NULL)
++FC_OBJECT (CHARWIDTH,         FcTypeInteger,  NULL)
+ FC_OBJECT (CHAR_HEIGHT,               FcTypeInteger,  NULL)
+ FC_OBJECT (MATRIX,            FcTypeMatrix,   NULL)
+ FC_OBJECT (CHARSET,           FcTypeCharSet,  FcCompareCharSet)
+Index: fontconfig-2.12.1/src/fcobjshash.gperf
+===================================================================
+--- fontconfig-2.12.1.orig/src/fcobjshash.gperf
++++ fontconfig-2.12.1/src/fcobjshash.gperf
+@@ -44,7 +44,7 @@ int id;
+ "rgba",FC_RGBA_OBJECT
+ "scale",FC_SCALE_OBJECT
+ "minspace",FC_MINSPACE_OBJECT
+-"charwidth",FC_CHAR_WIDTH_OBJECT
++"charwidth",FC_CHARWIDTH_OBJECT
+ "charheight",FC_CHAR_HEIGHT_OBJECT
+ "matrix",FC_MATRIX_OBJECT
+ "charset",FC_CHARSET_OBJECT
+Index: fontconfig-2.12.1/src/fcobjshash.h
+===================================================================
+--- fontconfig-2.12.1.orig/src/fcobjshash.h
++++ fontconfig-2.12.1/src/fcobjshash.h
+@@ -284,7 +284,7 @@ FcObjectTypeLookup (register const char
+       {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_CHARSET_OBJECT},
+       {-1},
+ #line 47 "fcobjshash.gperf"
+-      {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHAR_WIDTH_OBJECT},
++      {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHARWIDTH_OBJECT},
+ #line 48 "fcobjshash.gperf"
+       {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str46,FC_CHAR_HEIGHT_OBJECT},
+ #line 55 "fcobjshash.gperf"
diff --git a/src/patches/fuse-2.9.2-namespace-conflict-fix.patch b/src/patches/fuse-2.9.2-namespace-conflict-fix.patch
new file mode 100644 (file)
index 0000000..ae67e7d
--- /dev/null
@@ -0,0 +1,21 @@
+diff -up fuse-2.9.2/include/fuse_kernel.h.conflictfix fuse-2.9.2/include/fuse_kernel.h
+--- fuse-2.9.2/include/fuse_kernel.h.conflictfix       2013-06-26 09:31:57.862198038 -0400
++++ fuse-2.9.2/include/fuse_kernel.h   2013-06-26 09:32:19.679198365 -0400
+@@ -88,12 +88,16 @@
+ #ifndef _LINUX_FUSE_H
+ #define _LINUX_FUSE_H
+-#include <sys/types.h>
++#ifdef __linux__
++#include <linux/types.h>
++#else
++#include <stdint.h>
+ #define __u64 uint64_t
+ #define __s64 int64_t
+ #define __u32 uint32_t
+ #define __s32 int32_t
+ #define __u16 uint16_t
++#endif
+ /*
+  * Version negotiation:
diff --git a/src/patches/gawk-3.1.5-segfault_fix-1.patch b/src/patches/gawk-3.1.5-segfault_fix-1.patch
deleted file mode 100644 (file)
index aa2f17b..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-Submitted By: Matthew Burgess <matthew@linuxfromscratch.org>
-Date: 2005-09-24
-Initial Package Version: 3.1.5
-Upstream Status: From Upstream
-Origin: http://lists.gnu.org/archive/html/bug-gnu-utils/2005-08/msg00047.html
-Description: Fixes a bug which causes gawk to segfault when operating on a non-existent file.
-
-diff -Naur gawk-3.1.5.orig/io.c gawk-3.1.5/io.c
---- gawk-3.1.5.orig/io.c       2005-07-26 18:07:43.000000000 +0000
-+++ gawk-3.1.5/io.c    2005-09-24 14:43:13.771380264 +0000
-@@ -2480,9 +2480,12 @@
- {
-       struct stat sbuf;
-       struct open_hook *oh;
-+      int iop_malloced = FALSE;
--      if (iop == NULL)
-+      if (iop == NULL) {
-               emalloc(iop, IOBUF *, sizeof(IOBUF), "iop_alloc");
-+              iop_malloced = TRUE;
-+      }
-       memset(iop, '\0', sizeof(IOBUF));
-       iop->flag = 0;
-       iop->fd = fd;
-@@ -2495,7 +2498,8 @@
-       }
-       if (iop->fd == INVALID_HANDLE) {
--              free(iop);
-+              if (iop_malloced)
-+                      free(iop);
-               return NULL;
-       }
-       if (isatty(iop->fd))
-@@ -2503,7 +2507,7 @@
-       iop->readsize = iop->size = optimal_bufsize(iop->fd, & sbuf);
-       iop->sbuf = sbuf;
-       if (do_lint && S_ISREG(sbuf.st_mode) && sbuf.st_size == 0)
--                      lintwarn(_("data file `%s' is empty"), name);
-+              lintwarn(_("data file `%s' is empty"), name);
-       errno = 0;
-       iop->count = iop->scanoff = 0;
-       emalloc(iop->buf, char *, iop->size += 2, "iop_alloc");
diff --git a/src/patches/gcc-4.4.3-startfiles_fix-1.patch b/src/patches/gcc-4.4.3-startfiles_fix-1.patch
deleted file mode 100644 (file)
index a2eac9e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-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-4.4.7-texinfo-5.patch b/src/patches/gcc-4.4.7-texinfo-5.patch
deleted file mode 100644 (file)
index 7b2e945..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-diff -Naur gcc-4.4.7.org/gcc/doc/cppopts.texi gcc-4.4.7/gcc/doc/cppopts.texi
---- gcc-4.4.7.org/gcc/doc/cppopts.texi 2008-06-15 11:42:13.000000000 +0200
-+++ gcc-4.4.7/gcc/doc/cppopts.texi     2013-09-08 16:50:14.353507748 +0200
-@@ -758,7 +758,7 @@
- Enable special code to work around file systems which only permit very
- short file names, such as MS-DOS@.
--@itemx --help
-+@item --help
- @itemx --target-help
- @opindex help
- @opindex target-help
-diff -Naur gcc-4.4.7.org/gcc/doc/c-tree.texi gcc-4.4.7/gcc/doc/c-tree.texi
---- gcc-4.4.7.org/gcc/doc/c-tree.texi  2009-02-20 16:20:38.000000000 +0100
-+++ gcc-4.4.7/gcc/doc/c-tree.texi      2013-09-08 17:53:21.055167463 +0200
-@@ -2338,13 +2338,13 @@
- not matter.  The type of the operands and that of the result are
- always of @code{BOOLEAN_TYPE} or @code{INTEGER_TYPE}.
--@itemx POINTER_PLUS_EXPR
-+@item POINTER_PLUS_EXPR
- This node represents pointer arithmetic.  The first operand is always
- a pointer/reference type.  The second operand is always an unsigned
- integer type compatible with sizetype.  This is the only binary
- arithmetic operand that can operate on pointer types.
--@itemx PLUS_EXPR
-+@item PLUS_EXPR
- @itemx MINUS_EXPR
- @itemx MULT_EXPR
- These nodes represent various binary arithmetic operations.
-diff -Naur gcc-4.4.7.org/gcc/doc/invoke.texi gcc-4.4.7/gcc/doc/invoke.texi
---- gcc-4.4.7.org/gcc/doc/invoke.texi  2011-03-23 23:02:12.000000000 +0100
-+++ gcc-4.4.7/gcc/doc/invoke.texi      2013-09-08 17:10:49.503066254 +0200
-@@ -4645,11 +4645,11 @@
- @option{-fdump-rtl-ce3} enable dumping after the three
- if conversion passes. 
--@itemx -fdump-rtl-cprop_hardreg
-+@item -fdump-rtl-cprop_hardreg
- @opindex fdump-rtl-cprop_hardreg
- Dump after hard register copy propagation.
--@itemx -fdump-rtl-csa
-+@item -fdump-rtl-csa
- @opindex fdump-rtl-csa
- Dump after combining stack adjustments.
-@@ -4660,11 +4660,11 @@
- @option{-fdump-rtl-cse1} and @option{-fdump-rtl-cse2} enable dumping after
- the two common sub-expression elimination passes.
--@itemx -fdump-rtl-dce
-+@item -fdump-rtl-dce
- @opindex fdump-rtl-dce
- Dump after the standalone dead code elimination passes.
--@itemx -fdump-rtl-dbr
-+@item -fdump-rtl-dbr
- @opindex fdump-rtl-dbr
- Dump after delayed branch scheduling.
-@@ -4709,7 +4709,7 @@
- @opindex fdump-rtl-initvals
- Dump after the computation of the initial value sets.
--@itemx -fdump-rtl-into_cfglayout
-+@item -fdump-rtl-into_cfglayout
- @opindex fdump-rtl-into_cfglayout
- Dump after converting to cfglayout mode.
-@@ -4739,7 +4739,7 @@
- @opindex fdump-rtl-rnreg
- Dump after register renumbering.
--@itemx -fdump-rtl-outof_cfglayout
-+@item -fdump-rtl-outof_cfglayout
- @opindex fdump-rtl-outof_cfglayout
- Dump after converting from cfglayout mode.
-@@ -4751,7 +4751,7 @@
- @opindex fdump-rtl-postreload
- Dump after post-reload optimizations.
--@itemx -fdump-rtl-pro_and_epilogue
-+@item -fdump-rtl-pro_and_epilogue
- @opindex fdump-rtl-pro_and_epilogue
- Dump after generating the function pro and epilogues.
diff --git a/src/patches/gcc/gcc-fix-inlining-issues.patch b/src/patches/gcc/gcc-fix-inlining-issues.patch
deleted file mode 100644 (file)
index 3c638e2..0000000
+++ /dev/null
@@ -1,1064 +0,0 @@
-From: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164
-
---- trunk/libitm/local_atomic  2015/08/20 17:43:55     227039
-+++ trunk/libitm/local_atomic  2015/08/20 17:55:24     227040
-@@ -41,8 +41,7 @@
- #ifndef _GLIBCXX_ATOMIC
- #define _GLIBCXX_ATOMIC 1
--#undef  __always_inline
--#define __always_inline __attribute__((always_inline))
-+#define __libitm_always_inline __attribute__((always_inline))
- // #pragma GCC system_header
-@@ -74,7 +73,7 @@
-       memory_order_seq_cst
-     } memory_order;
--  inline __always_inline memory_order
-+  inline __libitm_always_inline memory_order
-   __calculate_memory_order(memory_order __m) noexcept
-   {
-     const bool __cond1 = __m == memory_order_release;
-@@ -84,13 +83,13 @@
-     return __mo2;
-   }
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_thread_fence(memory_order __m) noexcept
-   {
-     __atomic_thread_fence (__m);
-   }
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_signal_fence(memory_order __m) noexcept
-   {
-     __atomic_thread_fence (__m);
-@@ -280,19 +279,19 @@
-     // Conversion to ATOMIC_FLAG_INIT.
-     atomic_flag(bool __i) noexcept : __atomic_flag_base({ __i }) { }
--    __always_inline bool
-+    __libitm_always_inline bool
-     test_and_set(memory_order __m = memory_order_seq_cst) noexcept
-     {
-       return __atomic_test_and_set (&_M_i, __m);
-     }
--    __always_inline bool
-+    __libitm_always_inline bool
-     test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept
-     {
-       return __atomic_test_and_set (&_M_i, __m);
-     }
--    __always_inline void
-+    __libitm_always_inline void
-     clear(memory_order __m = memory_order_seq_cst) noexcept
-     {
-       // __glibcxx_assert(__m != memory_order_consume);
-@@ -302,7 +301,7 @@
-       __atomic_clear (&_M_i, __m);
-     }
--    __always_inline void
-+    __libitm_always_inline void
-     clear(memory_order __m = memory_order_seq_cst) volatile noexcept
-     {
-       // __glibcxx_assert(__m != memory_order_consume);
-@@ -455,7 +454,7 @@
-       is_lock_free() const volatile noexcept
-       { return __atomic_is_lock_free (sizeof (_M_i), &_M_i); }
--      __always_inline void
-+      __libitm_always_inline void
-       store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept
-       {
-       // __glibcxx_assert(__m != memory_order_acquire);
-@@ -465,7 +464,7 @@
-       __atomic_store_n(&_M_i, __i, __m);
-       }
--      __always_inline void
-+      __libitm_always_inline void
-       store(__int_type __i,
-           memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -476,7 +475,7 @@
-       __atomic_store_n(&_M_i, __i, __m);
-       }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       load(memory_order __m = memory_order_seq_cst) const noexcept
-       {
-       // __glibcxx_assert(__m != memory_order_release);
-@@ -485,7 +484,7 @@
-       return __atomic_load_n(&_M_i, __m);
-       }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
-       {
-       // __glibcxx_assert(__m != memory_order_release);
-@@ -494,21 +493,21 @@
-       return __atomic_load_n(&_M_i, __m);
-       }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       exchange(__int_type __i,
-              memory_order __m = memory_order_seq_cst) noexcept
-       {
-       return __atomic_exchange_n(&_M_i, __i, __m);
-       }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       exchange(__int_type __i,
-              memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-       return __atomic_exchange_n(&_M_i, __i, __m);
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__int_type& __i1, __int_type __i2,
-                           memory_order __m1, memory_order __m2) noexcept
-       {
-@@ -519,7 +518,7 @@
-       return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2);
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__int_type& __i1, __int_type __i2,
-                           memory_order __m1,
-                           memory_order __m2) volatile noexcept
-@@ -531,7 +530,7 @@
-       return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2);
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__int_type& __i1, __int_type __i2,
-                           memory_order __m = memory_order_seq_cst) noexcept
-       {
-@@ -539,7 +538,7 @@
-                                    __calculate_memory_order(__m));
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__int_type& __i1, __int_type __i2,
-                  memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -547,7 +546,7 @@
-                                    __calculate_memory_order(__m));
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__int_type& __i1, __int_type __i2,
-                             memory_order __m1, memory_order __m2) noexcept
-       {
-@@ -558,7 +557,7 @@
-       return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__int_type& __i1, __int_type __i2,
-                             memory_order __m1,
-                             memory_order __m2) volatile noexcept
-@@ -570,7 +569,7 @@
-       return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__int_type& __i1, __int_type __i2,
-                             memory_order __m = memory_order_seq_cst) noexcept
-       {
-@@ -578,7 +577,7 @@
-                                      __calculate_memory_order(__m));
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__int_type& __i1, __int_type __i2,
-                memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -586,52 +585,52 @@
-                                      __calculate_memory_order(__m));
-       }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_add(__int_type __i,
-               memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_add(&_M_i, __i, __m); }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_add(__int_type __i,
-               memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_add(&_M_i, __i, __m); }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_sub(__int_type __i,
-               memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_sub(&_M_i, __i, __m); }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_sub(__int_type __i,
-               memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_sub(&_M_i, __i, __m); }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_and(__int_type __i,
-               memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_and(&_M_i, __i, __m); }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_and(__int_type __i,
-               memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_and(&_M_i, __i, __m); }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_or(__int_type __i,
-              memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_or(&_M_i, __i, __m); }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_or(__int_type __i,
-              memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_or(&_M_i, __i, __m); }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_xor(__int_type __i,
-               memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_xor(&_M_i, __i, __m); }
--      __always_inline __int_type
-+      __libitm_always_inline __int_type
-       fetch_xor(__int_type __i,
-               memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_xor(&_M_i, __i, __m); }
-@@ -733,7 +732,7 @@
-       is_lock_free() const volatile noexcept
-       { return __atomic_is_lock_free (sizeof (_M_p), &_M_p); }
--      __always_inline void
-+      __libitm_always_inline void
-       store(__pointer_type __p,
-           memory_order __m = memory_order_seq_cst) noexcept
-       {
-@@ -744,7 +743,7 @@
-       __atomic_store_n(&_M_p, __p, __m);
-       }
--      __always_inline void
-+      __libitm_always_inline void
-       store(__pointer_type __p,
-           memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -755,7 +754,7 @@
-       __atomic_store_n(&_M_p, __p, __m);
-       }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       load(memory_order __m = memory_order_seq_cst) const noexcept
-       {
-       // __glibcxx_assert(__m != memory_order_release);
-@@ -764,7 +763,7 @@
-       return __atomic_load_n(&_M_p, __m);
-       }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
-       {
-       // __glibcxx_assert(__m != memory_order_release);
-@@ -773,21 +772,21 @@
-       return __atomic_load_n(&_M_p, __m);
-       }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       exchange(__pointer_type __p,
-              memory_order __m = memory_order_seq_cst) noexcept
-       {
-       return __atomic_exchange_n(&_M_p, __p, __m);
-       }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       exchange(__pointer_type __p,
-              memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-       return __atomic_exchange_n(&_M_p, __p, __m);
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
-                             memory_order __m1,
-                             memory_order __m2) noexcept
-@@ -799,7 +798,7 @@
-       return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2);
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
-                             memory_order __m1,
-                             memory_order __m2) volatile noexcept
-@@ -811,22 +810,22 @@
-       return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2);
-       }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_add(ptrdiff_t __d,
-               memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_add(&_M_p, __d, __m); }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_add(ptrdiff_t __d,
-               memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_add(&_M_p, __d, __m); }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_sub(ptrdiff_t __d,
-               memory_order __m = memory_order_seq_cst) noexcept
-       { return __atomic_fetch_sub(&_M_p, __d, __m); }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_sub(ptrdiff_t __d,
-               memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return __atomic_fetch_sub(&_M_p, __d, __m); }
-@@ -870,67 +869,67 @@
-     bool
-     is_lock_free() const volatile noexcept { return _M_base.is_lock_free(); }
--    __always_inline void
-+    __libitm_always_inline void
-     store(bool __i, memory_order __m = memory_order_seq_cst) noexcept
-     { _M_base.store(__i, __m); }
--    __always_inline void
-+    __libitm_always_inline void
-     store(bool __i, memory_order __m = memory_order_seq_cst) volatile noexcept
-     { _M_base.store(__i, __m); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     load(memory_order __m = memory_order_seq_cst) const noexcept
-     { return _M_base.load(__m); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     load(memory_order __m = memory_order_seq_cst) const volatile noexcept
-     { return _M_base.load(__m); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     exchange(bool __i, memory_order __m = memory_order_seq_cst) noexcept
-     { return _M_base.exchange(__i, __m); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     exchange(bool __i,
-            memory_order __m = memory_order_seq_cst) volatile noexcept
-     { return _M_base.exchange(__i, __m); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1,
-                         memory_order __m2) noexcept
-     { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1,
-                         memory_order __m2) volatile noexcept
-     { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_weak(bool& __i1, bool __i2,
-                         memory_order __m = memory_order_seq_cst) noexcept
-     { return _M_base.compare_exchange_weak(__i1, __i2, __m); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_weak(bool& __i1, bool __i2,
-                    memory_order __m = memory_order_seq_cst) volatile noexcept
-     { return _M_base.compare_exchange_weak(__i1, __i2, __m); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1,
-                           memory_order __m2) noexcept
-     { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1,
-                           memory_order __m2) volatile noexcept
-     { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_strong(bool& __i1, bool __i2,
-                           memory_order __m = memory_order_seq_cst) noexcept
-     { return _M_base.compare_exchange_strong(__i1, __i2, __m); }
--    __always_inline bool
-+    __libitm_always_inline bool
-     compare_exchange_strong(bool& __i1, bool __i2,
-                   memory_order __m = memory_order_seq_cst) volatile noexcept
-     { return _M_base.compare_exchange_strong(__i1, __i2, __m); }
-@@ -980,11 +979,11 @@
-       store(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept
-       { __atomic_store(&_M_i, &__i, _m); }
--      __always_inline void
-+      __libitm_always_inline void
-       store(_Tp __i, memory_order _m = memory_order_seq_cst) volatile noexcept
-       { __atomic_store(&_M_i, &__i, _m); }
--      __always_inline _Tp
-+      __libitm_always_inline _Tp
-       load(memory_order _m = memory_order_seq_cst) const noexcept
-       { 
-         _Tp tmp;
-@@ -992,7 +991,7 @@
-       return tmp;
-       }
--      __always_inline _Tp
-+      __libitm_always_inline _Tp
-       load(memory_order _m = memory_order_seq_cst) const volatile noexcept
-       { 
-         _Tp tmp;
-@@ -1000,7 +999,7 @@
-       return tmp;
-       }
--      __always_inline _Tp
-+      __libitm_always_inline _Tp
-       exchange(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept
-       { 
-         _Tp tmp;
-@@ -1008,7 +1007,7 @@
-       return tmp;
-       }
--      __always_inline _Tp
-+      __libitm_always_inline _Tp
-       exchange(_Tp __i, 
-              memory_order _m = memory_order_seq_cst) volatile noexcept
-       { 
-@@ -1017,50 +1016,50 @@
-       return tmp;
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 
-                           memory_order __f) noexcept
-       {
-       return __atomic_compare_exchange(&_M_i, &__e, &__i, true, __s, __f); 
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 
-                           memory_order __f) volatile noexcept
-       {
-       return __atomic_compare_exchange(&_M_i, &__e, &__i, true, __s, __f); 
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(_Tp& __e, _Tp __i,
-                           memory_order __m = memory_order_seq_cst) noexcept
-       { return compare_exchange_weak(__e, __i, __m, __m); }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(_Tp& __e, _Tp __i,
-                    memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return compare_exchange_weak(__e, __i, __m, __m); }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 
-                             memory_order __f) noexcept
-       {
-       return __atomic_compare_exchange(&_M_i, &__e, &__i, false, __s, __f); 
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 
-                             memory_order __f) volatile noexcept
-       {
-       return __atomic_compare_exchange(&_M_i, &__e, &__i, false, __s, __f); 
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(_Tp& __e, _Tp __i,
-                              memory_order __m = memory_order_seq_cst) noexcept
-       { return compare_exchange_strong(__e, __i, __m, __m); }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(_Tp& __e, _Tp __i,
-                    memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return compare_exchange_strong(__e, __i, __m, __m); }
-@@ -1153,46 +1152,46 @@
-       is_lock_free() const volatile noexcept
-       { return _M_b.is_lock_free(); }
--      __always_inline void
-+      __libitm_always_inline void
-       store(__pointer_type __p,
-           memory_order __m = memory_order_seq_cst) noexcept
-       { return _M_b.store(__p, __m); }
--      __always_inline void
-+      __libitm_always_inline void
-       store(__pointer_type __p,
-           memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return _M_b.store(__p, __m); }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       load(memory_order __m = memory_order_seq_cst) const noexcept
-       { return _M_b.load(__m); }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
-       { return _M_b.load(__m); }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       exchange(__pointer_type __p,
-              memory_order __m = memory_order_seq_cst) noexcept
-       { return _M_b.exchange(__p, __m); }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       exchange(__pointer_type __p,
-              memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return _M_b.exchange(__p, __m); }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
-                           memory_order __m1, memory_order __m2) noexcept
-       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
-                           memory_order __m1,
-                           memory_order __m2) volatile noexcept
-       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
-                           memory_order __m = memory_order_seq_cst) noexcept
-       {
-@@ -1200,7 +1199,7 @@
-                                    __calculate_memory_order(__m));
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
-                   memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -1208,18 +1207,18 @@
-                                    __calculate_memory_order(__m));
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
-                             memory_order __m1, memory_order __m2) noexcept
-       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
-                             memory_order __m1,
-                             memory_order __m2) volatile noexcept
-       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
-                             memory_order __m = memory_order_seq_cst) noexcept
-       {
-@@ -1227,7 +1226,7 @@
-                                           __calculate_memory_order(__m));
-       }
--      __always_inline bool
-+      __libitm_always_inline bool
-       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
-                   memory_order __m = memory_order_seq_cst) volatile noexcept
-       {
-@@ -1235,22 +1234,22 @@
-                                           __calculate_memory_order(__m));
-       }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_add(ptrdiff_t __d,
-               memory_order __m = memory_order_seq_cst) noexcept
-       { return _M_b.fetch_add(__d, __m); }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_add(ptrdiff_t __d,
-               memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return _M_b.fetch_add(__d, __m); }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_sub(ptrdiff_t __d,
-               memory_order __m = memory_order_seq_cst) noexcept
-       { return _M_b.fetch_sub(__d, __m); }
--      __always_inline __pointer_type
-+      __libitm_always_inline __pointer_type
-       fetch_sub(ptrdiff_t __d,
-               memory_order __m = memory_order_seq_cst) volatile noexcept
-       { return _M_b.fetch_sub(__d, __m); }
-@@ -1544,98 +1543,98 @@
-   // Function definitions, atomic_flag operations.
--  inline __always_inline bool
-+  inline __libitm_always_inline bool
-   atomic_flag_test_and_set_explicit(atomic_flag* __a,
-                                   memory_order __m) noexcept
-   { return __a->test_and_set(__m); }
--  inline __always_inline bool
-+  inline __libitm_always_inline bool
-   atomic_flag_test_and_set_explicit(volatile atomic_flag* __a,
-                                   memory_order __m) noexcept
-   { return __a->test_and_set(__m); }
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept
-   { __a->clear(__m); }
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_flag_clear_explicit(volatile atomic_flag* __a,
-                            memory_order __m) noexcept
-   { __a->clear(__m); }
--  inline __always_inline bool
-+  inline __libitm_always_inline bool
-   atomic_flag_test_and_set(atomic_flag* __a) noexcept
-   { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
--  inline __always_inline bool
-+  inline __libitm_always_inline bool
-   atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept
-   { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_flag_clear(atomic_flag* __a) noexcept
-   { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
--  inline __always_inline void
-+  inline __libitm_always_inline void
-   atomic_flag_clear(volatile atomic_flag* __a) noexcept
-   { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
-   // Function templates generally applicable to atomic types.
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_is_lock_free(const atomic<_ITp>* __a) noexcept
-     { return __a->is_lock_free(); }
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept
-     { return __a->is_lock_free(); }
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept;
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept;
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_store_explicit(atomic<_ITp>* __a, _ITp __i,
-                         memory_order __m) noexcept
-     { __a->store(__i, __m); }
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i,
-                         memory_order __m) noexcept
-     { __a->store(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept
-     { return __a->load(__m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_load_explicit(const volatile atomic<_ITp>* __a,
-                        memory_order __m) noexcept
-     { return __a->load(__m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_exchange_explicit(atomic<_ITp>* __a, _ITp __i,
-                            memory_order __m) noexcept
-     { return __a->exchange(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_exchange_explicit(volatile atomic<_ITp>* __a, _ITp __i,
-                            memory_order __m) noexcept
-     { return __a->exchange(__i, __m); }
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a,
-                                         _ITp* __i1, _ITp __i2,
-                                         memory_order __m1,
-@@ -1643,7 +1642,7 @@
-     { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); }
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_weak_explicit(volatile atomic<_ITp>* __a,
-                                         _ITp* __i1, _ITp __i2,
-                                         memory_order __m1,
-@@ -1651,7 +1650,7 @@
-     { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); }
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a,
-                                           _ITp* __i1, _ITp __i2,
-                                           memory_order __m1,
-@@ -1659,7 +1658,7 @@
-     { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); }
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a,
-                                           _ITp* __i1, _ITp __i2,
-                                           memory_order __m1,
-@@ -1668,37 +1667,37 @@
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_store(atomic<_ITp>* __a, _ITp __i) noexcept
-     { atomic_store_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline void
-+    __libitm_always_inline void
-     atomic_store(volatile atomic<_ITp>* __a, _ITp __i) noexcept
-     { atomic_store_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_load(const atomic<_ITp>* __a) noexcept
-     { return atomic_load_explicit(__a, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_load(const volatile atomic<_ITp>* __a) noexcept
-     { return atomic_load_explicit(__a, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_exchange(atomic<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_exchange(volatile atomic<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_weak(atomic<_ITp>* __a,
-                                _ITp* __i1, _ITp __i2) noexcept
-     {
-@@ -1708,7 +1707,7 @@
-     }
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_weak(volatile atomic<_ITp>* __a,
-                                _ITp* __i1, _ITp __i2) noexcept
-     {
-@@ -1718,7 +1717,7 @@
-     }
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_strong(atomic<_ITp>* __a,
-                                  _ITp* __i1, _ITp __i2) noexcept
-     {
-@@ -1728,7 +1727,7 @@
-     }
-   template<typename _ITp>
--    __always_inline bool
-+    __libitm_always_inline bool
-     atomic_compare_exchange_strong(volatile atomic<_ITp>* __a,
-                                  _ITp* __i1, _ITp __i2) noexcept
-     {
-@@ -1742,158 +1741,158 @@
-   // intergral types as specified in the standard, excluding address
-   // types.
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_add_explicit(__atomic_base<_ITp>* __a, _ITp __i,
-                             memory_order __m) noexcept
-     { return __a->fetch_add(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_add_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
-                             memory_order __m) noexcept
-     { return __a->fetch_add(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_sub_explicit(__atomic_base<_ITp>* __a, _ITp __i,
-                             memory_order __m) noexcept
-     { return __a->fetch_sub(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_sub_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
-                             memory_order __m) noexcept
-     { return __a->fetch_sub(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_and_explicit(__atomic_base<_ITp>* __a, _ITp __i,
-                             memory_order __m) noexcept
-     { return __a->fetch_and(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
-                             memory_order __m) noexcept
-     { return __a->fetch_and(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_or_explicit(__atomic_base<_ITp>* __a, _ITp __i,
-                            memory_order __m) noexcept
-     { return __a->fetch_or(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
-                            memory_order __m) noexcept
-     { return __a->fetch_or(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_xor_explicit(__atomic_base<_ITp>* __a, _ITp __i,
-                             memory_order __m) noexcept
-     { return __a->fetch_xor(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
-                             memory_order __m) noexcept
-     { return __a->fetch_xor(__i, __m); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_add(__atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_add(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_sub(__atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_sub(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_and(__atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_and(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_or(__atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_or(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_xor(__atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
-   template<typename _ITp>
--    __always_inline _ITp
-+    __libitm_always_inline _ITp
-     atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
-     { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
-   // Partial specializations for pointers.
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_add_explicit(atomic<_ITp*>* __a, ptrdiff_t __d,
-                             memory_order __m) noexcept
-     { return __a->fetch_add(__d, __m); }
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_add_explicit(volatile atomic<_ITp*>* __a, ptrdiff_t __d,
-                             memory_order __m) noexcept
-     { return __a->fetch_add(__d, __m); }
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_add(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
-     { return __a->fetch_add(__d); }
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_add(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
-     { return __a->fetch_add(__d); }
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_sub_explicit(volatile atomic<_ITp*>* __a,
-                             ptrdiff_t __d, memory_order __m) noexcept
-     { return __a->fetch_sub(__d, __m); }
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_sub_explicit(atomic<_ITp*>* __a, ptrdiff_t __d,
-                             memory_order __m) noexcept
-     { return __a->fetch_sub(__d, __m); }
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_sub(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
-     { return __a->fetch_sub(__d); }
-   template<typename _ITp>
--    __always_inline _ITp*
-+    __libitm_always_inline _ITp*
-     atomic_fetch_sub(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
-     { return __a->fetch_sub(__d); }
-   // @} group atomics
diff --git a/src/patches/gcc/gcc49-i386-libgomp.patch b/src/patches/gcc/gcc49-i386-libgomp.patch
deleted file mode 100644 (file)
index 520561e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- libgomp/configure.tgt.jj   2008-01-10 20:53:48.000000000 +0100
-+++ libgomp/configure.tgt      2008-03-27 12:44:51.000000000 +0100
-@@ -67,7 +67,7 @@ if test $enable_linux_futex = yes; then
-           ;;
-         *)
-           if test -z "$with_arch"; then
--            XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
-+            XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
-           fi
-       esac
-       ;;
diff --git a/src/patches/gcc/gcc49-libtool-no-rpath.patch b/src/patches/gcc/gcc49-libtool-no-rpath.patch
deleted file mode 100644 (file)
index 466c661..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-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/gcc49-no-add-needed.patch b/src/patches/gcc/gcc49-no-add-needed.patch
deleted file mode 100644 (file)
index b6ca777..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-2010-02-08  Roland McGrath  <roland@redhat.com>
-
-       * config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
-       linker.
-       * config/gnu-user.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.jj  2011-01-03 12:52:31.118056764 +0100
-+++ gcc/config/alpha/elf.h     2011-01-04 18:14:10.931874160 +0100
-@@ -165,5 +165,5 @@ 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 "--no-add-needed %{!static:--eh-frame-hdr} "
- #endif
---- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100
-+++ gcc/config/ia64/linux.h    2011-01-04 18:14:10.931874160 +0100
-@@ -77,7 +77,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 "--no-add-needed "
- /* Put all *tf routines in libgcc.  */
- #undef LIBGCC2_HAS_TF_MODE
---- gcc/config/gnu-user.h.jj   2011-01-03 12:53:03.739057299 +0100
-+++ gcc/config/gnu-user.h      2011-01-04 18:14:10.932814884 +0100
-@@ -82,7 +82,7 @@ see the files COPYING3 and COPYING.RUNTI
- #define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
- #if defined(HAVE_LD_EH_FRAME_HDR)
--#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
- #endif
- #undef LINK_GCC_C_SEQUENCE_SPEC
---- gcc/config/rs6000/sysv4.h.jj       2011-01-03 13:02:18.255994215 +0100
-+++ gcc/config/rs6000/sysv4.h  2011-01-04 18:14:10.933888871 +0100
-@@ -820,7 +820,7 @@ extern int fixuplabelno;
-   -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
- #if defined(HAVE_LD_EH_FRAME_HDR)
--# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} "
- #endif
- #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
diff --git a/src/patches/gcc/gcc49-pr38757.patch b/src/patches/gcc/gcc49-pr38757.patch
deleted file mode 100644 (file)
index 4206584..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-2009-03-18  Jakub Jelinek  <jakub@redhat.com>
-
-       PR debug/38757
-       * langhooks.h (struct lang_hooks): Add source_language langhook.
-       * langhooks-def.h (LANG_HOOKS_SOURCE_LANGUAGE): Define to NULL.
-       (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_SOURCE_LANGUAGE.
-       * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
-       also for DW_LANG_{C,C99,ObjC}.
-       (gen_compile_unit_die): Use lang_hooks.source_language () to
-       determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
-c/
-       * c-lang.c (c_source_language): New function.
-       (LANG_HOOKS_SOURCE_LANGUAGE): Define.
-
---- gcc/langhooks.h.jj 2011-01-03 12:53:05.125745450 +0100
-+++ gcc/langhooks.h    2011-01-04 17:59:43.166744926 +0100
-@@ -467,6 +467,10 @@ struct lang_hooks
-      gimplification.  */
-   bool deep_unsharing;
-+  /* Return year of the source language standard version if the FE supports
-+     multiple versions of the standard.  */
-+  int (*source_language) (void);
-+
-   /* Whenever you add entries here, make sure you adjust langhooks-def.h
-      and langhooks.c accordingly.  */
- };
---- gcc/langhooks-def.h.jj     2011-01-03 12:53:05.000000000 +0100
-+++ gcc/langhooks-def.h        2011-01-04 18:00:44.858851030 +0100
-@@ -118,6 +118,7 @@ extern void lhd_omp_firstprivatize_type_
- #define LANG_HOOKS_BLOCK_MAY_FALLTHRU hook_bool_const_tree_true
- #define LANG_HOOKS_EH_USE_CXA_END_CLEANUP     false
- #define LANG_HOOKS_DEEP_UNSHARING     false
-+#define LANG_HOOKS_SOURCE_LANGUAGE    NULL
- /* Attribute hooks.  */
- #define LANG_HOOKS_ATTRIBUTE_TABLE            NULL
-@@ -303,7 +304,8 @@ extern void lhd_end_section (void);
-   LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \
-   LANG_HOOKS_BLOCK_MAY_FALLTHRU, \
-   LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \
--  LANG_HOOKS_DEEP_UNSHARING \
-+  LANG_HOOKS_DEEP_UNSHARING, \
-+  LANG_HOOKS_SOURCE_LANGUAGE \
- }
- #endif /* GCC_LANG_HOOKS_DEF_H */
---- gcc/c/c-lang.c.jj  2011-01-03 12:53:05.376056936 +0100
-+++ gcc/c/c-lang.c     2011-01-04 17:59:43.167743798 +0100
-@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3.
- enum c_language_kind c_language = clk_c;
-+static int
-+c_source_language (void)
-+{
-+  return flag_isoc99 ? 1999 : 1989;
-+}
-+
- /* Lang hooks common to C and ObjC are declared in c-objc-common.h;
-    consequently, there should be very few hooks below.  */
-@@ -45,6 +51,8 @@ enum c_language_kind c_language = clk_c;
- #define LANG_HOOKS_INIT c_objc_common_init
- #undef LANG_HOOKS_INIT_TS
- #define LANG_HOOKS_INIT_TS c_common_init_ts
-+#undef LANG_HOOKS_SOURCE_LANGUAGE
-+#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language
- /* Each front end provides its own lang hook initializer.  */
- struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
---- gcc/dwarf2out.c.jj 2011-01-03 12:53:05.102056475 +0100
-+++ gcc/dwarf2out.c    2011-01-04 18:03:14.534151763 +0100
-@@ -16109,9 +16109,18 @@ add_bit_size_attribute (dw_die_ref die,
- static inline void
- add_prototyped_attribute (dw_die_ref die, tree func_type)
- {
--  if (get_AT_unsigned (comp_unit_die (), DW_AT_language) == DW_LANG_C89
--      && prototype_p (func_type))
--    add_AT_flag (die, DW_AT_prototyped, 1);
-+  switch (get_AT_unsigned (comp_unit_die (), DW_AT_language))
-+    {
-+    case DW_LANG_C:
-+    case DW_LANG_C89:
-+    case DW_LANG_C99:
-+    case DW_LANG_ObjC:
-+      if (prototype_p (func_type))
-+      add_AT_flag (die, DW_AT_prototyped, 1);
-+      break;
-+    default:
-+      break;
-+    }
- }
- /* Add an 'abstract_origin' attribute below a given DIE.  The DIE is found
-@@ -18915,6 +18924,10 @@ gen_compile_unit_die (const char *filena
-         if (strcmp (language_string, "GNU Go") == 0)
-           language = DW_LANG_Go;
-       }
-+      else if (strcmp (language_string, "GNU C") == 0
-+             && lang_hooks.source_language
-+             && lang_hooks.source_language () >= 1999)
-+      language = DW_LANG_C99;
-     }
-   /* Use a degraded Fortran setting in strict DWARF2 so is_fortran works.  */
-   else if (strcmp (language_string, "GNU Fortran") == 0)
diff --git a/src/patches/gcc/gcc49-pr64336.patch b/src/patches/gcc/gcc49-pr64336.patch
deleted file mode 100644 (file)
index 86fddd5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-2014-12-17  Jakub Jelinek  <jakub@redhat.com>
-
-       PR sanitizer/64336
-       * tsan.c (instrument_expr): Ignore TREE_READONLY bit
-       on MEM_REFs.
-
---- gcc/tsan.c.jj      2014-12-17 10:53:30.000000000 +0100
-+++ gcc/tsan.c 2014-12-17 11:55:12.793058159 +0100
-@@ -138,7 +138,7 @@ instrument_expr (gimple_stmt_iterator gs
-       return false;
-     }
--  if (TREE_READONLY (base)
-+  if ((TREE_READONLY (base) && TREE_CODE (base) != MEM_REF)
-       || (TREE_CODE (base) == VAR_DECL
-         && DECL_HARD_REGISTER (base)))
-     return false;
diff --git a/src/patches/glibc-2.12-accept-make-versions-4.0-and-greater.patch b/src/patches/glibc-2.12-accept-make-versions-4.0-and-greater.patch
deleted file mode 100644 (file)
index 7faf857..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From 28d708c44bc47b56f6551ff285f78edcf61c208a Mon Sep 17 00:00:00 2001
-From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
-Date: Thu, 31 Oct 2013 12:37:50 +1000
-Subject: Accept make versions 4.0 and greater
-
-
-diff --git a/configure b/configure
-index f382138..5e61abd 100755
---- a/configure
-+++ b/configure
-@@ -4761,7 +4761,7 @@ $as_echo_n "checking version of $MAKE... " >&6; }
-   ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
-   case $ac_prog_version in
-     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
--    3.79* | 3.[89]*)
-+    3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*)
-        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-diff --git a/configure.in b/configure.in
-index 49b70fd..6da8efd 100644
---- a/configure.in
-+++ b/configure.in
-@@ -984,7 +984,7 @@ AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
-   critic_missing="$critic_missing gcc")
- AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
-   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
--  [3.79* | 3.[89]*], critic_missing="$critic_missing make")
-+  [3.79* | 3.[89]* | [4-9].* | [1-9][0-9]*], critic_missing="$critic_missing make")
- AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
-   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
--- 
-cgit v0.10.2
-
diff --git a/src/patches/glibc-cfi-entry-not-closed.patch b/src/patches/glibc-cfi-entry-not-closed.patch
deleted file mode 100644 (file)
index 02cfe8f..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
---- 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-localedef-no-archive.patch b/src/patches/glibc-localedef-no-archive.patch
new file mode 100644 (file)
index 0000000..c4a39f6
--- /dev/null
@@ -0,0 +1,11 @@
+diff -Nrup a/localedata/Makefile b/localedata/Makefile
+--- a/localedata/Makefile      2012-06-05 07:42:49.000000000 -0600
++++ b/localedata/Makefile      2012-06-07 12:15:21.776318827 -0600
+@@ -211,6 +211,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'; \
diff --git a/src/patches/glibc-remove-ctors-dtors-output-sections.patch b/src/patches/glibc-remove-ctors-dtors-output-sections.patch
deleted file mode 100644 (file)
index 91155c9..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-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
deleted file mode 100644 (file)
index 00bb710..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-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
deleted file mode 100644 (file)
index 2221353..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-diff -Naur glibc-2.12-2-gc4ccff1.org/nptl/sysdeps/pthread/unwind-forcedunwind.c glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/unwind-forcedunwind.c
-index db56428..495f4b7 100644
---- glibc-2.12-2-gc4ccff1.org/nptl/sysdeps/pthread/unwind-forcedunwind.c
-+++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/unwind-forcedunwind.c
-@@ -22,7 +22,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 -Naur glibc-2.12-2-gc4ccff1.org/scripts/test-installation.pl glibc-2.12-2-gc4ccff1/scripts/test-installation.pl
-index 25a919b..3f409ab 100755
---- glibc-2.12-2-gc4ccff1.org/scripts/test-installation.pl
-+++ glibc-2.12-2-gc4ccff1/scripts/test-installation.pl
-@@ -106,9 +106,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 -Naur glibc-2.12-2-gc4ccff1.org/shlib-versions glibc-2.12-2-gc4ccff1/shlib-versions
-index d3e8407..ac98e49 100644
---- glibc-2.12-2-gc4ccff1.org/shlib-versions
-+++ glibc-2.12-2-gc4ccff1/shlib-versions
-@@ -138,3 +138,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 -Naur glibc-2.12-2-gc4ccff1.org/sysdeps/generic/framestate.c glibc-2.12-2-gc4ccff1/sysdeps/generic/framestate.c
-index 80375bb..edc3539 100644
---- glibc-2.12-2-gc4ccff1.org/sysdeps/generic/framestate.c
-+++ glibc-2.12-2-gc4ccff1/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.
-@@ -24,7 +24,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 -Naur glibc-2.12-2-gc4ccff1.org/sysdeps/generic/libgcc_s.h glibc-2.12-2-gc4ccff1.org/sysdeps/generic/libgcc_s.h
-deleted file mode 100644
-index e74a103..0000000
---- glibc-2.12-2-gc4ccff1.org/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 -Naur glibc-2.12-2-gc4ccff1.org/sysdeps/gnu/unwind-resume.c glibc-2.12-2-gc4ccff1/sysdeps/gnu/unwind-resume.c
-index f8ff0c4..dab4370 100644
---- glibc-2.12-2-gc4ccff1.org/sysdeps/gnu/unwind-resume.c
-+++ glibc-2.12-2-gc4ccff1/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>.
-@@ -22,7 +22,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/src/patches/glibc-test-installation.pl-nss_test1.patch b/src/patches/glibc-test-installation.pl-nss_test1.patch
deleted file mode 100644 (file)
index 8881d94..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-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
deleted file mode 100644 (file)
index 016a4d4..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-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
deleted file mode 100644 (file)
index 5a7fce9..0000000
+++ /dev/null
@@ -1,2106 +0,0 @@
---- 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
deleted file mode 100644 (file)
index 9181ce1..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-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
deleted file mode 100644 (file)
index 15de7c6..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-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-mq_open.patch b/src/patches/glibc/glibc-mq_open.patch
deleted file mode 100644 (file)
index a7a0f11..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-From: https://sourceware.org/bugzilla/show_bug.cgi?id=12841
-
---- libc/rt/bits/mqueue2.h     2009-05-16 19:23:37.000000000 +0200
-+++ libc/rt/bits/mqueue2.h     2011-06-04 19:05:38.322333773 +0200
-@@ -1,5 +1,5 @@ 
- /* Checking macros for mq functions.
--   Copyright (C) 2007 Free Software Foundation, Inc.
-+   Copyright (C) 2007, 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
-@@ -25,16 +25,18 @@ 
-    parameter.  */
- extern mqd_t mq_open (__const char *__name, int __oflag, ...)
-      __THROW __nonnull ((1));
--extern mqd_t __mq_open_2 (__const char *__name, int __oflag) __nonnull ((1));
--extern mqd_t __REDIRECT (__mq_open_alias, (__const char *__name, int __oflag, ...),
--                       mq_open) __nonnull ((1));
-+extern mqd_t __mq_open_2 (__const char *__name, int __oflag)
-+     __THROW __nonnull ((1));
-+extern mqd_t __REDIRECT_NTH (__mq_open_alias, (__const char *__name,
-+                                             int __oflag, ...), mq_open)
-+     __nonnull ((1));
- __errordecl (__mq_open_wrong_number_of_args,
-            "mq_open can be called either with 2 or 4 arguments");
- __errordecl (__mq_open_missing_mode_and_attr,
-            "mq_open with O_CREAT in second argument needs 4 arguments");
- __extern_always_inline mqd_t
--mq_open (__const char *__name, int __oflag, ...)
-+__NTH (mq_open (__const char *__name, int __oflag, ...))
- {
-   if (__va_arg_pack_len () != 0 && __va_arg_pack_len () != 2)
-     __mq_open_wrong_number_of_args ();
diff --git a/src/patches/glibc/glibc-recvmmsg.patch b/src/patches/glibc/glibc-recvmmsg.patch
deleted file mode 100644 (file)
index 9e3aa7a..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-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-rh1008310.patch b/src/patches/glibc/glibc-rh1008310.patch
deleted file mode 100644 (file)
index 3658a9f..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -Nrup a/malloc/malloc.c b/malloc/malloc.c
---- a/malloc/malloc.c  2013-09-23 17:08:33.698331221 -0400
-+++ b/malloc/malloc.c  2013-09-23 21:04:25.901270645 -0400
-@@ -3879,6 +3879,13 @@ public_mEMALIGn(size_t alignment, size_t
-   /* Otherwise, ensure that it is at least a minimum chunk size */
-   if (alignment <  MINSIZE) alignment = MINSIZE;
-+  /* Check for overflow.  */
-+  if (bytes > SIZE_MAX - alignment - MINSIZE)
-+    {
-+      __set_errno (ENOMEM);
-+      return 0;
-+    }
-+
-   arena_get(ar_ptr, bytes + alignment + MINSIZE);
-   if(!ar_ptr)
-     return 0;
-@@ -3924,6 +3931,13 @@ public_vALLOc(size_t bytes)
-   size_t pagesz = mp_.pagesize;
-+  /* Check for overflow.  */
-+  if (bytes > SIZE_MAX - pagesz - MINSIZE)
-+    {
-+      __set_errno (ENOMEM);
-+      return 0;
-+    }
-+
-   __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t,
-                                       __const __malloc_ptr_t)) =
-     force_reg (__memalign_hook);
-@@ -3975,6 +3989,13 @@ public_pVALLOc(size_t bytes)
-   size_t page_mask = mp_.pagesize - 1;
-   size_t rounded_bytes = (bytes + page_mask) & ~(page_mask);
-+  /* Check for overflow.  */
-+  if (bytes > SIZE_MAX - 2*pagesz - MINSIZE)
-+    {
-+      __set_errno (ENOMEM);
-+      return 0;
-+    }
-+
-   __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t,
-                                       __const __malloc_ptr_t)) =
-     force_reg (__memalign_hook);
diff --git a/src/patches/glibc/glibc-rh1019916.patch b/src/patches/glibc/glibc-rh1019916.patch
deleted file mode 100644 (file)
index f67af90..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-commit 48b67d71ec677d1b3168e52a68b644784cead604
-Author: Andreas Schwab <schwab@redhat.com>
-Date:   Wed Sep 14 12:12:25 2011 +0200
-
-    Also relocate in dependency order when doing symbol dependency testing
-
-diff --git a/elf/rtld.c b/elf/rtld.c
-index 764140d..324d979 100644
---- a/elf/rtld.c
-+++ b/elf/rtld.c
-@@ -2027,24 +2027,21 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
-           {
-             /* We have to do symbol dependency testing.  */
-             struct relocate_args args;
--            struct link_map *l;
-+            unsigned int i;
-             args.reloc_mode = GLRO(dl_lazy) ? RTLD_LAZY : 0;
--            l = main_map;
--            while (l->l_next != NULL)
--              l = l->l_next;
--            do
-+            i = main_map->l_searchlist.r_nlist;
-+            while (i-- > 0)
-               {
-+                struct link_map *l = main_map->l_initfini[i];
-                 if (l != &GL(dl_rtld_map) && ! l->l_faked)
-                   {
-                     args.l = l;
-                     _dl_receive_error (print_unresolved, relocate_doit,
-                                        &args);
-                   }
--                l = l->l_prev;
-               }
--            while (l != NULL);
-             if ((GLRO(dl_debug_mask) & DL_DEBUG_PRELINK)
-                 && rtld_multiple_ref)
diff --git a/src/patches/glibc/glibc-rh1022022.patch b/src/patches/glibc/glibc-rh1022022.patch
deleted file mode 100644 (file)
index 6d23bb1..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
-index 81e928a..05883bd 100644
---- a/sysdeps/posix/getaddrinfo.c
-+++ b/sysdeps/posix/getaddrinfo.c
-@@ -832,8 +832,13 @@ gaih_inet (const char *name, const struct gaih_service *service,
-         while (!no_more)
-           {
-             no_data = 0;
--            nss_gethostbyname4_r fct4
--              = __nss_lookup_function (nip, "gethostbyname4_r");
-+            nss_gethostbyname4_r fct4 = NULL;
-+
-+            /* gethostbyname4_r sends out parallel A and AAAA queries and
-+               is thus only suitable for PF_UNSPEC.  */
-+            if (req->ai_family == PF_UNSPEC)
-+              fct4 = __nss_lookup_function (nip, "gethostbyname4_r");
-+
-             if (fct4 != NULL)
-               {
-                 int herrno;
diff --git a/src/patches/glibc/glibc-rh1023306.patch b/src/patches/glibc/glibc-rh1023306.patch
deleted file mode 100644 (file)
index 738052d..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -pruN glibc-2.17-c758a686/nptl/Makefile glibc-2.17-c758a686.new/nptl/Makefile
---- glibc-2.17-c758a686/nptl/Makefile  2013-07-31 11:51:24.882747234 +0530
-+++ glibc-2.17-c758a686.new/nptl/Makefile      2013-07-31 11:58:55.964731526 +0530
-@@ -276,10 +276,7 @@ gen-as-const-headers = pthread-errnos.sy
- LDFLAGS-tst-cond24 = -lrt
- LDFLAGS-tst-cond25 = -lrt
--# The size is 1MB + 4KB.  The extra 4KB has been added to prevent allocatestack
--# from resizing the input size to avoid the 64K aliasing conflict on Intel
--# processors.
--DEFAULT_STACKSIZE=1052672
-+DEFAULT_STACKSIZE=1048576
- CFLAGS-tst-default-attr.c = -DDEFAULT_STACKSIZE=$(DEFAULT_STACKSIZE)
- tst-default-attr-ENV = GLIBC_PTHREAD_STACKSIZE=$(DEFAULT_STACKSIZE)
-diff -pruN glibc-2.17-c758a686/nptl/tst-default-attr.c glibc-2.17-c758a686.new/nptl/tst-default-attr.c
---- glibc-2.17-c758a686/nptl/tst-default-attr.c        2013-07-31 11:51:24.885747234 +0530
-+++ glibc-2.17-c758a686.new/nptl/tst-default-attr.c    2013-07-31 12:18:10.016691337 +0530
-@@ -38,6 +38,7 @@
- /* DEFAULT_STACKSIZE macro is defined in the Makefile.  */
- static size_t stacksize = DEFAULT_STACKSIZE;
-+long int pagesize;
- static int
- verify_stacksize_result (pthread_attr_t *attr)
-@@ -46,12 +47,20 @@ verify_stacksize_result (pthread_attr_t
-   RETURN_IF_FAIL (pthread_attr_getstacksize, attr, &stack);
--  if (stacksize != stack)
-+  /* pthread_create perturbs the stack size by a page if it aligns to 64K to
-+     avoid the 64K aliasing conflict.  We cannot simply add 4K to the size in
-+     the Makefile because it breaks the test on powerpc since the page size
-+     there is 64K, resulting in a resize in __pthread_initialize_minimal.
-+     Hence, our check is to ensure that the stack size is not more than a page
-+     more than the requested size.  */
-+  if (stack < stacksize || stack > stacksize + pagesize)
-     {
-       printf ("failed to set default stacksize (%zu, %zu)\n", stacksize, stack);
-       return 1;
-     }
-+  printf ("Requested %zu and got %zu\n", stacksize, stack);
-+
-   return 0;
- }
-@@ -101,6 +110,15 @@ run_threads (void)
- static int
- do_test (void)
- {
-+  pthread_attr_t attr;
-+
-+  pagesize = sysconf (_SC_PAGESIZE);
-+  if (pagesize < 0)
-+    {
-+      printf ("sysconf failed: %s\n", strerror (errno));
-+      return 1;
-+    }
-+
-   RETURN_IF_FAIL (run_threads);
-   return 0;
- }
diff --git a/src/patches/glibc/glibc-rh1025933.patch b/src/patches/glibc/glibc-rh1025933.patch
deleted file mode 100644 (file)
index 9dc98b9..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-commit 0699f766b10c86912b75f35bef697106b70c1cf6
-Author: Carlos O'Donell <carlos@redhat.com>
-Date:   Thu Apr 10 18:31:53 2014 -0400
-
-    nscd: Make SELinux checks dynamic.
-    
-    The SELinux team has indicated to me that glibc's SELinux checks
-    in nscd are not being carried out as they would expect the API
-    to be used today. They would like to move away from static header
-    defines for class and permissions and instead use dynamic checks
-    at runtime that provide an answer which is dependent on the runtime
-    status of SELinux i.e. more dynamic.
-    
-    The following patch is a minimal change that moves us forward in
-    this direction.
-    
-    It does the following:
-    
-    * Stop checking for SELinux headers that define NSCD__SHMEMHOST.
-      Check only for the presence or absence of the library.
-    
-    * Don't encode the specific SELinux permission constants into a
-      table at build time, and instead use the symbolic name for the
-      permission as expected.
-    
-    * Lookup the "What do we do if we don't know this permission?"
-      policy and use that if we find SELinux's policy is older than
-      the glibc policy e.g. we make a request for a permission that
-      SELinux doesn't know about.
-    
-    * Lastly, translate the class and permission and then make
-      the permission check. This is done every time we lookup
-      a permission, and this is the expected way to use the API.
-      SELinux will optimize this for us, and we expect the network
-      latencies to hide these extra library calls.
-    
-    Tested on x86, x86-64, and via Fedora Rawhide since November 2013.
-    
-    See:
-    https://sourceware.org/ml/libc-alpha/2014-04/msg00179.html
-
-diff --git a/configure b/configure
-index abefcdb..8b0b222 100755
---- a/configure
-+++ b/configure
-@@ -7774,64 +7774,10 @@ else
-   have_selinux=no
- fi
--  # See if we have the SELinux header with the NSCD permissions in it.
--  if test x$have_selinux = xyes ; then
--    { $as_echo "$as_me:$LINENO: checking for NSCD Flask permissions in selinux/av_permissions.h" >&5
--$as_echo_n "checking for NSCD Flask permissions in selinux/av_permissions.h... " >&6; }
--    cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h.  */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h.  */
--#include <selinux/av_permissions.h>
--int
--main ()
--{
--#ifdef NSCD__SHMEMHOST
--                   return 0;
--                   #else
--                   #error NSCD__SHMEMHOST not defined
--                   #endif
--  ;
--  return 0;
--}
--_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
--  have_selinux=yes
--else
--  $as_echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--      have_selinux=no
--fi
--
--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
--    { $as_echo "$as_me:$LINENO: result: $have_selinux" >&5
--$as_echo "$have_selinux" >&6; }
--  fi
--
-   if test x$with_selinux = xyes ; then
-     if test x$have_selinux = xno ; then
--      { { $as_echo "$as_me:$LINENO: error: SELinux explicitly required, but sufficiently recent SELinux library not found" >&5
--$as_echo "$as_me: error: SELinux explicitly required, but sufficiently recent SELinux library not found" >&2;}
-+      { { $as_echo "$as_me:$LINENO: error: SELinux explicitly required, but SELinux library not found" >&5
-+$as_echo "$as_me: error: SELinux explicitly required, but SELinux library not found" >&2;}
-    { (exit 1); exit 1; }; }
-     fi
-   fi
-diff --git a/configure.in b/configure.in
-index 6291872..97a9591 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1945,22 +1945,9 @@ else
-   # See if we have the SELinux library
-   AC_CHECK_LIB(selinux, is_selinux_enabled,
-              have_selinux=yes, have_selinux=no)
--  # See if we have the SELinux header with the NSCD permissions in it.
--  if test x$have_selinux = xyes ; then
--    AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
--    AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
--                  [#ifdef NSCD__SHMEMHOST
--                   return 0;
--                   #else
--                   #error NSCD__SHMEMHOST not defined
--                   #endif],
--                  have_selinux=yes, have_selinux=no)
--    AC_MSG_RESULT($have_selinux)
--  fi
--
-   if test x$with_selinux = xyes ; then
-     if test x$have_selinux = xno ; then
--      AC_MSG_ERROR([SELinux explicitly required, but sufficiently recent SELinux library not found])
-+      AC_MSG_ERROR([SELinux explicitly required, but SELinux library not found])
-     fi
-   fi
- fi
-diff --git a/nscd/selinux.c b/nscd/selinux.c
-index 46b0ea9..9a8a5a8 100644
---- a/nscd/selinux.c
-+++ b/nscd/selinux.c
-@@ -28,7 +28,6 @@
- #include <syslog.h>
- #include <unistd.h>
- #include <sys/prctl.h>
--#include <selinux/av_permissions.h>
- #include <selinux/avc.h>
- #include <selinux/flask.h>
- #include <selinux/selinux.h>
-@@ -44,35 +43,31 @@
- /* Global variable to tell if the kernel has SELinux support.  */
- int selinux_enabled;
--/* Define mappings of access vector permissions to request types.  */
--static const access_vector_t perms[LASTREQ] =
-+/* Define mappings of request type to AVC permission name.  */
-+static const char *perms[LASTREQ] =
- {
--  [GETPWBYNAME] = NSCD__GETPWD,
--  [GETPWBYUID] = NSCD__GETPWD,
--  [GETGRBYNAME] = NSCD__GETGRP,
--  [GETGRBYGID] = NSCD__GETGRP,
--  [GETHOSTBYNAME] = NSCD__GETHOST,
--  [GETHOSTBYNAMEv6] = NSCD__GETHOST,
--  [GETHOSTBYADDR] = NSCD__GETHOST,
--  [GETHOSTBYADDRv6] = NSCD__GETHOST,
--  [GETSTAT] = NSCD__GETSTAT,
--  [SHUTDOWN] = NSCD__ADMIN,
--  [INVALIDATE] = NSCD__ADMIN,
--  [GETFDPW] = NSCD__SHMEMPWD,
--  [GETFDGR] = NSCD__SHMEMGRP,
--  [GETFDHST] = NSCD__SHMEMHOST,
--  [GETAI] = NSCD__GETHOST,
--  [INITGROUPS] = NSCD__GETGRP,
--#ifdef NSCD__GETSERV
--  [GETSERVBYNAME] = NSCD__GETSERV,
--  [GETSERVBYPORT] = NSCD__GETSERV,
--  [GETFDSERV] = NSCD__SHMEMSERV,
--#endif
--#ifdef NSCD__GETNETGRP
--  [GETNETGRENT] = NSCD__GETNETGRP,
--  [INNETGR] = NSCD__GETNETGRP,
--  [GETFDNETGR] = NSCD__SHMEMNETGRP,
--#endif
-+  [GETPWBYNAME] = "getpwd",
-+  [GETPWBYUID] = "getpwd",
-+  [GETGRBYNAME] = "getgrp",
-+  [GETGRBYGID] = "getgrp",
-+  [GETHOSTBYNAME] = "gethost",
-+  [GETHOSTBYNAMEv6] = "gethost",
-+  [GETHOSTBYADDR] = "gethost",
-+  [GETHOSTBYADDRv6] = "gethost",
-+  [SHUTDOWN] = "admin",
-+  [GETSTAT] = "getstat",
-+  [INVALIDATE] = "admin",
-+  [GETFDPW] = "shmempwd",
-+  [GETFDGR] = "shmemgrp",
-+  [GETFDHST] = "shmemhost",
-+  [GETAI] = "gethost",
-+  [INITGROUPS] = "getgrp",
-+  [GETSERVBYNAME] = "getserv",
-+  [GETSERVBYPORT] = "getserv",
-+  [GETFDSERV] = "shmemserv",
-+  [GETNETGRENT] = "getnetgrp",
-+  [INNETGR] = "getnetgrp",
-+  [GETFDNETGR] = "shmemnetgrp",
- };
- /* Store an entry ref to speed AVC decisions.  */
-@@ -344,7 +339,16 @@ nscd_avc_init (void)
- /* Check the permission from the caller (via getpeercon) to nscd.
--   Returns 0 if access is allowed, 1 if denied, and -1 on error.  */
-+   Returns 0 if access is allowed, 1 if denied, and -1 on error.
-+
-+   The SELinux policy, enablement, and permission bits are all dynamic and the
-+   caching done by glibc is not entirely correct.  This nscd support should be
-+   rewritten to use selinux_check_permission.  A rewrite is risky though and
-+   requires some refactoring.  Currently we use symbolic mappings instead of
-+   compile time constants (which SELinux upstream says are going away), and we
-+   use security_deny_unknown to determine what to do if selinux-policy* doesn't
-+   have a definition for the the permission or object class we are looking
-+   up.  */
- int
- nscd_request_avc_has_perm (int fd, request_type req)
- {
-@@ -354,6 +358,33 @@ nscd_request_avc_has_perm (int fd, request_type req)
-   security_id_t ssid = NULL;
-   security_id_t tsid = NULL;
-   int rc = -1;
-+  security_class_t sc_nscd;
-+  access_vector_t perm;
-+  int avc_deny_unknown;
-+
-+  /* Check if SELinux denys or allows unknown object classes
-+     and permissions.  It is 0 if they are allowed, 1 if they
-+     are not allowed and -1 on error.  */
-+  if ((avc_deny_unknown = security_deny_unknown ()) == -1)
-+    dbg_log (_("Error querying policy for undefined object classes "
-+             "or permissions."));
-+
-+  /* Get the security class for nscd.  If this fails we will likely be
-+     unable to do anything unless avc_deny_unknown is 0.  */
-+  sc_nscd = string_to_security_class ("nscd");
-+  if (perm == 0 && avc_deny_unknown == 1)
-+    dbg_log (_("Error getting security class for nscd."));
-+
-+  /* Convert permission to AVC bits.  */
-+  perm = string_to_av_perm (sc_nscd, perms[req]);
-+  if (perm == 0 && avc_deny_unknown == 1)
-+      dbg_log (_("Error translating permission name "
-+               "\"%s\" to access vector bit."), perms[req]);
-+
-+  /* If the nscd security class was not found or perms were not
-+     found and AVC does not deny unknown values then allow it.  */
-+  if ((sc_nscd == 0 || perm == 0) && avc_deny_unknown == 0)
-+    return 0;
-   if (getpeercon (fd, &scon) < 0)
-     {
-@@ -372,15 +403,13 @@ nscd_request_avc_has_perm (int fd, request_type req)
-       goto out;
-     }
--#ifndef NSCD__GETSERV
--  if (perms[req] == 0)
--    {
--      dbg_log (_("compile-time support for database policy missing"));
--      goto out;
--    }
--#endif
--
--  rc = avc_has_perm (ssid, tsid, SECCLASS_NSCD, perms[req], &aeref, NULL) < 0;
-+  /* The SELinux API for avc_has_perm conflates access denied and error into
-+     the return code -1, while nscd_request_avs_has_perm has distinct error
-+     (-1) and denied (1) return codes. We map the avc_has_perm access denied or
-+     error into an access denied at the nscd interface level (we do accurately
-+     report error for the getpeercon, getcon, and avc_context_to_sid interfaces
-+     used above).  */
-+  rc = avc_has_perm (ssid, tsid, sc_nscd, perm, &aeref, NULL) < 0;
- out:
-   if (scon)
diff --git a/src/patches/glibc/glibc-rh1027101.patch b/src/patches/glibc/glibc-rh1027101.patch
deleted file mode 100644 (file)
index 7825682..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-commit 362b47fe09ca9a928d444c7e2f7992f7f61bfc3e
-Author: Maxim Kuvyrkov <maxim@kugelworks.com>
-Date:   Tue Dec 24 09:44:50 2013 +1300
-
-    Fix race in free() of fastbin chunk: BZ #15073
-    
-    Perform sanity check only if we have_lock.  Due to lockless nature of fastbins
-    we need to be careful derefencing pointers to fastbin entries (chunksize(old)
-    in this case) in multithreaded environments.
-    
-    The fix is to add have_lock to the if-condition checks.  The rest of the patch
-    only makes code more readable.
-    
-       * malloc/malloc.c (_int_free): Perform sanity check only if we
-       have_lock.
-
-diff --git a/malloc/malloc.c b/malloc/malloc.c
-index b1668b5..5e419ad 100644
---- a/malloc/malloc.c
-+++ b/malloc/malloc.c
-@@ -3783,25 +3783,29 @@ _int_free(mstate av, mchunkptr p, int have_lock)
-     fb = &fastbin (av, idx);
- #ifdef ATOMIC_FASTBINS
--    mchunkptr fd;
--    mchunkptr old = *fb;
-+    /* Atomically link P to its fastbin: P->FD = *FB; *FB = P;  */
-+    mchunkptr old = *fb, old2;
-     unsigned int old_idx = ~0u;
-     do
-       {
--      /* Another simple check: make sure the top of the bin is not the
--         record we are going to add (i.e., double free).  */
-+      /* Check that the top of the bin is not the record we are going to add
-+         (i.e., double free).  */
-       if (__builtin_expect (old == p, 0))
-         {
-           errstr = "double free or corruption (fasttop)";
-           goto errout;
-         }
--      if (old != NULL)
-+      /* Check that size of fastbin chunk at the top is the same as
-+         size of the chunk that we are adding.  We can dereference OLD
-+         only if we have the lock, otherwise it might have already been
-+         deallocated.  See use of OLD_IDX below for the actual check.  */
-+      if (have_lock && old != NULL)
-         old_idx = fastbin_index(chunksize(old));
--      p->fd = fd = old;
-+      p->fd = old2 = old;
-       }
--    while ((old = catomic_compare_and_exchange_val_rel (fb, p, fd)) != fd);
-+    while ((old = catomic_compare_and_exchange_val_rel (fb, p, old2)) != old2);
--    if (fd != NULL && __builtin_expect (old_idx != idx, 0))
-+    if (have_lock && old != NULL && __builtin_expect (old_idx != idx, 0))
-       {
-       errstr = "invalid fastbin entry (free)";
-       goto errout;
diff --git a/src/patches/glibc/glibc-rh1027261.patch b/src/patches/glibc/glibc-rh1027261.patch
deleted file mode 100644 (file)
index 8599cf0..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 4d653a59ffeae0f46f76a40230e2cfa9587b7e7e
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Fri May 30 22:43:52 2014 +0530
-
-    Add mmap usage in malloc_info output
-    
-    The current malloc_info xml output only has information about
-    allocations on the heap.  Display information about number of mappings
-    and total mmapped size to this to complete the picture.
-
-diff -pruN a/malloc/malloc.c b/malloc/malloc.c
---- a/malloc/malloc.c  2014-06-02 07:35:22.573256155 +0530
-+++ b/malloc/malloc.c  2014-06-02 07:34:58.856257177 +0530
-@@ -6553,12 +6553,14 @@ malloc_info (int options, FILE *fp)
-   fprintf (fp,
-          "<total type=\"fast\" count=\"%zu\" size=\"%zu\"/>\n"
-          "<total type=\"rest\" count=\"%zu\" size=\"%zu\"/>\n"
-+         "<total type=\"mmap\" count=\"%d\" size=\"%zu\"/>\n"
-          "<system type=\"current\" size=\"%zu\"/>\n"
-          "<system type=\"max\" size=\"%zu\"/>\n"
-          "<aspace type=\"total\" size=\"%zu\"/>\n"
-          "<aspace type=\"mprotect\" size=\"%zu\"/>\n"
-          "</malloc>\n",
-          total_nfastblocks, total_fastavail, total_nblocks, total_avail,
-+         mp_.n_mmaps, mp_.mmapped_mem,
-          total_system, total_max_system,
-          total_aspace, total_aspace_mprotect);
diff --git a/src/patches/glibc/glibc-rh1028285.patch b/src/patches/glibc/glibc-rh1028285.patch
deleted file mode 100644 (file)
index 3bf8c4f..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-From a5675717e35a02a3eba7e13701c6f9c0d7222e13 Mon Sep 17 00:00:00 2001
-From: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
-Date: Fri, 7 Jun 2013 14:50:23 -0500
-Subject: [PATCH 2/2] PowerPC: gettimeofday optimization by using IFUNC
-
-Backport of ef26eece6331a1f6d959818e37c438cc7ce68e53 from master.
----
- sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h |   10 ++++
- sysdeps/unix/sysv/linux/powerpc/gettimeofday.c   |   49 +++++++++++++++-------
- 2 files changed, 44 insertions(+), 15 deletions(-)
-
-commit 76a9b9986141b1a7d9fd290c349d27fcee780c7a
-Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
-Date:   Thu Nov 7 05:34:22 2013 -0600
-
-    PowerPC: Fix vDSO missing ODP entries
-    
-    This patch fixes the vDSO symbol used directed in IFUNC resolver where
-    they do not have an associated ODP entry leading to undefined behavior
-    in some cases. It adds an artificial OPD static entry to such cases
-    and set its TOC to non 0 to avoid triggering lazy resolutions.
-
-commit d98720e07f67fbeec00f9e1347840404240d3c48
-Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
-Date:   Mon Jan 20 12:29:51 2014 -0600
-
-    PowerPC: Fix gettimeofday ifunc selection
-    
-    The IFUNC selector for gettimeofday runs before _libc_vdso_platform_setup where
-    __vdso_gettimeofday is set. The selector then sets __gettimeofday (the internal
-    version used within GLIBC) to use the system call version instead of the vDSO one.
-    This patch changes the check if vDSO is available to get its value directly
-    instead of rely on __vdso_gettimeofday.
-    
-    This patch changes it by getting the vDSO value directly.
-    
-    It fixes BZ#16431.
-
-diff -pruN a/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
---- a/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h 2014-05-20 14:46:51.026871920 +0530
-+++ b/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h 2014-05-20 14:44:39.294877321 +0530
-@@ -33,6 +33,36 @@ extern void *__vdso_get_tbfreq;
- extern void *__vdso_getcpu;
-+#if defined(__PPC64__) || defined(__powerpc64__)
-+/* The correct solution is for _dl_vdso_vsym to return the address of the OPD
-+   for the kernel VDSO function.  That address would then be stored in the
-+   __vdso_* variables and returned as the result of the IFUNC resolver function.
-+   Yet, the kernel does not contain any OPD entries for the VDSO functions
-+   (incomplete implementation).  However, PLT relocations for IFUNCs still expect
-+   the address of an OPD to be returned from the IFUNC resolver function (since
-+   PLT entries on PPC64 are just copies of OPDs).  The solution for now is to
-+   create an artificial static OPD for each VDSO function returned by a resolver
-+   function.  The TOC value is set to a non-zero value to avoid triggering lazy
-+   symbol resolution via .glink0/.plt0 for a zero TOC (requires thread-safe PLT
-+   sequences) when the dynamic linker isn't prepared for it e.g. RTLD_NOW.  None
-+   of the kernel VDSO routines use the TOC or AUX values so any non-zero value
-+   will work.  Note that function pointer comparisons will not use this artificial
-+   static OPD since those are resolved via ADDR64 relocations and will point at
-+   the non-IFUNC default OPD for the symbol.  Lastly, because the IFUNC relocations
-+   are processed immediately at startup the resolver functions and this code need
-+   not be thread-safe, but if the caller writes to a PLT slot it must do so in a
-+   thread-safe manner with all the required barriers.  */
-+#define VDSO_IFUNC_RET(value)                            \
-+  ({                                                     \
-+    static Elf64_FuncDesc vdso_opd = { .fd_toc = ~0x0 }; \
-+    vdso_opd.fd_func = (Elf64_Addr)value;                \
-+    &vdso_opd;                                           \
-+  })
-+
-+#else
-+#define VDSO_IFUNC_RET(value)  ((void *) (value))
-+#endif
-+
- #endif
- #endif /* _LIBC_VDSO_H */
-diff -pruN a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
---- a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c   2010-05-04 16:57:23.000000000 +0530
-+++ b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c   2014-05-20 14:44:39.298877321 +0530
-@@ -16,27 +16,51 @@
-    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-    02111-1307 USA.  */
--#include <sysdep.h>
--#include <bp-checks.h>
--#include <stddef.h>
- #include <sys/time.h>
--#include <time.h>
--#include <hp-timing.h>
--#undef __gettimeofday
--#include <bits/libc-vdso.h>
-+#ifdef SHARED
--/* Get the current time of day and timezone information,
--   putting it into *TV and *TZ.  If TZ is NULL, *TZ is not filled.
--   Returns 0 on success, -1 on errors.  */
--
--int
--__gettimeofday (tv, tz)
--     struct timeval *tv;
--     struct timezone *tz;
-+# include <dl-vdso.h>
-+# include <bits/libc-vdso.h>
-+# include <dl-machine.h>
-+
-+void *gettimeofday_ifunc (void) __asm__ ("__gettimeofday");
-+
-+static int
-+__gettimeofday_syscall (struct timeval *tv, struct timezone *tz)
-+{
-+  return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
-+}
-+
-+void *
-+gettimeofday_ifunc (void)
-+{
-+  PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565);
-+
-+  /* If the vDSO is not available we fall back syscall.  */
-+  void *vdso_gettimeofday = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2615);
-+  return (vdso_gettimeofday ? VDSO_IFUNC_RET (vdso_gettimeofday)
-+        : (void*)__gettimeofday_syscall);
-+}
-+asm (".type __gettimeofday, %gnu_indirect_function");
-+
-+/* This is doing "libc_hidden_def (__gettimeofday)" but the compiler won't
-+   let us do it in C because it doesn't know we're defining __gettimeofday
-+   here in this file.  */
-+asm (".globl __GI___gettimeofday\n"
-+     "__GI___gettimeofday = __gettimeofday");
-+
-+#else
-+
-+# include <sysdep.h>
-+# include <errno.h>
-+
-+int
-+__gettimeofday (struct timeval *tv, struct timezone *tz)
- {
--  return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz));
-+  return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
- }
-+#endif
- INTDEF (__gettimeofday)
- weak_alias (__gettimeofday, gettimeofday)
diff --git a/src/patches/glibc/glibc-rh1032628.patch b/src/patches/glibc/glibc-rh1032628.patch
deleted file mode 100644 (file)
index 6140c19..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-commit 028478fa40d85a73b19638dbe3f83b1acebf370c
-Author: Ulrich Drepper <drepper@gmail.com>
-Date:   Thu Mar 10 12:51:33 2011 -0500
-
-    Fix copy relocations handling of unique objects.
-
- 2011-03-06  Ulrich Drepper  <drepper@gmail.com>
-
-and a part of:
-
-commit 33f85a3fb9fe432e0ebf6a3481bc2d5e29cb605f
-Author: Ulrich Drepper <drepper@gmail.com>
-Date:   Thu Mar 10 03:18:21 2011 -0500
-
-    Don't run tests checking xecutable stack when SELinux is enforcing.
-
-since the latter incorrectly had a bit of the former changes.
-
-Additionally, the test case needs -lstdc++ to build.
-
-diff --git a/elf/Makefile b/elf/Makefile
-index c427679..56cb1b1 100644
---- a/elf/Makefile
-+++ b/elf/Makefile
-@@ -201,7 +201,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
-        unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \
-        tst-audit1 tst-audit2 tst-audit9 \
-        tst-stackguard1 tst-addr1 tst-thrlock \
--       tst-unique1 tst-unique2
-+       tst-unique1 tst-unique2 tst-unique3
- #      reldep9
- test-srcs = tst-pathopt
- tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog
-@@ -255,6 +255,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
-               order2mod1 order2mod2 order2mod3 order2mod4 \
-               tst-unique1mod1 tst-unique1mod2 \
-               tst-unique2mod1 tst-unique2mod2 \
-+              tst-unique3lib tst-unique3lib2 \
-               tst-auditmod9a tst-auditmod9b
- ifeq (yes,$(have-initfini-array))
- modules-names += tst-array2dep tst-array5dep
-@@ -1178,6 +1179,11 @@ $(objpfx)tst-unique1.out: $(objpfx)tst-unique1mod1.so \
- $(objpfx)tst-unique2: $(libdl) $(objpfx)tst-unique2mod1.so
- $(objpfx)tst-unique2.out: $(objpfx)tst-unique2mod2.so
-+LDLIBS-tst-unique3lib.so = -lstdc++
-+LDLIBS-tst-unique3lib2.so = -lstdc++
-+$(objpfx)tst-unique3: $(libdl) $(objpfx)tst-unique3lib.so
-+$(objpfx)tst-unique3.out: $(objpfx)tst-unique3lib2.so
-+
- ifeq (yes,$(config-cflags-avx))
- CFLAGS-tst-audit4.c += -mavx
- CFLAGS-tst-auditmod4a.c += -mavx
-diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
-index 78c8669..874a4bb 100644
---- a/elf/dl-lookup.c
-+++ b/elf/dl-lookup.c
-@@ -364,8 +363,19 @@ do_lookup_x (const char *undef_name, uint_fast32_t new_hash,
-                     if (entries[idx].hashval == new_hash
-                         && strcmp (entries[idx].name, undef_name) == 0)
-                       {
--                        result->s = entries[idx].sym;
--                        result->m = (struct link_map *) entries[idx].map;
-+                        if ((type_class & ELF_RTYPE_CLASS_COPY) != 0)
-+                          {
-+                            /* We possibly have to initialize the central
-+                               copy from the copy addressed through the
-+                               relocation.  */
-+                            result->s = sym;
-+                            result->m = (struct link_map *) map;
-+                          }
-+                        else
-+                          {
-+                            result->s = entries[idx].sym;
-+                            result->m = (struct link_map *) entries[idx].map;
-+                          }
-                         __rtld_lock_unlock_recursive (tab->lock);
-                         return 1;
-                       }
-diff --git a/elf/tst-unique3.cc b/elf/tst-unique3.cc
-new file mode 100644
-index 0000000..b2c9593
---- /dev/null
-+++ b/elf/tst-unique3.cc
-@@ -0,0 +1,23 @@
-+#include "tst-unique3.h"
-+#include <cstdio>
-+#include "../dlfcn/dlfcn.h"
-+
-+int t = S<char>::i;
-+
-+int
-+main (void)
-+{
-+  std::printf ("%d %d\n", S<char>::i, t);
-+  int result = S<char>::i++ != 1 || t != 1;
-+  result |= in_lib ();
-+  void *d = dlopen ("$ORIGIN/tst-unique3lib2.so", RTLD_LAZY);
-+  int (*fp) ();
-+  if (d == NULL || (fp = (int(*)()) dlsym (d, "in_lib2")) == NULL)
-+    {
-+      std::printf ("failed to get symbol in_lib2\n");
-+      return 1;
-+    }
-+  result |= fp ();
-+  dlclose (d);
-+  return result;
-+}
-diff --git a/elf/tst-unique3.h b/elf/tst-unique3.h
-new file mode 100644
-index 0000000..716d236
---- /dev/null
-+++ b/elf/tst-unique3.h
-@@ -0,0 +1,8 @@
-+// BZ 12510
-+template<typename T>
-+struct S
-+{
-+  static int i;
-+};
-+
-+extern int in_lib (void);
-diff --git a/elf/tst-unique3lib.cc b/elf/tst-unique3lib.cc
-new file mode 100644
-index 0000000..fa8e85a
---- /dev/null
-+++ b/elf/tst-unique3lib.cc
-@@ -0,0 +1,11 @@
-+#include <cstdio>
-+#include "tst-unique3.h"
-+template<typename T> int S<T>::i = 1;
-+static int i = S<char>::i;
-+
-+int
-+in_lib (void)
-+{
-+  std::printf ("in_lib: %d %d\n", S<char>::i, i);
-+  return S<char>::i++ != 2 || i != 1;
-+}
-diff --git a/elf/tst-unique3lib2.cc b/elf/tst-unique3lib2.cc
-new file mode 100644
-index 0000000..17d817e
---- /dev/null
-+++ b/elf/tst-unique3lib2.cc
-@@ -0,0 +1,12 @@
-+#include <cstdio>
-+#include "tst-unique3.h"
-+
-+template<typename T> int S<T>::i;
-+
-+extern "C"
-+int
-+in_lib2 ()
-+{
-+  std::printf ("in_lib2: %d\n", S<char>::i);
-+  return S<char>::i != 3;
-+}
-diff --git a/include/bits/dlfcn.h b/include/bits/dlfcn.h
-index cb4a5c2..c31a645 100644
---- a/include/bits/dlfcn.h
-+++ b/include/bits/dlfcn.h
-@@ -1,4 +1,3 @@
- #include_next <bits/dlfcn.h>
--extern void _dl_mcount_wrapper_check (void *__selfpc);
- libc_hidden_proto (_dl_mcount_wrapper_check)
diff --git a/src/patches/glibc/glibc-rh1039988.patch b/src/patches/glibc/glibc-rh1039988.patch
deleted file mode 100644 (file)
index 253b311..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-commit 9a3c6a6ff602c88d7155139a7d7d0000b7b7e946
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Thu Jan 2 10:05:27 2014 +0530
-
-    Fix return code from getent netgroup when the netgroup is not found (bz #16366)
-    
-    nscd incorrectly returns a success even when the netgroup in question
-    is not found and adds a positive result in the cache.  this patch
-    fixes this behaviour by adding a negative lookup entry to cache and
-    returning an error when the netgroup is not found.
-
-diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
-index 50936ee..9fc1664 100644
---- a/nscd/netgroupcache.c
-+++ b/nscd/netgroupcache.c
-@@ -65,6 +65,55 @@ struct dataset
-   char strdata[0];
- };
-+/* Sends a notfound message and prepares a notfound dataset to write to the
-+   cache.  Returns true if there was enough memory to allocate the dataset and
-+   returns the dataset in DATASETP, total bytes to write in TOTALP and the
-+   timeout in TIMEOUTP.  KEY_COPY is set to point to the copy of the key in the
-+   dataset. */
-+static bool
-+do_notfound (struct database_dyn *db, int fd, request_header *req,
-+             const char *key, struct dataset **datasetp, ssize_t *totalp,
-+             time_t *timeoutp, char **key_copy)
-+{
-+  struct dataset *dataset;
-+  ssize_t total;
-+  time_t timeout;
-+  bool cacheable = false;
-+
-+  total = sizeof (notfound);
-+  timeout = time (NULL) + db->negtimeout;
-+
-+  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)
-+    {
-+      dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
-+      dataset->head.recsize = total;
-+      dataset->head.notfound = true;
-+      dataset->head.nreloads = 0;
-+      dataset->head.usable = true;
-+
-+      /* Compute the timeout time.  */
-+      timeout = dataset->head.timeout = time (NULL) + db->negtimeout;
-+      dataset->head.ttl = db->negtimeout;
-+
-+      /* This is the reply.  */
-+      memcpy (&dataset->resp, &notfound, total);
-+
-+      /* Copy the key data.  */
-+      memcpy (dataset->strdata, key, req->key_len);
-+      *key_copy = dataset->strdata;
-+
-+      cacheable = true;
-+    }
-+  *timeoutp = timeout;
-+  *totalp = total;
-+  *datasetp = dataset;
-+  return cacheable;
-+}
- static time_t
- addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-@@ -84,6 +133,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-   struct dataset *dataset;
-   bool cacheable = false;
-   ssize_t total;
-+  bool found = false;
-   char *key_copy = NULL;
-   struct __netgrent data;
-@@ -103,35 +153,8 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-       && __nss_database_lookup ("netgroup", NULL, NULL, &netgroup_database))
-     {
-       /* No such service.  */
--      total = sizeof (notfound);
--      timeout = time (NULL) + db->negtimeout;
--
--      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)
--      {
--        dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
--        dataset->head.recsize = total;
--        dataset->head.notfound = true;
--        dataset->head.nreloads = 0;
--        dataset->head.usable = true;
--
--        /* Compute the timeout time.  */
--        timeout = dataset->head.timeout = time (NULL) + db->negtimeout;
--        dataset->head.ttl = db->negtimeout;
--
--        /* This is the reply.  */
--        memcpy (&dataset->resp, &notfound, total);
--
--        /* Copy the key data.  */
--        memcpy (dataset->strdata, key, req->key_len);
--
--        cacheable = true;
--      }
--
-+      cacheable = do_notfound (db, fd, req, key, &dataset, &total, &timeout,
-+                             &key_copy);
-       goto writeout;
-     }
-@@ -167,6 +190,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-         if (status == NSS_STATUS_SUCCESS)
-           {
-+            found = true;
-             union
-             {
-               enum nss_status (*f) (struct __netgrent *, char *, size_t,
-@@ -326,6 +350,15 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-       }
-     }
-+  /* No results.  Return a failure and write out a notfound record in the
-+     cache.  */
-+  if (!found)
-+    {
-+      cacheable = do_notfound (db, fd, req, key, &dataset, &total, &timeout,
-+                             &key_copy);
-+      goto writeout;
-+    }
-+
-   total = buffilled;
-   /* Fill in the dataset.  */
diff --git a/src/patches/glibc/glibc-rh1043557.patch b/src/patches/glibc/glibc-rh1043557.patch
deleted file mode 100644 (file)
index affbe96..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-commit af37a8a3496327a6e5617a2c76f17aa1e8db835e
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Mon Jan 27 11:32:44 2014 +0530
-
-    Avoid undefined behaviour in netgroupcache
-    
-    Using a buffer after it has been reallocated is undefined behaviour,
-    so get offsets of the triplets in the old buffer before reallocating
-    it.
-
-commit 5d41dadf31bc8a2f9c34c40d52a442d3794e405c
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Fri Jan 24 13:51:15 2014 +0530
-
-    Adjust pointers to triplets in netgroup query data (BZ #16474)
-    
-    The _nss_*_getnetgrent_r query populates the netgroup results in the
-    allocated buffer and then sets the result triplet to point to strings
-    in the buffer.  This is a problem when the buffer is reallocated since
-    the pointers to the triplet strings are no longer valid.  The pointers
-    need to be adjusted so that they now point to strings in the
-    reallocated buffer.
-
-commit 980cb5180e1b71224a57ca52b995c959b7148c09
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Thu Jan 16 10:20:22 2014 +0530
-
-    Don't use alloca in addgetnetgrentX (BZ #16453)
-
-    addgetnetgrentX has a buffer which is grown as per the needs of the
-    requested size either by using alloca or by falling back to malloc if
-    the size is larger than 1K.  There are two problems with the alloca
-    bits: firstly, it doesn't really extend the buffer since it does not
-    use the return value of the extend_alloca macro, which is the location
-    of the reallocated buffer.  Due to this the buffer does not actually
-    extend itself and hence a subsequent write may overwrite stuff on the
-    stack.
-
-    The second problem is more subtle - the buffer growth on the stack is
-    discontinuous due to block scope local variables.  Combine that with
-    the fact that unlike realloc, extend_alloca does not copy over old
-    content and you have a situation where the buffer just has garbage in
-    the space where it should have had data.
-
-    This could have been fixed by adding code to copy over old data
-    whenever we call extend_alloca, but it seems unnecessarily
-    complicated.  This code is not exactly a performance hotspot (it's
-    called when there is a cache miss, so factors like network lookup or
-    file reads will dominate over memory allocation/reallocation), so this
-    premature optimization is unnecessary.
-    
-    Thanks Brad Hubbard <bhubbard@redhat.com> for his help with debugging
-    the problem.
-
-diff -pruN glibc-2.12-2-gc4ccff1/nscd/netgroupcache.c glibc-2.12-2-gc4ccff1.patched/nscd/netgroupcache.c
---- glibc-2.12-2-gc4ccff1/nscd/netgroupcache.c 2014-04-09 12:13:58.618582111 +0530
-+++ glibc-2.12-2-gc4ccff1.patched/nscd/netgroupcache.c 2014-04-09 12:07:21.486598665 +0530
-@@ -93,7 +93,6 @@ addgetnetgrentX (struct database_dyn *db
-   size_t buffilled = sizeof (*dataset);
-   char *buffer = NULL;
-   size_t nentries = 0;
--  bool use_malloc = false;
-   size_t group_len = strlen (key) + 1;
-   union
-   {
-@@ -138,7 +137,7 @@ addgetnetgrentX (struct database_dyn *db
-     }
-   memset (&data, '\0', sizeof (data));
--  buffer = alloca (buflen);
-+  buffer = xmalloc (buflen);
-   first_needed.elem.next = &first_needed.elem;
-   memcpy (first_needed.elem.name, key, group_len);
-   data.needed_groups = &first_needed.elem;
-@@ -218,21 +217,24 @@ addgetnetgrentX (struct database_dyn *db
-                               if (buflen - req->key_len - bufused < needed)
-                                 {
--                                  size_t newsize = MAX (2 * buflen,
--                                                        buflen + 2 * needed);
--                                  if (use_malloc || newsize > 1024 * 1024)
--                                    {
--                                      buflen = newsize;
--                                      char *newbuf = xrealloc (use_malloc
--                                                               ? buffer
--                                                               : NULL,
--                                                               buflen);
--
--                                      buffer = newbuf;
--                                      use_malloc = true;
--                                    }
--                                  else
--                                    extend_alloca (buffer, buflen, newsize);
-+                                  buflen += MAX (buflen, 2 * needed);
-+                                  /* Save offset in the old buffer.  We don't
-+                                     bother with the NULL check here since
-+                                     we'll do that later anyway.  */
-+                                  size_t nhostdiff = nhost - buffer;
-+                                  size_t nuserdiff = nuser - buffer;
-+                                  size_t ndomaindiff = ndomain - buffer;
-+
-+                                  char *newbuf = xrealloc (buffer, buflen);
-+                                  /* Fix up the triplet pointers into the new
-+                                     buffer.  */
-+                                  nhost = (nhost ? newbuf + nhostdiff
-+                                           : NULL);
-+                                  nuser = (nuser ? newbuf + nuserdiff
-+                                           : NULL);
-+                                  ndomain = (ndomain ? newbuf + ndomaindiff
-+                                             : NULL);
-+                                  buffer = newbuf;
-                                 }
-                               nhost = memcpy (buffer + bufused,
-@@ -299,18 +301,8 @@ addgetnetgrentX (struct database_dyn *db
-                     }
-                   else if (status == NSS_STATUS_UNAVAIL && e == ERANGE)
-                     {
--                      size_t newsize = 2 * buflen;
--                      if (use_malloc || newsize > 1024 * 1024)
--                        {
--                          buflen = newsize;
--                          char *newbuf = xrealloc (use_malloc
--                                                   ? buffer : NULL, buflen);
--
--                          buffer = newbuf;
--                          use_malloc = true;
--                        }
--                      else
--                        extend_alloca (buffer, buflen, newsize);
-+                      buflen *= 2;
-+                      buffer = xrealloc (buffer, buflen);
-                     }
-                 }
-@@ -446,8 +438,7 @@ addgetnetgrentX (struct database_dyn *db
-     }
-  out:
--  if (use_malloc)
--    free (buffer);
-+  free (buffer);
-   *resultp = dataset;
diff --git a/src/patches/glibc/glibc-rh1044628.patch b/src/patches/glibc/glibc-rh1044628.patch
deleted file mode 100644 (file)
index e5ff3ca..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-commit cf26a0cb6a0bbaca46a01ddad6662e5e5159a32a
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Thu May 15 12:33:11 2014 +0530
-
-    Return EAI_AGAIN for AF_UNSPEC when herrno is TRY_AGAIN (BZ #16849)
-    
-    getaddrinfo correctly returns EAI_AGAIN for AF_INET and AF_INET6
-    queries.  For AF_UNSPEC however, an older change
-    (a682a1bf553b1efe4dbb03207fece5b719cec482) broke the check and due to
-    that the returned error was EAI_NONAME.
-    
-    This patch fixes the check so that a non-authoritative not-found is
-    returned as EAI_AGAIN to the user instead of EAI_NONAME.
-
-diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
-index 6258330..8f392b9 100644
---- a/sysdeps/posix/getaddrinfo.c
-+++ b/sysdeps/posix/getaddrinfo.c
-@@ -867,8 +867,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
-                     if (status != NSS_STATUS_TRYAGAIN
-                         || rc != ERANGE || herrno != NETDB_INTERNAL)
-                       {
--                        if (status == NSS_STATUS_TRYAGAIN
--                            && herrno == TRY_AGAIN)
-+                        if (herrno == TRY_AGAIN)
-                           no_data = EAI_AGAIN;
-                         else
-                           no_data = herrno == NO_DATA;
diff --git a/src/patches/glibc/glibc-rh1053178.patch b/src/patches/glibc/glibc-rh1053178.patch
deleted file mode 100644 (file)
index a662cfe..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-#
-# Based on the commit:
-#
-# commit 6c82a2f8d7c8e21e39237225c819f182ae438db3
-# Author: Carlos O'Donell <carlos@redhat.com>
-# Date:   Fri Sep 6 01:02:30 2013 -0400
-#
-#    Coordinate IPv6 definitions for Linux and glibc
-#    
-#    This change synchronizes the glibc headers with the Linux kernel
-#    headers and arranges to coordinate the definition of structures
-#    already defined the Linux kernel UAPI headers.
-#    
-#    It is now safe to include glibc's netinet/in.h or Linux's linux/in6.h
-#    in any order in a userspace application and you will get the same
-#    ABI. The ABI is guaranteed by UAPI and glibc.
-#
-# 2013-09-05  Carlos O'Donell  <carlos@redhat.com>
-#          Cong Wang  <amwang@redhat.com>
-# 
-#      * sysdeps/unix/sysv/linux/bits/in.h
-#      [_UAPI_LINUX_IN6_H]: Define __USE_KERNEL_IPV6_DEFS.
-#      * inet/netinet/in.h: Move in_addr definition and bits/in.h inclusion
-#      before __USE_KERNEL_IPV6_DEFS uses.
-#      * inet/netinet/in.h [!__USE_KERNEL_IPV6_DEFS]: Define IPPROTO_MH, and
-#      IPPROTO_BEETPH.
-#      [__USE_KERNEL_IPV6_DEFS]: Don't define any of IPPROTO_*, in6_addr,
-#      sockaddr_in6, or ipv6_mreq.
-# 
-diff -urN glibc-2.12-2-gc4ccff1/inet/netinet/in.h glibc-2.12-2-gc4ccff1.mod/inet/netinet/in.h
---- glibc-2.12-2-gc4ccff1/inet/netinet/in.h    2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/inet/netinet/in.h        2015-02-18 13:06:56.436802873 -0500
-@@ -28,13 +28,21 @@
- __BEGIN_DECLS
-+/* Internet address.  */
-+typedef uint32_t in_addr_t;
-+struct in_addr
-+  {
-+    in_addr_t s_addr;
-+  };
-+
-+/* Get system-specific definitions.  */
-+#include <bits/in.h>
-+
- /* Standard well-defined IP protocols.  */
- enum
-   {
-     IPPROTO_IP = 0,      /* Dummy protocol for TCP.  */
- #define IPPROTO_IP            IPPROTO_IP
--    IPPROTO_HOPOPTS = 0,   /* IPv6 Hop-by-Hop options.  */
--#define IPPROTO_HOPOPTS               IPPROTO_HOPOPTS
-     IPPROTO_ICMP = 1,    /* Internet Control Message Protocol.  */
- #define IPPROTO_ICMP          IPPROTO_ICMP
-     IPPROTO_IGMP = 2,    /* Internet Group Management Protocol. */
-@@ -57,10 +65,6 @@
- #define IPPROTO_DCCP          IPPROTO_DCCP
-     IPPROTO_IPV6 = 41,     /* IPv6 header.  */
- #define IPPROTO_IPV6          IPPROTO_IPV6
--    IPPROTO_ROUTING = 43,  /* IPv6 routing header.  */
--#define IPPROTO_ROUTING               IPPROTO_ROUTING
--    IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header.  */
--#define IPPROTO_FRAGMENT      IPPROTO_FRAGMENT
-     IPPROTO_RSVP = 46,           /* Reservation Protocol.  */
- #define IPPROTO_RSVP          IPPROTO_RSVP
-     IPPROTO_GRE = 47,    /* General Routing Encapsulation.  */
-@@ -69,14 +73,10 @@
- #define IPPROTO_ESP           IPPROTO_ESP
-     IPPROTO_AH = 51,       /* authentication header.  */
- #define IPPROTO_AH            IPPROTO_AH
--    IPPROTO_ICMPV6 = 58,   /* ICMPv6.  */
--#define IPPROTO_ICMPV6                IPPROTO_ICMPV6
--    IPPROTO_NONE = 59,     /* IPv6 no next header.  */
--#define IPPROTO_NONE          IPPROTO_NONE
--    IPPROTO_DSTOPTS = 60,  /* IPv6 destination options.  */
--#define IPPROTO_DSTOPTS               IPPROTO_DSTOPTS
-     IPPROTO_MTP = 92,    /* Multicast Transport Protocol.  */
- #define IPPROTO_MTP           IPPROTO_MTP
-+    IPPROTO_BEETPH = 94,   /* IP option pseudo header for BEET.  */
-+#define IPPROTO_BEETPH                IPPROTO_BEETPH
-     IPPROTO_ENCAP = 98,          /* Encapsulation Header.  */
- #define IPPROTO_ENCAP         IPPROTO_ENCAP
-     IPPROTO_PIM = 103,           /* Protocol Independent Multicast.  */
-@@ -92,6 +92,28 @@
-     IPPROTO_MAX
-   };
-+/* If __USER_KERNEL_IPV6_DEFS is defined then the user has included the kernel
-+   network headers first and we should use those ABI-identical definitions
-+   instead of our own.  */
-+#ifndef __USE_KERNEL_IPV6_DEFS
-+enum
-+  {
-+    IPPROTO_HOPOPTS = 0,   /* IPv6 Hop-by-Hop options.  */
-+#define IPPROTO_HOPOPTS               IPPROTO_HOPOPTS
-+    IPPROTO_ROUTING = 43,  /* IPv6 routing header.  */
-+#define IPPROTO_ROUTING               IPPROTO_ROUTING
-+    IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header.  */
-+#define IPPROTO_FRAGMENT      IPPROTO_FRAGMENT
-+    IPPROTO_ICMPV6 = 58,   /* ICMPv6.  */
-+#define IPPROTO_ICMPV6                IPPROTO_ICMPV6
-+    IPPROTO_NONE = 59,     /* IPv6 no next header.  */
-+#define IPPROTO_NONE          IPPROTO_NONE
-+    IPPROTO_DSTOPTS = 60,  /* IPv6 destination options.  */
-+#define IPPROTO_DSTOPTS               IPPROTO_DSTOPTS
-+    IPPROTO_MH = 135,      /* IPv6 mobility header.  */
-+#define IPPROTO_MH            IPPROTO_MH
-+  };
-+#endif /* !__USE_KERNEL_IPV6_DEFS */
- /* Type to represent a port.  */
- typedef uint16_t in_port_t;
-@@ -136,15 +158,6 @@
-     IPPORT_USERRESERVED = 5000
-   };
--
--/* Internet address.  */
--typedef uint32_t in_addr_t;
--struct in_addr
--  {
--    in_addr_t s_addr;
--  };
--
--
- /* Definitions of the bits in an Internet address integer.
-    On subnets, host and network parts are found according to
-@@ -193,7 +206,7 @@
- #define INADDR_ALLRTRS_GROUP    ((in_addr_t) 0xe0000002) /* 224.0.0.2 */
- #define INADDR_MAX_LOCAL_GROUP  ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */
--
-+#ifndef __USE_KERNEL_IPV6_DEFS
- /* IPv6 address */
- struct in6_addr
-   {
-@@ -211,6 +224,7 @@
- # define s6_addr32            __in6_u.__u6_addr32
- #endif
-   };
-+#endif /* !__USE_KERNEL_IPV6_DEFS */
- extern const struct in6_addr in6addr_any;        /* :: */
- extern const struct in6_addr in6addr_loopback;   /* ::1 */
-@@ -235,6 +249,7 @@
-                          sizeof (struct in_addr)];
-   };
-+#ifndef __USE_KERNEL_IPV6_DEFS
- /* Ditto, for IPv6.  */
- struct sockaddr_in6
-   {
-@@ -244,7 +259,7 @@
-     struct in6_addr sin6_addr;        /* IPv6 address */
-     uint32_t sin6_scope_id;   /* IPv6 scope-id */
-   };
--
-+#endif /* !__USE_KERNEL_IPV6_DEFS */
- #if defined __USE_MISC || defined __USE_GNU
- /* IPv4 multicast request.  */
-@@ -270,7 +285,7 @@
-   };
- #endif
--
-+#ifndef __USE_KERNEL_IPV6_DEFS
- /* Likewise, for IPv6.  */
- struct ipv6_mreq
-   {
-@@ -280,7 +295,7 @@
-     /* local interface */
-     unsigned int ipv6mr_interface;
-   };
--
-+#endif /* !__USE_KERNEL_IPV6_DEFS */
- #if defined __USE_MISC || defined __USE_GNU
- /* Multicast group request.  */
-@@ -351,10 +366,6 @@
-                                     * sizeof (struct sockaddr_storage)))
- #endif
--
--/* Get system-specific definitions.  */
--#include <bits/in.h>
--
- /* Functions to convert between host and network byte order.
-    Please note that these functions normally take `unsigned long int' or
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/in.h glibc-2.12-2-gc4ccff1.mod/sysdeps/unix/sysv/linux/bits/in.h
---- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/in.h    2015-02-18 13:04:15.547734092 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/unix/sysv/linux/bits/in.h        2015-02-18 13:06:56.436802873 -0500
-@@ -22,6 +22,18 @@
- # error "Never use <bits/in.h> directly; include <netinet/in.h> instead."
- #endif
-+/* If the application has already included linux/in6.h from a linux-based
-+   kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
-+   defines), sockaddr_in6, or ipv6_mreq.  The ABI used by the linux-kernel and
-+   glibc match exactly.  Neither the linux kernel nor glibc should break this
-+   ABI without coordination.  */
-+#ifdef _UAPI_LINUX_IN6_H
-+/* This is not quite the same API since the kernel always defines s6_addr16 and
-+   s6_addr32. This is not a violation of POSIX since POSIX says "at least the
-+   following member" and that holds true.  */
-+# define __USE_KERNEL_IPV6_DEFS
-+#endif
-+
- /* Options for use with `getsockopt' and `setsockopt' at the IP level.
-    The first word in the comment at the right is the data type used;
-    "bool" means a boolean value stored in an `int'.  */
diff --git a/src/patches/glibc/glibc-rh1054846.patch b/src/patches/glibc/glibc-rh1054846.patch
deleted file mode 100644 (file)
index 50b4109..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-commit fbd6b5a4052316f7eb03c4617eebfaafc59dcc06
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Thu Mar 27 07:15:22 2014 +0530
-
-    Fix nscd lookup for innetgr when netgroup has wildcards (BZ #16758)
-    
-    nscd works correctly when the request in innetgr is a wildcard,
-    i.e. when one or more of host, user or domain parameters is NULL.
-    However, it does not work when the the triplet in the netgroup
-    definition has a wildcard.  This is easy to reproduce for a triplet
-    defined as follows:
-    
-        foonet (,foo,)
-    
-    Here, an innetgr call that looks like this:
-    
-        innetgr ("foonet", "foohost", "foo", NULL);
-    
-    should succeed and so should:
-    
-        innetgr ("foonet", NULL, "foo", "foodomain");
-    
-    It does succeed with nscd disabled, but not with nscd enabled.  This
-    fix adds this additional check for all three parts of the triplet so
-    that it gives the correct result.
-    
-       [BZ #16758]
-       * nscd/netgroupcache.c (addinnetgrX): Succeed if triplet has
-       blank values.
-
-diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
-index 5ba1e1f..5d15aa4 100644
---- a/nscd/netgroupcache.c
-+++ b/nscd/netgroupcache.c
-@@ -560,15 +560,19 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
-       {
-         bool success = true;
--        if (host != NULL)
-+        /* For the host, user and domain in each triplet, we assume success
-+           if the value is blank because that is how the wildcard entry to
-+           match anything is stored in the netgroup cache.  */
-+        if (host != NULL && *triplets != '\0')
-           success = strcmp (host, triplets) == 0;
-         triplets = (const char *) rawmemchr (triplets, '\0') + 1;
--        if (success && user != NULL)
-+        if (success && user != NULL && *triplets != '\0')
-           success = strcmp (user, triplets) == 0;
-         triplets = (const char *) rawmemchr (triplets, '\0') + 1;
--        if (success && (domain == NULL || strcmp (domain, triplets) == 0))
-+        if (success && (domain == NULL || *triplets == '\0'
-+                        || strcmp (domain, triplets) == 0))
-           {
-             dataset->resp.result = 1;
-             break;
diff --git a/src/patches/glibc/glibc-rh1066724.patch b/src/patches/glibc/glibc-rh1066724.patch
deleted file mode 100644 (file)
index a03f1d1..0000000
+++ /dev/null
@@ -1,620 +0,0 @@
-diff --git a/malloc/Makefile b/malloc/Makefile
-index e7ec1ab..5330a3b 100644
---- a/malloc/Makefile
-+++ b/malloc/Makefile
-@@ -27,7 +27,8 @@ all:
- dist-headers := malloc.h
- headers := $(dist-headers) obstack.h mcheck.h
- tests := mallocbug tst-malloc tst-valloc tst-calloc tst-obstack \
--       tst-mallocstate tst-mcheck tst-mallocfork tst-trim1
-+       tst-mallocstate tst-mcheck tst-mallocfork tst-trim1 \
-+       tst-malloc-backtrace
- test-srcs = tst-mtrace
- distribute = thread-m.h mtrace.pl mcheck-init.c stackinfo.h memusage.h \
-@@ -49,6 +50,9 @@ extra-libs-others = $(extra-libs)
- libmemusage-routines = memusage
- libmemusage-inhibit-o = $(filter-out .os,$(object-suffixes))
-+$(objpfx)tst-malloc-backtrace: $(common-objpfx)nptl/libpthread.so \
-+                             $(common-objpfx)nptl/libpthread_nonshared.a
-+
- # These should be removed by `make clean'.
- extra-objs = mcheck-init.o libmcheck.a
-diff --git a/malloc/arena.c b/malloc/arena.c
-index 18bea2b..5180516 100644
---- a/malloc/arena.c
-+++ b/malloc/arena.c
-@@ -123,7 +123,7 @@ int __malloc_initialized = -1;
- #ifdef PER_THREAD
- #define arena_lock(ptr, size) do { \
--  if(ptr) \
-+  if(ptr && !arena_is_corrupt (ptr)) \
-     (void)mutex_lock(&ptr->mutex); \
-   else \
-     ptr = arena_get2(ptr, (size), false); \
-@@ -1011,7 +1011,21 @@ reused_arena (bool retrying)
-   if (retrying && result == &main_arena)
-     result = result->next;
--  /* No arena available.  Wait for the next in line.  */
-+  /* Make sure that the arena we get is not corrupted.  */
-+  mstate begin = result;
-+  while (arena_is_corrupt (result))
-+    {
-+      result = result->next;
-+      if (result == begin)
-+       break;
-+    }
-+
-+  /* We could not find any arena that was either not corrupted or not the one
-+     we wanted to avoid.  */
-+  if (result == begin)
-+    return NULL;
-+
-+  /* No arena available without contention.  Wait for the next in line.  */
-   (void)mutex_lock(&result->mutex);
-  out:
-diff --git a/malloc/hooks.c b/malloc/hooks.c
-index cc83d21..38d2542 100644
---- a/malloc/hooks.c
-+++ b/malloc/hooks.c
-@@ -220,7 +220,8 @@ top_check()
-     return 0;
-   mutex_unlock(&main_arena);
--  malloc_printerr (check_action, "malloc: top chunk is corrupt", t);
-+  malloc_printerr (check_action, "malloc: top chunk is corrupt", t,
-+                 &main_arena);
-   mutex_lock(&main_arena);
-   /* Try to set up a new top chunk. */
-@@ -283,7 +284,7 @@ free_check(mem, caller) Void_t* mem; const Void_t *caller;
-   if(!p) {
-     (void)mutex_unlock(&main_arena.mutex);
--    malloc_printerr(check_action, "free(): invalid pointer", mem);
-+    malloc_printerr(check_action, "free(): invalid pointer", mem, &main_arena);
-     return;
-   }
- #if HAVE_MMAP
-@@ -329,7 +330,8 @@ realloc_check(oldmem, bytes, caller)
-   const mchunkptr oldp = mem2chunk_check(oldmem, &magic_p);
-   (void)mutex_unlock(&main_arena.mutex);
-   if(!oldp) {
--    malloc_printerr(check_action, "realloc(): invalid pointer", oldmem);
-+    malloc_printerr(check_action, "realloc(): invalid pointer", oldmem,
-+                  &main_arena);
-     return malloc_check(bytes, NULL);
-   }
-   const INTERNAL_SIZE_T oldsize = chunksize(oldp);
-diff --git a/malloc/malloc.c b/malloc/malloc.c
-index 597c7b0..20ac534 100644
---- a/malloc/malloc.c
-+++ b/malloc/malloc.c
-@@ -1633,7 +1633,7 @@ static size_t   mUSABLe(Void_t*);
- static void     mSTATs(void);
- static int      mALLOPt(int, int);
- static struct mallinfo mALLINFo(mstate);
--static void malloc_printerr(int action, const char *str, void *ptr);
-+static void malloc_printerr(int action, const char *str, void *ptr, mstate av);
- static Void_t* internal_function mem2mem_check(Void_t *p, size_t sz);
- static int internal_function top_check(void);
-@@ -2114,7 +2114,8 @@ typedef struct malloc_chunk* mbinptr;
-   BK = P->bk;                                                          \
-   if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) {            \
-     mutex_unlock(&(AV)->mutex);                                              \
--    malloc_printerr (check_action, "corrupted double-linked list", P); \
-+    malloc_printerr (check_action, "corrupted double-linked list", P,  \
-+                   AV);                                              \
-     mutex_lock(&(AV)->mutex);                                        \
-   } else {                                                           \
-     FD->bk = BK;                                                       \
-@@ -2344,6 +2345,15 @@ typedef struct malloc_chunk* mfastbinptr;
- #define set_noncontiguous(M)   ((M)->flags |=  NONCONTIGUOUS_BIT)
- #define set_contiguous(M)      ((M)->flags &= ~NONCONTIGUOUS_BIT)
-+/* ARENA_CORRUPTION_BIT is set if a memory corruption was detected on the
-+   arena.  Such an arena is no longer used to allocate chunks.  Chunks
-+   allocated in that arena before detecting corruption are not freed.  */
-+
-+#define ARENA_CORRUPTION_BIT (4U)
-+
-+#define arena_is_corrupt(A)    (((A)->flags & ARENA_CORRUPTION_BIT))
-+#define set_arena_corrupt(A)   ((A)->flags |= ARENA_CORRUPTION_BIT)
-+
- /*
-    Set value of max_fast.
-    Use impossibly small value if 0.
-@@ -3002,8 +3012,9 @@ static Void_t* sYSMALLOc(nb, av) INTERNAL_SIZE_T nb; mstate av;
-     rather than expanding top.
-   */
--  if ((unsigned long)(nb) >= (unsigned long)(mp_.mmap_threshold) &&
--      (mp_.n_mmaps < mp_.n_mmaps_max)) {
-+  if (av == NULL
-+      || ((unsigned long)(nb) >= (unsigned long)(mp_.mmap_threshold) &&
-+        (mp_.n_mmaps < mp_.n_mmaps_max))) {
-     char* mm;             /* return value from mmap call*/
-@@ -3079,6 +3090,10 @@ static Void_t* sYSMALLOc(nb, av) INTERNAL_SIZE_T nb; mstate av;
-   }
- #endif
-+  /* There are no usable arenas and mmap also failed.  */
-+  if (av == NULL)
-+    return 0;
-+
-   /* Record incoming configuration of top */
-   old_top  = av->top;
-@@ -3260,7 +3275,7 @@ static Void_t* sYSMALLOc(nb, av) INTERNAL_SIZE_T nb; mstate av;
-     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);
-+      malloc_printerr (3, "break adjusted to free malloc space", brk, av);
-       mutex_lock(&av->mutex);
-     }
-@@ -3542,7 +3557,7 @@ munmap_chunk(p) mchunkptr p;
-   if (__builtin_expect (((block | total_size) & (mp_.pagesize - 1)) != 0, 0))
-     {
-       malloc_printerr (check_action, "munmap_chunk(): invalid pointer",
--                     chunk2mem (p));
-+                     chunk2mem (p), NULL);
-       return;
-     }
-@@ -3625,65 +3640,31 @@ public_mALLOc(size_t bytes)
-   if (__builtin_expect (hook != NULL, 0))
-     return (*hook)(bytes, RETURN_ADDRESS (0));
--  arena_lookup(ar_ptr);
--#if 0
--  // XXX We need double-word CAS and fastbins must be extended to also
--  // XXX hold a generation counter for each entry.
--  if (ar_ptr) {
--    INTERNAL_SIZE_T nb;               /* normalized request size */
--    checked_request2size(bytes, nb);
--    if (nb <= get_max_fast ()) {
--      long int idx = fastbin_index(nb);
--      mfastbinptr* fb = &fastbin (ar_ptr, idx);
--      mchunkptr pp = *fb;
--      mchunkptr v;
--      do
--      {
--        v = pp;
--        if (v == NULL)
--          break;
--      }
--      while ((pp = catomic_compare_and_exchange_val_acq (fb, v->fd, v)) != v);
--      if (v != 0) {
--      if (__builtin_expect (fastbin_index (chunksize (v)) != idx, 0))
--        malloc_printerr (check_action, "malloc(): memory corruption (fast)",
--                         chunk2mem (v));
--      check_remalloced_chunk(ar_ptr, v, nb);
--      void *p = chunk2mem(v);
--      if (__builtin_expect (perturb_byte, 0))
--        alloc_perturb (p, bytes);
--      return p;
--      }
--    }
--  }
--#endif
-+  arena_get(ar_ptr, bytes);
--  arena_lock(ar_ptr, bytes);
--  if(!ar_ptr)
--    return 0;
-   victim = _int_malloc(ar_ptr, bytes);
--  if(!victim) {
-+  if(!victim && ar_ptr != NULL) {
-     /* 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);
-       victim = _int_malloc(ar_ptr, bytes);
--      (void)mutex_unlock(&ar_ptr->mutex);
-     } else {
- #if USE_ARENAS
-       /* ... 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, true);
--      if(ar_ptr) {
-+      if(ar_ptr)
-       victim = _int_malloc(ar_ptr, bytes);
--      (void)mutex_unlock(&ar_ptr->mutex);
--      }
- #endif
-     }
--  } else
-+  }
-+
-+  if (ar_ptr != NULL)
-     (void)mutex_unlock(&ar_ptr->mutex);
-+
-   assert(!victim || chunk_is_mmapped(mem2chunk(victim)) ||
-        ar_ptr == arena_for_chunk(mem2chunk(victim)));
-   return victim;
-@@ -3773,6 +3754,11 @@ public_rEALLOc(Void_t* oldmem, size_t bytes)
-   /* its size */
-   const INTERNAL_SIZE_T oldsize = chunksize(oldp);
-+  if (chunk_is_mmapped (oldp))
-+    ar_ptr = NULL;
-+  else
-+    ar_ptr = arena_for_chunk (oldp);
-+
-   /* Little security check which won't hurt performance: the
-      allocator never wrapps around at the end of the address space.
-      Therefore we can exclude some size values which might appear
-@@ -3780,7 +3766,8 @@ public_rEALLOc(Void_t* oldmem, size_t bytes)
-   if (__builtin_expect ((uintptr_t) oldp > (uintptr_t) -oldsize, 0)
-       || __builtin_expect (misaligned_chunk (oldp), 0))
-     {
--      malloc_printerr (check_action, "realloc(): invalid pointer", oldmem);
-+      malloc_printerr (check_action, "realloc(): invalid pointer", oldmem,
-+                     ar_ptr);
-       return NULL;
-     }
-@@ -3806,7 +3793,6 @@ public_rEALLOc(Void_t* oldmem, size_t bytes)
-   }
- #endif
--  ar_ptr = arena_for_chunk(oldp);
- #if THREAD_STATS
-   if(!mutex_trylock(&ar_ptr->mutex))
-     ++(ar_ptr->stat_lock_direct);
-@@ -3887,31 +3873,29 @@ public_mEMALIGn(size_t alignment, size_t bytes)
-     }
-   arena_get(ar_ptr, bytes + alignment + MINSIZE);
--  if(!ar_ptr)
--    return 0;
-   p = _int_memalign(ar_ptr, alignment, bytes);
--  if(!p) {
-+  if(!p && ar_ptr != NULL) {
-     /* 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, alignment, bytes);
--      (void)mutex_unlock(&ar_ptr->mutex);
-     } else {
- #if USE_ARENAS
-       /* ... 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, true);
--      if(ar_ptr) {
-+      if(ar_ptr)
-       p = _int_memalign(ar_ptr, alignment, bytes);
--      (void)mutex_unlock(&ar_ptr->mutex);
--      }
- #endif
-     }
--  } else
-+  }
-+  
-+  if (ar_ptr != NULL)
-     (void)mutex_unlock(&ar_ptr->mutex);
-+
-   assert(!p || chunk_is_mmapped(mem2chunk(p)) ||
-        ar_ptr == arena_for_chunk(mem2chunk(p)));
-   return p;
-@@ -3945,31 +3929,29 @@ public_vALLOc(size_t bytes)
-     return (*hook)(pagesz, bytes, RETURN_ADDRESS (0));
-   arena_get(ar_ptr, bytes + pagesz + MINSIZE);
--  if(!ar_ptr)
--    return 0;
-   p = _int_valloc(ar_ptr, bytes);
--  if(!p) {
-+  if(!p && ar_ptr != NULL) {
-     /* 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);
--      (void)mutex_unlock(&ar_ptr->mutex);
-     } else {
- #if USE_ARENAS
-       /* ... 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, true);
--      if(ar_ptr) {
-+      if(ar_ptr)
-       p = _int_memalign(ar_ptr, pagesz, bytes);
--      (void)mutex_unlock(&ar_ptr->mutex);
--      }
- #endif
-     }
--  } else
-+  }
-+
-+  if (ar_ptr != NULL)
-     (void)mutex_unlock(&ar_ptr->mutex);
-+
-   assert(!p || chunk_is_mmapped(mem2chunk(p)) ||
-        ar_ptr == arena_for_chunk(mem2chunk(p)));
-@@ -4004,28 +3986,28 @@ public_pVALLOc(size_t bytes)
-   arena_get(ar_ptr, bytes + 2*pagesz + MINSIZE);
-   p = _int_pvalloc(ar_ptr, bytes);
--  if(!p) {
-+  if(!p && ar_ptr != NULL) {
-     /* 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);
--      (void)mutex_unlock(&ar_ptr->mutex);
-     } else {
- #if USE_ARENAS
-       /* ... 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, true);
--      if(ar_ptr) {
-+      if(ar_ptr)
-       p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
--      (void)mutex_unlock(&ar_ptr->mutex);
--      }
- #endif
-     }
--  } else
-+  }
-+
-+  if (ar_ptr != NULL)
-     (void)mutex_unlock(&ar_ptr->mutex);
-+
-   assert(!p || chunk_is_mmapped(mem2chunk(p)) ||
-        ar_ptr == arena_for_chunk(mem2chunk(p)));
-@@ -4072,55 +4054,65 @@ public_cALLOc(size_t n, size_t elem_size)
-   sz = bytes;
-   arena_get(av, sz);
--  if(!av)
--    return 0;
--  /* Check if we hand out the top chunk, in which case there may be no
--     need to clear. */
-+  if (av)
-+    {
-+      /* Check if we hand out the top chunk, in which case there may be no
-+       need to clear. */
- #if MORECORE_CLEARS
--  oldtop = top(av);
--  oldtopsize = chunksize(top(av));
-+      oldtop = top(av);
-+      oldtopsize = chunksize(top(av));
- #if MORECORE_CLEARS < 2
--  /* Only newly allocated memory is guaranteed to be cleared.  */
--  if (av == &main_arena &&
--      oldtopsize < mp_.sbrk_base + av->max_system_mem - (char *)oldtop)
--    oldtopsize = (mp_.sbrk_base + av->max_system_mem - (char *)oldtop);
-+      /* Only newly allocated memory is guaranteed to be cleared.  */
-+      if (av == &main_arena &&
-+        oldtopsize < mp_.sbrk_base + av->max_system_mem - (char *)oldtop)
-+      oldtopsize = (mp_.sbrk_base + av->max_system_mem - (char *)oldtop);
- #endif
--  if (av != &main_arena)
-+      if (av != &main_arena)
-+      {
-+        heap_info *heap = heap_for_ptr (oldtop);
-+        if (oldtopsize < (char *) heap + heap->mprotect_size - (char *) oldtop)
-+          oldtopsize = (char *) heap + heap->mprotect_size - (char *) oldtop;
-+      }
-+#endif
-+    }
-+  else
-     {
--      heap_info *heap = heap_for_ptr (oldtop);
--      if (oldtopsize < (char *) heap + heap->mprotect_size - (char *) oldtop)
--      oldtopsize = (char *) heap + heap->mprotect_size - (char *) oldtop;
-+      /* No usable arenas.  */
-+      oldtop = 0;
-+      oldtopsize = 0;
-     }
--#endif
-   mem = _int_malloc(av, sz);
--
-   assert(!mem || chunk_is_mmapped(mem2chunk(mem)) ||
-        av == arena_for_chunk(mem2chunk(mem)));
--  if (mem == 0) {
-+  if (mem == 0 && av != NULL) {
-     /* 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() */
-       mstate prev = av->next ? av : 0;
-       (void)mutex_unlock(&av->mutex);
-       av = arena_get2(prev, sz, true);
--      if(av) {
-+      if(av)
-       mem = _int_malloc(av, sz);
--      (void)mutex_unlock(&av->mutex);
--      }
- #endif
-     }
-     if (mem == 0) return 0;
--  } else
-+  }
-+
-+  if (av != NULL)
-     (void)mutex_unlock(&av->mutex);
-+
-+  /* Allocation failed even after a retry.  */
-+  if (mem == 0)
-+    return 0;
-+
-   p = mem2chunk(mem);
-   /* Two optional cases in which clearing not necessary */
-@@ -4175,6 +4167,8 @@ public_cALLOc(size_t n, size_t elem_size)
- }
- #ifndef _LIBC
-+/* XXX These functions are not patched to detect arena corruption because they
-+   are not built in glibc.  */
- Void_t**
- public_iCALLOc(size_t n, size_t elem_size, Void_t** chunks)
-@@ -4309,6 +4303,16 @@ _int_malloc(mstate av, size_t bytes)
-   checked_request2size(bytes, nb);
-+  /* There are no usable arenas.  Fall back to sysmalloc to get a chunk from
-+     mmap.  */
-+  if (__glibc_unlikely (av == NULL))
-+    {
-+      void *p = sYSMALLOc (nb, av);
-+      if (p != NULL)
-+      alloc_perturb (p, bytes);
-+      return p;
-+    }
-+
-   /*
-     If the size qualifies as a fastbin, first check corresponding bin.
-     This code is safe to execute even if av is not yet initialized, so we
-@@ -4337,7 +4341,7 @@ _int_malloc(mstate av, size_t bytes)
-         errstr = "malloc(): memory corruption (fast)";
-       errout:
-         mutex_unlock(&av->mutex);
--        malloc_printerr (check_action, errstr, chunk2mem (victim));
-+        malloc_printerr (check_action, errstr, chunk2mem (victim), av);
-         mutex_lock(&av->mutex);
-         return NULL;
-       }
-@@ -4429,7 +4433,7 @@ _int_malloc(mstate av, size_t bytes)
-       {
-         void *p = chunk2mem(victim);
-         mutex_unlock(&av->mutex);
--        malloc_printerr (check_action, "malloc(): memory corruption", p);
-+        malloc_printerr (check_action, "malloc(): memory corruption", p, av);
-         mutex_lock(&av->mutex);
-       }
-       size = chunksize(victim);
-@@ -4829,7 +4833,7 @@ _int_free(mstate av, mchunkptr p)
-       if (have_lock || locked)
-       (void)mutex_unlock(&av->mutex);
- #endif
--      malloc_printerr (check_action, errstr, chunk2mem(p));
-+      malloc_printerr (check_action, errstr, chunk2mem(p), av);
- #ifdef ATOMIC_FASTBINS
-       if (have_lock)
-       mutex_lock(&av->mutex);
-@@ -5281,7 +5285,7 @@ _int_realloc(mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize,
-       errstr = "realloc(): invalid old size";
-     errout:
-       mutex_unlock(&av->mutex);
--      malloc_printerr (check_action, errstr, chunk2mem(oldp));
-+      malloc_printerr (check_action, errstr, chunk2mem(oldp), av);
-       mutex_lock(&av->mutex);
-       return NULL;
-     }
-@@ -5881,6 +5885,10 @@ static int mTRIm(mstate av, size_t pad)
- static int mTRIm(av, pad) mstate av; size_t pad;
- #endif
- {
-+  /* Don't touch corrupt arenas.  */
-+  if (arena_is_corrupt (av))
-+    return 0;
-+
-   /* Ensure initialization/consolidation */
-   malloc_consolidate (av);
-@@ -6320,8 +6328,14 @@ int mALLOPt(param_number, value) int param_number; int value;
- extern char **__libc_argv attribute_hidden;
- static void
--malloc_printerr(int action, const char *str, void *ptr)
-+malloc_printerr(int action, const char *str, void *ptr, mstate ar_ptr)
- {
-+  /* Avoid using this arena in future.  We do not attempt to synchronize this
-+     with anything else because we minimally want to ensure that __libc_message
-+     gets its resources safely without stumbling on the current corruption.  */
-+  if (ar_ptr)
-+    set_arena_corrupt (ar_ptr);
-+
-   if ((action & 5) == 5)
-     __libc_message (action & 2, "%s\n", str);
-   else if (action & 1)
-diff --git a/malloc/tst-malloc-backtrace.c b/malloc/tst-malloc-backtrace.c
-new file mode 100644
-index 0000000..796a42f
---- /dev/null
-+++ b/malloc/tst-malloc-backtrace.c
-@@ -0,0 +1,50 @@
-+/* Verify that backtrace does not deadlock on itself on memory corruption.
-+   Copyright (C) 2015 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+
-+#include <stdlib.h>
-+
-+#define SIZE 4096
-+
-+/* Wrap free with a function to prevent gcc from optimizing it out.  */
-+static void
-+__attribute__((noinline))
-+call_free (void *ptr)
-+{
-+  free (ptr);
-+  *(size_t *)(ptr - sizeof (size_t)) = 1;
-+}
-+
-+int
-+do_test (void)
-+{
-+  void *ptr1 = malloc (SIZE);
-+  void *ptr2 = malloc (SIZE);
-+
-+  call_free ((void *) ptr1);
-+  ptr1 = malloc (SIZE);
-+
-+  /* Not reached.  The return statement is to put ptr2 into use so that gcc
-+     doesn't optimize out that malloc call.  */
-+  return (ptr1 == ptr2);
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#define EXPECTED_SIGNAL SIGABRT
-+
-+#include "../test-skeleton.c"
diff --git a/src/patches/glibc/glibc-rh1074342.patch b/src/patches/glibc/glibc-rh1074342.patch
deleted file mode 100644 (file)
index 121127e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-commit c44496df2f090a56d3bf75df930592dac6bba46f
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Wed Mar 12 17:27:22 2014 +0530
-
-    Provide correct buffer length to netgroup queries in nscd (BZ #16695)
-    
-    The buffer to query netgroup entries is allocated sufficient space for
-    the netgroup entries and the key to be appended at the end, but it
-    sends in an incorrect available length to the NSS netgroup query
-    functions, resulting in overflow of the buffer in some special cases.
-    The fix here is to factor in the key length when sending the available
-    buffer and buffer length to the query functions.
-
-diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
-index 426d3c5..5ba1e1f 100644
---- a/nscd/netgroupcache.c
-+++ b/nscd/netgroupcache.c
-@@ -202,7 +202,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-                 {
-                   int e;
-                   status = getfct.f (&data, buffer + buffilled,
--                                     buflen - buffilled, &e);
-+                                     buflen - buffilled - req->key_len, &e);
-                   if (status == NSS_STATUS_RETURN
-                       || status == NSS_STATUS_NOTFOUND)
-                     /* This was either the last one for this group or the
diff --git a/src/patches/glibc/glibc-rh1074353.patch b/src/patches/glibc/glibc-rh1074353.patch
deleted file mode 100644 (file)
index c8aa8b0..0000000
+++ /dev/null
@@ -1,398 +0,0 @@
-commit bc8f194c8c29e46e8ee4034f06e46988dfff38f7
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Wed Apr 30 12:00:39 2014 +0530
-
-    Initialize all of datahead structure in nscd (BZ #16791)
-    
-    The datahead structure has an unused padding field that remains
-    uninitialized.  Valgrind prints out a warning for it on querying a
-    netgroups entry.  This is harmless, but is a potential data leak since
-    it would result in writing out an uninitialized byte to the cache
-    file.  Besides, this happens only when there is a cache miss, so we're
-    not adding computation to any fast path.
-
-commit 1cdeb2372ddecac0dfe0c132a033e9590ffa07d2
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Wed Apr 30 11:57:09 2014 +0530
-
-    Consolidate code to initialize nscd dataset header
-    
-    This patch consolidates the code to initialize the header of a dataset
-    into a single set of functions (one for positive and another for
-    negative datasets) primarily to reduce repetition of code.  The
-    secondary reason is to simplify Patch 2/2 which fixes the problem of
-    an uninitialized byte in the header by initializing an unused field in
-    the structure and hence preventing a possible data leak into the cache
-    file.
-
-diff --git a/nscd/aicache.c b/nscd/aicache.c
-index 98d40a1..d7966bd 100644
---- a/nscd/aicache.c
-+++ b/nscd/aicache.c
-@@ -383,17 +383,12 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req,
-         cp = family;
-       }
--      /* Fill in the rest of the dataset.  */
--      dataset->head.allocsize = total + req->key_len;
--      dataset->head.recsize = total - offsetof (struct dataset, resp);
--      dataset->head.notfound = false;
--      dataset->head.nreloads = he == NULL ? 0 : (dh->nreloads + 1);
--      dataset->head.usable = true;
--
--      /* Compute the timeout time.  */
--      dataset->head.ttl = ttl == INT32_MAX ? db->postimeout : ttl;
--      timeout = dataset->head.timeout = time (NULL) + dataset->head.ttl;
-+      timeout = datahead_init_pos (&dataset->head, total + req->key_len,
-+                                 total - offsetof (struct dataset, resp),
-+                                 he == NULL ? 0 : dh->nreloads + 1,
-+                                 ttl == INT32_MAX ? db->postimeout : ttl);
-+      /* Fill in the rest of the dataset.  */
-       dataset->resp.version = NSCD_VERSION;
-       dataset->resp.found = 1;
-       dataset->resp.naddrs = naddrs;
-@@ -528,15 +523,9 @@ next_nip:
-       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;
--        dataset->head.notfound = true;
--        dataset->head.nreloads = 0;
--        dataset->head.usable = true;
--
--        /* Compute the timeout time.  */
--        timeout = dataset->head.timeout = time (NULL) + db->negtimeout;
--        dataset->head.ttl = db->negtimeout;
-+        timeout = datahead_init_neg (&dataset->head,
-+                                     sizeof (struct dataset) + req->key_len,
-+                                     total, db->negtimeout);
-         /* This is the reply.  */
-         memcpy (&dataset->resp, &notfound, total);
-diff --git a/nscd/grpcache.c b/nscd/grpcache.c
-index b5a33eb..df59fa7 100644
---- a/nscd/grpcache.c
-+++ b/nscd/grpcache.c
-@@ -128,14 +128,10 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
-           }
-         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;
--            dataset->head.notfound = true;
--            dataset->head.nreloads = 0;
--            dataset->head.usable = true;
--
--            /* Compute the timeout time.  */
--            timeout = dataset->head.timeout = t + db->negtimeout;
-+            timeout = datahead_init_neg (&dataset->head,
-+                                         (sizeof (struct dataset)
-+                                          + req->key_len), total,
-+                                         db->negtimeout);
-             /* This is the reply.  */
-             memcpy (&dataset->resp, &notfound, total);
-@@ -232,14 +228,10 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
-         dataset_temporary = true; 
-       }
--      dataset->head.allocsize = total + n;
--      dataset->head.recsize = total - offsetof (struct dataset, resp);
--      dataset->head.notfound = false;
--      dataset->head.nreloads = he == NULL ? 0 : (dh->nreloads + 1);
--      dataset->head.usable = true;
--
--      /* Compute the timeout time.  */
--      timeout = dataset->head.timeout = t + db->postimeout;
-+      timeout = datahead_init_pos (&dataset->head, total + n,
-+                                 total - offsetof (struct dataset, resp),
-+                                 he == NULL ? 0 : dh->nreloads + 1,
-+                                 db->postimeout);
-       dataset->resp.version = NSCD_VERSION;
-       dataset->resp.found = 1;
-diff --git a/nscd/hstcache.c b/nscd/hstcache.c
-index a79b67a..d4f1ad2 100644
---- a/nscd/hstcache.c
-+++ b/nscd/hstcache.c
-@@ -152,15 +152,11 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
-         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;
--            dataset->head.notfound = true;
--            dataset->head.nreloads = 0;
--            dataset->head.usable = true;
--
--            /* Compute the timeout time.  */
--            dataset->head.ttl = ttl == INT32_MAX ? db->negtimeout : ttl;
--            timeout = dataset->head.timeout = t + dataset->head.ttl;
-+            timeout = datahead_init_neg (&dataset->head,
-+                                         (sizeof (struct dataset)
-+                                          + req->key_len), total,
-+                                         (ttl == INT32_MAX
-+                                          ? db->negtimeout : ttl));
-             /* This is the reply.  */
-             memcpy (&dataset->resp, resp, total);
-@@ -257,15 +253,10 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
-         alloca_used = true;
-       }
--      dataset->head.allocsize = total + req->key_len;
--      dataset->head.recsize = total - offsetof (struct dataset, resp);
--      dataset->head.notfound = false;
--      dataset->head.nreloads = he == NULL ? 0 : (dh->nreloads + 1);
--      dataset->head.usable = true;
--
--      /* Compute the timeout time.  */
--      dataset->head.ttl = ttl == INT32_MAX ? db->postimeout : ttl;
--      timeout = dataset->head.timeout = t + dataset->head.ttl;
-+      timeout = datahead_init_pos (&dataset->head, total + req->key_len,
-+                                 total - offsetof (struct dataset, resp),
-+                                 he == NULL ? 0 : dh->nreloads + 1,
-+                                 ttl == INT32_MAX ? db->postimeout : ttl);
-       dataset->resp.version = NSCD_VERSION;
-       dataset->resp.found = 1;
-diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
-index 1bf9f0d..361319f 100644
---- a/nscd/initgrcache.c
-+++ b/nscd/initgrcache.c
-@@ -213,14 +213,10 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
-         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;
--            dataset->head.notfound = true;
--            dataset->head.nreloads = 0;
--            dataset->head.usable = true;
--
--            /* Compute the timeout time.  */
--            timeout = dataset->head.timeout = time (NULL) + db->negtimeout;
-+            timeout = datahead_init_neg (&dataset->head,
-+                                         (sizeof (struct dataset)
-+                                          + req->key_len), total,
-+                                         db->negtimeout);
-             /* This is the reply.  */
-             memcpy (&dataset->resp, &notfound, total);
-@@ -276,14 +272,10 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
-         alloca_used = true;
-       }
--      dataset->head.allocsize = total + req->key_len;
--      dataset->head.recsize = total - offsetof (struct dataset, resp);
--      dataset->head.notfound = false;
--      dataset->head.nreloads = he == NULL ? 0 : (dh->nreloads + 1);
--      dataset->head.usable = true;
--
--      /* Compute the timeout time.  */
--      timeout = dataset->head.timeout = time (NULL) + db->postimeout;
-+      timeout = datahead_init_pos (&dataset->head, total + req->key_len,
-+                                 total - offsetof (struct dataset, resp),
-+                                 he == NULL ? 0 : dh->nreloads + 1,
-+                                 db->postimeout);
-       dataset->resp.version = NSCD_VERSION;
-       dataset->resp.found = 1;
-diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
-index 820d823..b3d40e9 100644
---- a/nscd/netgroupcache.c
-+++ b/nscd/netgroupcache.c
-@@ -90,15 +90,9 @@ do_notfound (struct database_dyn *db, int fd, request_header *req,
-   /* If we cannot permanently store the result, so be it.  */
-   if (dataset != NULL)
-     {
--      dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
--      dataset->head.recsize = total;
--      dataset->head.notfound = true;
--      dataset->head.nreloads = 0;
--      dataset->head.usable = true;
--
--      /* Compute the timeout time.  */
--      timeout = dataset->head.timeout = time (NULL) + db->negtimeout;
--      dataset->head.ttl = db->negtimeout;
-+      timeout = datahead_init_neg (&dataset->head,
-+                                 sizeof (struct dataset) + req->key_len,
-+                                 total, db->negtimeout);
-       /* This is the reply.  */
-       memcpy (&dataset->resp, &notfound, total);
-@@ -359,13 +353,10 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-   /* Fill in the dataset.  */
-   dataset = (struct dataset *) buffer;
--  dataset->head.allocsize = total + req->key_len;
--  dataset->head.recsize = total - offsetof (struct dataset, resp);
--  dataset->head.notfound = false;
--  dataset->head.nreloads = he == NULL ? 0 : (dh->nreloads + 1);
--  dataset->head.usable = true;
--  dataset->head.ttl = db->postimeout;
--  timeout = dataset->head.timeout = time (NULL) + dataset->head.ttl;
-+  timeout = datahead_init_pos (&dataset->head, total + req->key_len,
-+                             total - offsetof (struct dataset, resp),
-+                             he == NULL ? 0 : dh->nreloads + 1,
-+                             db->postimeout);
-   dataset->resp.version = NSCD_VERSION;
-   dataset->resp.found = 1;
-@@ -541,12 +532,12 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
-       dataset = &dataset_mem;
-     }
--  dataset->head.allocsize = sizeof (*dataset) + req->key_len;
--  dataset->head.recsize = sizeof (innetgroup_response_header);
-+  datahead_init_pos (&dataset->head, sizeof (*dataset) + req->key_len,
-+                   sizeof (innetgroup_response_header),
-+                   he == NULL ? 0 : dh->nreloads + 1, result->head.ttl);
-+  /* Set the notfound status and timeout based on the result from
-+     getnetgrent.  */
-   dataset->head.notfound = result->head.notfound;
--  dataset->head.nreloads = he == NULL ? 0 : (dh->nreloads + 1);
--  dataset->head.usable = true;
--  dataset->head.ttl = result->head.ttl;
-   dataset->head.timeout = timeout;
-   dataset->resp.version = NSCD_VERSION;
-diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h
-index 98f77e7..ee16df6 100644
---- a/nscd/nscd-client.h
-+++ b/nscd/nscd-client.h
-@@ -236,6 +236,48 @@ struct datahead
-   } data[0];
- };
-+static inline time_t
-+datahead_init_common (struct datahead *head, nscd_ssize_t allocsize,
-+                    nscd_ssize_t recsize, uint32_t ttl)
-+{
-+  /* Initialize so that we don't write out junk in uninitialized data to the
-+     cache.  */
-+  memset (head, 0, sizeof (*head));
-+
-+  head->allocsize = allocsize;
-+  head->recsize = recsize;
-+  head->usable = true;
-+
-+  head->ttl = ttl;
-+
-+  /* Compute and return the timeout time.  */
-+  return head->timeout = time (NULL) + ttl;
-+}
-+
-+static inline time_t
-+datahead_init_pos (struct datahead *head, nscd_ssize_t allocsize,
-+                 nscd_ssize_t recsize, uint8_t nreloads, uint32_t ttl)
-+{
-+  time_t ret = datahead_init_common (head, allocsize, recsize, ttl);
-+
-+  head->notfound = false;
-+  head->nreloads = nreloads;
-+
-+  return ret;
-+}
-+
-+static inline time_t
-+datahead_init_neg (struct datahead *head, nscd_ssize_t allocsize,
-+                 nscd_ssize_t recsize, uint32_t ttl)
-+{
-+  time_t ret = datahead_init_common (head, allocsize, recsize, ttl);
-+
-+  /* We don't need to touch nreloads here since it is set to our desired value
-+     (0) when we clear the structure.  */
-+  head->notfound = true;
-+
-+  return ret;
-+}
- /* Structure for one hash table entry.  */
- struct hashentry
-diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
-index fa355c3..41c245b 100644
---- a/nscd/pwdcache.c
-+++ b/nscd/pwdcache.c
-@@ -135,14 +135,10 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
-         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;
--            dataset->head.notfound = true;
--            dataset->head.nreloads = 0;
--            dataset->head.usable = true;
--
--            /* Compute the timeout time.  */
--            timeout = dataset->head.timeout = t + db->negtimeout;
-+            timeout = datahead_init_neg (&dataset->head,
-+                                         (sizeof (struct dataset)
-+                                          + req->key_len), total,
-+                                         db->negtimeout);
-             /* This is the reply.  */
-             memcpy (&dataset->resp, &notfound, total);
-@@ -215,14 +211,10 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
-         alloca_used = true;
-       }
--      dataset->head.allocsize = total + n;
--      dataset->head.recsize = total - offsetof (struct dataset, resp);
--      dataset->head.notfound = false;
--      dataset->head.nreloads = he == NULL ? 0 : (dh->nreloads + 1);
--      dataset->head.usable = true;
--
--      /* Compute the timeout time.  */
--      timeout = dataset->head.timeout = t + db->postimeout;
-+      timeout = datahead_init_pos (&dataset->head, total + n,
-+                                 total - offsetof (struct dataset, resp),
-+                                 he == NULL ? 0 : dh->nreloads + 1,
-+                                 db->postimeout);
-       dataset->resp.version = NSCD_VERSION;
-       dataset->resp.found = 1;
-diff --git a/nscd/servicescache.c b/nscd/servicescache.c
-index 12ce9b2..95bdcfe 100644
---- a/nscd/servicescache.c
-+++ b/nscd/servicescache.c
-@@ -120,14 +120,10 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
-         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;
--            dataset->head.notfound = true;
--            dataset->head.nreloads = 0;
--            dataset->head.usable = true;
--
--            /* Compute the timeout time.  */
--            timeout = dataset->head.timeout = t + db->negtimeout;
-+            timeout = datahead_init_neg (&dataset->head,
-+                                         (sizeof (struct dataset)
-+                                          + req->key_len), total,
-+                                         db->negtimeout);
-             /* This is the reply.  */
-             memcpy (&dataset->resp, &notfound, total);
-@@ -207,14 +203,10 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
-         alloca_used = true;
-       }
--      dataset->head.allocsize = total + req->key_len;
--      dataset->head.recsize = total - offsetof (struct dataset, resp);
--      dataset->head.notfound = false;
--      dataset->head.nreloads = he == NULL ? 0 : (dh->nreloads + 1);
--      dataset->head.usable = true;
--
--      /* Compute the timeout time.  */
--      timeout = dataset->head.timeout = t + db->postimeout;
-+      timeout = datahead_init_pos (&dataset->head, total + req->key_len,
-+                                 total - offsetof (struct dataset, resp),
-+                                 he == NULL ? 0 : dh->nreloads + 1,
-+                                 db->postimeout);
-       dataset->resp.version = NSCD_VERSION;
-       dataset->resp.found = 1;
diff --git a/src/patches/glibc/glibc-rh1082379.patch b/src/patches/glibc/glibc-rh1082379.patch
deleted file mode 100644 (file)
index 60a0ece..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-commit ea7d8b95e2fcb81f68b04ed7787a3dbda023991a
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Thu Mar 27 19:48:15 2014 +0530
-
-    Avoid overlapping addresses to stpcpy calls in nscd (BZ #16760)
-    
-    Calls to stpcpy from nscd netgroups code will have overlapping source
-    and destination when all three values in the returned triplet are
-    non-NULL and in the expected (host,user,domain) order.  This is seen
-    in valgrind as:
-    
-    ==3181== Source and destination overlap in stpcpy(0x19973b48, 0x19973b48)
-    ==3181==    at 0x4C2F30A: stpcpy (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
-    ==3181==    by 0x12567A: addgetnetgrentX (string3.h:111)
-    ==3181==    by 0x12722D: addgetnetgrent (netgroupcache.c:665)
-    ==3181==    by 0x11114C: nscd_run_worker (connections.c:1338)
-    ==3181==    by 0x4E3C102: start_thread (pthread_create.c:309)
-    ==3181==    by 0x59B81AC: clone (clone.S:111)
-    ==3181==
-    
-    Fix this by using memmove instead of stpcpy.
-
-diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
-index 5d15aa4..820d823 100644
---- a/nscd/netgroupcache.c
-+++ b/nscd/netgroupcache.c
-@@ -216,6 +216,10 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-                           const char *nuser = data.val.triple.user;
-                           const char *ndomain = data.val.triple.domain;
-+                          size_t hostlen = strlen (nhost ?: "") + 1;
-+                          size_t userlen = strlen (nuser ?: "") + 1;
-+                          size_t domainlen = strlen (ndomain ?: "") + 1;
-+
-                           if (nhost == NULL || nuser == NULL || ndomain == NULL
-                               || nhost > nuser || nuser > ndomain)
-                             {
-@@ -233,9 +237,6 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-                                    : last + strlen (last) + 1 - buffer);
-                               /* We have to make temporary copies.  */
--                              size_t hostlen = strlen (nhost ?: "") + 1;
--                              size_t userlen = strlen (nuser ?: "") + 1;
--                              size_t domainlen = strlen (ndomain ?: "") + 1;
-                               size_t needed = hostlen + userlen + domainlen;
-                               if (buflen - req->key_len - bufused < needed)
-@@ -269,9 +270,12 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-                             }
-                           char *wp = buffer + buffilled;
--                          wp = stpcpy (wp, nhost) + 1;
--                          wp = stpcpy (wp, nuser) + 1;
--                          wp = stpcpy (wp, ndomain) + 1;
-+                          wp = memmove (wp, nhost ?: "", hostlen);
-+                          wp += hostlen;
-+                          wp = memmove (wp, nuser ?: "", userlen);
-+                          wp += userlen;
-+                          wp = memmove (wp, ndomain ?: "", domainlen);
-+                          wp += domainlen;
-                           buffilled = wp - buffer;
-                           ++nentries;
-                         }
diff --git a/src/patches/glibc/glibc-rh1085273.patch b/src/patches/glibc/glibc-rh1085273.patch
deleted file mode 100644 (file)
index ee0f289..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-commit d41242129ba693cdbc8db85b846fcaccf9f0b7c4
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Thu Jan 2 10:03:12 2014 +0530
-
-    Fix infinite loop in nscd when netgroup is empty (bz #16365)
-    
-    Currently, when a user looks up a netgroup that does not have any
-    members, nscd goes into an infinite loop trying to find members in the
-    group.  This is because it does not handle cases when getnetgrent
-    returns an NSS_STATUS_NOTFOUND (which is what it does on empty group).
-    Fixed to handle this in the same way as NSS_STATUS_RETURN, similar to
-    what getgrent does by itself.
-
-diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
-index baebdd7..50936ee 100644
---- a/nscd/netgroupcache.c
-+++ b/nscd/netgroupcache.c
-@@ -180,9 +180,10 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-                   int e;
-                   status = getfct.f (&data, buffer + buffilled,
-                                      buflen - buffilled, &e);
--                  if (status == NSS_STATUS_RETURN)
--                    /* This was the last one for this group.  Look
--                       at next group if available.  */
-+                  if (status == NSS_STATUS_RETURN
-+                      || status == NSS_STATUS_NOTFOUND)
-+                    /* This was either the last one for this group or the
-+                       group was empty.  Look at next group if available.  */
-                     break;
-                   if (status == NSS_STATUS_SUCCESS)
-                     {
diff --git a/src/patches/glibc/glibc-rh1085289.patch b/src/patches/glibc/glibc-rh1085289.patch
deleted file mode 100644 (file)
index 9bd284e..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-commit dd3022d75e6fb8957843d6d84257a5d8457822d5
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Thu Mar 27 19:49:51 2014 +0530
-
-    Return NULL for wildcard values in getnetgrent from nscd (BZ #16759)
-    
-    getnetgrent is supposed to return NULL for values that are wildcards
-    in the (host, user, domain) triplet.  This works correctly with nscd
-    disabled, but with it enabled, it returns a blank ("") instead of a
-    NULL.  This is easily seen with the output of `getent netgroup foonet`
-    for a netgroup foonet defined as follows in /etc/netgroup:
-    
-        foonet (,foo,)
-    
-    The output with nscd disabled is:
-    
-        foonet ( ,foo,)
-    
-    while with nscd enabled, it is:
-    
-        foonet (,foo,)
-    
-    The extra space with nscd disabled is due to the fact that `getent
-    netgroup` adds it if the return value from getnetgrent is NULL for
-    either host or user.
-
-diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c
-index 62cdfda..f6d064d 100644
---- a/inet/getnetgrent_r.c
-+++ b/inet/getnetgrent_r.c
-@@ -235,6 +235,14 @@ endnetgrent (void)
- libc_hidden_proto (internal_getnetgrent_r)
-+static const char *
-+get_nonempty_val (const char *in)
-+{
-+  if (*in == '\0')
-+    return NULL;
-+  return in;
-+}
-+
- static enum nss_status
- nscd_getnetgrent (struct __netgrent *datap, char *buffer, size_t buflen,
-                 int *errnop)
-@@ -243,11 +251,11 @@ nscd_getnetgrent (struct __netgrent *datap, char *buffer, size_t buflen,
-     return NSS_STATUS_UNAVAIL;
-   datap->type = triple_val;
--  datap->val.triple.host = datap->cursor;
-+  datap->val.triple.host = get_nonempty_val (datap->cursor);
-   datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
--  datap->val.triple.user = datap->cursor;
-+  datap->val.triple.user = get_nonempty_val (datap->cursor);
-   datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
--  datap->val.triple.domain = datap->cursor;
-+  datap->val.triple.domain = get_nonempty_val (datap->cursor);
-   datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
-   return NSS_STATUS_SUCCESS;
diff --git a/src/patches/glibc/glibc-rh1085312.patch b/src/patches/glibc/glibc-rh1085312.patch
deleted file mode 100644 (file)
index bafb303..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-commit 58b930ae216bfa98cd60212b954b07b9963d6d04
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Wed Sep 10 21:51:50 2014 +0530
-
-    Return failure in getnetgrent only when all netgroups have been searched (#17363)
-    
-    The netgroups lookup code fails when one of the groups in the search
-    tree is empty.  In such a case it only returns the leaves of the tree
-    after the blank netgroup.  This is because the line parser returns a
-    NOTFOUND status when the netgroup exists but is empty.  The
-    __getnetgrent_internal implementation needs to be fixed to try
-    remaining groups if the current group is entry.  This patch implements
-    this fix.  Tested on x86_64.
-    
-       [BZ #17363]
-       * inet/getnetgrent_r.c (__internal_getnetgrent_r): Try next
-       group if the current group is empty.
-
-diff --git a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c
-index f6d064d..e101537 100644
---- a/inet/getnetgrent_r.c
-+++ b/inet/getnetgrent_r.c
-@@ -297,7 +297,10 @@ __internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
-     {
-       status = (*fct) (datap, buffer, buflen, &errno);
--      if (status == NSS_STATUS_RETURN)
-+      if (status == NSS_STATUS_RETURN
-+        /* The service returned a NOTFOUND, but there are more groups that we
-+           need to resolve before we give up.  */
-+        || (status == NSS_STATUS_NOTFOUND && datap->needed_groups != NULL))
-       {
-         /* This was the last one for this group.  Look at next group
-            if available.  */
diff --git a/src/patches/glibc/glibc-rh1087833.patch b/src/patches/glibc/glibc-rh1087833.patch
deleted file mode 100644 (file)
index ca8f1f0..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-commit c3ec475c5dd16499aa040908e11d382c3ded9692
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Mon May 26 11:40:08 2014 +0530
-
-    Use NSS_STATUS_TRYAGAIN to indicate insufficient buffer (BZ #16878)
-    
-    The netgroups nss modules in the glibc tree use NSS_STATUS_UNAVAIL
-    (with errno as ERANGE) when the supplied buffer does not have
-    sufficient space for the result.  This is wrong, because the canonical
-    way to indicate insufficient buffer is to set the errno to ERANGE and
-    the status to NSS_STATUS_TRYAGAIN, as is used by all other modules.
-    
-    This fixes nscd behaviour when the nss_ldap module returns
-    NSS_STATUS_TRYAGAIN to indicate that a netgroup entry is too long to
-    fit into the supplied buffer.
-
-diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
-index b3d40e9..edab174 100644
---- a/nscd/netgroupcache.c
-+++ b/nscd/netgroupcache.c
-@@ -197,11 +197,6 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-                   int e;
-                   status = getfct.f (&data, buffer + buffilled,
-                                      buflen - buffilled - req->key_len, &e);
--                  if (status == NSS_STATUS_RETURN
--                      || status == NSS_STATUS_NOTFOUND)
--                    /* This was either the last one for this group or the
--                       group was empty.  Look at next group if available.  */
--                    break;
-                   if (status == NSS_STATUS_SUCCESS)
-                     {
-                       if (data.type == triple_val)
-@@ -320,11 +315,18 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-                             }
-                         }
-                     }
--                  else if (status == NSS_STATUS_UNAVAIL && e == ERANGE)
-+                  else if (status == NSS_STATUS_TRYAGAIN && e == ERANGE)
-                     {
-                       buflen *= 2;
-                       buffer = xrealloc (buffer, buflen);
-                     }
-+                  else if (status == NSS_STATUS_RETURN
-+                           || status == NSS_STATUS_NOTFOUND
-+                           || status == NSS_STATUS_UNAVAIL)
-+                    /* This was either the last one for this group or the
-+                       group was empty or the NSS module had an internal
-+                       failure.  Look at next group if available.  */
-+                    break;
-                 }
-             enum nss_status (*endfct) (struct __netgrent *);
-diff --git a/nss/nss_files/files-netgrp.c b/nss/nss_files/files-netgrp.c
-index 34eae4c..bc0b367 100644
---- a/nss/nss_files/files-netgrp.c
-+++ b/nss/nss_files/files-netgrp.c
-@@ -252,7 +252,7 @@ _nss_netgroup_parseline (char **cursor, struct __netgrent *result,
-   if (cp - host > buflen)
-     {
-       *errnop = ERANGE;
--      status = NSS_STATUS_UNAVAIL;
-+      status = NSS_STATUS_TRYAGAIN;
-     }
-   else
-     {
diff --git a/src/patches/glibc/glibc-rh1088301.patch b/src/patches/glibc/glibc-rh1088301.patch
deleted file mode 100644 (file)
index d26eb14..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-diff --git a/resolv/arpa/nameser.h b/resolv/arpa/nameser.h
-index fb8513b..372d5cd 100644
---- a/resolv/arpa/nameser.h
-+++ b/resolv/arpa/nameser.h
-@@ -293,6 +293,9 @@ typedef enum __ns_type {
-       ns_t_sink = 40,         /*%< Kitchen sink (experimentatl) */
-       ns_t_opt = 41,          /*%< EDNS0 option (meta-RR) */
-       ns_t_apl = 42,          /*%< Address prefix list (RFC3123) */
-+      ns_t_rrsig = 46,        /*%< DNSSEC RRset Signature (RFC4034) */
-+      ns_t_nsec = 47,         /*%< DNSSEC Next-Secure Record (RFC4034)*/
-+      ns_t_dnskey = 48,       /*%< DNSSEC key record (RFC4034) */
-       ns_t_tkey = 249,        /*%< Transaction key */
-       ns_t_tsig = 250,        /*%< Transaction signature. */
-       ns_t_ixfr = 251,        /*%< Incremental zone transfer. */
-diff --git a/resolv/arpa/nameser_compat.h b/resolv/arpa/nameser_compat.h
-index d59c9e4..284bff7 100644
---- a/resolv/arpa/nameser_compat.h
-+++ b/resolv/arpa/nameser_compat.h
-@@ -164,6 +164,9 @@ typedef struct {
- #define T_NAPTR               ns_t_naptr
- #define T_A6          ns_t_a6
- #define T_DNAME               ns_t_dname
-+#define T_RRSIG               ns_t_rrsig
-+#define T_NSEC                ns_t_nsec
-+#define T_DNSKEY      ns_t_dnskey
- #define       T_TSIG          ns_t_tsig
- #define       T_IXFR          ns_t_ixfr
- #define T_AXFR                ns_t_axfr
-diff --git a/resolv/gethnamaddr.c b/resolv/gethnamaddr.c
-index a861a84..ae55fac 100644
---- a/resolv/gethnamaddr.c
-+++ b/resolv/gethnamaddr.c
-@@ -331,23 +331,36 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
-                       buflen -= n;
-                       continue;
-               }
--              if ((type == T_SIG) || (type == T_KEY) || (type == T_NXT)) {
--                      /* We don't support DNSSEC yet.  For now, ignore
--                       * the record and send a low priority message
--                       * to syslog.
--                       */
--                      syslog(LOG_DEBUG|LOG_AUTH,
-+              if ((type == T_SIG) || (type == T_KEY) || (type == T_NXT)
-+                  || (type == T_RRSIG) || (type == T_NSEC)
-+                  || (type == T_DNSKEY)) {
-+                      /* We don't support DNSSEC responses yet, but we do
-+                       * allow setting the DO bit.  If the DNS server sent us
-+                       * these records without us asking for it, ignore the
-+                       * record and send a low priority message to syslog.
-+                       */
-+                      if ((_res.options & RES_USE_DNSSEC) == 0) {
-+                              syslog(LOG_DEBUG|LOG_AUTH,
-              "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"",
--                             qname, p_class(C_IN), p_type(qtype),
--                             p_type(type));
-+                                      qname, p_class(C_IN), p_type(qtype),
-+                                      p_type(type));
-+                      }
-                       cp += n;
-                       continue;
-               }
-               if (type != qtype) {
--                      syslog(LOG_NOTICE|LOG_AUTH,
-+                      /* Skip logging if we received a DNAME when we have set
-+                       * the DO bit.  DNAME records are a convenient way to
-+                       * set up DNSSEC records and such setups can make this
-+                       * log message needlessly noisy.
-+                       */
-+                      if (!((_res.options & RES_USE_DNSSEC)
-+                            && type == T_DNAME)) {
-+                              syslog(LOG_NOTICE|LOG_AUTH,
-              "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"",
--                             qname, p_class(C_IN), p_type(qtype),
--                             p_type(type));
-+                                      qname, p_class(C_IN), p_type(qtype),
-+                                      p_type(type));
-+                      }
-                       cp += n;
-                       continue;               /* XXX - had_error++ ? */
-               }
-diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
-index f715ab0..510d388 100644
---- a/resolv/nss_dns/dns-host.c
-+++ b/resolv/nss_dns/dns-host.c
-@@ -822,13 +822,20 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype,
-       }
-       if (__builtin_expect (type == T_SIG, 0)
-         || __builtin_expect (type == T_KEY, 0)
--        || __builtin_expect (type == T_NXT, 0))
-+        || __builtin_expect (type == T_NXT, 0)
-+        || __builtin_expect (type == T_RRSIG, 0)
-+        || __builtin_expect (type == T_NSEC, 0)
-+        || __builtin_expect (type == T_DNSKEY, 0))
-       {
--        /* We don't support DNSSEC yet.  For now, ignore the record
--           and send a low priority message to syslog.  */
--        syslog (LOG_DEBUG | LOG_AUTH,
--             "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"",
--                qname, p_class (C_IN), p_type(qtype), p_type (type));
-+        /* We don't support DNSSEC responses yet, but we do allow setting the
-+           DO bit.  If the DNS server sent us these records without us asking
-+           for it, ignore the record and send a low priority message to
-+           syslog.  */
-+        if ((_res.options & RES_USE_DNSSEC) == 0)
-+          syslog (LOG_DEBUG | LOG_AUTH,
-+                  "gethostby*.getanswer: asked for \"%s %s %s\", "
-+                  "got type \"%s\"",
-+                  qname, p_class (C_IN), p_type(qtype), p_type (type));
-         cp += n;
-         continue;
-       }
-@@ -837,9 +844,14 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype,
-       have_to_map = 1;
-       else if (__builtin_expect (type != qtype, 0))
-       {
--        syslog (LOG_NOTICE | LOG_AUTH,
--             "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"",
--                qname, p_class (C_IN), p_type (qtype), p_type (type));
-+        /* Skip logging if we received a DNAME when we have set the DO bit.
-+           DNAME records are a convenient way to set up DNSSEC records and
-+           such setups can make this log message needlessly noisy.  */
-+        if (!((_res.options & RES_USE_DNSSEC) && type == T_DNAME))
-+          syslog (LOG_NOTICE | LOG_AUTH,
-+                  "gethostby*.getanswer: asked for \"%s %s %s\", "
-+                  "got type \"%s\"",
-+                  qname, p_class (C_IN), p_type (qtype), p_type (type));
-         cp += n;
-         continue;                     /* XXX - had_error++ ? */
-       }
-diff --git a/resolv/res_debug.c b/resolv/res_debug.c
-index 7843439..4a49629 100644
---- a/resolv/res_debug.c
-+++ b/resolv/res_debug.c
-@@ -450,6 +450,8 @@ const struct res_sym __p_type_syms[] = {
-       {ns_t_kx,       "KX",           "Key Exchange"},
-       {ns_t_cert,     "CERT",         "Certificate"},
-       {ns_t_any,      "ANY",          "\"any\""},
-+      /* TODO Add RRSIG, NSEC and DNSKEY once we actually do something with
-+         them.  */
-       {0,             NULL,           NULL}
- };
- libresolv_hidden_data_def (__p_type_syms)
diff --git a/src/patches/glibc/glibc-rh1091915.patch b/src/patches/glibc/glibc-rh1091915.patch
deleted file mode 100644 (file)
index d1af874..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-commit 3cb26316b45b23dc5cfecbafdc489b28c3a52029
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Thu Jan 29 10:30:09 2015 +0530
-
-    Initialize nscd stats data [BZ #17892]
-    
-    The padding bytes in the statsdata struct are not initialized, due to
-    which valgrind throws a warning:
-    
-    ==11384== Memcheck, a memory error detector
-    ==11384== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
-    ==11384== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
-    ==11384== Command: nscd -d
-    ==11384==
-    Fri 25 Apr 2014 10:34:53 AM CEST - 11384: handle_request: request received (Version = 2) from PID 11396
-    Fri 25 Apr 2014 10:34:53 AM CEST - 11384:       GETSTAT
-    ==11384== Thread 6:
-    ==11384== Syscall param socketcall.sendto(msg) points to uninitialised byte(s)
-    ==11384==    at 0x4E4ACDC: send (in /lib64/libpthread-2.12.so)
-    ==11384==    by 0x11AF6B: send_stats (in /usr/sbin/nscd)
-    ==11384==    by 0x112F75: nscd_run_worker (in /usr/sbin/nscd)
-    ==11384==    by 0x4E439D0: start_thread (in /lib64/libpthread-2.12.so)
-    ==11384==    by 0x599AB6C: clone (in /lib64/libc-2.12.so)
-    ==11384==  Address 0x15708395 is on thread 6's stack
-    
-    Fix the warning by initializing the structure.
-
-diff --git a/nscd/nscd_stat.c b/nscd/nscd_stat.c
-index 0f1f3c0..7aaa21b 100644
---- a/nscd/nscd_stat.c
-+++ b/nscd/nscd_stat.c
-@@ -94,6 +94,8 @@ send_stats (int fd, struct database_dyn dbs[lastdb])
-   struct statdata data;
-   int cnt;
-+  memset (&data, 0, sizeof (data));
-+
-   memcpy (data.version, compilation, sizeof (compilation));
-   data.debug_level = debug_level;
-   data.runtime = time (NULL) - start_time;
diff --git a/src/patches/glibc/glibc-rh1099025-2.patch b/src/patches/glibc/glibc-rh1099025-2.patch
deleted file mode 100644 (file)
index 58fe121..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-commit d6c33fda03457ca8ca87a562fa2681af16ca4ea5
-Author: Roland McGrath <roland@hack.frob.com>
-Date:   Thu May 24 11:37:30 2012 -0700
-
-    Switch gettimeofday from INTUSE to libc_hidden_proto.
-
-diff --git a/include/sys/time.h b/include/sys/time.h
-index d5de942..599e189 100644
---- a/include/sys/time.h
-+++ b/include/sys/time.h
-@@ -4,9 +4,8 @@
- /* Now document the internal interfaces.  */
- extern int __gettimeofday (struct timeval *__tv,
-                          struct timezone *__tz);
--extern int __gettimeofday_internal (struct timeval *__tv,
--                                  struct timezone *__tz)
--      attribute_hidden;
-+libc_hidden_proto (__gettimeofday)
-+libc_hidden_proto (gettimeofday)
- extern int __settimeofday (__const struct timeval *__tv,
-                          __const struct timezone *__tz)
-       attribute_hidden;
-@@ -22,8 +21,4 @@ extern int __utimes (const char *__file, const struct timeval __tvp[2])
-       attribute_hidden;
- extern int __futimes (int fd, __const struct timeval tvp[2]) attribute_hidden;
--#ifndef NOT_IN_libc
--# define __gettimeofday(tv, tz) INTUSE(__gettimeofday) (tv, tz)
--#endif
--
- #endif
-diff --git a/sysdeps/mach/gettimeofday.c b/sysdeps/mach/gettimeofday.c
-index 88dca8e..293a775 100644
---- a/sysdeps/mach/gettimeofday.c
-+++ b/sysdeps/mach/gettimeofday.c
-@@ -20,8 +20,6 @@
- #include <sys/time.h>
- #include <mach.h>
--#undef __gettimeofday
--
- /* Get the current time of day and timezone information,
-    putting it into *TV and *TZ.  If TZ is NULL, *TZ is not filled.
-    Returns 0 on success, -1 on errors.  */
-@@ -42,6 +40,6 @@ __gettimeofday (tv, tz)
-     }
-   return 0;
- }
--
--INTDEF(__gettimeofday)
-+libc_hidden_def (__gettimeofday)
- weak_alias (__gettimeofday, gettimeofday)
-+libc_hidden_weak (gettimeofday)
-diff --git a/sysdeps/posix/gettimeofday.c b/sysdeps/posix/gettimeofday.c
-index 31b3dd3..1108ff0 100644
---- a/sysdeps/posix/gettimeofday.c
-+++ b/sysdeps/posix/gettimeofday.c
-@@ -19,8 +19,6 @@
- #include <time.h>
- #include <sys/time.h>
--#undef __gettimeofday
--
- /* Get the current time of day and timezone information,
-    putting it into *TV and *TZ.  If TZ is NULL, *TZ is not filled.
-    Returns 0 on success, -1 on errors.  */
-@@ -66,6 +64,6 @@ __gettimeofday (tv, tz)
-   return 0;
- }
--
--INTDEF(__gettimeofday)
-+libc_hidden_def (__gettimeofday)
- weak_alias (__gettimeofday, gettimeofday)
-+libc_hidden_weak (gettimeofday)
-diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list
-index 39c40ed..bd780f5 100644
---- a/sysdeps/unix/common/syscalls.list
-+++ b/sysdeps/unix/common/syscalls.list
-@@ -5,7 +5,7 @@ getpid         -       getpid          Ei:     __getpid        getpid
- fchown                -       fchown          i:iii   __fchown        fchown
- ftruncate     -       ftruncate       i:ii    __ftruncate     ftruncate
- getrusage     -       getrusage       i:ip    __getrusage     getrusage
--gettimeofday  -       gettimeofday    i:PP    __gettimeofday  gettimeofday __gettimeofday_internal
-+gettimeofday  -       gettimeofday    i:pP    __gettimeofday  gettimeofday
- settimeofday  -       settimeofday    i:PP    __settimeofday  settimeofday
- setpgid               -       setpgrp         i:ii    __setpgid       setpgid
- setregid      -       setregid        i:ii    __setregid      setregid
-diff --git a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
-index b2ef2da..7376135 100644
---- a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
-+++ b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
-@@ -35,5 +35,6 @@ __gettimeofday (tv, tz)
- }
--
--#endif
--INTDEF (__gettimeofday)
-+libc_hidden_def (__gettimeofday)
-+
-+#endif
- weak_alias (__gettimeofday, gettimeofday)
-+libc_hidden_weak (gettimeofday)
-diff --git a/sysdeps/unix/sysv/linux/s390/gettimeofday.c b/sysdeps/unix/sysv/linux/s390/gettimeofday.c
-index 63faef8..efbf1e8 100644
---- a/sysdeps/unix/sysv/linux/s390/gettimeofday.c
-+++ b/sysdeps/unix/sysv/linux/s390/gettimeofday.c
-@@ -22,7 +22,6 @@
- #include <time.h>
- #include <hp-timing.h>
--#undef __gettimeofday
- #include <bits/libc-vdso.h>
- /* Get the current time of day and timezone information,
-@@ -36,6 +35,6 @@ __gettimeofday (tv, tz)
- {
-   return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz));
- }
--
--INTDEF (__gettimeofday)
-+libc_hidden_def (__gettimeofday)
- weak_alias (__gettimeofday, gettimeofday)
-+libc_hidden_weak (gettimeofday)
-diff --git a/time/gettimeofday.c b/time/gettimeofday.c
-index cfe6549..7eb770c 100644
---- a/time/gettimeofday.c
-+++ b/time/gettimeofday.c
-@@ -18,8 +18,6 @@
- #include <errno.h>
- #include <sys/time.h>
--#undef __gettimeofday
--
- /* Get the current time of day and timezone information,
-    putting it into *TV and *TZ.  If TZ is NULL, *TZ is not filled.
-    Returns 0 on success, -1 on errors.  */
-@@ -31,8 +29,9 @@ __gettimeofday (tv, tz)
-   __set_errno (ENOSYS);
-   return -1;
- }
--stub_warning (gettimeofday)
--
--INTDEF(__gettimeofday)
-+libc_hidden_def (__gettimeofday)
- weak_alias (__gettimeofday, gettimeofday)
-+libc_hidden_weak (gettimeofday)
-+
-+stub_warning (gettimeofday)
- #include <stub-tag.h>
---- a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S    2014-07-28 14:40:24.640144825 +0530
-+++ b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.S    2014-07-28 14:40:21.320120072 +0530
-@@ -45,5 +45,6 @@
-       ret
- PSEUDO_END(__gettimeofday)
--strong_alias (__gettimeofday, __gettimeofday_internal)
-+libc_hidden_def (__gettimeofday)
- weak_alias (__gettimeofday, gettimeofday)
-+libc_hidden_weak (gettimeofday)
diff --git a/src/patches/glibc/glibc-rh1099025.patch b/src/patches/glibc/glibc-rh1099025.patch
deleted file mode 100644 (file)
index d075be8..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-commit 736c304a1ab4cee36a2f3343f1698bc0abae4608
-Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
-Date:   Thu Jan 16 06:53:18 2014 -0600
-
-    PowerPC: Fix ftime gettimeofday internal call returning bogus data
-    
-    This patches fixes BZ#16430 by setting a different symbol for internal
-    GLIBC calls that points to ifunc resolvers. For PPC32, if the symbol
-    is defined as hidden (which is the case for gettimeofday and time) the
-    compiler will create local branches (symbol@local) and linker will not
-    create PLT calls (required for IFUNC). This will leads to internal symbol
-    calling the IFUNC resolver instead of the resolved symbol.
-    For PPC64 this behavior does not occur because a call to a function in
-    another translation unit might use a different toc pointer thus requiring
-    a PLT call.
-
-diff --git a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
-index 29a5e08..2085b68 100644
---- a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
-+++ b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
-@@ -44,8 +44,24 @@ asm (".type __gettimeofday, %gnu_indirect_function");
- /* This is doing "libc_hidden_def (__gettimeofday)" but the compiler won't
-    let us do it in C because it doesn't know we're defining __gettimeofday
-    here in this file.  */
--asm (".globl __GI___gettimeofday\n"
--     "__GI___gettimeofday = __gettimeofday");
-+asm (".globl __GI___gettimeofday");
-+
-+/* __GI___gettimeofday is defined as hidden and for ppc32 it enables the
-+   compiler make a local call (symbol@local) for internal GLIBC usage. It
-+   means the PLT won't be used and the ifunc resolver will be called directly.
-+   For ppc64 a call to a function in another translation unit might use a
-+   different toc pointer thus disallowing direct branchess and making internal
-+   ifuncs calls safe.  */
-+#ifdef __powerpc64__
-+asm ("__GI___gettimeofday = __gettimeofday");
-+#else
-+int
-+__gettimeofday_vsyscall (struct timeval *tv, struct timezone *tz)
-+{
-+  return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
-+}
-+asm ("__GI___gettimeofday = __gettimeofday_vsyscall");
-+#endif
- #else
diff --git a/src/patches/glibc/glibc-rh1111460.patch b/src/patches/glibc/glibc-rh1111460.patch
deleted file mode 100644 (file)
index 1a4315d..0000000
+++ /dev/null
@@ -1,341 +0,0 @@
-commit 7cbcdb3699584db8913ca90f705d6337633ee10f
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Fri Oct 25 10:22:12 2013 +0530
-
-    Fix stack overflow due to large AF_INET6 requests
-    
-    Resolves #16072 (CVE-2013-4458).
-    
-    This patch fixes another stack overflow in getaddrinfo when it is
-    called with AF_INET6.  The AF_UNSPEC case was fixed as CVE-2013-1914,
-    but the AF_INET6 case went undetected back then.
-
-commit 91ce40854d0b7f865cf5024ef95a8026b76096f3
-Author: Florian Weimer <fweimer@redhat.com>
-Date:   Fri Aug 16 09:38:52 2013 +0200
-
-    CVE-2013-4237, BZ #14699: Buffer overflow in readdir_r
-    
-       * sysdeps/posix/dirstream.h (struct __dirstream): Add errcode
-       member.
-       * sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode
-       member.
-       * sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member.
-       * sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit.
-       Return delayed error code.  Remove GETDENTS_64BIT_ALIGNED
-       conditional.
-       * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define
-       GETDENTS_64BIT_ALIGNED.
-       * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
-       * manual/filesys.texi (Reading/Closing Directory): Document
-       ENAMETOOLONG return value of readdir_r.  Recommend readdir more
-       strongly.
-       * manual/conf.texi (Limits for Files): Add portability note to
-       NAME_MAX, PATH_MAX.
-       (Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX.
-
-diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
-index e6ce4cf..8ff74b4 100644
---- a/sysdeps/posix/getaddrinfo.c
-+++ b/sysdeps/posix/getaddrinfo.c
-@@ -197,7 +197,22 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
-                               &rc, &herrno, NULL, &localcanon));            \
-     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 (status == NSS_STATUS_SUCCESS && rc == 0)                                      \
-     h = &th;                                                                \
-@@ -209,7 +224,8 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
-       {                                                                     \
-         __set_h_errno (herrno);                                             \
-         _res.options = old_res_options;                                     \
--        return -EAI_SYSTEM;                                                 \
-+        result = -EAI_SYSTEM;                                               \
-+        goto free_and_return;                                               \
-       }                                                                     \
-       if (herrno == TRY_AGAIN)                                                      \
-       no_data = EAI_AGAIN;                                                  \
-
-diff --git a/manual/conf.texi b/manual/conf.texi
-index 7eb8b36..c720063 100644
---- a/manual/conf.texi
-+++ b/manual/conf.texi
-@@ -1149,6 +1149,9 @@ typed ahead as input.  @xref{I/O Queues}.
- @comment POSIX.1
- @deftypevr Macro int NAME_MAX
- The uniform system limit (if any) for the length of a file name component.
-+
-+@strong{Portability Note:} On some systems, the GNU C Library defines
-+@code{NAME_MAX}, but does not actually enforce this limit.
- @end deftypevr
- @comment limits.h
-@@ -1157,6 +1160,9 @@ including the terminating null character.
- @deftypevr Macro int PATH_MAX
- The uniform system limit (if any) for the length of an entire file name (that
- is, the argument given to system calls such as @code{open}).
-+
-+@strong{Portability Note:} The GNU C Library does not enforce this limit
-+even if @code{PATH_MAX} is defined.
- @end deftypevr
- @cindex limits, pipe buffer size
-@@ -1476,6 +1482,9 @@ Inquire about the value of @code{POSIX_REC_MIN_XFER_SIZE}.
- Inquire about the value of @code{POSIX_REC_XFER_ALIGN}.
- @end table
-+@strong{Portability Note:} On some systems, the GNU C Library does not
-+enforce @code{_PC_NAME_MAX} or @code{_PC_PATH_MAX} limits.
-+
- @node Utility Limits
- @section Utility Program Capacity Limits
-diff --git a/manual/filesys.texi b/manual/filesys.texi
-index 1df9cf2..814c210 100644
---- a/manual/filesys.texi
-+++ b/manual/filesys.texi
-@@ -444,9 +444,9 @@ symbols are declared in the header file @file{dirent.h}.
- @comment POSIX.1
- @deftypefun {struct dirent *} readdir (DIR *@var{dirstream})
- This function reads the next entry from the directory.  It normally
--returns a pointer to a structure containing information about the file.
--This structure is statically allocated and can be rewritten by a
--subsequent call.
-+returns a pointer to a structure containing information about the
-+file.  This structure is associated with the @var{dirstream} handle
-+and can be rewritten by a subsequent call.
- @strong{Portability Note:} On some systems @code{readdir} may not
- return entries for @file{.} and @file{..}, even though these are always
-@@ -461,19 +461,61 @@ conditions are defined for this function:
- The @var{dirstream} argument is not valid.
- @end table
--@code{readdir} is not thread safe.  Multiple threads using
--@code{readdir} on the same @var{dirstream} may overwrite the return
--value.  Use @code{readdir_r} when this is critical.
-+To distinguish between an end-of-directory condition or an error, you
-+must set @code{errno} to zero before calling @code{readdir}.  To avoid
-+entering an infinite loop, you should stop reading from the directory
-+after the first error.
-+
-+In POSIX.1-2008, @code{readdir} is not thread-safe.  In the GNU C Library
-+implementation, it is safe to call @code{readdir} concurrently on
-+different @var{dirstream}s, but multiple threads accessing the same
-+@var{dirstream} result in undefined behavior.  @code{readdir_r} is a
-+fully thread-safe alternative, but suffers from poor portability (see
-+below).  It is recommended that you use @code{readdir}, with external
-+locking if multiple threads access the same @var{dirstream}.
- @end deftypefun
- @comment dirent.h
- @comment GNU
- @deftypefun int readdir_r (DIR *@var{dirstream}, struct dirent *@var{entry}, struct dirent **@var{result})
--This function is the reentrant version of @code{readdir}.  Like
--@code{readdir} it returns the next entry from the directory.  But to
--prevent conflicts between simultaneously running threads the result is
--not stored in statically allocated memory.  Instead the argument
--@var{entry} points to a place to store the result.
-+This function is a version of @code{readdir} which performs internal
-+locking.  Like @code{readdir} it returns the next entry from the
-+directory.  To prevent conflicts between simultaneously running
-+threads the result is stored inside the @var{entry} object.
-+
-+@strong{Portability Note:} It is recommended to use @code{readdir}
-+instead of @code{readdir_r} for the following reasons:
-+
-+@itemize @bullet
-+@item
-+On systems which do not define @code{NAME_MAX}, it may not be possible
-+to use @code{readdir_r} safely because the caller does not specify the
-+length of the buffer for the directory entry.
-+
-+@item
-+On some systems, @code{readdir_r} cannot read directory entries with
-+very long names.  If such a name is encountered, the GNU C Library
-+implementation of @code{readdir_r} returns with an error code of
-+@code{ENAMETOOLONG} after the final directory entry has been read.  On
-+other systems, @code{readdir_r} may return successfully, but the
-+@code{d_name} member may not be NUL-terminated or may be truncated.
-+
-+@item
-+POSIX-1.2008 does not guarantee that @code{readdir} is thread-safe,
-+even when access to the same @var{dirstream} is serialized.  But in
-+current implementations (including the GNU C Library), it is safe to call
-+@code{readdir} concurrently on different @var{dirstream}s, so there is
-+no need to use @code{readdir_r} in most multi-threaded programs.  In
-+the rare case that multiple threads need to read from the same
-+@var{dirstream}, it is still better to use @code{readdir} and external
-+synchronization.
-+
-+@item
-+It is expected that future versions of POSIX will obsolete
-+@code{readdir_r} and mandate the level of thread safety for
-+@code{readdir} which is provided by the GNU C Library and other
-+implementations today.
-+@end itemize
- Normally @code{readdir_r} returns zero and sets @code{*@var{result}}
- to @var{entry}.  If there are no more entries in the directory or an
-@@ -481,15 +523,6 @@ error is detected, @code{readdir_r} sets @code{*@var{result}} to a
- null pointer and returns a nonzero error code, also stored in
- @code{errno}, as described for @code{readdir}.
--@strong{Portability Note:} On some systems @code{readdir_r} may not
--return a NUL terminated string for the file name, even when there is no
--@code{d_reclen} field in @code{struct dirent} and the file
--name is the maximum allowed size.  Modern systems all have the
--@code{d_reclen} field, and on old systems multi-threading is not
--critical.  In any case there is no such problem with the @code{readdir}
--function, so that even on systems without the @code{d_reclen} member one
--could use multiple threads by using external locking.
--
- It is also important to look at the definition of the @code{struct
- dirent} type.  Simply passing a pointer to an object of this type for
- the second parameter of @code{readdir_r} might not be enough.  Some
-diff --git a/sysdeps/unix/dirstream.h b/sysdeps/unix/dirstream.h
-index a7a074d..8e8570d 100644
---- a/sysdeps/unix/dirstream.h
-+++ b/sysdeps/unix/dirstream.h
-@@ -39,6 +39,8 @@ struct __dirstream
-     off_t filepos;            /* Position of next entry to read.  */
-+    int errcode;              /* Delayed error code.  */
-+
-     /* Directory block.  */
-     char data[0] __attribute__ ((aligned (__alignof__ (void*))));
-   };
-diff --git a/sysdeps/unix/opendir.c b/sysdeps/unix/opendir.c
-index ddfc3a7..fc05b0f 100644
---- a/sysdeps/unix/opendir.c
-+++ b/sysdeps/unix/opendir.c
-@@ -231,6 +231,7 @@ __alloc_dir (int fd, bool close_fd, int flags, const struct stat64 *statp)
-   dirp->size = 0;
-   dirp->offset = 0;
-   dirp->filepos = 0;
-+  dirp->errcode = 0;
-   return dirp;
- }
-diff --git a/sysdeps/unix/readdir_r.c b/sysdeps/unix/readdir_r.c
-index b5a8e2e..8ed5c3f 100644
---- a/sysdeps/unix/readdir_r.c
-+++ b/sysdeps/unix/readdir_r.c
-@@ -40,6 +40,7 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *entry, DIRENT_TYPE **result)
-   DIRENT_TYPE *dp;
-   size_t reclen;
-   const int saved_errno = errno;
-+  int ret;
-   __libc_lock_lock (dirp->lock);
-@@ -70,10 +71,10 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *entry, DIRENT_TYPE **result)
-                 bytes = 0;
-                 __set_errno (saved_errno);
-               }
-+            if (bytes < 0)
-+              dirp->errcode = errno;
-             dp = NULL;
--            /* Reclen != 0 signals that an error occurred.  */
--            reclen = bytes != 0;
-             break;
-           }
-         dirp->size = (size_t) bytes;
-@@ -106,28 +107,46 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *entry, DIRENT_TYPE **result)
-       dirp->filepos += reclen;
- #endif
--      /* Skip deleted files.  */
-+#ifdef NAME_MAX
-+      if (reclen > offsetof (DIRENT_TYPE, d_name) + NAME_MAX + 1)
-+      {
-+        /* The record is very long.  It could still fit into the
-+           caller-supplied buffer if we can skip padding at the
-+           end.  */
-+        size_t namelen = _D_EXACT_NAMLEN (dp);
-+        if (namelen <= NAME_MAX)
-+          reclen = offsetof (DIRENT_TYPE, d_name) + namelen + 1;
-+        else
-+          {
-+            /* The name is too long.  Ignore this file.  */
-+            dirp->errcode = ENAMETOOLONG;
-+            dp->d_ino = 0;
-+            continue;
-+          }
-+      }
-+#endif
-+
-+      /* Skip deleted and ignored files.  */
-     }
-   while (dp->d_ino == 0);
-   if (dp != NULL)
-     {
--#ifdef GETDENTS_64BIT_ALIGNED
--      /* The d_reclen value might include padding which is not part of
--       the DIRENT_TYPE data structure.  */
--      reclen = MIN (reclen, sizeof (DIRENT_TYPE));
--#endif
-       *result = memcpy (entry, dp, reclen);
--#ifdef GETDENTS_64BIT_ALIGNED
-+#ifdef _DIRENT_HAVE_D_RECLEN
-       entry->d_reclen = reclen;
- #endif
-+      ret = 0;
-     }
-   else
--    *result = NULL;
-+    {
-+      *result = NULL;
-+      ret = dirp->errcode;
-+    }
-   __libc_lock_unlock (dirp->lock);
--  return dp != NULL ? 0 : reclen ? errno : 0;
-+  return ret;
- }
- #ifdef __READDIR_R_ALIAS
-diff --git a/sysdeps/unix/rewinddir.c b/sysdeps/unix/rewinddir.c
-index 2935a8e..d4991ad 100644
---- a/sysdeps/unix/rewinddir.c
-+++ b/sysdeps/unix/rewinddir.c
-@@ -33,5 +33,6 @@ rewinddir (dirp)
-   dirp->filepos = 0;
-   dirp->offset = 0;
-   dirp->size = 0;
-+  dirp->errcode = 0;
-   __libc_lock_unlock (dirp->lock);
- }
-diff --git a/sysdeps/unix/sysv/linux/i386/readdir64_r.c b/sysdeps/unix/sysv/linux/i386/readdir64_r.c
-index 8ebbcfd..a7d114e 100644
---- a/sysdeps/unix/sysv/linux/i386/readdir64_r.c
-+++ b/sysdeps/unix/sysv/linux/i386/readdir64_r.c
-@@ -18,7 +18,6 @@
- #define __READDIR_R __readdir64_r
- #define __GETDENTS __getdents64
- #define DIRENT_TYPE struct dirent64
--#define GETDENTS_64BIT_ALIGNED 1
- #include <sysdeps/unix/readdir_r.c>
diff --git a/src/patches/glibc/glibc-rh1116050-1.patch b/src/patches/glibc/glibc-rh1116050-1.patch
deleted file mode 100644 (file)
index 439cf6d..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# In rhel-6.x the Makerules are not entirely as mature as they are
-# in glibc 2.21 (from which the example link-libc-args is taken from).
-# In rhel-6.x the applications are not built like their counterpart
-# real applications, and because of that compiling DSOs that use TLS
-# will fail with undefined references to __tls_get_addr which resides
-# in ld.so and is never included in the link. This patch enhances
-# only the build-module and build-module-asneeded targets to include
-# a more fully and correct link line as the compiler driver would use
-# when constructing an application or DSO. We do not adjust the link
-# lines used to build lib* targets.
-#
-diff -urN glibc-2.12-2-gc4ccff1.orig/Makerules glibc-2.12-2-gc4ccff1/Makerules
---- glibc-2.12-2-gc4ccff1.orig/Makerules       2015-02-18 19:53:00.000000000 -0500
-+++ glibc-2.12-2-gc4ccff1/Makerules    2015-02-18 20:08:33.299000028 -0500
-@@ -443,6 +443,25 @@
- load-map-file = $(map-file:%=-Wl,--version-script=%)
- endif
-+# Compiler arguments to use to link a shared object with libc and
-+# ld.so.  This is intended to be as similar as possible to a default
-+# link with an installed libc.
-+link-libc-args = -Wl,--start-group \
-+                 $(libc-for-link) \
-+                 $(common-objpfx)libc_nonshared.a \
-+                 $(as-needed) $(elf-objpfx)ld.so $(no-as-needed) \
-+                 -Wl,--end-group
-+
-+# The corresponding shared libc to use.  This may be modified for a
-+# particular target.
-+libc-for-link = $(common-objpfx)libc.so
-+
-+# The corresponding dependencies.  As these are used in dependencies,
-+# not just commands, they cannot use target-specific variables so need
-+# to name both possible libc.so objects.
-+link-libc-deps = $(common-objpfx)libc.so $(common-objpfx)linkobj/libc.so \
-+                 $(common-objpfx)libc_nonshared.a $(elf-objpfx)ld.so
-+
- # Pattern rule to build a shared object from an archive of PIC objects.
- # This must come after the installation rules so Make doesn't try to
- # build shared libraries in place from the installed *_pic.a files.
-@@ -557,12 +576,13 @@
- # not for shared objects
- define build-module
- $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \
--        $(csu-objpfx)abi-note.o $(build-module-objlist)
-+        $(csu-objpfx)abi-note.o $(build-module-objlist) $(link-libc-args)
- endef
- define build-module-asneeded
- $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \
-         $(csu-objpfx)abi-note.o \
--        -Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed
-+        -Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed \
-+        $(link-libc-args)
- endef
- else
- ifneq (,$(findstring aix,$(config-os)))
diff --git a/src/patches/glibc/glibc-rh1116050.patch b/src/patches/glibc/glibc-rh1116050.patch
deleted file mode 100644 (file)
index 7631312..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-#
-# Based on this upstream commit:
-#
-# commit d8dd00805b8f3a011735d7a407097fb1c408d867
-# Author: H.J. Lu <hjl.tools@gmail.com>
-# Date:   Fri Nov 28 07:54:07 2014 -0800
-# 
-#     Resize DTV if the current DTV isn't big enough
-#     
-#     This patch changes _dl_allocate_tls_init to resize DTV if the current DTV
-#     isn't big enough.  Tested on X86-64, x32 and ia32.
-#     
-#         [BZ #13862]
-#         * elf/dl-tls.c: Include <atomic.h>.
-#         (oom): Remove #ifdef SHARED/#endif.
-#         (_dl_static_dtv, _dl_initial_dtv): Moved before ...
-#         (_dl_resize_dtv): This.  Extracted from _dl_update_slotinfo.
-#         (_dl_allocate_tls_init): Resize DTV if the current DTV isn't
-#         big enough.
-#         (_dl_update_slotinfo): Call _dl_resize_dtv to resize DTV.
-#         * nptl/Makefile (tests): Add tst-stack4.
-#         (modules-names): Add tst-stack4mod.
-#         ($(objpfx)tst-stack4): New.
-#         (tst-stack4mod.sos): Likewise.
-#         ($(objpfx)tst-stack4.out): Likewise.
-#         ($(tst-stack4mod.sos)): Likewise.
-#         (clean): Likewise.
-#         * nptl/tst-stack4.c: New file.
-#         * nptl/tst-stack4mod.c: Likewise.
-# 
-diff -urN glibc-2.12-2-gc4ccff1/elf/dl-tls.c glibc-2.12-2-gc4ccff1.mod/elf/dl-tls.c
---- glibc-2.12-2-gc4ccff1/elf/dl-tls.c 2015-02-18 14:15:28.078461873 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/elf/dl-tls.c     2015-02-18 14:38:37.630374771 -0500
-@@ -24,6 +24,7 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/param.h>
-+#include <atomic.h>
- #include <tls.h>
- #include <dl-tls.h>
-@@ -35,14 +36,12 @@
- /* Out-of-memory handler.  */
--#ifdef SHARED
- static void
- __attribute__ ((__noreturn__))
- oom (void)
- {
-   _dl_fatal_printf ("cannot allocate memory for thread-local data: ABORT\n");
- }
--#endif
- size_t
-@@ -392,6 +391,52 @@
-   return result;
- }
-+static dtv_t *
-+_dl_resize_dtv (dtv_t *dtv)
-+{
-+  /* Resize the dtv.  */
-+  dtv_t *newp;
-+  /* Load GL(dl_tls_max_dtv_idx) atomically since it may be written to by
-+     other threads concurrently. -- We don't have the required atomic
-+     infrastructure to load dl_tls_max_dtv_idx atomically, but on all the
-+     architectures we care about it should load atomically. If this had
-+     an atomic_load_acquire we would still be missing the releases for
-+     the writes.  */
-+  size_t newsize = GL(dl_tls_max_dtv_idx) + DTV_SURPLUS;
-+  size_t oldsize = dtv[-1].counter;
-+
-+#if SHARED
-+  if (dtv == GL(dl_initial_dtv))
-+    {
-+      /* This is the initial dtv that was either statically allocated in
-+       __libc_setup_tls or allocated during rtld startup using the
-+       dl-minimal.c malloc instead of the real malloc.  We can't free
-+       it, we have to abandon the old storage.  */
-+
-+      newp = malloc ((2 + newsize) * sizeof (dtv_t));
-+      if (newp == NULL)
-+      oom ();
-+      memcpy (newp, &dtv[-1], (2 + oldsize) * sizeof (dtv_t));
-+    }
-+  else
-+#endif
-+    {
-+      newp = realloc (&dtv[-1],
-+                    (2 + newsize) * sizeof (dtv_t));
-+      if (newp == NULL)
-+      oom ();
-+    }
-+
-+  newp[0].counter = newsize;
-+
-+  /* Clear the newly allocated part.  */
-+  memset (newp + 2 + oldsize, '\0',
-+        (newsize - oldsize) * sizeof (dtv_t));
-+
-+  /* Return the generation counter.  */
-+  return &newp[1];
-+}
-+
- void *
- internal_function
-@@ -406,6 +451,16 @@
-   size_t total = 0;
-   size_t maxgen = 0;
-+  /* Check if the current dtv is big enough.   */
-+  if (dtv[-1].counter < GL(dl_tls_max_dtv_idx))
-+    {
-+      /* Resize the dtv.  */
-+      dtv = _dl_resize_dtv (dtv);
-+
-+      /* Install this new dtv in the thread data structures.  */
-+      INSTALL_DTV (result, &dtv[-1]);
-+    }
-+
-   /* We have to prepare the dtv for all currently loaded modules using
-      TLS.  For those which are dynamically loaded we add the values
-      indicating deferred allocation.  */
-@@ -637,41 +692,10 @@
-             assert (total + cnt == modid);
-             if (dtv[-1].counter < modid)
-               {
--                /* Reallocate the dtv.  */
--                dtv_t *newp;
--                size_t newsize = GL(dl_tls_max_dtv_idx) + DTV_SURPLUS;
--                size_t oldsize = dtv[-1].counter;
--
--                assert (map->l_tls_modid <= newsize);
--
--                if (dtv == GL(dl_initial_dtv))
--                  {
--                    /* This is the initial dtv that was allocated
--                       during rtld startup using the dl-minimal.c
--                       malloc instead of the real malloc.  We can't
--                       free it, we have to abandon the old storage.  */
--
--                    newp = malloc ((2 + newsize) * sizeof (dtv_t));
--                    if (newp == NULL)
--                      oom ();
--                    memcpy (newp, &dtv[-1], (2 + oldsize) * sizeof (dtv_t));
--                  }
--                else
--                  {
--                    newp = realloc (&dtv[-1],
--                                    (2 + newsize) * sizeof (dtv_t));
--                    if (newp == NULL)
--                      oom ();
--                  }
--
--                newp[0].counter = newsize;
--
--                /* Clear the newly allocated part.  */
--                memset (newp + 2 + oldsize, '\0',
--                        (newsize - oldsize) * sizeof (dtv_t));
-+                /* Resize the dtv.  */
-+                dtv = _dl_resize_dtv (dtv);
--                /* Point dtv to the generation counter.  */
--                dtv = &newp[1];
-+                assert (modid <= dtv[-1].counter);
-                 /* Install this new dtv in the thread data
-                    structures.  */
-diff -urN glibc-2.12-2-gc4ccff1/nptl/Makefile glibc-2.12-2-gc4ccff1.mod/nptl/Makefile
---- glibc-2.12-2-gc4ccff1/nptl/Makefile        2015-02-18 14:15:28.073462028 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/nptl/Makefile    2015-02-18 14:15:49.817786667 -0500
-@@ -245,7 +245,7 @@
-       tst-exec1 tst-exec2 tst-exec3 tst-exec4 \
-       tst-exit1 tst-exit2 tst-exit3 \
-       tst-stdio1 tst-stdio2 \
--      tst-stack1 tst-stack2 tst-stack3 \
-+      tst-stack1 tst-stack2 tst-stack3 tst-stack4 \
-       tst-unload \
-       tst-dlsym1 \
-       tst-sysconf \
-@@ -304,7 +304,7 @@
- modules-names = tst-atfork2mod tst-tls3mod tst-tls4moda tst-tls4modb \
-               tst-tls5mod tst-tls5moda tst-tls5modb tst-tls5modc \
--              tst-tls5modd tst-tls5mode tst-tls5modf \
-+              tst-tls5modd tst-tls5mode tst-tls5modf tst-stack4mod \
-               tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod
- extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) tst-cleanup4aux.o
- test-extras += $(modules-names)
-@@ -459,6 +459,19 @@
-       $(common-objpfx)malloc/mtrace $(objpfx)tst-stack3.mtrace > $@
- generated += tst-stack3-mem tst-stack3.mtrace
-+$(objpfx)tst-stack4: $(libdl) $(shared-thread-library)
-+tst-stack4mod.sos=$(shell for i in 0 1 2 3 4 5 6 7 8 9 10 \
-+                                 11 12 13 14 15 16 17 18 19; do \
-+                          for j in 0 1 2 3 4 5 6 7 8 9 10 \
-+                                   11 12 13 14 15 16 17 18 19; do \
-+                            echo $(objpfx)tst-stack4mod-$$i-$$j.so; \
-+                          done; done)
-+$(objpfx)tst-stack4.out: $(tst-stack4mod.sos)
-+$(tst-stack4mod.sos): $(objpfx)tst-stack4mod.so
-+      cp -f $< $@
-+clean:
-+      rm -f $(tst-stack4mod.sos)
-+
- $(objpfx)tst-cleanup4: $(objpfx)tst-cleanup4aux.o $(shared-thread-library)
- $(objpfx)tst-cleanupx4: $(objpfx)tst-cleanup4aux.o $(shared-thread-library)
-diff -urN glibc-2.12-2-gc4ccff1/nptl/tst-stack4.c glibc-2.12-2-gc4ccff1.mod/nptl/tst-stack4.c
---- glibc-2.12-2-gc4ccff1/nptl/tst-stack4.c    1969-12-31 19:00:00.000000000 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/nptl/tst-stack4.c        2015-02-18 14:15:49.817786667 -0500
-@@ -0,0 +1,159 @@
-+/* Test DTV size oveflow when pthread_create reuses old DTV and TLS is
-+   used by dlopened shared object.
-+   Copyright (C) 2014 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <stdio.h>
-+#include <stdint.h>
-+#include <dlfcn.h>
-+#include <assert.h>
-+#include <pthread.h>
-+
-+/* The choices of thread count, and file counts are arbitary.
-+   The point is simply to run enough threads that an exiting
-+   thread has it's stack reused by another thread at the same
-+   time as new libraries have been loaded.  */
-+#define DSO_SHARED_FILES 20
-+#define DSO_OPEN_THREADS 20
-+#define DSO_EXEC_THREADS 2
-+
-+/* Used to make sure that only one thread is calling dlopen and dlclose
-+   at a time.  */
-+pthread_mutex_t g_lock;
-+
-+typedef void (*function) (void);
-+
-+void *
-+dso_invoke(void *dso_fun)
-+{
-+  function *fun_vec = (function *) dso_fun;
-+  int dso;
-+
-+  for (dso = 0; dso < DSO_SHARED_FILES; dso++)
-+    (*fun_vec[dso]) ();
-+
-+  pthread_exit (NULL);
-+}
-+
-+void *
-+dso_process (void * p)
-+{
-+  void *handle[DSO_SHARED_FILES];
-+  function fun_vec[DSO_SHARED_FILES];
-+  char dso_path[DSO_SHARED_FILES][100];
-+  int dso;
-+  uintptr_t t = (uintptr_t) p;
-+
-+  /* Open DSOs and get a function.  */
-+  for (dso = 0; dso < DSO_SHARED_FILES; dso++)
-+    {
-+      sprintf (dso_path[dso], "tst-stack4mod-%i-%i.so", t, dso);
-+
-+      pthread_mutex_lock (&g_lock);
-+
-+      handle[dso] = dlopen (dso_path[dso], RTLD_NOW);
-+      assert (handle[dso]);
-+
-+      fun_vec[dso] = (function) dlsym (handle[dso], "function");
-+      assert (fun_vec[dso]);
-+
-+      pthread_mutex_unlock (&g_lock);
-+    }
-+
-+  /* Spawn workers.  */
-+  pthread_t thread[DSO_EXEC_THREADS];
-+  int i, ret;
-+  uintptr_t result = 0;
-+  for (i = 0; i < DSO_EXEC_THREADS; i++)
-+    {
-+      pthread_mutex_lock (&g_lock);
-+      ret = pthread_create (&thread[i], NULL, dso_invoke, (void *) fun_vec);
-+      if (ret != 0)
-+      {
-+        printf ("pthread_create failed: %d\n", ret);
-+        result = 1;
-+      }
-+      pthread_mutex_unlock (&g_lock);
-+    }
-+
-+  if (!result)
-+    for (i = 0; i < DSO_EXEC_THREADS; i++)
-+      {
-+      ret = pthread_join (thread[i], NULL);
-+      if (ret != 0)
-+        {
-+          printf ("pthread_join failed: %d\n", ret);
-+          result = 1;
-+        }
-+      }
-+
-+  /* Close all DSOs.  */
-+  for (dso = 0; dso < DSO_SHARED_FILES; dso++)
-+    {
-+      pthread_mutex_lock (&g_lock);
-+      dlclose (handle[dso]);
-+      pthread_mutex_unlock (&g_lock);
-+    }
-+
-+  /* Exit.  */
-+  pthread_exit ((void *) result);
-+}
-+
-+static int
-+do_test (void)
-+{
-+  pthread_t thread[DSO_OPEN_THREADS];
-+  int i,j;
-+  int ret;
-+  int result = 0;
-+
-+  pthread_mutex_init (&g_lock, NULL);
-+
-+  /* 100 is arbitrary here and is known to trigger PR 13862.  */
-+  for (j = 0; j < 100; j++)
-+    {
-+      for (i = 0; i < DSO_OPEN_THREADS; i++)
-+      {
-+        ret = pthread_create (&thread[i], NULL, dso_process,
-+                              (void *) (uintptr_t) i);
-+        if (ret != 0)
-+          {
-+            printf ("pthread_create failed: %d\n", ret);
-+            result = 1;
-+          }
-+      }
-+
-+      if (result)
-+      break;
-+
-+      for (i = 0; i < DSO_OPEN_THREADS; i++)
-+      {
-+        ret = pthread_join (thread[i], NULL);
-+        if (ret != 0)
-+          {
-+            printf ("pthread_join failed: %d\n", ret);
-+            result = 1;
-+          }
-+      }
-+    }
-+
-+  return result;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#define TIMEOUT 100
-+#include "../test-skeleton.c"
-diff -urN glibc-2.12-2-gc4ccff1/nptl/tst-stack4mod.c glibc-2.12-2-gc4ccff1.mod/nptl/tst-stack4mod.c
---- glibc-2.12-2-gc4ccff1/nptl/tst-stack4mod.c 1969-12-31 19:00:00.000000000 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/nptl/tst-stack4mod.c     2015-02-18 14:15:49.817786667 -0500
-@@ -0,0 +1,28 @@
-+/* This tests DTV usage with TLS in dlopened shared object.
-+   Copyright (C) 2014 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+/* 256 is arbitrary here and is known to trigger PR 13862.  */
-+__thread int var[256] attribute_hidden = {0};
-+
-+void
-+function (void)
-+{
-+  int i;
-+  for (i = 0; i < sizeof (var) / sizeof (int); i++)
-+    var[i] = i;
-+}
diff --git a/src/patches/glibc/glibc-rh1124204.patch b/src/patches/glibc/glibc-rh1124204.patch
deleted file mode 100644 (file)
index f14c4cb..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# Derived from this upstream commit:
-#
-# commit 58a1335e76a553e1cf4edeebc27f16fc9b53d6e6
-# Author: Petr Baudis <pasky@ucw.cz>
-# Date:   Thu Mar 14 01:16:53 2013 +0100
-#
-#    Fix __times() handling of EFAULT when buf is NULL
-#
-# 2013-03-14  Petr Baudis  <pasky@ucw.cz>
-#
-#      * sysdeps/unix/sysv/linux/times.c (__times): On EFAULT, test
-#      for non-NULL pointer before the memory validity test. Pointed
-#      out by Holger Brunck <holger.brunck@keymile.com>.
-#
-diff --git a/sysdeps/unix/sysv/linux/times.c b/sysdeps/unix/sysv/linux/times.c
-index f3b5f01..e59bb4e 100644
---- a/sysdeps/unix/sysv/linux/times.c
-+++ b/sysdeps/unix/sysv/linux/times.c
-@@ -26,13 +26,14 @@ __times (struct tms *buf)
-   INTERNAL_SYSCALL_DECL (err);
-   clock_t ret = INTERNAL_SYSCALL (times, err, 1, buf);
-   if (INTERNAL_SYSCALL_ERROR_P (ret, err)
--      && __builtin_expect (INTERNAL_SYSCALL_ERRNO (ret, err) == EFAULT, 0))
-+      && __builtin_expect (INTERNAL_SYSCALL_ERRNO (ret, err) == EFAULT, 0)
-+      && buf)
-     {
-       /* This might be an error or not.  For architectures which have
-        no separate return value and error indicators we cannot
-        distinguish a return value of -1 from an error.  Do it the
--       hard way.  We crash applications which pass in an invalid BUF
--       pointer.  */
-+       hard way.  We crash applications which pass in an invalid
-+       non-NULL BUF pointer.  Linux allows BUF to be NULL. */
- #define touch(v) \
-       do {                                                                  \
-       clock_t temp = v;                                                     \
-@@ -44,7 +45,8 @@ __times (struct tms *buf)
-       touch (buf->tms_cutime);
-       touch (buf->tms_cstime);
--      /* If we come here the memory is valid and the kernel did not
-+      /* If we come here the memory is valid (or BUF is NULL, which is
-+       * a valid condition for the kernel syscall) and the kernel did not
-        return an EFAULT error.  Return the value given by the kernel.  */
-     }
diff --git a/src/patches/glibc/glibc-rh1125307.patch b/src/patches/glibc/glibc-rh1125307.patch
deleted file mode 100644 (file)
index 72ba01d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-commit a11892631d92f594c690d0d50a642b0d1aba58b8
-Author: Ondřej Bílka <neleai@seznam.cz>
-Date:   Wed May 7 14:08:57 2014 +0200
-
-    Fix typo in nscd/selinux.c
-
-diff --git a/nscd/selinux.c b/nscd/selinux.c
-index 9a8a5a8..eaed6dd 100644
---- a/nscd/selinux.c
-+++ b/nscd/selinux.c
-@@ -372,7 +372,7 @@ nscd_request_avc_has_perm (int fd, request_type req)
-   /* Get the security class for nscd.  If this fails we will likely be
-      unable to do anything unless avc_deny_unknown is 0.  */
-   sc_nscd = string_to_security_class ("nscd");
--  if (perm == 0 && avc_deny_unknown == 1)
-+  if (sc_nscd == 0 && avc_deny_unknown == 1)
-     dbg_log (_("Error getting security class for nscd."));
-   /* Convert permission to AVC bits.  */
diff --git a/src/patches/glibc/glibc-rh1133810-1.patch b/src/patches/glibc/glibc-rh1133810-1.patch
deleted file mode 100644 (file)
index 12b9949..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-2014-08-21  Florian Weimer  <fweimer@redhat.com>
-
-       [BZ #17187]
-       * iconv/gconv_trans.c (struct known_trans, search_tree, lock,
-       trans_compare, open_translit, __gconv_translit_find):
-       Remove module loading code.
-
-diff --git a/iconv/gconv_trans.c b/iconv/gconv_trans.c
-index 1e25854..d71c029 100644
---- a/iconv/gconv_trans.c
-+++ b/iconv/gconv_trans.c
-@@ -238,181 +238,11 @@ __gconv_transliterate (struct __gconv_step *step,
-   return __GCONV_ILLEGAL_INPUT;
- }
--
--/* Structure to represent results of found (or not) transliteration
--   modules.  */
--struct known_trans
--{
--  /* This structure must remain the first member.  */
--  struct trans_struct info;
--
--  char *fname;
--  void *handle;
--  int open_count;
--};
--
--
--/* Tree with results of previous calls to __gconv_translit_find.  */
--static void *search_tree;
--
--/* We modify global data.   */
--__libc_lock_define_initialized (static, lock);
--
--
--/* Compare two transliteration entries.  */
--static int
--trans_compare (const void *p1, const void *p2)
--{
--  const struct known_trans *s1 = (const struct known_trans *) p1;
--  const struct known_trans *s2 = (const struct known_trans *) p2;
--
--  return strcmp (s1->info.name, s2->info.name);
--}
--
--
--/* Open (maybe reopen) the module named in the struct.  Get the function
--   and data structure pointers we need.  */
--static int
--open_translit (struct known_trans *trans)
--{
--  __gconv_trans_query_fct queryfct;
--
--  trans->handle = __libc_dlopen (trans->fname);
--  if (trans->handle == NULL)
--    /* Not available.  */
--    return 1;
--
--  /* Find the required symbol.  */
--  queryfct = __libc_dlsym (trans->handle, "gconv_trans_context");
--  if (queryfct == NULL)
--    {
--      /* We cannot live with that.  */
--    close_and_out:
--      __libc_dlclose (trans->handle);
--      trans->handle = NULL;
--      return 1;
--    }
--
--  /* Get the context.  */
--  if (queryfct (trans->info.name, &trans->info.csnames, &trans->info.ncsnames)
--      != 0)
--    goto close_and_out;
--
--  /* Of course we also have to have the actual function.  */
--  trans->info.trans_fct = __libc_dlsym (trans->handle, "gconv_trans");
--  if (trans->info.trans_fct == NULL)
--    goto close_and_out;
--
--  /* Now the optional functions.  */
--  trans->info.trans_init_fct =
--    __libc_dlsym (trans->handle, "gconv_trans_init");
--  trans->info.trans_context_fct =
--    __libc_dlsym (trans->handle, "gconv_trans_context");
--  trans->info.trans_end_fct =
--    __libc_dlsym (trans->handle, "gconv_trans_end");
--
--  trans->open_count = 1;
--
--  return 0;
--}
--
--
- int
- internal_function
- __gconv_translit_find (struct trans_struct *trans)
- {
--  struct known_trans **found;
--  const struct path_elem *runp;
--  int res = 1;
--
--  /* We have to have a name.  */
--  assert (trans->name != NULL);
--
--  /* Acquire the lock.  */
--  __libc_lock_lock (lock);
--
--  /* See whether we know this module already.  */
--  found = __tfind (trans, &search_tree, trans_compare);
--  if (found != NULL)
--    {
--      /* Is this module available?  */
--      if ((*found)->handle != NULL)
--      {
--        /* Maybe we have to reopen the file.  */
--        if ((*found)->handle != (void *) -1)
--          /* The object is not unloaded.  */
--          res = 0;
--        else if (open_translit (*found) == 0)
--          {
--            /* Copy the data.  */
--            *trans = (*found)->info;
--            (*found)->open_count++;
--            res = 0;
--          }
--      }
--    }
--  else
--    {
--      size_t name_len = strlen (trans->name) + 1;
--      int need_so = 0;
--      struct known_trans *newp;
--
--      /* We have to continue looking for the module.  */
--      if (__gconv_path_elem == NULL)
--      __gconv_get_path ();
--
--      /* See whether we have to append .so.  */
--      if (name_len <= 4 || memcmp (&trans->name[name_len - 4], ".so", 3) != 0)
--      need_so = 1;
--
--      /* Create a new entry.  */
--      newp = (struct known_trans *) malloc (sizeof (struct known_trans)
--                                          + (__gconv_max_path_elem_len
--                                             + name_len + 3)
--                                          + name_len);
--      if (newp != NULL)
--      {
--        char *cp;
--
--        /* Clear the struct.  */
--        memset (newp, '\0', sizeof (struct known_trans));
--
--        /* Store a copy of the module name.  */
--        newp->info.name = cp = (char *) (newp + 1);
--        cp = __mempcpy (cp, trans->name, name_len);
--
--        newp->fname = cp;
--
--        /* Search in all the directories.  */
--        for (runp = __gconv_path_elem; runp->name != NULL; ++runp)
--          {
--            cp = __mempcpy (__stpcpy ((char *) newp->fname, runp->name),
--                            trans->name, name_len);
--            if (need_so)
--              memcpy (cp, ".so", sizeof (".so"));
--
--            if (open_translit (newp) == 0)
--              {
--                /* We found a module.  */
--                res = 0;
--                break;
--              }
--          }
--
--        if (res)
--          newp->fname = NULL;
--
--        /* In any case we'll add the entry to our search tree.  */
--        if (__tsearch (newp, &search_tree, trans_compare) == NULL)
--          {
--            /* Yickes, this should not happen.  Unload the object.  */
--            res = 1;
--            /* XXX unload here.  */
--          }
--      }
--    }
--
--  __libc_lock_unlock (lock);
--
--  return res;
-+  /* This function always fails.  Transliteration module loading is
-+     not implemented.  */
-+  return 1;
- }
--- 
-1.9.3
-
diff --git a/src/patches/glibc/glibc-rh1133810-2.patch b/src/patches/glibc/glibc-rh1133810-2.patch
deleted file mode 100644 (file)
index 8148abb..0000000
+++ /dev/null
@@ -1,625 +0,0 @@
-commit 585367266923156ac6fb789939a923641ba5aaf4
-Author: Florian Weimer <fweimer@redhat.com>
-Date:   Wed May 28 14:05:03 2014 +0200
-
-    manual: Update the locale documentation
-
-commit 4e8f95a0df7c2300b830ec12c0ae1e161bc8a8a3
-Author: Florian Weimer <fweimer@redhat.com>
-Date:   Mon May 12 15:24:12 2014 +0200
-
-    _nl_find_locale: Improve handling of crafted locale names [BZ #17137]
-    
-    Prevent directory traversal in locale-related environment variables
-    (CVE-2014-0475).
-
-commit d183645616b0533b3acee28f1a95570bffbdf50f
-Author: Florian Weimer <fweimer@redhat.com>
-Date:   Wed May 28 14:41:52 2014 +0200
-
-    setlocale: Use the heap for the copy of the locale argument
-    
-    This avoids alloca calls with potentially large arguments.
-
-diff -pruN glibc-2.18/locale/findlocale.c glibc-2.18.patched/locale/findlocale.c
---- glibc-2.18/locale/findlocale.c     2013-08-11 04:22:55.000000000 +0530
-+++ glibc-2.18.patched/locale/findlocale.c     2014-08-26 16:14:50.403253778 +0530
-@@ -17,6 +17,7 @@
-    02111-1307 USA.  */
- #include <assert.h>
-+#include <errno.h>
- #include <locale.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -57,6 +58,45 @@ struct loaded_l10nfile *_nl_locale_file_
- const char _nl_default_locale_path[] attribute_hidden = LOCALEDIR;
-+/* Checks if the name is actually present, that is, not NULL and not
-+   empty.  */
-+static inline int
-+name_present (const char *name)
-+{
-+  return name != NULL && name[0] != '\0';
-+}
-+
-+/* Checks that the locale name neither extremely long, nor contains a
-+   ".." path component (to prevent directory traversal).  */
-+static inline int
-+valid_locale_name (const char *name)
-+{
-+  /* Not set.  */
-+  size_t namelen = strlen (name);
-+  /* Name too long.  The limit is arbitrary and prevents stack overflow
-+     issues later.  */
-+  if (__builtin_expect (namelen > 255, 0))
-+    return 0;
-+  /* Directory traversal attempt.  */
-+  static const char slashdot[4] = {'/', '.', '.', '/'};
-+  if (__builtin_expect (memmem (name, namelen,
-+                              slashdot, sizeof (slashdot)) != NULL, 0))
-+    return 0;
-+  if (namelen == 2 && __builtin_expect (name[0] == '.' && name [1] == '.', 0))
-+    return 0;
-+  if (namelen >= 3
-+      && __builtin_expect (((name[0] == '.'
-+                           && name[1] == '.'
-+                           && name[2] == '/')
-+                          || (name[namelen - 3] == '/'
-+                              && name[namelen - 2] == '.'
-+                              && name[namelen - 1] == '.')), 0))
-+    return 0;
-+  /* If there is a slash in the name, it must start with one.  */
-+  if (__builtin_expect (memchr (name, '/', namelen) != NULL, 0) && name[0] != '/')
-+    return 0;
-+  return 1;
-+}
- struct __locale_data *
- internal_function
-@@ -65,7 +105,7 @@ _nl_find_locale (const char *locale_path
- {
-   int mask;
-   /* Name of the locale for this category.  */
--  char *loc_name;
-+  char *loc_name = (char *) *name;
-   const char *language;
-   const char *modifier;
-   const char *territory;
-@@ -73,31 +113,39 @@ _nl_find_locale (const char *locale_path
-   const char *normalized_codeset;
-   struct loaded_l10nfile *locale_file;
--  if ((*name)[0] == '\0')
-+  if (loc_name[0] == '\0')
-     {
-       /* The user decides which locale to use by setting environment
-        variables.  */
--      *name = getenv ("LC_ALL");
--      if (*name == NULL || (*name)[0] == '\0')
--      *name = getenv (_nl_category_names.str
-+      loc_name = getenv ("LC_ALL");
-+      if (!name_present (loc_name))
-+      loc_name = getenv (_nl_category_names.str
-                       + _nl_category_name_idxs[category]);
--      if (*name == NULL || (*name)[0] == '\0')
--      *name = getenv ("LANG");
-+      if (!name_present (loc_name))
-+      loc_name = getenv ("LANG");
-+      if (!name_present (loc_name))
-+      loc_name = (char *) _nl_C_name;
-     }
--  if (*name == NULL || (*name)[0] == '\0'
--      || (__builtin_expect (__libc_enable_secure, 0)
--        && strchr (*name, '/') != NULL))
--    *name = (char *) _nl_C_name;
-+  /* We used to fall back to the C locale if the name contains a slash
-+     character '/', but we now check for directory traversal in
-+     valid_locale_name, so this is no longer necessary.  */
--  if (__builtin_expect (strcmp (*name, _nl_C_name), 1) == 0
--      || __builtin_expect (strcmp (*name, _nl_POSIX_name), 1) == 0)
-+  if (__builtin_expect (strcmp (loc_name, _nl_C_name), 1) == 0
-+      || __builtin_expect (strcmp (loc_name, _nl_POSIX_name), 1) == 0)
-     {
-       /* We need not load anything.  The needed data is contained in
-        the library itself.  */
-       *name = (char *) _nl_C_name;
-       return _nl_C[category];
-     }
-+  else if (!valid_locale_name (loc_name))
-+    {
-+      __set_errno (EINVAL);
-+      return NULL;
-+    }
-+
-+  *name = loc_name;
-   /* We really have to load some data.  First we try the archive,
-      but only if there was no LOCPATH environment variable specified.  */
-diff -pruN glibc-2.18/locale/setlocale.c glibc-2.18.patched/locale/setlocale.c
---- glibc-2.18/locale/setlocale.c      2013-08-11 04:22:55.000000000 +0530
-+++ glibc-2.18.patched/locale/setlocale.c      2014-08-26 16:14:50.401253764 +0530
-@@ -272,6 +272,8 @@ setlocale (int category, const char *loc
-        of entries of the form `CATEGORY=VALUE'.  */
-       const char *newnames[__LC_LAST];
-       struct __locale_data *newdata[__LC_LAST];
-+      /* Copy of the locale argument, for in-place splitting.  */
-+      char *locale_copy = NULL;
-       /* Set all name pointers to the argument name.  */
-       for (category = 0; category < __LC_LAST; ++category)
-@@ -281,7 +283,13 @@ setlocale (int category, const char *loc
-       if (__builtin_expect (strchr (locale, ';') != NULL, 0))
-       {
-         /* This is a composite name.  Make a copy and split it up.  */
--        char *np = strdupa (locale);
-+        locale_copy = strdup (locale);
-+        if (__builtin_expect (locale_copy == NULL, 0))
-+          {
-+            __libc_rwlock_unlock (__libc_setlocale_lock);
-+            return NULL;
-+          }
-+        char *np = locale_copy;
-         char *cp;
-         int cnt;
-@@ -299,6 +307,7 @@ setlocale (int category, const char *loc
-               {
-               error_return:
-                 __libc_rwlock_unlock (__libc_setlocale_lock);
-+                free (locale_copy);
-                 /* Bogus category name.  */
-                 ERROR_RETURN;
-@@ -391,8 +400,9 @@ setlocale (int category, const char *loc
-       /* Critical section left.  */
-       __libc_rwlock_unlock (__libc_setlocale_lock);
--      /* Free the resources (the locale path variable).  */
-+      /* Free the resources.  */
-       free (locale_path);
-+      free (locale_copy);
-       return composite;
-     }
-diff -pruN glibc-2.18/localedata/Makefile glibc-2.18.patched/localedata/Makefile
---- glibc-2.18/localedata/Makefile     2014-08-26 16:15:22.656474571 +0530
-+++ glibc-2.18.patched/localedata/Makefile     2014-08-26 16:14:50.403253778 +0530
-@@ -77,7 +77,7 @@ locale_test_suite := tst_iswalnum tst_is
- tests = $(locale_test_suite) tst-digits tst-setlocale bug-iconv-trans \
-       tst-leaks tst-mbswcs6 tst-xlocale1 tst-xlocale2 bug-usesetlocale \
--      tst-strfmon1 tst-sscanf tst-strptime
-+      tst-strfmon1 tst-sscanf tst-strptime tst-setlocale3
- ifeq (yes,$(build-shared))
- ifneq (no,$(PERL))
- tests: $(objpfx)mtrace-tst-leaks
-@@ -288,6 +288,7 @@ tst-strfmon1-ENV = $(TEST_MBWC_ENV)
- tst-strptime-ENV = $(TEST_MBWC_ENV)
- tst-setlocale-ENV = LOCPATH=$(common-objpfx)localedata LC_ALL=ja_JP.EUC-JP
-+tst-setlocale3-ENV = LOCPATH=$(common-objpfx)localedata
- bug-iconv-trans-ENV = LOCPATH=$(common-objpfx)localedata
-diff -pruN glibc-2.18/localedata/tst-setlocale3.c glibc-2.18.patched/localedata/tst-setlocale3.c
---- glibc-2.18/localedata/tst-setlocale3.c     1970-01-01 05:30:00.000000000 +0530
-+++ glibc-2.18.patched/localedata/tst-setlocale3.c     2014-08-26 16:14:50.403253778 +0530
-@@ -0,0 +1,203 @@
-+/* Regression test for setlocale invalid environment variable handling.
-+   Copyright (C) 2014 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <locale.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+/* The result of setlocale may be overwritten by subsequent calls, so
-+   this wrapper makes a copy.  */
-+static char *
-+setlocale_copy (int category, const char *locale)
-+{
-+  const char *result = setlocale (category, locale);
-+  if (result == NULL)
-+    return NULL;
-+  return strdup (result);
-+}
-+
-+static char *de_locale;
-+
-+static void
-+setlocale_fail (const char *envstring)
-+{
-+  setenv ("LC_CTYPE", envstring, 1);
-+  if (setlocale (LC_CTYPE, "") != NULL)
-+    {
-+      printf ("unexpected setlocale success for \"%s\" locale\n", envstring);
-+      exit (1);
-+    }
-+  const char *newloc = setlocale (LC_CTYPE, NULL);
-+  if (strcmp (newloc, de_locale) != 0)
-+    {
-+      printf ("failed setlocale call \"%s\" changed locale to \"%s\"\n",
-+            envstring, newloc);
-+      exit (1);
-+    }
-+}
-+
-+static void
-+setlocale_success (const char *envstring)
-+{
-+  setenv ("LC_CTYPE", envstring, 1);
-+  char *newloc = setlocale_copy (LC_CTYPE, "");
-+  if (newloc == NULL)
-+    {
-+      printf ("setlocale for \"%s\": %m\n", envstring);
-+      exit (1);
-+    }
-+  if (strcmp (newloc, de_locale) == 0)
-+    {
-+      printf ("setlocale with LC_CTYPE=\"%s\" left locale at \"%s\"\n",
-+            envstring, de_locale);
-+      exit (1);
-+    }
-+  if (setlocale (LC_CTYPE, de_locale) == NULL)
-+    {
-+      printf ("restoring locale \"%s\" with LC_CTYPE=\"%s\": %m\n",
-+            de_locale, envstring);
-+      exit (1);
-+    }
-+  char *newloc2 = setlocale_copy (LC_CTYPE, newloc);
-+  if (newloc2 == NULL)
-+    {
-+      printf ("restoring locale \"%s\" following \"%s\": %m\n",
-+            newloc, envstring);
-+      exit (1);
-+    }
-+  if (strcmp (newloc, newloc2) != 0)
-+    {
-+      printf ("representation of locale \"%s\" changed from \"%s\" to \"%s\"",
-+            envstring, newloc, newloc2);
-+      exit (1);
-+    }
-+  free (newloc);
-+  free (newloc2);
-+
-+  if (setlocale (LC_CTYPE, de_locale) == NULL)
-+    {
-+      printf ("restoring locale \"%s\" with LC_CTYPE=\"%s\": %m\n",
-+            de_locale, envstring);
-+      exit (1);
-+    }
-+}
-+
-+/* Checks that a known-good locale still works if LC_ALL contains a
-+   value which should be ignored.  */
-+static void
-+setlocale_ignore (const char *to_ignore)
-+{
-+  const char *fr_locale = "fr_FR.UTF-8";
-+  setenv ("LC_CTYPE", fr_locale, 1);
-+  char *expected_locale = setlocale_copy (LC_CTYPE, "");
-+  if (expected_locale == NULL)
-+    {
-+      printf ("setlocale with LC_CTYPE=\"%s\" failed: %m\n", fr_locale);
-+      exit (1);
-+    }
-+  if (setlocale (LC_CTYPE, de_locale) == NULL)
-+    {
-+      printf ("failed to restore locale: %m\n");
-+      exit (1);
-+    }
-+  unsetenv ("LC_CTYPE");
-+
-+  setenv ("LC_ALL", to_ignore, 1);
-+  setenv ("LC_CTYPE", fr_locale, 1);
-+  const char *actual_locale = setlocale (LC_CTYPE, "");
-+  if (actual_locale == NULL)
-+    {
-+      printf ("setlocale with LC_ALL, LC_CTYPE=\"%s\" failed: %m\n",
-+            fr_locale);
-+      exit (1);
-+    }
-+  if (strcmp (actual_locale, expected_locale) != 0)
-+    {
-+      printf ("setlocale under LC_ALL failed: got \"%s\", expected \"%s\"\n",
-+            actual_locale, expected_locale);
-+      exit (1);
-+    }
-+  unsetenv ("LC_CTYPE");
-+  setlocale_success (fr_locale);
-+  unsetenv ("LC_ALL");
-+  free (expected_locale);
-+}
-+
-+static int
-+do_test (void)
-+{
-+  /* The glibc test harness sets this environment variable
-+     uncondionally.  */
-+  unsetenv ("LC_ALL");
-+
-+  de_locale = setlocale_copy (LC_CTYPE, "de_DE.UTF-8");
-+  if (de_locale == NULL)
-+    {
-+      printf ("setlocale (LC_CTYPE, \"de_DE.UTF-8\"): %m\n");
-+      return 1;
-+    }
-+  setlocale_success ("C");
-+  setlocale_success ("en_US.UTF-8");
-+  setlocale_success ("/en_US.UTF-8");
-+  setlocale_success ("//en_US.UTF-8");
-+  setlocale_ignore ("");
-+
-+  setlocale_fail ("does-not-exist");
-+  setlocale_fail ("/");
-+  setlocale_fail ("/../localedata/en_US.UTF-8");
-+  setlocale_fail ("en_US.UTF-8/");
-+  setlocale_fail ("en_US.UTF-8/..");
-+  setlocale_fail ("en_US.UTF-8/../en_US.UTF-8");
-+  setlocale_fail ("../localedata/en_US.UTF-8");
-+  {
-+    size_t large_length = 1024;
-+    char *large_name = malloc (large_length + 1);
-+    if (large_name == NULL)
-+      {
-+      puts ("malloc failure");
-+      return 1;
-+      }
-+    memset (large_name, '/', large_length);
-+    const char *suffix = "en_US.UTF-8";
-+    strcpy (large_name + large_length - strlen (suffix), suffix);
-+    setlocale_fail (large_name);
-+    free (large_name);
-+  }
-+  {
-+    size_t huge_length = 64 * 1024 * 1024;
-+    char *huge_name = malloc (huge_length + 1);
-+    if (huge_name == NULL)
-+      {
-+      puts ("malloc failure");
-+      return 1;
-+      }
-+    memset (huge_name, 'X', huge_length);
-+    huge_name[huge_length] = '\0';
-+    /* Construct a composite locale specification. */
-+    const char *prefix = "LC_CTYPE=de_DE.UTF-8;LC_TIME=";
-+    memcpy (huge_name, prefix, strlen (prefix));
-+    setlocale_fail (huge_name);
-+    free (huge_name);
-+  }
-+
-+  return 0;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff -pruN glibc-2.18/manual/locale.texi glibc-2.18.patched/manual/locale.texi
---- glibc-2.18/manual/locale.texi      2013-08-11 04:22:55.000000000 +0530
-+++ glibc-2.18.patched/manual/locale.texi      2014-08-26 16:14:50.404253785 +0530
-@@ -29,6 +29,7 @@ will follow the conventions preferred by
- * Setting the Locale::          How a program specifies the locale
-                                  with library functions.
- * Standard Locales::            Locale names available on all systems.
-+* Locale Names::                Format of system-specific locale names.
- * Locale Information::          How to access the information for the locale.
- * Formatting Numbers::          A dedicated function to format numbers.
- * Yes-or-No Questions::         Check a Response against the locale.
-@@ -99,14 +100,16 @@ locale named @samp{espana-castellano} to
- most of Spain.
- The set of locales supported depends on the operating system you are
--using, and so do their names.  We can't make any promises about what
--locales will exist, except for one standard locale called @samp{C} or
--@samp{POSIX}.  Later we will describe how to construct locales.
--@comment (@pxref{Building Locale Files}).
-+using, and so do their names, except that the standard locale called
-+@samp{C} or @samp{POSIX} always exist.  @xref{Locale Names}.
-+
-+In order to force the system to always use the default locale, the
-+user can set the @code{LC_ALL} environment variable to @samp{C}.
- @cindex combining locales
--A user also has the option of specifying different locales for different
--purposes---in effect, choosing a mixture of multiple locales.
-+A user also has the option of specifying different locales for
-+different purposes---in effect, choosing a mixture of multiple
-+locales.  @xref{Locale Categories}.
- For example, the user might specify the locale @samp{espana-castellano}
- for most purposes, but specify the locale @samp{usa-english} for
-@@ -120,7 +123,7 @@ which locales apply.  However, the user
- for a particular subset of those purposes.
- @node Locale Categories, Setting the Locale, Choosing Locale, Locales
--@section Categories of Activities that Locales Affect
-+@section Locale Categories
- @cindex categories for locales
- @cindex locale categories
-@@ -128,7 +131,11 @@ The purposes that locales serve are grou
- that a user or a program can choose the locale for each category
- independently.  Here is a table of categories; each name is both an
- environment variable that a user can set, and a macro name that you can
--use as an argument to @code{setlocale}.
-+use as the first argument to @code{setlocale}.
-+
-+The contents of the environment variable (or the string in the second
-+argument to @code{setlocale}) has to be a valid locale name.
-+@xref{Locale Names}.
- @vtable @code
- @comment locale.h
-@@ -172,7 +179,7 @@ for affirmative and negative responses.
- @comment locale.h
- @comment ISO
- @item LC_ALL
--This is not an environment variable; it is only a macro that you can use
-+This is not a category; it is only a macro that you can use
- with @code{setlocale} to set a single locale for all purposes.  Setting
- this environment variable overwrites all selections by the other
- @code{LC_*} variables or @code{LANG}.
-@@ -225,13 +232,7 @@ The symbols in this section are defined
- @comment ISO
- @deftypefun {char *} setlocale (int @var{category}, const char *@var{locale})
- The function @code{setlocale} sets the current locale for category
--@var{category} to @var{locale}.  A list of all the locales the system
--provides can be created by running
--
--@pindex locale
--@smallexample
--  locale -a
--@end smallexample
-+@var{category} to @var{locale}.
- If @var{category} is @code{LC_ALL}, this specifies the locale for all
- purposes.  The other possible values of @var{category} specify an
-@@ -256,10 +257,9 @@ is passed in as @var{locale} parameter.
- When you read the current locale for category @code{LC_ALL}, the value
- encodes the entire combination of selected locales for all categories.
--In this case, the value is not just a single locale name.  In fact, we
--don't make any promises about what it looks like.  But if you specify
--the same ``locale name'' with @code{LC_ALL} in a subsequent call to
--@code{setlocale}, it restores the same combination of locale selections.
-+If you specify the same ``locale name'' with @code{LC_ALL} in a
-+subsequent call to @code{setlocale}, it restores the same combination
-+of locale selections.
- To be sure you can use the returned string encoding the currently selected
- locale at a later time, you must make a copy of the string.  It is not
-@@ -275,6 +275,11 @@ for @var{category}.
- If a nonempty string is given for @var{locale}, then the locale of that
- name is used if possible.
-+The effective locale name (either the second argument to
-+@code{setlocale}, or if the argument is an empty string, the name
-+obtained from the process environment) must be valid locale name.
-+@xref{Locale Names}.
-+
- If you specify an invalid locale name, @code{setlocale} returns a null
- pointer and leaves the current locale unchanged.
- @end deftypefun
-@@ -328,7 +323,7 @@ locale categories, and future versions o
- portability, assume that any symbol beginning with @samp{LC_} might be
- defined in @file{locale.h}.
--@node Standard Locales, Locale Information, Setting the Locale, Locales
-+@node Standard Locales, Locale Names, Setting the Locale, Locales
- @section Standard Locales
- The only locale names you can count on finding on all operating systems
-@@ -362,7 +357,94 @@ with the environment, rather than trying
- locale explicitly by name.  Remember, different machines might have
- different sets of locales installed.
--@node Locale Information, Formatting Numbers, Standard Locales, Locales
-+@node Locale Names, Locale Information, Standard Locales, Locales
-+@section Locale Names
-+
-+The following command prints a list of locales supported by the
-+system:
-+
-+@pindex locale
-+@smallexample
-+  locale -a
-+@end smallexample
-+
-+@strong{Portability Note:} With the notable exception of the standard
-+locale names @samp{C} and @samp{POSIX}, locale names are
-+system-specific.
-+
-+Most locale names follow XPG syntax and consist of up to four parts:
-+
-+@smallexample
-+@var{language}[_@var{territory}[.@var{codeset}]][@@@var{modifier}]
-+@end smallexample
-+
-+Beside the first part, all of them are allowed to be missing.  If the
-+full specified locale is not found, less specific ones are looked for.
-+The various parts will be stripped off, in the following order:
-+
-+@enumerate
-+@item
-+codeset
-+@item
-+normalized codeset
-+@item
-+territory
-+@item
-+modifier
-+@end enumerate
-+
-+For example, the locale name @samp{de_AT.iso885915@@euro} denotes a
-+German-language locale for use in Austria, using the ISO-8859-15
-+(Latin-9) character set, and with the Euro as the currency symbol.
-+
-+In addition to locale names which follow XPG syntax, systems may
-+provide aliases such as @samp{german}.  Both categories of names must
-+not contain the slash character @samp{/}.
-+
-+If the locale name starts with a slash @samp{/}, it is treated as a
-+path relative to the configured locale directories; see @code{LOCPATH}
-+below.  The specified path must not contain a component @samp{..}, or
-+the name is invalid, and @code{setlocale} will fail.
-+
-+@strong{Portability Note:} POSIX suggests that if a locale name starts
-+with a slash @samp{/}, it is resolved as an absolute path.  However,
-+the GNU C Library treats it as a relative path under the directories listed
-+in @code{LOCPATH} (or the default locale directory if @code{LOCPATH}
-+is unset).
-+
-+Locale names which are longer than an implementation-defined limit are
-+invalid and cause @code{setlocale} to fail.
-+
-+As a special case, locale names used with @code{LC_ALL} can combine
-+several locales, reflecting different locale settings for different
-+categories.  For example, you might want to use a U.S. locale with ISO
-+A4 paper format, so you set @code{LANG} to @samp{en_US.UTF-8}, and
-+@code{LC_PAPER} to @samp{de_DE.UTF-8}.  In this case, the
-+@code{LC_ALL}-style combined locale name is
-+
-+@smallexample
-+LC_CTYPE=en_US.UTF-8;LC_TIME=en_US.UTF-8;LC_PAPER=de_DE.UTF-8;@dots{}
-+@end smallexample
-+
-+followed by other category settings not shown here.
-+
-+@vindex LOCPATH
-+The path used for finding locale data can be set using the
-+@code{LOCPATH} environment variable.  This variable lists the
-+directories in which to search for locale definitions, separated by a
-+colon @samp{:}.
-+
-+The default path for finding locale data is system specific.  A typical
-+value for the @code{LOCPATH} default is:
-+
-+@smallexample
-+/usr/share/locale
-+@end smallexample
-+
-+The value of @code{LOCPATH} is ignored by privileged programs for
-+security reasons, and only the default directory is used.
-+
-+@node Locale Information, Formatting Numbers, Locale Names, Locales
- @section Accessing Locale Information
- There are several ways to access locale information.  The simplest
diff --git a/src/patches/glibc/glibc-rh1138769.patch b/src/patches/glibc/glibc-rh1138769.patch
deleted file mode 100644 (file)
index 94a7d2a..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-commit e35c53e397e7abbd41fedacdedcfa5af7b5c2c52
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Tue Jul 8 16:40:24 2014 +0530
-
-    Check value at resplen2 if it is not NULL
-    
-    There was a typo in the previous patch due to which resplen2 was
-    checked for non-zero instead of the value at resplen2.  Fix that and
-    improve the condition by checking resplen2 for non-NULL (instead of
-    answerp2) and also adding the check in a third place.
-
-diff --git a/resolv/res_query.c b/resolv/res_query.c
-index 4e6612c..e4ee2a6 100644
---- a/resolv/res_query.c
-+++ b/resolv/res_query.c
-@@ -384,7 +384,7 @@ __libc_res_nsearch(res_state statp,
-                                             answerp2, nanswerp2, resplen2);
-               if (ret > 0 || trailing_dot
-                   /* If the second response is valid then we use that.  */
--                  || (ret == 0 && answerp2 != NULL && resplen2 > 0))
-+                  || (ret == 0 && resplen2 != NULL && *resplen2 > 0))
-                       return (ret);
-               saved_herrno = h_errno;
-               tried_as_is++;
-@@ -424,8 +424,8 @@ __libc_res_nsearch(res_state statp,
-                                                     answer, anslen, answerp,
-                                                     answerp2, nanswerp2,
-                                                     resplen2);
--                      if (ret > 0 || (ret == 0 && answerp2 != NULL
--                                      && resplen2 > 0))
-+                      if (ret > 0 || (ret == 0 && resplen2 != NULL
-+                                      && *resplen2 > 0))
-                               return (ret);
-                       if (answerp && *answerp != answer) {
-@@ -494,7 +494,8 @@ __libc_res_nsearch(res_state statp,
-               ret = __libc_res_nquerydomain(statp, name, NULL, class, type,
-                                             answer, anslen, answerp,
-                                             answerp2, nanswerp2, resplen2);
--              if (ret > 0)
-+              if (ret > 0 || (ret == 0 && resplen2 != NULL
-+                              && *resplen2 > 0))
-                       return (ret);
-       }
diff --git a/src/patches/glibc/glibc-rh1144019.patch b/src/patches/glibc/glibc-rh1144019.patch
deleted file mode 100644 (file)
index 1732de6..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# Based on the following commit:
-#
-# commit f9d2d03254a58d92635a311a42253eeed5a40a47
-# Author: Andreas Schwab <schwab@suse.de>
-# Date:   Mon May 26 18:01:31 2014 +0200
-# 
-#     Fix invalid file descriptor reuse while sending DNS query (BZ #15946)
-# 
-# 2014-06-03  Andreas Schwab  <schwab@suse.de>
-# 
-#      [BZ #15946]
-#      * resolv/res_send.c (send_dg): Reload file descriptor after
-#      calling reopen.
-# 
-diff --git a/resolv/res_send.c b/resolv/res_send.c
-index 3273d55..af42b8a 100644
---- a/resolv/res_send.c
-+++ b/resolv/res_send.c
-@@ -1410,6 +1410,7 @@ send_dg(res_state statp,
-                                       retval = reopen (statp, terrno, ns);
-                                       if (retval <= 0)
-                                               return retval;
-+                                      pfd[0].fd = EXT(statp).nssocks[ns];
-                               }
-                       }
-                       goto wait;
diff --git a/src/patches/glibc/glibc-rh1144132.patch b/src/patches/glibc/glibc-rh1144132.patch
deleted file mode 100644 (file)
index 4114b58..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#
-# Based on this commit:
-#
-# commit 62058ce612ed3459501b4c4332e268edfe977f59
-# Author: Carlos O'Donell <carlos@redhat.com>
-# Date:   Mon Sep 29 13:14:21 2014 -0400
-# 
-#     Correctly size profiling reloc table (bug 17411)
-#     
-#     During auditing or profiling modes the dynamic loader
-#     builds a cache of the relocated PLT entries in order
-#     to reuse them when called again through the same PLT
-#     entry. This way the PLT entry is never completed and
-#     the call into the resolver always results in profiling
-#     or auditing code running.
-#     
-#     The problem is that the PLT relocation cache size
-#     is not computed correctly. The size of the cache
-#     should be "Size of a relocation result structure"
-#     x "Number of PLT-related relocations". Instead the
-#     code erroneously computes "Size of a relocation
-#     result" x "Number of bytes worth of PLT-related
-#     relocations". I can only assume this was a mistake
-#     in the understanding of the value of DT_PLTRELSZ
-#     which is the number of bytes of PLT-related relocs.
-#     We do have a DT_RELACOUNT entry, which is a count
-#     for dynamic relative relocs, but we have no
-#     DT_PLTRELCOUNT and thus we need to compute it.
-#     
-#     This patch corrects the computation of the size of the
-#     relocation table used by the glibc profiling code.
-#     
-#     For more details see:
-#     https://sourceware.org/ml/libc-alpha/2014-09/msg00513.html
-#     
-#         [BZ #17411]
-#         * elf/dl-reloc.c (_dl_relocate_object): Allocate correct amount for
-#         l_reloc_result.
-# 
-diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c
-index d2c6dac..97a7119 100644
---- a/elf/dl-reloc.c
-+++ b/elf/dl-reloc.c
-@@ -279,8 +279,12 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
-                             l->l_name);
-         }
--      l->l_reloc_result = calloc (sizeof (l->l_reloc_result[0]),
--                                  l->l_info[DT_PLTRELSZ]->d_un.d_val);
-+      size_t sizeofrel = l->l_info[DT_PLTREL]->d_un.d_val == DT_RELA
-+                         ? sizeof (ElfW(Rela))
-+                         : sizeof (ElfW(Rel));
-+      size_t relcount = l->l_info[DT_PLTRELSZ]->d_un.d_val / sizeofrel;
-+      l->l_reloc_result = calloc (sizeof (l->l_reloc_result[0]), relcount);
-+
-       if (l->l_reloc_result == NULL)
-         {
-           errstring = N_("\
diff --git a/src/patches/glibc/glibc-rh1154563.patch b/src/patches/glibc/glibc-rh1154563.patch
deleted file mode 100644 (file)
index 22821b1..0000000
+++ /dev/null
@@ -1,333 +0,0 @@
-#
-# This is a special patch for rhel-6 to fix recursive dlopen.
-# It is likely the upstream patch will always be too risky for
-# rhel-6 and will involve reorganizing the way in which recursive
-# dlopen is allowed to operate and how the _r_debug and stap
-# points are used by gdb for the recursive case.
-#
-# This fix changes the internal API to duplicate the ldconfig
-# cache data. This means that at any point the cache can be
-# unmapped without any consequences. The caller is responsible
-# fore freeing the returned string.
-#
-# A regression test is added to verify the assertion for _r_debug
-# is no longer triggered due to the recursive dlopen. The test to
-# verify the fix in _dl_load_cache_lookup is not automated and
-# has to be run by hand.
-#
-diff -urN glibc-2.12-2-gc4ccff1/elf/dl-cache.c glibc-2.12-2-gc4ccff1.mod/elf/dl-cache.c
---- glibc-2.12-2-gc4ccff1/elf/dl-cache.c       2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/elf/dl-cache.c   2014-12-10 21:54:08.801985045 -0500
-@@ -175,9 +175,12 @@
- /* Look up NAME in ld.so.cache and return the file name stored there,
--   or null if none is found.  */
--
--const char *
-+   or null if none is found. 
-+   The caller is responsible for freeing the returned string.  The ld.so.cache
-+   may be unmapped at any time by a completing recursive dlopen and
-+   this function must take care that it does not return references to
-+   any data in the mapping.  */
-+char *
- internal_function
- _dl_load_cache_lookup (const char *name)
- {
-@@ -290,7 +293,17 @@
-       && best != NULL)
-     _dl_debug_printf ("  trying file=%s\n", best);
--  return best;
-+  if (best == NULL)
-+    return NULL;
-+
-+  /* The double copy is *required* since malloc may be interposed
-+     and call dlopen itself whose completion would unmap the data
-+     we are accessing. Therefore we must make the copy of the
-+     mapping data without using malloc.  */
-+  char *temp;
-+  temp = alloca (strlen (best) + 1);
-+  strcpy (temp, best);
-+  return strdup (temp);
- }
- #ifndef MAP_COPY
-diff -urN glibc-2.12-2-gc4ccff1/elf/dl-load.c glibc-2.12-2-gc4ccff1.mod/elf/dl-load.c
---- glibc-2.12-2-gc4ccff1/elf/dl-load.c        2014-12-10 11:03:17.966048404 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/elf/dl-load.c    2014-12-10 21:47:29.319387538 -0500
-@@ -2126,7 +2126,7 @@
-       {
-         /* Check the list of libraries in the file /etc/ld.so.cache,
-            for compatibility with Linux's ldconfig program.  */
--        const char *cached = _dl_load_cache_lookup (name);
-+        char *cached = _dl_load_cache_lookup (name);
-         if (cached != NULL)
-           {
-@@ -2156,6 +2156,7 @@
-                     if (memcmp (cached, dirp, system_dirs_len[cnt]) == 0)
-                       {
-                         /* The prefix matches.  Don't use the entry.  */
-+                        free (cached);
-                         cached = NULL;
-                         break;
-                       }
-@@ -2172,14 +2173,9 @@
-                                   &fb, loader ?: GL(dl_ns)[nsid]._ns_loaded,
-                                   LA_SER_CONFIG, &found_other_class, false);
-                 if (__builtin_expect (fd != -1, 1))
--                  {
--                    realname = local_strdup (cached);
--                    if (realname == NULL)
--                      {
--                        __close (fd);
--                        fd = -1;
--                      }
--                  }
-+                  realname = cached;
-+                else
-+                  free (cached);
-               }
-           }
-       }
-diff -urN glibc-2.12-2-gc4ccff1/elf/dl-open.c glibc-2.12-2-gc4ccff1.mod/elf/dl-open.c
---- glibc-2.12-2-gc4ccff1/elf/dl-open.c        2014-12-10 11:03:18.083048497 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/elf/dl-open.c    2014-12-10 20:34:16.017503638 -0500
-@@ -220,7 +220,11 @@
-       }
-     }
--  assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT);
-+  /* One might be tempted to assert that we are RT_CONSISTENT at this point, but that
-+     may not be true if this is a recursive call to dlopen.
-+     TODO: Fix all of the debug state so we end up at RT_CONSISTENT only when the last
-+     recursive dlopen completes.  */
-+  _dl_debug_initialize (0, args->nsid);
-   /* Load the named object.  */
-   struct link_map *new;
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h glibc-2.12-2-gc4ccff1.mod/sysdeps/generic/ldsodefs.h
---- glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h   2014-12-10 11:03:17.944048387 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/generic/ldsodefs.h       2014-12-10 21:46:14.071344018 -0500
-@@ -996,8 +996,8 @@
-      internal_function;
- /* Look up NAME in ld.so.cache and return the file name stored there,
--   or null if none is found.  */
--extern const char *_dl_load_cache_lookup (const char *name)
-+   or null if none is found.  Caller must free returned string.  */
-+extern char *_dl_load_cache_lookup (const char *name)
-      internal_function;
- /* If the system does not support MAP_COPY we cannot leave the file open
-diff -urN glibc-2.12-2-gc4ccff1/dlfcn/Makefile glibc-2.12-2-gc4ccff1.mod/dlfcn/Makefile
---- glibc-2.12-2-gc4ccff1/dlfcn/Makefile       2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/dlfcn/Makefile   2014-12-11 16:58:55.719803063 -0500
-@@ -42,12 +42,12 @@
- ifeq (yes,$(build-shared))
- tests = glrefmain failtest tst-dladdr default errmsg1 tstcxaatexit \
-       bug-dlopen1 bug-dlsym1 tst-dlinfo bug-atexit1 bug-atexit2 \
--      bug-atexit3 tstatexit
-+      bug-atexit3 tstatexit tst-rec-dlopen
- endif
- modules-names = glreflib1 glreflib2 glreflib3 failtestmod defaultmod1 \
-               defaultmod2 errmsg1mod modatexit modcxaatexit \
-               bug-dlsym1-lib1 bug-dlsym1-lib2 bug-atexit1-lib \
--              bug-atexit2-lib bug-atexit3-lib
-+              bug-atexit2-lib bug-atexit3-lib moddummy1 moddummy2
- failtestmod.so-no-z-defs = yes
- glreflib2.so-no-z-defs = yes
-@@ -142,6 +142,8 @@
- $(objpfx)bug-atexit3-lib.so: $(common-objpfx)libc.so \
-                            $(common-objpfx)libc_nonshared.a
-+LDLIBS-tst-rec-dlopen = -ldl
-+$(objpfx)tst-rec-dlopen: $(libdl)
- # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
- # This ensures they will load libc.so for needed symbols if loaded by
-diff -urN glibc-2.12-2-gc4ccff1/dlfcn/moddummy1.c glibc-2.12-2-gc4ccff1.mod/dlfcn/moddummy1.c
---- glibc-2.12-2-gc4ccff1/dlfcn/moddummy1.c    1969-12-31 19:00:00.000000000 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/dlfcn/moddummy1.c        2014-12-11 16:57:54.108797285 -0500
-@@ -0,0 +1,13 @@
-+/* Provide a dummy DSO for tst-recursive-dlopen to use.  */
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+int called_dummy1;
-+
-+void
-+dummy1 (void)
-+{
-+  printf ("Called dummy1()\n");
-+  called_dummy1++;
-+}
-+
-diff -urN glibc-2.12-2-gc4ccff1/dlfcn/moddummy2.c glibc-2.12-2-gc4ccff1.mod/dlfcn/moddummy2.c
---- glibc-2.12-2-gc4ccff1/dlfcn/moddummy2.c    1969-12-31 19:00:00.000000000 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/dlfcn/moddummy2.c        2014-12-11 16:57:54.108797285 -0500
-@@ -0,0 +1,13 @@
-+/* Provide a dummy DSO for tst-recursive-dlopen to use.  */
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+int called_dummy2;
-+
-+void
-+dummy2 (void)
-+{
-+  printf ("Called dummy2()\n");
-+  called_dummy2++;
-+}
-+
-diff -urN glibc-2.12-2-gc4ccff1/dlfcn/tst-rec-dlopen.c glibc-2.12-2-gc4ccff1.mod/dlfcn/tst-rec-dlopen.c
---- glibc-2.12-2-gc4ccff1/dlfcn/tst-rec-dlopen.c       1969-12-31 19:00:00.000000000 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/dlfcn/tst-rec-dlopen.c   2014-12-11 20:53:28.617848774 -0500
-@@ -0,0 +1,145 @@
-+/* Test recursive dlopen using malloc hooks.
-+   Copyright (C) 1998-2014 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
-+
-+   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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <malloc.h>
-+#include <dlfcn.h>
-+
-+#define DSO "moddummy1.so"
-+#define FUNC "dummy1"
-+
-+#define DSO1 "moddummy2.so"
-+#define FUNC1 "dummy2"
-+
-+/* Prevent the compiler from moving the assignment to called_func
-+   before (*func)() since the compiler doesn't know we might abort
-+   or catch a SIGSEGV signal and it may move the store.  */
-+volatile int called_func;
-+
-+/* Prototype for my hook.  */
-+void *custom_malloc_hook (size_t, const void *);
-+
-+/* Pointer to old malloc hooks.  */
-+void *(*old_malloc_hook) (size_t, const void *);
-+
-+/* Call function func_name in DSO dso_name via dlopen.  */
-+void
-+call_func (const char *dso_name, const char *func_name)
-+{
-+  int ret;
-+  void *dso;
-+  void (*func) (void);
-+  char *err;
-+
-+  /* Open the DSO.  */
-+  dso = dlopen (dso_name, RTLD_NOW|RTLD_GLOBAL);
-+  if (dso == NULL)
-+    {
-+      err = dlerror ();
-+      fprintf (stderr, "%s\n", err);
-+      exit (1);
-+    }
-+  /* Clear any errors.  */
-+  dlerror ();
-+
-+  /* Lookup func.  */
-+  *(void **) (&func) = dlsym (dso, func_name);
-+  if (func == NULL)
-+    {
-+      err = dlerror ();
-+      if (err != NULL)
-+        {
-+        fprintf (stderr, "%s\n", err);
-+        exit (1);
-+        }
-+    }
-+  /* Call func.  */
-+  (*func) ();
-+  called_func = 1;
-+
-+  /* Close the library and look for errors too.  */
-+  ret = dlclose (dso);
-+  if (ret != 0)
-+    {
-+      err = dlerror ();
-+      fprintf (stderr, "%s\n", err);
-+      exit (1);
-+    }
-+
-+}
-+
-+/* Empty hook that does nothing.  */
-+void *
-+custom_malloc_hook (size_t size, const void *caller)
-+{
-+  void *result;
-+  /* Restore old hooks.  */
-+  __malloc_hook = old_malloc_hook;
-+  /* First call a function in another library via dlopen.  */
-+  call_func (DSO1, FUNC1);
-+  /* Called recursively.  */
-+  result = malloc (size);
-+  /* Restore new hooks.  */
-+  __malloc_hook = custom_malloc_hook;
-+  return result;
-+}
-+
-+static int
-+do_test (void)
-+{
-+  /* Save old hook.  */
-+  old_malloc_hook = __malloc_hook;
-+  /* Install new hook.  */
-+  __malloc_hook = custom_malloc_hook;
-+
-+  /* Bug 17702 fixes two things:
-+       * A recursive dlopen unmapping the ld.so.cache.
-+       * An assertion that _r_debug is RT_CONSISTENT at entry to dlopen.
-+     We can only test the latter. Testing the former requires modifying
-+     ld.so.conf to cache the dummy libraries, then running ldconfig,
-+     then run the test. If you do all of that (and glibc's test
-+     infrastructure doesn't support that yet) then the test will
-+     SEGFAULT without the fix. If you don't do that, then the test
-+     will abort because of the assert described in detail below.  */
-+  call_func (DSO, FUNC);
-+
-+  /* Restore old hook.  */
-+  __malloc_hook = old_malloc_hook;
-+
-+  /* The function dummy2() is called by the malloc hook. Check to
-+     see that it was called. This ensures the second recursive
-+     dlopen happened and we called the function in that library.
-+
-+     Before the fix you either get a SIGSEGV when accessing mmap'd
-+     ld.so.cache data or an assertion failure about _r_debug not
-+     beint RT_CONSISTENT.  We don't test for the SIGSEGV since it
-+     would require finding moddummy1 or moddummy2 in the cache and
-+     we don't have any infrastructure to test that, but the _r_debug
-+     assertion triggers.  */
-+  if (called_func > 0)
-+    printf ("PASS: Function call_func() called more than once.\n");
-+  else
-+    printf ("FAIL: Function call_func() not called.\n");
-+
-+  return 0;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
diff --git a/src/patches/glibc/glibc-rh1159167.patch b/src/patches/glibc/glibc-rh1159167.patch
deleted file mode 100644 (file)
index 59f4a6f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/sunrpc/svc.c b/sunrpc/svc.c
-index ccf0902..30c3a93 100644
---- a/sunrpc/svc.c
-+++ b/sunrpc/svc.c
-@@ -97,8 +97,8 @@ xprt_register (SVCXPRT *xprt)
-   if (xports == NULL)
-     {
--      xports = (SVCXPRT **) malloc (_rpc_dtablesize () * sizeof (SVCXPRT *));
--      if (xports == NULL) /* Don´t add handle */
-+      xports = (SVCXPRT **) calloc (_rpc_dtablesize (), sizeof (SVCXPRT *));
-+      if (xports == NULL) /* Don't add handle */
-       return;
-     }
diff --git a/src/patches/glibc/glibc-rh1171296.patch b/src/patches/glibc/glibc-rh1171296.patch
deleted file mode 100644 (file)
index 1accbf3..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-#
-# commit a39208bd7fb76c1b01c127b4c61f9bfd915bfe7c
-# Author: Carlos O'Donell <carlos@redhat.com>
-# Date:   Wed Nov 19 11:44:12 2014 -0500
-# 
-#     CVE-2014-7817: wordexp fails to honour WRDE_NOCMD.
-#     
-#     The function wordexp() fails to properly handle the WRDE_NOCMD
-#     flag when processing arithmetic inputs in the form of "$((... ``))"
-#     where "..." can be anything valid. The backticks in the arithmetic
-#     epxression are evaluated by in a shell even if WRDE_NOCMD forbade
-#     command substitution. This allows an attacker to attempt to pass
-#     dangerous commands via constructs of the above form, and bypass
-#     the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD
-#     in exec_comm(), the only place that can execute a shell. All other
-#     checks for WRDE_NOCMD are superfluous and removed.
-#     
-#     We expand the testsuite and add 3 new regression tests of roughly
-#     the same form but with a couple of nested levels.
-#     
-#     On top of the 3 new tests we add fork validation to the WRDE_NOCMD
-#     testing. If any forks are detected during the execution of a wordexp()
-#     call with WRDE_NOCMD, the test is marked as failed. This is slightly
-#     heuristic since vfork might be used in the future, but it provides a
-#     higher level of assurance that no shells were executed as part of
-#     command substitution with WRDE_NOCMD in effect. In addition it doesn't
-#     require libpthread or libdl, instead we use the public implementation
-#     namespace function __register_atfork (already part of the public ABI
-#     for libpthread).
-#     
-#     Tested on x86_64 with no regressions.
-# 
-diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
-index 4957006..bdd65e4 100644
---- a/posix/wordexp-test.c
-+++ b/posix/wordexp-test.c
-@@ -27,6 +27,25 @@
- #define IFS " \n\t"
-+extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden")));
-+extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *);
-+
-+static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void))
-+{
-+  return __register_atfork (prepare, parent, child,
-+                          &__dso_handle == NULL ? NULL : __dso_handle);
-+}
-+
-+/* Number of forks seen.  */
-+static int registered_forks;
-+
-+/* For each fork increment the fork count.  */
-+static void
-+register_fork (void)
-+{
-+  registered_forks++;
-+}
-+
- struct test_case_struct
- {
-   int retval;
-@@ -206,6 +225,12 @@ struct test_case_struct
-     { WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS },
-     { WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS },
-     { WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS },
-+    /* Test for CVE-2014-7817. We test 3 combinations of command
-+       substitution inside an arithmetic expression to make sure that
-+       no commands are executed and error is returned.  */
-+    { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
-+    { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
-+    { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS },
-     { -1, NULL, NULL, 0, 0, { NULL, }, IFS },
-   };
-@@ -258,6 +283,15 @@ main (int argc, char *argv[])
-         return -1;
-     }
-+  /* If we are not allowed to do command substitution, we install
-+     fork handlers to verify that no forks happened.  No forks should
-+     happen at all if command substitution is disabled.  */
-+  if (__app_register_atfork (register_fork, NULL, NULL) != 0)
-+    {
-+      printf ("Failed to register fork handler.\n");
-+      return -1;
-+    }
-+
-   for (test = 0; test_case[test].retval != -1; test++)
-     if (testit (&test_case[test]))
-       ++fail;
-@@ -367,6 +401,9 @@ testit (struct test_case_struct *tc)
-   printf ("Test %d (%s): ", ++tests, tc->words);
-+  if (tc->flags & WRDE_NOCMD)
-+    registered_forks = 0;
-+
-   if (tc->flags & WRDE_APPEND)
-     {
-       /* initial wordexp() call, to be appended to */
-@@ -378,6 +415,13 @@ testit (struct test_case_struct *tc)
-     }
-   retval = wordexp (tc->words, &we, tc->flags);
-+  if ((tc->flags & WRDE_NOCMD)
-+      && (registered_forks > 0))
-+    {
-+        printf ("FAILED fork called for WRDE_NOCMD\n");
-+        return 1;
-+    }
-+
-   if (tc->flags & WRDE_DOOFFS)
-       start_offs = sav_we.we_offs;
-diff --git a/posix/wordexp.c b/posix/wordexp.c
-index b6b65dd..26f3a26 100644
---- a/posix/wordexp.c
-+++ b/posix/wordexp.c
-@@ -893,6 +893,10 @@ exec_comm (char *comm, char **word, size_t *word_length, size_t *max_length,
-   pid_t pid;
-   int noexec = 0;
-+  /* Do nothing if command substitution should not succeed.  */
-+  if (flags & WRDE_NOCMD)
-+    return WRDE_CMDSUB;
-+
-   /* Don't fork() unless necessary */
-   if (!comm || !*comm)
-     return 0;
-@@ -2082,9 +2086,6 @@ parse_dollars (char **word, size_t *word_length, size_t *max_length,
-           }
-       }
--      if (flags & WRDE_NOCMD)
--      return WRDE_CMDSUB;
--
-       (*offset) += 2;
-       return parse_comm (word, word_length, max_length, words, offset, flags,
-                        quoted? NULL : pwordexp, ifs, ifs_white);
-@@ -2196,9 +2197,6 @@ parse_dquote (char **word, size_t *word_length, size_t *max_length,
-         break;
-       case '`':
--        if (flags & WRDE_NOCMD)
--          return WRDE_CMDSUB;
--
-         ++(*offset);
-         error = parse_backtick (word, word_length, max_length, words,
-                                 offset, flags, NULL, NULL, NULL);
-@@ -2357,12 +2355,6 @@ wordexp (const char *words, wordexp_t *pwordexp, int flags)
-       break;
-       case '`':
--      if (flags & WRDE_NOCMD)
--        {
--          error = WRDE_CMDSUB;
--          goto do_error;
--        }
--
-       ++words_offset;
-       error = parse_backtick (&word, &word_length, &max_length, words,
-                               &words_offset, flags, pwordexp, ifs,
diff --git a/src/patches/glibc/glibc-rh1172044.patch b/src/patches/glibc/glibc-rh1172044.patch
deleted file mode 100644 (file)
index b1320a7..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-commit 41488498b6d9440ee66ab033808cce8323bba7ac
-Author: Florian Weimer <fweimer@redhat.com>
-Date:   Wed Sep 3 19:45:43 2014 +0200
-
-    CVE-2014-6040: Crashes on invalid input in IBM gconv modules [BZ #17325]
-    
-    These changes are based on the fix for BZ #14134 in commit
-    6e230d11837f3ae7b375ea69d7905f0d18eb79e5.
-
-diff --git a/iconvdata/Makefile b/iconvdata/Makefile
-index 0a410a1..b6327d6 100644
---- a/iconvdata/Makefile
-+++ b/iconvdata/Makefile
-@@ -297,6 +297,7 @@ $(objpfx)tst-iconv7.out: $(objpfx)gconv-modules \
- $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \
-                        $(addprefix $(objpfx),$(modules.so)) \
-                        $(common-objdir)/iconv/iconv_prog TESTS
-+      iconv_modules="$(modules)" \
-       $(SHELL) -e $< $(common-objdir) > $@
- $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \
-diff --git a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c
-index 0b5484f..cf80993 100644
---- a/iconvdata/ibm1364.c
-+++ b/iconvdata/ibm1364.c
-@@ -221,7 +221,8 @@ enum
-         ++rp2;                                                              \
-                                                                             \
-       uint32_t res;                                                         \
--      if (__builtin_expect (ch < rp2->start, 0)                             \
-+      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
-+          || __builtin_expect (ch < rp2->start, 0)                          \
-           || (res = DB_TO_UCS4[ch + rp2->idx],                              \
-               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
-         {                                                                   \
-diff --git a/iconvdata/ibm932.c b/iconvdata/ibm932.c
-index f5dca59..aa69d65 100644
---- a/iconvdata/ibm932.c
-+++ b/iconvdata/ibm932.c
-@@ -74,11 +74,12 @@
-         }                                                                   \
-                                                                             \
-       ch = (ch * 0x100) + inptr[1];                                         \
-+      /* ch was less than 0xfd.  */                                         \
-+      assert (ch < 0xfd00);                                                 \
-       while (ch > rp2->end)                                                 \
-         ++rp2;                                                              \
-                                                                             \
--      if (__builtin_expect (rp2 == NULL, 0)                                 \
--          || __builtin_expect (ch < rp2->start, 0)                          \
-+      if (__builtin_expect (ch < rp2->start, 0)                             \
-           || (res = __ibm932db_to_ucs4[ch + rp2->idx],                      \
-           __builtin_expect (res, '\1') == 0 && ch !=0))                     \
-         {                                                                   \
-diff --git a/iconvdata/ibm933.c b/iconvdata/ibm933.c
-index f46dfb5..461fb5e 100644
---- a/iconvdata/ibm933.c
-+++ b/iconvdata/ibm933.c
-@@ -162,7 +162,7 @@ enum
-       while (ch > rp2->end)                                                 \
-         ++rp2;                                                              \
-                                                                             \
--      if (__builtin_expect (rp2 == NULL, 0)                                 \
-+      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
-           || __builtin_expect (ch < rp2->start, 0)                          \
-           || (res = __ibm933db_to_ucs4[ch + rp2->idx],                      \
-               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
-diff --git a/iconvdata/ibm935.c b/iconvdata/ibm935.c
-index a8e4e6c..132d816 100644
---- a/iconvdata/ibm935.c
-+++ b/iconvdata/ibm935.c
-@@ -162,7 +162,7 @@ enum
-       while (ch > rp2->end)                                                 \
-         ++rp2;                                                              \
-                                                                             \
--      if (__builtin_expect (rp2 == NULL, 0)                                 \
-+      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
-           || __builtin_expect (ch < rp2->start, 0)                          \
-           || (res = __ibm935db_to_ucs4[ch + rp2->idx],                      \
-               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
-diff --git a/iconvdata/ibm937.c b/iconvdata/ibm937.c
-index 239be61..69b154d 100644
---- a/iconvdata/ibm937.c
-+++ b/iconvdata/ibm937.c
-@@ -162,7 +162,7 @@ enum
-       while (ch > rp2->end)                                                 \
-         ++rp2;                                                              \
-                                                                             \
--      if (__builtin_expect (rp2 == NULL, 0)                                 \
-+      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
-           || __builtin_expect (ch < rp2->start, 0)                          \
-           || (res = __ibm937db_to_ucs4[ch + rp2->idx],                      \
-               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
-diff --git a/iconvdata/ibm939.c b/iconvdata/ibm939.c
-index 5d0db36..9936e2c 100644
---- a/iconvdata/ibm939.c
-+++ b/iconvdata/ibm939.c
-@@ -162,7 +162,7 @@ enum
-       while (ch > rp2->end)                                                 \
-         ++rp2;                                                              \
-                                                                             \
--      if (__builtin_expect (rp2 == NULL, 0)                                 \
-+      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
-           || __builtin_expect (ch < rp2->start, 0)                          \
-           || (res = __ibm939db_to_ucs4[ch + rp2->idx],                      \
-               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
-diff --git a/iconvdata/ibm943.c b/iconvdata/ibm943.c
-index be0c14f..c5d5742 100644
---- a/iconvdata/ibm943.c
-+++ b/iconvdata/ibm943.c
-@@ -75,11 +75,12 @@
-         }                                                                   \
-                                                                             \
-       ch = (ch * 0x100) + inptr[1];                                         \
-+      /* ch was less than 0xfd.  */                                         \
-+      assert (ch < 0xfd00);                                                 \
-       while (ch > rp2->end)                                                 \
-         ++rp2;                                                              \
-                                                                             \
--      if (__builtin_expect (rp2 == NULL, 0)                                 \
--          || __builtin_expect (ch < rp2->start, 0)                          \
-+      if (__builtin_expect (ch < rp2->start, 0)                             \
-           || (res = __ibm943db_to_ucs4[ch + rp2->idx],                      \
-           __builtin_expect (res, '\1') == 0 && ch !=0))                     \
-         {                                                                   \
-diff --git a/iconvdata/run-iconv-test.sh b/iconvdata/run-iconv-test.sh
-index c98c929..5dfb69f 100755
---- a/iconvdata/run-iconv-test.sh
-+++ b/iconvdata/run-iconv-test.sh
-@@ -184,6 +184,24 @@ while read utf8 from filename; do
- done < TESTS2
-+# Check for crashes in decoders.
-+printf '\016\377\377\377\377\377\377\377' > $temp1
-+for from in $iconv_modules ; do
-+    echo $ac_n "test decoder $from $ac_c"
-+    PROG=`eval echo $ICONV`
-+    if $PROG < $temp1 >/dev/null 2>&1 ; then
-+      : # fall through
-+    else
-+      status=$?
-+      if test $status -gt 1 ; then
-+          echo "/FAILED"
-+          failed=1
-+          continue
-+      fi
-+    fi
-+    echo "OK"
-+done
-+
- exit $failed
- # Local Variables:
- #  mode:shell-script
diff --git a/src/patches/glibc/glibc-rh1176907.patch b/src/patches/glibc/glibc-rh1176907.patch
deleted file mode 100644 (file)
index 29cdacf..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-commit 7d81e8d6db95c112c297930a8f2f9617c305529a
-Author: Florian Weimer <fweimer@redhat.com>
-Date:   Tue Dec 23 16:16:32 2014 +0100
-
-    iconvdata/run-iconv-test.sh: Actually test iconv modules
-    
-    Arjun Shankar noticed that this test case was not testing anything
-    because iconv was invoked without the required arguments.
-
-diff --git a/iconvdata/run-iconv-test.sh b/iconvdata/run-iconv-test.sh
-index 5dfb69f..1d0bf52 100755
---- a/iconvdata/run-iconv-test.sh
-+++ b/iconvdata/run-iconv-test.sh
-@@ -189,7 +189,7 @@ printf '\016\377\377\377\377\377\377\377' > $temp1
- for from in $iconv_modules ; do
-     echo $ac_n "test decoder $from $ac_c"
-     PROG=`eval echo $ICONV`
--    if $PROG < $temp1 >/dev/null 2>&1 ; then
-+    if $PROG -f $from -t UTF8 < $temp1 >/dev/null 2>&1 ; then
-       : # fall through
-     else
-       status=$?
diff --git a/src/patches/glibc/glibc-rh1183534.patch b/src/patches/glibc/glibc-rh1183534.patch
deleted file mode 100644 (file)
index eab7a3f..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-commit d5dd6189d506068ed11c8bfa1e1e9bffde04decd
-Author: Andreas Schwab <schwab@suse.de>
-Date:   Mon Jan 21 17:41:28 2013 +0100
-
-    Fix parsing of numeric hosts in gethostbyname_r
-
-diff --git a/nss/Makefile b/nss/Makefile
-index 449a258..553eafa 100644
---- a/nss/Makefile
-+++ b/nss/Makefile
-@@ -37,7 +37,7 @@ install-bin             := getent makedb
- others                  := getent
- install-bin             := getent
--tests                 = test-netdb tst-nss-test1
-+tests                 = test-netdb tst-nss-test1 test-digits-dots
- xtests                        = bug-erange
- include ../Makeconfig
-diff --git a/nss/digits_dots.c b/nss/digits_dots.c
-index 2b86295..e007ef4 100644
---- a/nss/digits_dots.c
-+++ b/nss/digits_dots.c
-@@ -46,7 +46,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
-     {
-       if (h_errnop)
-       *h_errnop = NETDB_INTERNAL;
--      *result = NULL;
-+      if (buffer_size == NULL)
-+      *status = NSS_STATUS_TRYAGAIN;
-+      else
-+      *result = NULL;
-       return -1;
-     }
-@@ -83,14 +86,16 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
-       }
-       size_needed = (sizeof (*host_addr)
--                   + sizeof (*h_addr_ptrs) + strlen (name) + 1);
-+                   + sizeof (*h_addr_ptrs)
-+                   + sizeof (*h_alias_ptr) + strlen (name) + 1);
-       if (buffer_size == NULL)
-         {
-         if (buflen < size_needed)
-           {
-+            *status = NSS_STATUS_TRYAGAIN;
-             if (h_errnop != NULL)
--              *h_errnop = TRY_AGAIN;
-+              *h_errnop = NETDB_INTERNAL;
-             __set_errno (ERANGE);
-             goto done;
-           }
-@@ -109,7 +114,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
-             *buffer_size = 0;
-             __set_errno (save);
-             if (h_errnop != NULL)
--              *h_errnop = TRY_AGAIN;
-+              *h_errnop = NETDB_INTERNAL;
-             *result = NULL;
-             goto done;
-           }
-@@ -149,7 +154,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
-                 if (! ok)
-                   {
-                     *h_errnop = HOST_NOT_FOUND;
--                    if (buffer_size)
-+                    if (buffer_size == NULL)
-+                      *status = NSS_STATUS_NOTFOUND;
-+                    else
-                       *result = NULL;
-                     goto done;
-                   }
-@@ -190,7 +197,7 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
-                 if (buffer_size == NULL)
-                   *status = NSS_STATUS_SUCCESS;
-                 else
--                 *result = resbuf;
-+                  *result = resbuf;
-                 goto done;
-               }
-@@ -201,15 +208,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
-       if ((isxdigit (name[0]) && strchr (name, ':') != NULL) || name[0] == ':')
-       {
--        const char *cp;
--        char *hostname;
--        typedef unsigned char host_addr_t[16];
--        host_addr_t *host_addr;
--        typedef char *host_addr_list_t[2];
--        host_addr_list_t *h_addr_ptrs;
--        size_t size_needed;
--        int addr_size;
--
-         switch (af)
-           {
-           default:
-@@ -225,7 +223,10 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
-             /* This is not possible.  We cannot represent an IPv6 address
-                in an `struct in_addr' variable.  */
-             *h_errnop = HOST_NOT_FOUND;
--            *result = NULL;
-+            if (buffer_size == NULL)
-+              *status = NSS_STATUS_NOTFOUND;
-+            else
-+              *result = NULL;
-             goto done;
-           case AF_INET6:
-@@ -233,42 +234,6 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
-             break;
-           }
--        size_needed = (sizeof (*host_addr)
--                       + sizeof (*h_addr_ptrs) + strlen (name) + 1);
--
--        if (buffer_size == NULL && buflen < size_needed)
--          {
--            if (h_errnop != NULL)
--              *h_errnop = TRY_AGAIN;
--            __set_errno (ERANGE);
--            goto done;
--          }
--        else if (buffer_size != NULL && *buffer_size < size_needed)
--          {
--            char *new_buf;
--            *buffer_size = size_needed;
--            new_buf = realloc (*buffer, *buffer_size);
--
--            if (new_buf == NULL)
--              {
--                save = errno;
--                free (*buffer);
--                __set_errno (save);
--                *buffer = NULL;
--                *buffer_size = 0;
--                *result = NULL;
--                goto done;
--              }
--            *buffer = new_buf;
--          }
--
--        memset (*buffer, '\0', size_needed);
--
--        host_addr = (host_addr_t *) *buffer;
--        h_addr_ptrs = (host_addr_list_t *)
--          ((char *) host_addr + sizeof (*host_addr));
--        hostname = (char *) h_addr_ptrs + sizeof (*h_addr_ptrs);
--
-         for (cp = name;; ++cp)
-           {
-             if (!*cp)
-@@ -281,7 +246,9 @@ __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,
-                 if (inet_pton (AF_INET6, name, host_addr) <= 0)
-                   {
-                     *h_errnop = HOST_NOT_FOUND;
--                    if (buffer_size)
-+                    if (buffer_size == NULL)
-+                      *status = NSS_STATUS_NOTFOUND;
-+                    else
-                       *result = NULL;
-                     goto done;
-                   }
-diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c
-index 1067744..44d00f4 100644
---- a/nss/getXXbyYY_r.c
-+++ b/nss/getXXbyYY_r.c
-@@ -179,6 +179,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
-     case -1:
-       return errno;
-     case 1:
-+#ifdef NEED_H_ERRNO
-+      any_service = true;
-+#endif
-       goto done;
-     }
- #endif
-diff --git a/nss/test-digits-dots.c b/nss/test-digits-dots.c
-new file mode 100644
-index 0000000..1efa344
---- /dev/null
-+++ b/nss/test-digits-dots.c
-@@ -0,0 +1,38 @@
-+/* Copyright (C) 2013 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+/* Testcase for BZ #15014 */
-+
-+#include <stdlib.h>
-+#include <netdb.h>
-+#include <errno.h>
-+
-+static int
-+do_test (void)
-+{
-+  char buf[32];
-+  struct hostent *result = NULL;
-+  struct hostent ret;
-+  int h_err = 0;
-+  int err;
-+
-+  err = gethostbyname_r ("1.2.3.4", &ret, buf, sizeof (buf), &result, &h_err);
-+  return err == ERANGE && h_err == NETDB_INTERNAL ? EXIT_SUCCESS : EXIT_FAILURE;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
diff --git a/src/patches/glibc/glibc-rh1195453-avx512.patch b/src/patches/glibc/glibc-rh1195453-avx512.patch
deleted file mode 100644 (file)
index 4c70e5e..0000000
+++ /dev/null
@@ -1,481 +0,0 @@
-#
-# Based on AVX-512 support for glibc, but heavaily modified for rhel-6.7.
-# Without assembler support we drop all of the configure checks and simply
-# output using .byte directives the minimal AVX512 instructsion required
-# by the loader. Likewise testing is also impossible, so instead we use
-# the Intel emulator running in `-skx` (Skylake Xeon) emulation mode and
-# verify that a pre-built set of tests passes.
-#
-# commit 6986b98a18490e76b16911d1c6b1ba013598d40d
-# Author: Ulrich Drepper <drepper@gmail.com>
-# Date:   Wed Jul 20 14:20:00 2011 -0400
-#
-#    Force :a_x86_64_ymm to be 16-byte aligned
-#
-# commit aa4de9cea5c07d43caeaca9722c2d417e9a2919c
-# Author: H.J. Lu <hjl.tools@gmail.com>
-# Date:   Fri Mar 14 08:51:25 2014 -0700
-# 
-#     Check AVX-512 assembler support first
-# 
-#     It checks AVX-512 assembler support first and sets libc_cv_cc_avx512 to
-#     $libc_cv_asm_avx512, instead of yes.  GCC won't support AVX-512 if
-#     assembler doesn't support it.
-# 
-#         * sysdeps/x86_64/configure.ac: Check AVX-512 assembler support
-#         first.  Disable AVX-512 GCC support if assembler doesn't support
-#         it.
-#         * sysdeps/x86_64/configure: Regenerated.
-# 
-# commit 2d63a517e4084ec80403cd9f278690fa8b676cc4
-# Author: Igor Zamyatin <igor.zamyatin@intel.com>
-# Date:   Thu Mar 13 11:10:22 2014 -0700
-# 
-#     Save and restore AVX-512 zmm registers to x86-64 ld.so
-#     
-#     AVX-512 ISA adds 512-bit zmm registers.  This patch updates
-#     _dl_runtime_profile to pass zmm registers to run-time audit. It also
-#     changes _dl_x86_64_save_sse and _dl_x86_64_restore_sse to upport zmm
-#     registers, which are called when only when RTLD_PREPARE_FOREIGN_CALL
-#     is used.  Its performance impact is minimum.
-#     
-#         * config.h.in (HAVE_AVX512_SUPPORT): New #undef.
-#         (HAVE_AVX512_ASM_SUPPORT): Likewise.
-#         * sysdeps/x86_64/bits/link.h (La_x86_64_zmm): New.
-#         (La_x86_64_vector): Add zmm.
-#         * sysdeps/x86_64/Makefile (tests): Add tst-audit10.
-#         (modules-names): Add tst-auditmod10a and tst-auditmod10b.
-#         ($(objpfx)tst-audit10): New target.
-#         ($(objpfx)tst-audit10.out): Likewise.
-#         (tst-audit10-ENV): New.
-#         (AVX512-CFLAGS): Likewise.
-#         (CFLAGS-tst-audit10.c): Likewise.
-#         (CFLAGS-tst-auditmod10a.c): Likewise.
-#         (CFLAGS-tst-auditmod10b.c): Likewise.
-#         * sysdeps/x86_64/configure.ac: Set config-cflags-avx512,
-#         HAVE_AVX512_SUPPORT and HAVE_AVX512_ASM_SUPPORT.
-#         * sysdeps/x86_64/configure: Regenerated.
-#         * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Add
-#         AVX-512 zmm register support.
-#         (_dl_x86_64_save_sse): Likewise.
-#         (_dl_x86_64_restore_sse): Likewise.
-#         * sysdeps/x86_64/dl-trampoline.h: Updated to support different
-#         size vector registers.
-#         * sysdeps/x86_64/link-defines.sym (YMM_SIZE): New.
-#         (ZMM_SIZE): Likewise. 
-#         * sysdeps/x86_64/tst-audit10.c: New file.
-#         * sysdeps/x86_64/tst-auditmod10a.c: Likewise.
-#         * sysdeps/x86_64/tst-auditmod10b.c: Likewise.
-# 
-# In addition adds:
-# https://sourceware.org/ml/libc-alpha/2014-09/msg00228.html
-# To extend zmm register checking.
-#
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/x86_64/bits/link.h glibc-2.12-2-gc4ccff1.mod/sysdeps/x86_64/bits/link.h
---- glibc-2.12-2-gc4ccff1/sysdeps/x86_64/bits/link.h   2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/x86_64/bits/link.h       2015-03-03 23:03:25.041829238 -0500
-@@ -65,7 +65,10 @@
- /* Registers for entry into PLT on x86-64.  */
- # if __GNUC_PREREQ (4,0)
- typedef float La_x86_64_xmm __attribute__ ((__vector_size__ (16)));
--typedef float La_x86_64_ymm __attribute__ ((__vector_size__ (32)));
-+typedef float La_x86_64_ymm __attribute__ ((__vector_size__ (32),
-+                                          __aligned__ (16)));
-+typedef double La_x86_64_zmm __attribute__ ((__vector_size__ (64),
-+                                          __aligned__ (16)));
- # else
- typedef float La_x86_64_xmm __attribute__ ((__mode__ (__V4SF__)));
- # endif
-@@ -74,9 +77,10 @@
- {
- # if __GNUC_PREREQ (4,0)
-   La_x86_64_ymm ymm[2];
-+  La_x86_64_zmm zmm[1];
- # endif
-   La_x86_64_xmm xmm[4];
--} La_x86_64_vector __attribute__ ((aligned(16)));
-+} La_x86_64_vector __attribute__ ((__aligned__(16)));
- typedef struct La_x86_64_regs
- {
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.h glibc-2.12-2-gc4ccff1.mod/sysdeps/x86_64/dl-trampoline.h
---- glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.h       2015-03-03 23:03:05.109457627 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/x86_64/dl-trampoline.h   2015-03-03 23:06:58.434101818 -0500
-@@ -20,14 +20,26 @@
- #ifdef RESTORE_AVX
-       /* This is to support AVX audit modules.  */
--      vmovdqu %ymm0,                (LR_VECTOR_OFFSET)(%rsp)
--      vmovdqu %ymm1, (LR_VECTOR_OFFSET +   VECTOR_SIZE)(%rsp)
--      vmovdqu %ymm2, (LR_VECTOR_OFFSET + VECTOR_SIZE*2)(%rsp)
--      vmovdqu %ymm3, (LR_VECTOR_OFFSET + VECTOR_SIZE*3)(%rsp)
--      vmovdqu %ymm4, (LR_VECTOR_OFFSET + VECTOR_SIZE*4)(%rsp)
--      vmovdqu %ymm5, (LR_VECTOR_OFFSET + VECTOR_SIZE*5)(%rsp)
--      vmovdqu %ymm6, (LR_VECTOR_OFFSET + VECTOR_SIZE*6)(%rsp)
--      vmovdqu %ymm7, (LR_VECTOR_OFFSET + VECTOR_SIZE*7)(%rsp)
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+      /* Restore AVX-512 registers. Use .byte becaues we lack assembler support.  */
-+      .byte 0x62,0xf1,0xfe,0x48,0x7f,0x44,0x24,0x03 # vmovdqu64 %zmm0,0xc0(%rsp)
-+      .byte 0x62,0xf1,0xfe,0x48,0x7f,0x4c,0x24,0x04 # vmovdqu64 %zmm1,0x100(%rsp)
-+      .byte 0x62,0xf1,0xfe,0x48,0x7f,0x54,0x24,0x05 # vmovdqu64 %zmm2,0x140(%rsp)
-+      .byte 0x62,0xf1,0xfe,0x48,0x7f,0x5c,0x24,0x06 # vmovdqu64 %zmm3,0x180(%rsp)
-+      .byte 0x62,0xf1,0xfe,0x48,0x7f,0x64,0x24,0x07 # vmovdqu64 %zmm4,0x1c0(%rsp)
-+      .byte 0x62,0xf1,0xfe,0x48,0x7f,0x6c,0x24,0x08 # vmovdqu64 %zmm5,0x200(%rsp)
-+      .byte 0x62,0xf1,0xfe,0x48,0x7f,0x74,0x24,0x09 # vmovdqu64 %zmm6,0x240(%rsp)
-+      .byte 0x62,0xf1,0xfe,0x48,0x7f,0x7c,0x24,0x0a # vmovdqu64 %zmm7,0x280(%rsp)
-+# else
-+      VMOV %VEC(0),                 (LR_VECTOR_OFFSET)(%rsp)
-+      VMOV %VEC(1), (LR_VECTOR_OFFSET +   VECTOR_SIZE)(%rsp)
-+      VMOV %VEC(2), (LR_VECTOR_OFFSET + VECTOR_SIZE*2)(%rsp)
-+      VMOV %VEC(3), (LR_VECTOR_OFFSET + VECTOR_SIZE*3)(%rsp)
-+      VMOV %VEC(4), (LR_VECTOR_OFFSET + VECTOR_SIZE*4)(%rsp)
-+      VMOV %VEC(5), (LR_VECTOR_OFFSET + VECTOR_SIZE*5)(%rsp)
-+      VMOV %VEC(6), (LR_VECTOR_OFFSET + VECTOR_SIZE*6)(%rsp)
-+      VMOV %VEC(7), (LR_VECTOR_OFFSET + VECTOR_SIZE*7)(%rsp)
-+# endif
-       /* Save xmm0-xmm7 registers to detect if any of them are
-          changed by audit module.  */
-@@ -73,7 +85,11 @@
-       je 2f
-       vmovdqa %xmm0, (LR_VECTOR_OFFSET)(%rsp)
-       jmp 1f
--2:    vmovdqu (LR_VECTOR_OFFSET)(%rsp), %ymm0
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+2:    .byte 0x62,0xf1,0xfe,0x48,0x6f,0x44,0x24,0x03 # vmovdqu64 0xc0(%rsp),%zmm0
-+# else
-+2:    VMOV (LR_VECTOR_OFFSET)(%rsp), %VEC(0)
-+# endif
-       vmovdqa %xmm0, (LR_XMM_OFFSET)(%rsp)
- 1:    vpcmpeqq (LR_SIZE + XMM_SIZE)(%rsp), %xmm1, %xmm8
-@@ -82,7 +98,11 @@
-       je 2f
-       vmovdqa %xmm1, (LR_VECTOR_OFFSET + VECTOR_SIZE)(%rsp)
-       jmp 1f
--2:    vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE)(%rsp), %ymm1
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+2:    .byte 0x62,0xf1,0xfe,0x48,0x6f,0x4c,0x24,0x04 # vmovdqu64 0x100(%rsp),%zmm1
-+# else
-+2:    VMOV (LR_VECTOR_OFFSET + VECTOR_SIZE)(%rsp), %VEC(1)
-+# endif
-       vmovdqa %xmm1, (LR_XMM_OFFSET + XMM_SIZE)(%rsp)
- 1:    vpcmpeqq (LR_SIZE + XMM_SIZE*2)(%rsp), %xmm2, %xmm8
-@@ -91,7 +111,11 @@
-       je 2f
-       vmovdqa %xmm2, (LR_VECTOR_OFFSET + VECTOR_SIZE*2)(%rsp)
-       jmp 1f
--2:    vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*2)(%rsp), %ymm2
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+2:    .byte 0x62,0xf1,0xfe,0x48,0x6f,0x54,0x24,0x05 # vmovdqu64 0x140(%rsp),%zmm2
-+# else
-+2:    VMOV (LR_VECTOR_OFFSET + VECTOR_SIZE*2)(%rsp), %VEC(2)
-+# endif
-       vmovdqa %xmm2, (LR_XMM_OFFSET + XMM_SIZE*2)(%rsp)
- 1:    vpcmpeqq (LR_SIZE + XMM_SIZE*3)(%rsp), %xmm3, %xmm8
-@@ -100,7 +124,11 @@
-       je 2f
-       vmovdqa %xmm3, (LR_VECTOR_OFFSET + VECTOR_SIZE*3)(%rsp)
-       jmp 1f
--2:    vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*3)(%rsp), %ymm3
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+2:    .byte 0x62,0xf1,0xfe,0x48,0x6f,0x5c,0x24,0x06 # vmovdqu64 0x180(%rsp),%zmm3
-+# else
-+2:    VMOV (LR_VECTOR_OFFSET + VECTOR_SIZE*3)(%rsp), %VEC(3)
-+# endif
-       vmovdqa %xmm3, (LR_XMM_OFFSET + XMM_SIZE*3)(%rsp)
- 1:    vpcmpeqq (LR_SIZE + XMM_SIZE*4)(%rsp), %xmm4, %xmm8
-@@ -109,7 +137,11 @@
-       je 2f
-       vmovdqa %xmm4, (LR_VECTOR_OFFSET + VECTOR_SIZE*4)(%rsp)
-       jmp 1f
--2:    vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*4)(%rsp), %ymm4
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+2:    .byte 0x62,0xf1,0xfe,0x48,0x6f,0x64,0x24,0x07 # vmovdqu64 0x1c0(%rsp),%zmm4
-+# else
-+2:    VMOV (LR_VECTOR_OFFSET + VECTOR_SIZE*4)(%rsp), %VEC(4)
-+# endif
-       vmovdqa %xmm4, (LR_XMM_OFFSET + XMM_SIZE*4)(%rsp)
- 1:    vpcmpeqq (LR_SIZE + XMM_SIZE*5)(%rsp), %xmm5, %xmm8
-@@ -118,7 +150,11 @@
-       je 2f
-       vmovdqa %xmm5, (LR_VECTOR_OFFSET + VECTOR_SIZE*5)(%rsp)
-       jmp 1f
--2:    vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*5)(%rsp), %ymm5
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+2:    .byte 0x62,0xf1,0xfe,0x48,0x6f,0x6c,0x24,0x08 # vmovdqu64 0x200(%rsp),%zmm5
-+# else
-+2:    VMOV (LR_VECTOR_OFFSET + VECTOR_SIZE*5)(%rsp), %VEC(5)
-+# endif
-       vmovdqa %xmm5, (LR_XMM_OFFSET + XMM_SIZE*5)(%rsp)
- 1:    vpcmpeqq (LR_SIZE + XMM_SIZE*6)(%rsp), %xmm6, %xmm8
-@@ -127,7 +163,11 @@
-       je 2f
-       vmovdqa %xmm6, (LR_VECTOR_OFFSET + VECTOR_SIZE*6)(%rsp)
-       jmp 1f
--2:    vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*6)(%rsp), %ymm6
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+2:    .byte 0x62,0xf1,0xfe,0x48,0x6f,0x74,0x24,0x09 # vmovdqu64 0x240(%rsp),%zmm6
-+# else
-+2:    VMOV (LR_VECTOR_OFFSET + VECTOR_SIZE*6)(%rsp), %VEC(6)
-+# endif
-       vmovdqa %xmm6, (LR_XMM_OFFSET + XMM_SIZE*6)(%rsp)
- 1:    vpcmpeqq (LR_SIZE + XMM_SIZE*7)(%rsp), %xmm7, %xmm8
-@@ -136,7 +176,11 @@
-       je 2f
-       vmovdqa %xmm7, (LR_VECTOR_OFFSET + VECTOR_SIZE*7)(%rsp)
-       jmp 1f
--2:    vmovdqu (LR_VECTOR_OFFSET + VECTOR_SIZE*7)(%rsp), %ymm7
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+2:    .byte 0x62,0xf1,0xfe,0x48,0x6f,0x7c,0x24,0x0a # vmovdqu64 0x280(%rsp),%zmm7
-+# else
-+2:    VMOV (LR_VECTOR_OFFSET + VECTOR_SIZE*7)(%rsp), %VEC(7)
-+# endif
-       vmovdqa %xmm7, (LR_XMM_OFFSET + XMM_SIZE*7)(%rsp)
- 1:
-@@ -214,8 +258,13 @@
- #ifdef RESTORE_AVX
-       /* This is to support AVX audit modules.  */
--      vmovdqu %ymm0, LRV_VECTOR0_OFFSET(%rcx)
--      vmovdqu %ymm1, LRV_VECTOR1_OFFSET(%rcx)
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+      .byte 0x62,0xf1,0xfe,0x48,0x7f,0x81,0x50,0x00,0x00,0x00 # vmovdqu64 %zmm0,0x50(%rcx)
-+      .byte 0x62,0xf1,0xfe,0x48,0x7f,0x89,0x90,0x00,0x00,0x00 # vmovdqu64 %zmm1,0x90(%rcx)
-+# else
-+      VMOV %VEC(0), LRV_VECTOR0_OFFSET(%rcx)
-+      VMOV %VEC(1), LRV_VECTOR1_OFFSET(%rcx)
-+# endif
-       /* Save xmm0/xmm1 registers to detect if they are changed
-          by audit module.  */
-@@ -244,13 +293,21 @@
-       vpmovmskb %xmm2, %esi
-       cmpl $0xffff, %esi
-       jne 1f
--      vmovdqu LRV_VECTOR0_OFFSET(%rsp), %ymm0
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+      .byte 0x62,0xf1,0xfe,0x48,0x6f,0x84,0x24,0x50,0x00,0x00,0x00 # vmovdqu64 0x50(%rsp),%zmm0
-+# else
-+      VMOV LRV_VECTOR0_OFFSET(%rsp), %VEC(0)
-+# endif
- 1:    vpcmpeqq (LRV_SIZE + XMM_SIZE)(%rsp), %xmm1, %xmm2
-       vpmovmskb %xmm2, %esi
-       cmpl $0xffff, %esi
-       jne 1f
--      vmovdqu LRV_VECTOR1_OFFSET(%rsp), %ymm1
-+# if HAVE_NO_AVX512_ASM_SUPPORT
-+      .byte 0x62,0xf1,0xfe,0x48,0x6f,0x8c,0x24,0x90,0x00,0x00,0x00 # vmovdqu64 0x90(%rsp),%zmm1
-+# else
-+      VMOV LRV_VECTOR1_OFFSET(%rsp), %VEC(1)
-+# endif
- 1:
- #endif
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.S glibc-2.12-2-gc4ccff1.mod/sysdeps/x86_64/dl-trampoline.S
---- glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.S       2015-03-03 23:03:05.108457659 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/x86_64/dl-trampoline.S   2015-03-03 23:07:31.799049953 -0500
-@@ -134,7 +134,7 @@
-       .previous
-       cmpl    $0, L(have_avx)(%rip)
--      jne     1f
-+      jne     L(defined)
-       movq    %rbx, %r11              # Save rbx
-       movl    $1, %eax
-       cpuid
-@@ -143,18 +143,51 @@
-       // AVX and XSAVE supported?
-       andl    $((1 << 28) | (1 << 27)), %ecx
-       cmpl    $((1 << 28) | (1 << 27)), %ecx
--      jne     2f
-+      jne     10f
-+      // AVX512 supported in processor?
-+      movq    %rbx, %r11              # Save rbx
-+      xorl    %ecx, %ecx
-+      mov     $0x7, %eax
-+      cpuid
-+      andl    $(1 << 16), %ebx
-       xorl    %ecx, %ecx
-       // Get XFEATURE_ENABLED_MASK
-       xgetbv
--      andl    $0x6, %eax
--2:    subl    $0x5, %eax
-+      test    %ebx, %ebx
-+      movq    %r11, %rbx              # Restore rbx
-+      je      20f
-+      // Verify that XCR0[7:5] = '111b' and
-+      // XCR0[2:1] = '11b' which means
-+      // that zmm state is enabled
-+      andl    $0xe6, %eax
-+      cmpl    $0xe6, %eax
-+      jne     20f
-+      movl    %eax, L(have_avx)(%rip)
-+L(avx512):
-+#   define RESTORE_AVX
-+#   define HAVE_NO_AVX512_ASM_SUPPORT 1
-+#   define VMOV    vmovdqu64
-+#   define VEC(i)  zmm##i
-+#   define MORE_CODE
-+#   include "dl-trampoline.h"
-+#   undef VMOV
-+#   undef VEC
-+#   undef RESTORE_AVX
-+#   undef HAVE_NO_AVX512_ASM_SUPPORT
-+20:   andl    $0x6, %eax
-+10:   subl    $0x5, %eax
-       movl    %eax, L(have_avx)(%rip)
-       cmpl    $0, %eax
--1:    js      L(no_avx)
-+L(defined):
-+      js      L(no_avx)
-+      cmpl    $0xe6, L(have_avx)(%rip)
-+      je      L(avx512)
-+
- #  define RESTORE_AVX
-+#  define VMOV    vmovdqu
-+#  define VEC(i)  ymm##i
- #  define MORE_CODE
- #  include "dl-trampoline.h"
-@@ -178,7 +211,7 @@
- _dl_x86_64_save_sse:
- # ifdef HAVE_AVX_SUPPORT
-       cmpl    $0, L(have_avx)(%rip)
--      jne     1f
-+      jne     L(defined_5)
-       movq    %rbx, %r11              # Save rbx
-       movl    $1, %eax
-       cpuid
-@@ -187,21 +220,37 @@
-       // AVX and XSAVE supported?
-       andl    $((1 << 28) | (1 << 27)), %ecx
-       cmpl    $((1 << 28) | (1 << 27)), %ecx
--      jne     2f
-+      jne     1f
-+      // AVX512 supported in a processor?
-+      movq    %rbx, %r11              # Save rbx
-+      xorl    %ecx,%ecx
-+      mov     $0x7,%eax
-+      cpuid
-+      andl    $(1 << 16), %ebx
-       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
-+      test    %ebx, %ebx
-+      movq    %r11, %rbx              # Restore rbx
-+      je      2f
-+      // Verify that XCR0[7:5] = '111b' and
-+      // XCR0[2:1] = '11b' which means
-+      // that zmm state is enabled
-+      andl    $0xe6, %eax
-       movl    %eax, L(have_avx)(%rip)
--      cmpl    $0, %eax
-+      cmpl    $0xe6, %eax
-+      je      L(avx512_5)
--1:    js      L(no_avx5)
-+2:    andl    $0x6, %eax
-+1:    subl    $0x5, %eax
-+      movl    %eax, L(have_avx)(%rip)
-+      cmpl    $0, %eax
--#  define YMM_SIZE 32
-+L(defined_5):
-+      js      L(no_avx5)
-+      cmpl    $0xe6, L(have_avx)(%rip)
-+      je      L(avx512_5)
-+ 
-       vmovdqa %ymm0, %fs:RTLD_SAVESPACE_SSE+0*YMM_SIZE
-       vmovdqa %ymm1, %fs:RTLD_SAVESPACE_SSE+1*YMM_SIZE
-       vmovdqa %ymm2, %fs:RTLD_SAVESPACE_SSE+2*YMM_SIZE
-@@ -211,6 +260,26 @@
-       vmovdqa %ymm6, %fs:RTLD_SAVESPACE_SSE+6*YMM_SIZE
-       vmovdqa %ymm7, %fs:RTLD_SAVESPACE_SSE+7*YMM_SIZE
-       ret
-+L(avx512_5):
-+# Original instructions:
-+#     vmovdqu64 %zmm0, %fs:RTLD_SAVESPACE_SSE+0*ZMM_SIZE
-+#     vmovdqu64 %zmm1, %fs:RTLD_SAVESPACE_SSE+1*ZMM_SIZE
-+#     vmovdqu64 %zmm2, %fs:RTLD_SAVESPACE_SSE+2*ZMM_SIZE
-+#     vmovdqu64 %zmm3, %fs:RTLD_SAVESPACE_SSE+3*ZMM_SIZE
-+#     vmovdqu64 %zmm4, %fs:RTLD_SAVESPACE_SSE+4*ZMM_SIZE
-+#     vmovdqu64 %zmm5, %fs:RTLD_SAVESPACE_SSE+5*ZMM_SIZE
-+#     vmovdqu64 %zmm6, %fs:RTLD_SAVESPACE_SSE+6*ZMM_SIZE
-+#     vmovdqu64 %zmm7, %fs:RTLD_SAVESPACE_SSE+7*ZMM_SIZE
-+# Assembled instructions:
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x7f,0x04,0x25,0x80,0x00,0x00,0x00 # vmovdqu64 %zmm0,%fs:0x80
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x7f,0x0c,0x25,0xc0,0x00,0x00,0x00 # vmovdqu64 %zmm1,%fs:0xc0
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x7f,0x14,0x25,0x00,0x01,0x00,0x00 # vmovdqu64 %zmm2,%fs:0x100
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x7f,0x1c,0x25,0x40,0x01,0x00,0x00 # vmovdqu64 %zmm3,%fs:0x140
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x7f,0x24,0x25,0x80,0x01,0x00,0x00 # vmovdqu64 %zmm4,%fs:0x180
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x7f,0x2c,0x25,0xc0,0x01,0x00,0x00 # vmovdqu64 %zmm5,%fs:0x1c0
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x7f,0x34,0x25,0x00,0x02,0x00,0x00 # vmovdqu64 %zmm6,%fs:0x200
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x7f,0x3c,0x25,0x40,0x02,0x00,0x00 # vmovdqu64 %zmm7,%fs:0x240
-+      ret
- L(no_avx5):
- # endif
-       movdqa  %xmm0, %fs:RTLD_SAVESPACE_SSE+0*XMM_SIZE
-@@ -234,6 +303,8 @@
- # ifdef HAVE_AVX_SUPPORT
-       cmpl    $0, L(have_avx)(%rip)
-       js      L(no_avx6)
-+      cmpl    $0xe6, L(have_avx)(%rip)
-+      je      L(avx512_6)
-       vmovdqa %fs:RTLD_SAVESPACE_SSE+0*YMM_SIZE, %ymm0
-       vmovdqa %fs:RTLD_SAVESPACE_SSE+1*YMM_SIZE, %ymm1
-@@ -244,6 +315,26 @@
-       vmovdqa %fs:RTLD_SAVESPACE_SSE+6*YMM_SIZE, %ymm6
-       vmovdqa %fs:RTLD_SAVESPACE_SSE+7*YMM_SIZE, %ymm7
-       ret
-+L(avx512_6):
-+# Original instructions:
-+#     vmovdqu64 %fs:RTLD_SAVESPACE_SSE+0*ZMM_SIZE, %zmm0
-+#     vmovdqu64 %fs:RTLD_SAVESPACE_SSE+1*ZMM_SIZE, %zmm1
-+#     vmovdqu64 %fs:RTLD_SAVESPACE_SSE+2*ZMM_SIZE, %zmm2
-+#     vmovdqu64 %fs:RTLD_SAVESPACE_SSE+3*ZMM_SIZE, %zmm3
-+#     vmovdqu64 %fs:RTLD_SAVESPACE_SSE+4*ZMM_SIZE, %zmm4
-+#     vmovdqu64 %fs:RTLD_SAVESPACE_SSE+5*ZMM_SIZE, %zmm5
-+#     vmovdqu64 %fs:RTLD_SAVESPACE_SSE+6*ZMM_SIZE, %zmm6
-+#     vmovdqu64 %fs:RTLD_SAVESPACE_SSE+7*ZMM_SIZE, %zmm7
-+# Assembled instructions:
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x6f,0x04,0x25,0x80,0x00,0x00,0x00 # vmovdqu64 %fs:0x80,%zmm0
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x6f,0x0c,0x25,0xc0,0x00,0x00,0x00 # vmovdqu64 %fs:0xc0,%zmm1
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x6f,0x14,0x25,0x00,0x01,0x00,0x00 # vmovdqu64 %fs:0x100,%zmm2
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x6f,0x1c,0x25,0x40,0x01,0x00,0x00 # vmovdqu64 %fs:0x140,%zmm3
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x6f,0x24,0x25,0x80,0x01,0x00,0x00 # vmovdqu64 %fs:0x180,%zmm4
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x6f,0x2c,0x25,0xc0,0x01,0x00,0x00 # vmovdqu64 %fs:0x1c0,%zmm5
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x6f,0x34,0x25,0x00,0x02,0x00,0x00 # vmovdqu64 %fs:0x200,%zmm6
-+      .byte 0x64,0x62,0xf1,0xfe,0x48,0x6f,0x3c,0x25,0x40,0x02,0x00,0x00 # vmovdqu64 %fs:0x240,%zmm7
-+      ret
- L(no_avx6):
- # endif
-       movdqa  %fs:RTLD_SAVESPACE_SSE+0*XMM_SIZE, %xmm0
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/x86_64/link-defines.sym glibc-2.12-2-gc4ccff1.mod/sysdeps/x86_64/link-defines.sym
---- glibc-2.12-2-gc4ccff1/sysdeps/x86_64/link-defines.sym      2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/x86_64/link-defines.sym  2015-03-03 23:03:25.042829206 -0500
-@@ -4,6 +4,8 @@
- --
- VECTOR_SIZE           sizeof (La_x86_64_vector)
- XMM_SIZE              sizeof (La_x86_64_xmm)
-+YMM_SIZE              sizeof (La_x86_64_ymm)
-+ZMM_SIZE              sizeof (La_x86_64_zmm)
- LR_SIZE                       sizeof (struct La_x86_64_regs)
- LR_RDX_OFFSET         offsetof (struct La_x86_64_regs, lr_rdx)
diff --git a/src/patches/glibc/glibc-rh1207236.patch b/src/patches/glibc/glibc-rh1207236.patch
deleted file mode 100644 (file)
index 5671fd8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/malloc/malloc.c glibc-2.12-2-gc4ccff1.new/malloc/malloc.c
---- glibc-2.12-2-gc4ccff1/malloc/malloc.c      2015-04-10 12:02:54.011106386 +0530
-+++ glibc-2.12-2-gc4ccff1.new/malloc/malloc.c  2015-04-10 12:02:35.867958292 +0530
-@@ -5850,7 +5850,7 @@ _int_valloc(av, bytes) mstate av; size_t
- #endif
- {
-   /* Ensure initialization/consolidation */
--  if (have_fastchunks(av)) malloc_consolidate(av);
-+  if (av && have_fastchunks(av)) malloc_consolidate(av);
-   return _int_memalign(av, mp_.pagesize, bytes);
- }
diff --git a/src/patches/glibc/glibc-rh1209376.patch b/src/patches/glibc/glibc-rh1209376.patch
deleted file mode 100644 (file)
index 74393f0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-@@ -, +, @@
- resolv/nss_dns/dns-host.c:getanswer_r.
----
- resolv/nss_dns/dns-host.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
---- a/resolv/nss_dns/dns-host.c
-+++ a/resolv/nss_dns/dns-host.c
-@@ -615,7 +615,8 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype,
-   int have_to_map = 0;
-   uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct host_data);
-   buffer += pad;
--  if (__builtin_expect (buflen < sizeof (struct host_data) + pad, 0))
-+  buflen = buflen > pad ? buflen - pad : 0;
-+  if (__builtin_expect (buflen < sizeof (struct host_data), 0))
-     {
-       /* The buffer is too small.  */
-     too_small:
---
diff --git a/src/patches/glibc/glibc-rh1217186.patch b/src/patches/glibc/glibc-rh1217186.patch
deleted file mode 100644 (file)
index 6c6c393..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# Author: Carlos O'Donell
-# Upstream status: Needs to go upstream (2015-05-07)
-#
-diff --git a/inet/rcmd.c b/inet/rcmd.c
-index acacaa0..9f2443b 100644
---- a/inet/rcmd.c
-+++ b/inet/rcmd.c
-@@ -803,29 +803,38 @@ __validuser2_sa(hostf, ra, ralen, luser, ruser, rhost)
-       *p = '\0';              /* <nul> terminate username (+host?) */
-       /* buf -> host(?) ; user -> username(?) */
-+      if (*buf == '\0')
-+        break;
-+      if (*user == '\0')
-+        user = luser;
-+
-+      /* First check the user part.  This is an optimization, since
-+         one should always check the host first in order to detect
-+         negative host checks (which we check for later).  */
-+      ucheck = __icheckuser (user, ruser);
-+
-+      /* Either we found the user, or we didn't and this is a
-+         negative host check.  We must do the negative host lookup
-+         in order to preserve the semantics of stopping on this line
-+         before processing others.  */
-+      if (ucheck != 0 || *buf == '-') {
-+
-+          /* Next check host part */
-+          hcheck = __checkhost_sa (ra, ralen, buf, rhost);
-+
-+          /* Negative '-host user(?)' match?  */
-+          if (hcheck < 0)
-+              break;
--      /* First check host part */
--      hcheck = __checkhost_sa (ra, ralen, buf, rhost);
--
--      if (hcheck < 0)
--          break;
--
--      if (hcheck) {
--          /* Then check user part */
--          if (! (*user))
--              user = luser;
--
--          ucheck = __icheckuser (user, ruser);
--
--          /* Positive 'host user' match? */
--          if (ucheck > 0) {
-+          /* Positive 'host user' match?  */
-+          if (hcheck > 0 && ucheck > 0) {
-               retval = 0;
-               break;
-           }
--          /* Negative 'host -user' match? */
--          if (ucheck < 0)
--              break;
-+          /* Negative 'host -user' match?  */
-+          if (hcheck > 0 && ucheck < 0)
-+            break;
-           /* Neither, go on looking for match */
-       }
diff --git a/src/patches/glibc/glibc-rh1256812-2.patch b/src/patches/glibc/glibc-rh1256812-2.patch
deleted file mode 100644 (file)
index 5596de7..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/malloc/malloc.c glibc-2.12-2-gc4ccff1.new/malloc/malloc.c
---- glibc-2.12-2-gc4ccff1/malloc/malloc.c      2015-07-28 22:28:22.517107147 +0530
-+++ glibc-2.12-2-gc4ccff1.new/malloc/malloc.c  2015-07-28 22:24:59.541394493 +0530
-@@ -4087,8 +4087,9 @@ public_cALLOc(size_t n, size_t elem_size
-     /* 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);
-+      av = &main_arena;
-+      (void)mutex_lock(&av->mutex);
-+      mem = _int_malloc(av, sz);
-     } else {
- #if USE_ARENAS
-       /* ... or sbrk() has failed and there is still a chance to mmap() */
diff --git a/src/patches/glibc/glibc-rh1256812-3.patch b/src/patches/glibc/glibc-rh1256812-3.patch
deleted file mode 100644 (file)
index e8fbb1b..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-commit fdc0f374bcd2d0513569aa8d600f960e43e8af1d
-Author: Ulrich Drepper <drepper@redhat.com>
-Date:   Sun Oct 24 22:37:00 2010 -0400
-
-    Fix perturbing in malloc on free.
-
-commit e8349efd466cfedc0aa98be61d88ca8795c9e565
-Author: Ondřej Bílka <neleai@seznam.cz>
-Date:   Mon Dec 9 17:25:19 2013 +0100
-
-    Simplify perturb_byte logic.
-
-diff --git a/malloc/malloc.c b/malloc/malloc.c
-index 4821deb..ac8c3f6 100644
---- a/malloc/malloc.c
-+++ b/malloc/malloc.c
-@@ -1870,8 +1870,20 @@ static int check_action = DEFAULT_CHECK_ACTION;
- static int perturb_byte;
--#define alloc_perturb(p, n) memset (p, (perturb_byte ^ 0xff) & 0xff, n)
--#define free_perturb(p, n) memset (p, perturb_byte & 0xff, n)
-+static inline void
-+alloc_perturb (char *p, size_t n)
-+{
-+  if (__glibc_unlikely (perturb_byte))
-+    memset (p, perturb_byte ^ 0xff, n);
-+}
-+
-+static inline void
-+free_perturb (char *p, size_t n)
-+{
-+  if (__glibc_unlikely (perturb_byte))
-+    memset (p, perturb_byte, n);
-+}
-+
- /* ------------------- Support for multiple arenas -------------------- */
-@@ -3287,8 +3299,7 @@ _int_malloc(mstate av, size_t bytes)
- #endif
-       check_remalloced_chunk(av, victim, nb);
-       void *p = chunk2mem(victim);
--      if (__builtin_expect (perturb_byte, 0))
--      alloc_perturb (p, bytes);
-+      alloc_perturb (p, bytes);
-       return p;
-     }
-   }
-@@ -3323,8 +3334,7 @@ _int_malloc(mstate av, size_t bytes)
-         victim->size |= NON_MAIN_ARENA;
-       check_malloced_chunk(av, victim, nb);
-       void *p = chunk2mem(victim);
--      if (__builtin_expect (perturb_byte, 0))
--        alloc_perturb (p, bytes);
-+      alloc_perturb (p, bytes);
-       return p;
-       }
-     }
-@@ -3403,8 +3413,7 @@ _int_malloc(mstate av, size_t bytes)
-       check_malloced_chunk(av, victim, nb);
-       void *p = chunk2mem(victim);
--      if (__builtin_expect (perturb_byte, 0))
--        alloc_perturb (p, bytes);
-+      alloc_perturb (p, bytes);
-       return p;
-       }
-@@ -3420,8 +3429,7 @@ _int_malloc(mstate av, size_t bytes)
-         victim->size |= NON_MAIN_ARENA;
-       check_malloced_chunk(av, victim, nb);
-       void *p = chunk2mem(victim);
--      if (__builtin_expect (perturb_byte, 0))
--        alloc_perturb (p, bytes);
-+      alloc_perturb (p, bytes);
-       return p;
-       }
-@@ -3545,8 +3553,7 @@ _int_malloc(mstate av, size_t bytes)
-       }
-       check_malloced_chunk(av, victim, nb);
-       void *p = chunk2mem(victim);
--      if (__builtin_expect (perturb_byte, 0))
--        alloc_perturb (p, bytes);
-+      alloc_perturb (p, bytes);
-       return p;
-       }
-     }
-@@ -3649,8 +3656,7 @@ _int_malloc(mstate av, size_t bytes)
-       }
-       check_malloced_chunk(av, victim, nb);
-       void *p = chunk2mem(victim);
--      if (__builtin_expect (perturb_byte, 0))
--        alloc_perturb (p, bytes);
-+      alloc_perturb (p, bytes);
-       return p;
-       }
-     }
-@@ -3684,8 +3690,7 @@ _int_malloc(mstate av, size_t bytes)
-       check_malloced_chunk(av, victim, nb);
-       void *p = chunk2mem(victim);
--      if (__builtin_expect (perturb_byte, 0))
--      alloc_perturb (p, bytes);
-+      alloc_perturb (p, bytes);
-       return p;
-     }
-@@ -3705,7 +3710,7 @@ _int_malloc(mstate av, size_t bytes)
-     */
-     else {
-       void *p = sYSMALLOc(nb, av);
--      if (p != NULL && __builtin_expect (perturb_byte, 0))
-+      if (p != NULL)
-       alloc_perturb (p, bytes);
-       return p;
-     }
-@@ -3798,8 +3803,7 @@ _int_free(mstate av, mchunkptr p, int have_lock)
- #endif
-       }
--    if (__builtin_expect (perturb_byte, 0))
--      free_perturb (chunk2mem(p), size - SIZE_SZ);
-+    free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
-     set_fastchunks(av);
-     unsigned int idx = fastbin_index(size);
-@@ -3881,8 +3885,7 @@ _int_free(mstate av, mchunkptr p, int have_lock)
-       goto errout;
-       }
--    if (__builtin_expect (perturb_byte, 0))
--      free_perturb (chunk2mem(p), size - SIZE_SZ);
-+    free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
-     /* consolidate backward */
-     if (!prev_inuse(p)) {
diff --git a/src/patches/glibc/glibc-rh1256812-4.patch b/src/patches/glibc/glibc-rh1256812-4.patch
deleted file mode 100644 (file)
index 1e497f3..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-commit 55765a349a96482207fbf927d3666a51878f973b
-Author: Josef Bacik <josef@toxicpanda.com>
-Date:   Wed Aug 19 14:06:56 2015 +0530
-
-    Don't fall back to mmap if the original arena is not corrupt
-    
-    The new logic to find an uncontended non-corrupt arena misses a case
-    where the current arena is contended, but is not corrupt.  In the
-    degenerate case, this is the only arena.  In both cases, the logic
-    falls back to using mmap despite there being an available arena.
-    
-    Attached patch by Josef Bacik makes sure that all arenas are indeed
-    corrupt before falling back to malloc.  Verified on x86_64.
-    
-       * malloc/arena.c (reused_arena): return NULL only if all
-       arenas are corrupt.
-
-diff --git a/malloc/arena.c b/malloc/arena.c
-index 21ecc5a1..0424273 100644
---- a/malloc/arena.c
-+++ b/malloc/arena.c
-@@ -823,16 +823,21 @@ reused_arena (mstate avoid_arena)
-   /* Make sure that the arena we get is not corrupted.  */
-   mstate begin = result;
-+  bool looped = false;
-+
-   while (arena_is_corrupt (result))
-     {
-       result = result->next;
-       if (result == begin)
--       break;
-+      {
-+        looped = true;
-+        break;
-+      }
-     }
-   /* We could not find any arena that was either not corrupted or not the one
-      we wanted to avoid.  */
--  if (result == begin)
-+  if (looped)
-     return NULL;
-   /* No arena available without contention.  Wait for the next in line.  */
diff --git a/src/patches/glibc/glibc-rh1256812.patch b/src/patches/glibc/glibc-rh1256812.patch
deleted file mode 100644 (file)
index 1eafcc1..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/malloc/malloc.c glibc-2.12-2-gc4ccff1.v2/malloc/malloc.c
---- glibc-2.12-2-gc4ccff1/malloc/malloc.c      2015-07-24 19:29:37.679907396 +0530
-+++ glibc-2.12-2-gc4ccff1.v2/malloc/malloc.c   2015-07-24 18:59:59.928055174 +0530
-@@ -3737,8 +3737,7 @@ public_mALLOc(size_t bytes)
-       mstate prev = ar_ptr->next ? ar_ptr : 0;
-       (void)mutex_unlock(&ar_ptr->mutex);
-       ar_ptr = arena_get2(prev, bytes, true);
--      if(ar_ptr)
--      victim = _int_malloc(ar_ptr, bytes);
-+      victim = _int_malloc(ar_ptr, bytes);
- #endif
-     }
-   }
-@@ -3968,8 +3967,7 @@ public_mEMALIGn(size_t alignment, size_t
-       mstate prev = ar_ptr->next ? ar_ptr : 0;
-       (void)mutex_unlock(&ar_ptr->mutex);
-       ar_ptr = arena_get2(prev, bytes, true);
--      if(ar_ptr)
--      p = _int_memalign(ar_ptr, alignment, bytes);
-+      p = _int_memalign(ar_ptr, alignment, bytes);
- #endif
-     }
-   }
-@@ -4024,8 +4022,7 @@ public_vALLOc(size_t bytes)
-       mstate prev = ar_ptr->next ? ar_ptr : 0;
-       (void)mutex_unlock(&ar_ptr->mutex);
-       ar_ptr = arena_get2(prev, bytes, true);
--      if(ar_ptr)
--      p = _int_memalign(ar_ptr, pagesz, bytes);
-+      p = _int_memalign(ar_ptr, pagesz, bytes);
- #endif
-     }
-   }
-@@ -4080,8 +4077,7 @@ public_pVALLOc(size_t bytes)
-       mstate prev = ar_ptr->next ? ar_ptr : 0;
-       (void)mutex_unlock(&ar_ptr->mutex);
-       ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE, true);
--      if(ar_ptr)
--      p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
-+      p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
- #endif
-     }
-   }
-@@ -4180,11 +4176,9 @@ public_cALLOc(size_t n, size_t elem_size
-       mstate prev = av->next ? av : 0;
-       (void)mutex_unlock(&av->mutex);
-       av = arena_get2(prev, sz, true);
--      if(av)
--      mem = _int_malloc(av, sz);
-+      mem = _int_malloc(av, sz);
- #endif
-     }
--    if (mem == 0) return 0;
-   }
-   if (av != NULL)
diff --git a/src/patches/glibc/glibc-rh1256890.patch b/src/patches/glibc/glibc-rh1256890.patch
deleted file mode 100644 (file)
index 4683dc4..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/malloc/malloc.c glibc-2.12-2-gc4ccff1.new/malloc/malloc.c
---- glibc-2.12-2-gc4ccff1/malloc/malloc.c      2015-08-19 23:13:52.826205930 +0530
-+++ glibc-2.12-2-gc4ccff1.new/malloc/malloc.c  2015-08-19 23:13:40.021049289 +0530
-@@ -5867,7 +5867,7 @@ _int_pvalloc(av, bytes) mstate av, size_
-   size_t pagesz;
-   /* Ensure initialization/consolidation */
--  if (have_fastchunks(av)) malloc_consolidate(av);
-+  if (av && have_fastchunks(av)) malloc_consolidate(av);
-   pagesz = mp_.pagesize;
-   return _int_memalign(av, pagesz, (bytes + pagesz - 1) & ~(pagesz - 1));
- }
diff --git a/src/patches/glibc/glibc-rh1256891.patch b/src/patches/glibc/glibc-rh1256891.patch
deleted file mode 100644 (file)
index 5364dba..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-commit 5c44738353ecaa1c81efca063ee8b55e092d7a43
-Author: Alexandre Oliva <aoliva@redhat.com>
-Date:   Wed Sep 5 15:43:04 2012 -0300
-
-    Don't change no_dyn_threshold on mallopt failure
-    
-       * malloc/malloc.c (__libc_mallopt) <M_MMAP_THRESHOLD>: Do not
-       change internal state upon failure.
-
-diff --git a/malloc/malloc.c b/malloc/malloc.c
-index bd562df..c69e281 100644
---- a/malloc/malloc.c
-+++ b/malloc/malloc.c
-@@ -4769,8 +4769,10 @@ int __libc_mallopt(int param_number, int value)
-       res = 0;
-     else
- #endif
--      mp_.mmap_threshold = value;
--      mp_.no_dyn_threshold = 1;
-+      {
-+      mp_.mmap_threshold = value;
-+      mp_.no_dyn_threshold = 1;
-+      }
-     break;
-   case M_MMAP_MAX:
diff --git a/src/patches/glibc/glibc-rh1291270.patch b/src/patches/glibc/glibc-rh1291270.patch
deleted file mode 100644 (file)
index 8d12d95..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-Description: Allow loading more libraries with static TLS.
-Author: Carlos O'Donell <codonell@redhat.com>
-Origin: PATCH
-Bug-RHEL: #1291270 (rhel-6.7.z), #1198802 (rhel-6.8), #1202952 (rhel-7.2)
-Bug-Fedora: #1124987 (F21)
-Bug-Upstream: #17090, #17620, #17621, #17628 (2.22)
-Upstream status: not-needed
-#
-# The correct fix for this is already upstream and involves
-# changing the heuristics for DTV slot increases. In RHEL6
-# we take the conservative approach and provide a larger
-# slot surplus. This matches what was done in Fedora 21 before
-# we had the upstream fix: f8aeae347377f3dfa8cbadde057adf1827fb1d44.
-# In RHEL7 we have the upstream fix. This is fixed upstream as of
-# glibc 2.22.
-#
-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
-@@ -496,8 +496,18 @@ struct rtld_global
-    have to iterate beyond the first element in the slotinfo list.  */
- #define TLS_SLOTINFO_SURPLUS (62)
--/* Number of additional slots in the dtv allocated.  */
--#define DTV_SURPLUS   (14)
-+/* Number of additional allocated dtv slots.  This was initially
-+   14, but problems with python, MESA, and X11's uses of static TLS meant
-+   that most distributions were very close to this limit when they loaded
-+   dynamically interpreted languages that used graphics. The simplest
-+   solution was to roughly double the number of slots. The actual static
-+   image space usage was relatively small, for example in MESA you
-+   had only two dispatch pointers for a total of 16 bytes.  If we hit up
-+   against this limit again we should start a campaign with the
-+   distributions to coordinate the usage of static TLS.  Any user of this
-+   resource is effectively coordinating a global resource since this
-+   surplus is allocated for each thread at startup.  */
-+#define DTV_SURPLUS   (32)
-   /* Initial dtv of the main thread, not allocated with normal malloc.  */
-   EXTERN void *_dl_initial_dtv;
diff --git a/src/patches/glibc/glibc-rh1296031-0.patch b/src/patches/glibc/glibc-rh1296031-0.patch
deleted file mode 100644 (file)
index d44e491..0000000
+++ /dev/null
@@ -1,465 +0,0 @@
-Sourceware bug 16574
-
-commit d668061994a7486a3ba9c7d5e7882d85a2883707
-Author: Andreas Schwab <schwab@suse.de>
-Date:   Thu Feb 13 11:01:57 2014 +0100
-
-    Fix memory leak in _nss_dns_gethostbyname4_r with big DNS answer
-
-commit ab7ac0f2cf8731fe4c3f3aea6088a7c0127b5725
-Author: Ondřej Bílka <neleai@seznam.cz>
-Date:   Sun Feb 16 12:59:23 2014 +0100
-
-    Deduplicate resolv/nss_dns/dns-host.c
-    
-    In resolv/nss_dns/dns-host.c one of code path duplicated code after
-    that. We merge these paths.
-
-commit ab09bf616ad527b249aca5f2a4956fd526f0712f
-Author: Andreas Schwab <schwab@suse.de>
-Date:   Tue Feb 18 10:57:25 2014 +0100
-
-    Properly fix memory leak in _nss_dns_gethostbyname4_r with big DNS answer
-    
-    Instead of trying to guess whether the second buffer needs to be freed
-    set a flag at the place it is allocated
-
-Index: glibc-2.12-2-gc4ccff1/include/resolv.h
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/include/resolv.h
-+++ glibc-2.12-2-gc4ccff1/include/resolv.h
-@@ -58,11 +58,11 @@ libc_hidden_proto (__res_randomid)
- libc_hidden_proto (__res_state)
- int __libc_res_nquery (res_state, const char *, int, int, u_char *, int,
--                     u_char **, u_char **, int *, int *);
-+                     u_char **, u_char **, int *, int *, int *);
- int __libc_res_nsearch (res_state, const char *, int, int, u_char *, int,
--                      u_char **, u_char **, int *, int *);
-+                      u_char **, u_char **, int *, int *, int *);
- int __libc_res_nsend (res_state, const u_char *, int, const u_char *, int,
--                    u_char *, int, u_char **, u_char **, int *, int *)
-+                    u_char *, int, u_char **, u_char **, int *, int *, int *)
-   attribute_hidden;
- libresolv_hidden_proto (_sethtent)
-Index: glibc-2.12-2-gc4ccff1/resolv/gethnamaddr.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/resolv/gethnamaddr.c
-+++ glibc-2.12-2-gc4ccff1/resolv/gethnamaddr.c
-@@ -634,7 +634,7 @@ gethostbyname2(name, af)
-       buf.buf = origbuf = (querybuf *) alloca (1024);
-       if ((n = __libc_res_nsearch(&_res, name, C_IN, type, buf.buf->buf, 1024,
--                                  &buf.ptr, NULL, NULL, NULL)) < 0) {
-+                                  &buf.ptr, NULL, NULL, NULL, NULL)) < 0) {
-               if (buf.buf != origbuf)
-                       free (buf.buf);
-               Dprintf("res_nsearch failed (%d)\n", n);
-@@ -729,12 +729,12 @@ gethostbyaddr(addr, len, af)
-       buf.buf = orig_buf = (querybuf *) alloca (1024);
-       n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf, 1024,
--                            &buf.ptr, NULL, NULL, NULL);
-+                            &buf.ptr, NULL, NULL, NULL, NULL);
-       if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0) {
-               strcpy(qp, "ip6.int");
-               n = __libc_res_nquery(&_res, qbuf, C_IN, T_PTR, buf.buf->buf,
-                                     buf.buf != orig_buf ? MAXPACKET : 1024,
--                                    &buf.ptr, NULL, NULL, NULL);
-+                                    &buf.ptr, NULL, NULL, NULL, NULL);
-       }
-       if (n < 0) {
-               if (buf.buf != orig_buf)
-Index: glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-canon.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/resolv/nss_dns/dns-canon.c
-+++ glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-canon.c
-@@ -62,7 +62,7 @@ _nss_dns_getcanonname_r (const char *nam
-     {
-       int r = __libc_res_nquery (&_res, name, ns_c_in, qtypes[i],
-                                buf, sizeof (buf), &ansp.ptr, NULL, NULL,
--                               NULL);
-+                               NULL, NULL);
-       if (r > 0)
-       {
-         /* We need to decode the response.  Just one question record.
-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
-@@ -191,7 +191,7 @@ _nss_dns_gethostbyname3_r (const char *n
-   host_buffer.buf = orig_host_buffer = (querybuf *) alloca (1024);
-   n = __libc_res_nsearch (&_res, name, C_IN, type, host_buffer.buf->buf,
--                        1024, &host_buffer.ptr, NULL, NULL, NULL);
-+                        1024, &host_buffer.ptr, NULL, NULL, NULL, NULL);
-   if (n < 0)
-     {
-       switch (errno)
-@@ -221,7 +221,7 @@ _nss_dns_gethostbyname3_r (const char *n
-       n = __libc_res_nsearch (&_res, name, C_IN, T_A, host_buffer.buf->buf,
-                               host_buffer.buf != orig_host_buffer
-                               ? MAXPACKET : 1024, &host_buffer.ptr,
--                              NULL, NULL, NULL);
-+                              NULL, NULL, NULL, NULL);
-       if (n < 0)
-       {
-@@ -304,13 +304,20 @@ _nss_dns_gethostbyname4_r (const char *n
-   u_char *ans2p = NULL;
-   int nans2p = 0;
-   int resplen2 = 0;
-+  int ans2p_malloced = 0;
-   int olderr = errno;
-   enum nss_status status;
-   int n = __libc_res_nsearch (&_res, name, C_IN, T_UNSPEC,
-                             host_buffer.buf->buf, 2048, &host_buffer.ptr,
--                            &ans2p, &nans2p, &resplen2);
--  if (n < 0)
-+                            &ans2p, &nans2p, &resplen2, &ans2p_malloced);
-+  if (n >= 0)
-+    {
-+      status = gaih_getanswer (host_buffer.buf, n, (const querybuf *) ans2p,
-+                             resplen2, name, pat, buffer, buflen,
-+                             errnop, herrnop, ttlp);
-+    }
-+  else
-     {
-       if (errno == ESRCH)
-       {
-@@ -325,16 +332,11 @@ _nss_dns_gethostbyname4_r (const char *n
-       *errnop = EAGAIN;
-       else
-       __set_errno (olderr);
--
--      if (host_buffer.buf != orig_host_buffer)
--      free (host_buffer.buf);
--
--      return status;
-     }
--  status = gaih_getanswer(host_buffer.buf, n, (const querybuf *) ans2p,
--                        resplen2, name, pat, buffer, buflen,
--                        errnop, herrnop, ttlp);
-+  /* Check whether ans2p was separately allocated.  */
-+  if (ans2p_malloced)
-+    free (ans2p);
-   if (host_buffer.buf != orig_host_buffer)
-     free (host_buffer.buf);
-@@ -444,7 +446,7 @@ _nss_dns_gethostbyaddr2_r (const void *a
-         strcpy (qp, "].ip6.arpa");
-         n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR,
-                                host_buffer.buf->buf, 1024, &host_buffer.ptr,
--                               NULL, NULL, NULL);
-+                               NULL, NULL, NULL, NULL);
-         if (n >= 0)
-           goto got_it_already;
-       }
-@@ -465,14 +467,14 @@ _nss_dns_gethostbyaddr2_r (const void *a
-     }
-   n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf,
--                       1024, &host_buffer.ptr, NULL, NULL, NULL);
-+                       1024, &host_buffer.ptr, NULL, NULL, NULL, NULL);
-   if (n < 0 && af == AF_INET6 && (_res.options & RES_NOIP6DOTINT) == 0)
-     {
-       strcpy (qp, "ip6.int");
-       n = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, host_buffer.buf->buf,
-                            host_buffer.buf != orig_host_buffer
-                            ? MAXPACKET : 1024, &host_buffer.ptr,
--                           NULL, NULL, NULL);
-+                           NULL, NULL, NULL, NULL);
-     }
-   if (n < 0)
-     {
-Index: glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-network.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/resolv/nss_dns/dns-network.c
-+++ glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-network.c
-@@ -130,7 +130,7 @@ _nss_dns_getnetbyname_r (const char *nam
-   net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024);
-   anslen = __libc_res_nsearch (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf,
--                             1024, &net_buffer.ptr, NULL, NULL, NULL);
-+                             1024, &net_buffer.ptr, NULL, NULL, NULL, NULL);
-   if (anslen < 0)
-     {
-       /* Nothing found.  */
-@@ -206,7 +206,7 @@ _nss_dns_getnetbyaddr_r (uint32_t net, i
-   net_buffer.buf = orig_net_buffer = (querybuf *) alloca (1024);
-   anslen = __libc_res_nquery (&_res, qbuf, C_IN, T_PTR, net_buffer.buf->buf,
--                            1024, &net_buffer.ptr, NULL, NULL, NULL);
-+                            1024, &net_buffer.ptr, NULL, NULL, NULL, NULL);
-   if (anslen < 0)
-     {
-       /* Nothing found.  */
-Index: glibc-2.12-2-gc4ccff1/resolv/res_query.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/resolv/res_query.c
-+++ glibc-2.12-2-gc4ccff1/resolv/res_query.c
-@@ -98,7 +98,7 @@ static int
- __libc_res_nquerydomain(res_state statp, const char *name, const char *domain,
-                       int class, int type, u_char *answer, int anslen,
-                       u_char **answerp, u_char **answerp2, int *nanswerp2,
--                      int *resplen2);
-+                      int *resplen2, int *answerp2_malloced);
- /*
-  * Formulate a normal query, send, and await answer.
-@@ -119,7 +119,8 @@ __libc_res_nquery(res_state statp,
-                 u_char **answerp,     /* if buffer needs to be enlarged */
-                 u_char **answerp2,
-                 int *nanswerp2,
--                int *resplen2)
-+                int *resplen2,
-+                int *answerp2_malloced)
- {
-       HEADER *hp = (HEADER *) answer;
-       HEADER *hp2;
-@@ -224,7 +225,8 @@ __libc_res_nquery(res_state statp,
-       }
-       assert (answerp == NULL || (void *) *answerp == (void *) answer);
-       n = __libc_res_nsend(statp, query1, nquery1, query2, nquery2, answer,
--                           anslen, answerp, answerp2, nanswerp2, resplen2);
-+                           anslen, answerp, answerp2, nanswerp2, resplen2,
-+                           answerp2_malloced);
-       if (use_malloc)
-               free (buf);
-       if (n < 0) {
-@@ -316,7 +318,7 @@ res_nquery(res_state statp,
-          int anslen)          /* size of answer buffer */
- {
-       return __libc_res_nquery(statp, name, class, type, answer, anslen,
--                               NULL, NULL, NULL, NULL);
-+                               NULL, NULL, NULL, NULL, NULL);
- }
- libresolv_hidden_def (res_nquery)
-@@ -335,7 +337,8 @@ __libc_res_nsearch(res_state statp,
-                  u_char **answerp,
-                  u_char **answerp2,
-                  int *nanswerp2,
--                 int *resplen2)
-+                 int *resplen2,
-+                 int *answerp2_malloced)
- {
-       const char *cp, * const *domain;
-       HEADER *hp = (HEADER *) answer;
-@@ -359,7 +362,7 @@ __libc_res_nsearch(res_state statp,
-       if (!dots && (cp = res_hostalias(statp, name, tmp, sizeof tmp))!= NULL)
-               return (__libc_res_nquery(statp, cp, class, type, answer,
-                                         anslen, answerp, answerp2,
--                                        nanswerp2, resplen2));
-+                                        nanswerp2, resplen2, answerp2_malloced));
- #ifdef DEBUG
-       if (statp->options & RES_DEBUG)
-@@ -376,7 +379,8 @@ __libc_res_nsearch(res_state statp,
-       if (dots >= statp->ndots || trailing_dot) {
-               ret = __libc_res_nquerydomain(statp, name, NULL, class, type,
-                                             answer, anslen, answerp,
--                                            answerp2, nanswerp2, resplen2);
-+                                            answerp2, nanswerp2, resplen2,
-+                                            answerp2_malloced);
-               if (ret > 0 || trailing_dot
-                   /* If the second response is valid then we use that.  */
-                   || (ret == 0 && resplen2 != NULL && *resplen2 > 0))
-@@ -387,12 +391,12 @@ __libc_res_nsearch(res_state statp,
-                       answer = *answerp;
-                       anslen = MAXPACKET;
-               }
--              if (answerp2
--                  && (*answerp2 < answer || *answerp2 >= answer + anslen))
-+              if (answerp2 && *answerp2_malloced)
-                 {
-                   free (*answerp2);
-                   *nanswerp2 = 0;
-                   *answerp2 = NULL;
-+                  *answerp2_malloced = 0;
-                 }
-       }
-@@ -418,7 +422,7 @@ __libc_res_nsearch(res_state statp,
-                                                     class, type,
-                                                     answer, anslen, answerp,
-                                                     answerp2, nanswerp2,
--                                                    resplen2);
-+                                                    resplen2, answerp2_malloced);
-                       if (ret > 0 || (ret == 0 && resplen2 != NULL
-                                       && *resplen2 > 0))
-                               return (ret);
-@@ -427,13 +431,12 @@ __libc_res_nsearch(res_state statp,
-                               answer = *answerp;
-                               anslen = MAXPACKET;
-                       }
--                      if (answerp2
--                          && (*answerp2 < answer
--                              || *answerp2 >= answer + anslen))
-+                      if (answerp2 && *answerp2_malloced)
-                         {
-                           free (*answerp2);
-                           *nanswerp2 = 0;
-                           *answerp2 = NULL;
-+                          *answerp2_malloced = 0;
-                         }
-                       /*
-@@ -489,7 +492,8 @@ __libc_res_nsearch(res_state statp,
-       if (dots && !(tried_as_is || root_on_list)) {
-               ret = __libc_res_nquerydomain(statp, name, NULL, class, type,
-                                             answer, anslen, answerp,
--                                            answerp2, nanswerp2, resplen2);
-+                                            answerp2, nanswerp2, resplen2,
-+                                            answerp2_malloced);
-               if (ret > 0 || (ret == 0 && resplen2 != NULL
-                               && *resplen2 > 0))
-                       return (ret);
-@@ -502,11 +506,12 @@ __libc_res_nsearch(res_state statp,
-        * else send back meaningless H_ERRNO, that being the one from
-        * the last DNSRCH we did.
-        */
--      if (answerp2 && (*answerp2 < answer || *answerp2 >= answer + anslen))
-+      if (answerp2 && *answerp2_malloced)
-         {
-           free (*answerp2);
--          *nanswerp2 = NULL;
-+          *nanswerp2 = 0;
-           *answerp2 = NULL;
-+          *answerp2_malloced = 0;
-         }
-       if (saved_herrno != -1)
-               RES_SET_H_ERRNO(statp, saved_herrno);
-@@ -526,7 +531,7 @@ res_nsearch(res_state statp,
-           int anslen)         /* size of answer */
- {
-       return __libc_res_nsearch(statp, name, class, type, answer,
--                                anslen, NULL, NULL, NULL, NULL);
-+                                anslen, NULL, NULL, NULL, NULL, NULL);
- }
- libresolv_hidden_def (res_nsearch)
-@@ -544,7 +549,8 @@ __libc_res_nquerydomain(res_state statp,
-                       u_char **answerp,
-                       u_char **answerp2,
-                       int *nanswerp2,
--                      int *resplen2)
-+                      int *resplen2,
-+                      int *answerp2_malloced)
- {
-       char nbuf[MAXDNAME];
-       const char *longname = nbuf;
-@@ -582,7 +588,7 @@ __libc_res_nquerydomain(res_state statp,
-       }
-       return (__libc_res_nquery(statp, longname, class, type, answer,
-                                 anslen, answerp, answerp2, nanswerp2,
--                                resplen2));
-+                                resplen2, answerp2_malloced));
- }
- int
-@@ -594,7 +600,8 @@ res_nquerydomain(res_state statp,
-           int anslen)         /* size of answer */
- {
-       return __libc_res_nquerydomain(statp, name, domain, class, type,
--                                     answer, anslen, NULL, NULL, NULL, NULL);
-+                                     answer, anslen, NULL, NULL, NULL, NULL,
-+                                     NULL);
- }
- libresolv_hidden_def (res_nquerydomain)
-Index: glibc-2.12-2-gc4ccff1/resolv/res_send.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/resolv/res_send.c
-+++ glibc-2.12-2-gc4ccff1/resolv/res_send.c
-@@ -203,12 +203,12 @@ evNowTime(struct timespec *res) {
- static int            send_vc(res_state, const u_char *, int,
-                               const u_char *, int,
-                               u_char **, int *, int *, int, u_char **,
--                              u_char **, int *, int *);
-+                              u_char **, int *, int *, int *);
- static int            send_dg(res_state, const u_char *, int,
-                               const u_char *, int,
-                               u_char **, int *, int *, int,
-                               int *, int *, u_char **,
--                              u_char **, int *, int *);
-+                              u_char **, int *, int *, int *);
- #ifdef DEBUG
- static void           Aerror(const res_state, FILE *, const char *, int,
-                              const struct sockaddr *);
-@@ -360,7 +360,7 @@ int
- __libc_res_nsend(res_state statp, const u_char *buf, int buflen,
-                const u_char *buf2, int buflen2,
-                u_char *ans, int anssiz, u_char **ansp, u_char **ansp2,
--               int *nansp2, int *resplen2)
-+               int *nansp2, int *resplen2, int *ansp2_malloced)
- {
-   int gotsomewhere, terrno, try, v_circuit, resplen, ns, n;
-@@ -565,7 +565,8 @@ __libc_res_nsend(res_state statp, const
-                       try = statp->retry;
-                       n = send_vc(statp, buf, buflen, buf2, buflen2,
-                                   &ans, &anssiz, &terrno,
--                                  ns, ansp, ansp2, nansp2, resplen2);
-+                                  ns, ansp, ansp2, nansp2, resplen2,
-+                                  ansp2_malloced);
-                       if (n < 0)
-                               return (-1);
-                       if (n == 0 && (buf2 == NULL || *resplen2 == 0))
-@@ -575,7 +576,7 @@ __libc_res_nsend(res_state statp, const
-                       n = send_dg(statp, buf, buflen, buf2, buflen2,
-                                   &ans, &anssiz, &terrno,
-                                   ns, &v_circuit, &gotsomewhere, ansp,
--                                  ansp2, nansp2, resplen2);
-+                                  ansp2, nansp2, resplen2, ansp2_malloced);
-                       if (n < 0)
-                               return (-1);
-                       if (n == 0 && (buf2 == NULL || *resplen2 == 0))
-@@ -665,7 +666,7 @@ res_nsend(res_state statp,
-         const u_char *buf, int buflen, u_char *ans, int anssiz)
- {
-   return __libc_res_nsend(statp, buf, buflen, NULL, 0, ans, anssiz,
--                        NULL, NULL, NULL, NULL);
-+                        NULL, NULL, NULL, NULL, NULL);
- }
- libresolv_hidden_def (res_nsend)
-@@ -747,7 +748,7 @@ send_vc(res_state statp,
-       const u_char *buf, int buflen, const u_char *buf2, int buflen2,
-       u_char **ansp, int *anssizp,
-       int *terrno, int ns, u_char **anscp, u_char **ansp2, int *anssizp2,
--      int *resplen2)
-+      int *resplen2, int *ansp2_malloced)
- {
-       const HEADER *hp = (HEADER *) buf;
-       const HEADER *hp2 = (HEADER *) buf2;
-@@ -896,6 +897,8 @@ send_vc(res_state statp,
-                       }
-                       *thisanssizp = MAXPACKET;
-                       *thisansp = newp;
-+                      if (thisansp == ansp2)
-+                        *ansp2_malloced = 1;
-                       anhp = (HEADER *) newp;
-                       /* A uint16_t can't be larger than MAXPACKET
-                          thus it's safe to allocate MAXPACKET but
-@@ -1128,7 +1131,7 @@ send_dg(res_state statp,
-       const u_char *buf, int buflen, const u_char *buf2, int buflen2,
-       u_char **ansp, int *anssizp,
-       int *terrno, int ns, int *v_circuit, int *gotsomewhere, u_char **anscp,
--      u_char **ansp2, int *anssizp2, int *resplen2)
-+      u_char **ansp2, int *anssizp2, int *resplen2, int *ansp2_malloced)
- {
-       const HEADER *hp = (HEADER *) buf;
-       const HEADER *hp2 = (HEADER *) buf2;
-@@ -1289,6 +1292,8 @@ send_dg(res_state statp,
-                       if (newp != NULL) {
-                               *thisanssizp = MAXPACKET;
-                               *thisansp = newp;
-+                              if (thisansp == ansp2)
-+                                *ansp2_malloced = 1;
-                       }
-               }
-               /* We could end up with truncation if anscp was NULL
diff --git a/src/patches/glibc/glibc-rh1296031.patch b/src/patches/glibc/glibc-rh1296031.patch
deleted file mode 100644 (file)
index c430abb..0000000
+++ /dev/null
@@ -1,544 +0,0 @@
-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
-@@ -1043,7 +1043,10 @@ gaih_getanswer_slice (const querybuf *an
-   int h_namelen = 0;
-   if (ancount == 0)
--    return NSS_STATUS_NOTFOUND;
-+    {
-+      *h_errnop = HOST_NOT_FOUND;
-+      return NSS_STATUS_NOTFOUND;
-+    }
-   while (ancount-- > 0 && cp < end_of_message && had_error == 0)
-     {
-@@ -1217,7 +1220,14 @@ gaih_getanswer_slice (const querybuf *an
-   /* Special case here: if the resolver sent a result but it only
-      contains a CNAME while we are looking for a T_A or T_AAAA record,
-      we fail with NOTFOUND instead of TRYAGAIN.  */
--  return canon == NULL ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
-+  if (canon != NULL)
-+    {
-+      *h_errnop = HOST_NOT_FOUND;
-+      return NSS_STATUS_NOTFOUND;
-+    }
-+
-+  *h_errnop = NETDB_INTERNAL;
-+  return NSS_STATUS_TRYAGAIN;
- }
-@@ -1231,11 +1241,101 @@ gaih_getanswer (const querybuf *answer1,
-   enum nss_status status = NSS_STATUS_NOTFOUND;
-+  /* Combining the NSS status of two distinct queries requires some
-+     compromise and attention to symmetry (A or AAAA queries can be
-+     returned in any order).  What follows is a breakdown of how this
-+     code is expected to work and why. We discuss only SUCCESS,
-+     TRYAGAIN, NOTFOUND and UNAVAIL, since they are the only returns
-+     that apply (though RETURN and MERGE exist).  We make a distinction
-+     between TRYAGAIN (recoverable) and TRYAGAIN' (not-recoverable).
-+     A recoverable TRYAGAIN is almost always due to buffer size issues
-+     and returns ERANGE in errno and the caller is expected to retry
-+     with a larger buffer.
-+
-+     Lastly, you may be tempted to make significant changes to the
-+     conditions in this code to bring about symmetry between responses.
-+     Please don't change anything without due consideration for
-+     expected application behaviour.  Some of the synthesized responses
-+     aren't very well thought out and sometimes appear to imply that
-+     IPv4 responses are always answer 1, and IPv6 responses are always
-+     answer 2, but that's not true (see the implemetnation of send_dg
-+     and send_vc to see response can arrive in any order, particlarly
-+     for UDP). However, we expect it holds roughly enough of the time
-+     that this code works, but certainly needs to be fixed to make this
-+     a more robust implementation.
-+
-+     ----------------------------------------------
-+     | Answer 1 Status /   | Synthesized | Reason |
-+     | Answer 2 Status     | Status      |        |
-+     |--------------------------------------------|
-+     | SUCCESS/SUCCESS     | SUCCESS     | [1]    |
-+     | SUCCESS/TRYAGAIN    | TRYAGAIN    | [5]    |
-+     | SUCCESS/TRYAGAIN'   | SUCCESS     | [1]    |
-+     | SUCCESS/NOTFOUND    | SUCCESS     | [1]    |
-+     | SUCCESS/UNAVAIL     | SUCCESS     | [1]    |
-+     | TRYAGAIN/SUCCESS    | TRYAGAIN    | [2]    |
-+     | TRYAGAIN/TRYAGAIN   | TRYAGAIN    | [2]    |
-+     | TRYAGAIN/TRYAGAIN'  | TRYAGAIN    | [2]    |
-+     | TRYAGAIN/NOTFOUND   | TRYAGAIN    | [2]    |
-+     | TRYAGAIN/UNAVAIL    | TRYAGAIN    | [2]    |
-+     | TRYAGAIN'/SUCCESS   | SUCCESS     | [3]    |
-+     | TRYAGAIN'/TRYAGAIN  | TRYAGAIN    | [3]    |
-+     | TRYAGAIN'/TRYAGAIN' | TRYAGAIN'   | [3]    |
-+     | TRYAGAIN'/NOTFOUND  | TRYAGAIN'   | [3]    |
-+     | TRYAGAIN'/UNAVAIL   | UNAVAIL     | [3]    |
-+     | NOTFOUND/SUCCESS    | SUCCESS     | [3]    |
-+     | NOTFOUND/TRYAGAIN   | TRYAGAIN    | [3]    |
-+     | NOTFOUND/TRYAGAIN'  | TRYAGAIN'   | [3]    |
-+     | NOTFOUND/NOTFOUND   | NOTFOUND    | [3]    |
-+     | NOTFOUND/UNAVAIL    | UNAVAIL     | [3]    |
-+     | UNAVAIL/SUCCESS     | UNAVAIL     | [4]    |
-+     | UNAVAIL/TRYAGAIN    | UNAVAIL     | [4]    |
-+     | UNAVAIL/TRYAGAIN'   | UNAVAIL     | [4]    |
-+     | UNAVAIL/NOTFOUND    | UNAVAIL     | [4]    |
-+     | UNAVAIL/UNAVAIL     | UNAVAIL     | [4]    |
-+     ----------------------------------------------
-+
-+     [1] If the first response is a success we return success.
-+         This ignores the state of the second answer and in fact
-+         incorrectly sets errno and h_errno to that of the second
-+       answer.  However because the response is a success we ignore
-+       *errnop and *h_errnop (though that means you touched errno on
-+         success).  We are being conservative here and returning the
-+         likely IPv4 response in the first answer as a success.
-+
-+     [2] If the first response is a recoverable TRYAGAIN we return
-+       that instead of looking at the second response.  The
-+       expectation here is that we have failed to get an IPv4 response
-+       and should retry both queries.
-+
-+     [3] If the first response was not a SUCCESS and the second
-+       response is not NOTFOUND (had a SUCCESS, need to TRYAGAIN,
-+       or failed entirely e.g. TRYAGAIN' and UNAVAIL) then use the
-+       result from the second response, otherwise the first responses
-+       status is used.  Again we have some odd side-effects when the
-+       second response is NOTFOUND because we overwrite *errnop and
-+       *h_errnop that means that a first answer of NOTFOUND might see
-+       its *errnop and *h_errnop values altered.  Whether it matters
-+       in practice that a first response NOTFOUND has the wrong
-+       *errnop and *h_errnop is undecided.
-+
-+     [4] If the first response is UNAVAIL we return that instead of
-+       looking at the second response.  The expectation here is that
-+       it will have failed similarly e.g. configuration failure.
-+
-+     [5] Testing this code is complicated by the fact that truncated
-+       second response buffers might be returned as SUCCESS if the
-+       first answer is a SUCCESS.  To fix this we add symmetry to
-+       TRYAGAIN with the second response.  If the second response
-+       is a recoverable error we now return TRYAGIN even if the first
-+       response was SUCCESS.  */
-+
-   if (anslen1 > 0)
-     status = gaih_getanswer_slice(answer1, anslen1, qname,
-                                 &pat, &buffer, &buflen,
-                                 errnop, h_errnop, ttlp,
-                                 &first);
-+
-   if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND
-        || (status == NSS_STATUS_TRYAGAIN
-          && (*errnop != ERANGE || *h_errnop == NO_RECOVERY)))
-@@ -1245,8 +1345,15 @@ gaih_getanswer (const querybuf *answer1,
-                                                    &pat, &buffer, &buflen,
-                                                    errnop, h_errnop, ttlp,
-                                                    &first);
-+      /* Use the second response status in some cases.  */
-       if (status != NSS_STATUS_SUCCESS && status2 != NSS_STATUS_NOTFOUND)
-       status = status2;
-+      /* Do not return a truncated second response (unless it was
-+         unavoidable e.g. unrecoverable TRYAGAIN).  */
-+      if (status == NSS_STATUS_SUCCESS
-+        && (status2 == NSS_STATUS_TRYAGAIN
-+            && *errnop == ERANGE && *h_errnop != NO_RECOVERY))
-+      status = NSS_STATUS_TRYAGAIN;
-     }
-   return status;
-Index: glibc-2.12-2-gc4ccff1/resolv/res_send.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/resolv/res_send.c
-+++ glibc-2.12-2-gc4ccff1/resolv/res_send.c
-@@ -1,3 +1,20 @@
-+/* Copyright (C) 2016 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
- /*
-  * Copyright (c) 1985, 1989, 1993
-  *    The Regents of the University of California.  All rights reserved.
-@@ -360,6 +377,8 @@ __libc_res_nsend(res_state statp, const
- #ifdef USE_HOOKS
-       if (__builtin_expect (statp->qhook || statp->rhook, 0)) {
-               if (anssiz < MAXPACKET && ansp) {
-+                      /* Always allocate MAXPACKET, callers expect
-+                         this specific size.  */
-                       u_char *buf = malloc (MAXPACKET);
-                       if (buf == NULL)
-                               return (-1);
-@@ -652,6 +671,77 @@ libresolv_hidden_def (res_nsend)
- /* Private */
-+/* The send_vc function is responsible for sending a DNS query over TCP
-+   to the nameserver numbered NS from the res_state STATP i.e.
-+   EXT(statp).nssocks[ns].  The function supports sending both IPv4 and
-+   IPv6 queries at the same serially on the same socket.
-+
-+   Please note that for TCP there is no way to disable sending both
-+   queries, unlike UDP, which honours RES_SNGLKUP and RES_SNGLKUPREOP
-+   and sends the queries serially and waits for the result after each
-+   sent query.  This implemetnation should be corrected to honour these
-+   options.
-+
-+   Please also note that for TCP we send both queries over the same
-+   socket one after another.  This technically violates best practice
-+   since the server is allowed to read the first query, respond, and
-+   then close the socket (to service another client).  If the server
-+   does this, then the remaining second query in the socket data buffer
-+   will cause the server to send the client an RST which will arrive
-+   asynchronously and the client's OS will likely tear down the socket
-+   receive buffer resulting in a potentially short read and lost
-+   response data.  This will force the client to retry the query again,
-+   and this process may repeat until all servers and connection resets
-+   are exhausted and then the query will fail.  It's not known if this
-+   happens with any frequency in real DNS server implementations.  This
-+   implementation should be corrected to use two sockets by default for
-+   parallel queries.
-+
-+   The query stored in BUF of BUFLEN length is sent first followed by
-+   the query stored in BUF2 of BUFLEN2 length.  Queries are sent
-+   serially on the same socket.
-+
-+   Answers to the query are stored firstly in *ANSP up to a max of
-+   *ANSSIZP bytes.  If more than *ANSSIZP bytes are needed and ANSCP
-+   is non-NULL (to indicate that modifying the answer buffer is allowed)
-+   then malloc is used to allocate a new response buffer and ANSCP and
-+   ANSP will both point to the new buffer.  If more than *ANSSIZP bytes
-+   are needed but ANSCP is NULL, then as much of the response as
-+   possible is read into the buffer, but the results will be truncated.
-+   When truncation happens because of a small answer buffer the DNS
-+   packets header feild TC will bet set to 1, indicating a truncated
-+   message and the rest of the socket data will be read and discarded.
-+
-+   Answers to the query are stored secondly in *ANSP2 up to a max of
-+   *ANSSIZP2 bytes, with the actual response length stored in
-+   *RESPLEN2.  If more than *ANSSIZP bytes are needed and ANSP2
-+   is non-NULL (required for a second query) then malloc is used to
-+   allocate a new response buffer, *ANSSIZP2 is set to the new buffer
-+   size and *ANSP2_MALLOCED is set to 1.
-+
-+   The ANSP2_MALLOCED argument will eventually be removed as the
-+   change in buffer pointer can be used to detect the buffer has
-+   changed and that the caller should use free on the new buffer.
-+
-+   Note that the answers may arrive in any order from the server and
-+   therefore the first and second answer buffers may not correspond to
-+   the first and second queries.
-+
-+   It is not supported to call this function with a non-NULL ANSP2
-+   but a NULL ANSCP.  Put another way, you can call send_vc with a
-+   single unmodifiable buffer or two modifiable buffers, but no other
-+   combination is supported.
-+
-+   It is the caller's responsibility to free the malloc allocated
-+   buffers by detecting that the pointers have changed from their
-+   original values i.e. *ANSCP or *ANSP2 has changed.
-+
-+   If errors are encountered then *TERRNO is set to an appropriate
-+   errno value and a zero result is returned for a recoverable error,
-+   and a less-than zero result is returned for a non-recoverable error.
-+
-+   If no errors are encountered then *TERRNO is left unmodified and
-+   a the length of the first response in bytes is returned.  */
- static int
- send_vc(res_state statp,
-       const u_char *buf, int buflen, const u_char *buf2, int buflen2,
-@@ -661,11 +751,7 @@ send_vc(res_state statp,
- {
-       const HEADER *hp = (HEADER *) buf;
-       const HEADER *hp2 = (HEADER *) buf2;
--      u_char *ans = *ansp;
--      int orig_anssizp = *anssizp;
--      // XXX REMOVE
--      // int anssiz = *anssizp;
--      HEADER *anhp = (HEADER *) ans;
-+      HEADER *anhp = (HEADER *) *ansp;
-       struct sockaddr_in6 *nsap = EXT(statp).nsaddrs[ns];
-       int truncating, connreset, resplen, n;
-       struct iovec iov[4];
-@@ -741,6 +827,8 @@ send_vc(res_state statp,
-        * Receive length & response
-        */
-       int recvresp1 = 0;
-+      /* Skip the second response if there is no second query.
-+           To do that we mark the second response as received.  */
-       int recvresp2 = buf2 == NULL;
-       uint16_t rlen16;
-  read_len:
-@@ -777,33 +865,14 @@ send_vc(res_state statp,
-       u_char **thisansp;
-       int *thisresplenp;
-       if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) {
-+              /* We have not received any responses
-+                 yet or we only have one response to
-+                 receive.  */
-               thisanssizp = anssizp;
-               thisansp = anscp ?: ansp;
-               assert (anscp != NULL || ansp2 == NULL);
-               thisresplenp = &resplen;
-       } else {
--              if (*anssizp != MAXPACKET) {
--                      /* No buffer allocated for the first
--                         reply.  We can try to use the rest
--                         of the user-provided buffer.  */
--#ifdef _STRING_ARCH_unaligned
--                      *anssizp2 = orig_anssizp - resplen;
--                      *ansp2 = *ansp + resplen;
--#else
--                      int aligned_resplen
--                        = ((resplen + __alignof__ (HEADER) - 1)
--                           & ~(__alignof__ (HEADER) - 1));
--                      *anssizp2 = orig_anssizp - aligned_resplen;
--                      *ansp2 = *ansp + aligned_resplen;
--#endif
--              } else {
--                      /* The first reply did not fit into the
--                         user-provided buffer.  Maybe the second
--                         answer will.  */
--                      *anssizp2 = orig_anssizp;
--                      *ansp2 = *ansp;
--              }
--
-               thisanssizp = anssizp2;
-               thisansp = ansp2;
-               thisresplenp = resplen2;
-@@ -811,10 +880,14 @@ send_vc(res_state statp,
-       anhp = (HEADER *) *thisansp;
-       *thisresplenp = rlen;
--      if (rlen > *thisanssizp) {
--              /* Yes, we test ANSCP here.  If we have two buffers
--                 both will be allocatable.  */
--              if (__builtin_expect (anscp != NULL, 1)) {
-+      /* Is the answer buffer too small?  */
-+      if (*thisanssizp < rlen) {
-+              /* If the current buffer is non-NULL and it's not
-+                 pointing at the static user-supplied buffer then
-+                 we can reallocate it.  */
-+              if (thisansp != NULL && thisansp != ansp) {
-+                      /* Always allocate MAXPACKET, callers expect
-+                         this specific size.  */
-                       u_char *newp = malloc (MAXPACKET);
-                       if (newp == NULL) {
-                               *terrno = ENOMEM;
-@@ -824,6 +897,9 @@ send_vc(res_state statp,
-                       *thisanssizp = MAXPACKET;
-                       *thisansp = newp;
-                       anhp = (HEADER *) newp;
-+                      /* A uint16_t can't be larger than MAXPACKET
-+                         thus it's safe to allocate MAXPACKET but
-+                         read RLEN bytes instead.  */
-                       len = rlen;
-               } else {
-                       Dprint(statp->options & RES_DEBUG,
-@@ -987,6 +1063,66 @@ reopen (res_state statp, int *terrno, in
-       return 1;
- }
-+/* The send_dg function is responsible for sending a DNS query over UDP
-+   to the nameserver numbered NS from the res_state STATP i.e.
-+   EXT(statp).nssocks[ns].  The function supports IPv4 and IPv6 queries
-+   along with the ability to send the query in parallel for both stacks
-+   (default) or serially (RES_SINGLKUP).  It also supports serial lookup
-+   with a close and reopen of the socket used to talk to the server
-+   (RES_SNGLKUPREOP) to work around broken name servers.
-+
-+   The query stored in BUF of BUFLEN length is sent first followed by
-+   the query stored in BUF2 of BUFLEN2 length.  Queries are sent
-+   in parallel (default) or serially (RES_SINGLKUP or RES_SNGLKUPREOP).
-+
-+   Answers to the query are stored firstly in *ANSP up to a max of
-+   *ANSSIZP bytes.  If more than *ANSSIZP bytes are needed and ANSCP
-+   is non-NULL (to indicate that modifying the answer buffer is allowed)
-+   then malloc is used to allocate a new response buffer and ANSCP and
-+   ANSP will both point to the new buffer.  If more than *ANSSIZP bytes
-+   are needed but ANSCP is NULL, then as much of the response as
-+   possible is read into the buffer, but the results will be truncated.
-+   When truncation happens because of a small answer buffer the DNS
-+   packets header feild TC will bet set to 1, indicating a truncated
-+   message, while the rest of the UDP packet is discarded.
-+
-+   Answers to the query are stored secondly in *ANSP2 up to a max of
-+   *ANSSIZP2 bytes, with the actual response length stored in
-+   *RESPLEN2.  If more than *ANSSIZP bytes are needed and ANSP2
-+   is non-NULL (required for a second query) then malloc is used to
-+   allocate a new response buffer, *ANSSIZP2 is set to the new buffer
-+   size and *ANSP2_MALLOCED is set to 1.
-+
-+   The ANSP2_MALLOCED argument will eventually be removed as the
-+   change in buffer pointer can be used to detect the buffer has
-+   changed and that the caller should use free on the new buffer.
-+
-+   Note that the answers may arrive in any order from the server and
-+   therefore the first and second answer buffers may not correspond to
-+   the first and second queries.
-+
-+   It is not supported to call this function with a non-NULL ANSP2
-+   but a NULL ANSCP.  Put another way, you can call send_vc with a
-+   single unmodifiable buffer or two modifiable buffers, but no other
-+   combination is supported.
-+
-+   It is the caller's responsibility to free the malloc allocated
-+   buffers by detecting that the pointers have changed from their
-+   original values i.e. *ANSCP or *ANSP2 has changed.
-+
-+   If an answer is truncated because of UDP datagram DNS limits then
-+   *V_CIRCUIT is set to 1 and the return value non-zero to indicate to
-+   the caller to retry with TCP.  The value *GOTSOMEWHERE is set to 1
-+   if any progress was made reading a response from the nameserver and
-+   is used by the caller to distinguish between ECONNREFUSED and
-+   ETIMEDOUT (the latter if *GOTSOMEWHERE is 1).
-+
-+   If errors are encountered then *TERRNO is set to an appropriate
-+   errno value and a zero result is returned for a recoverable error,
-+   and a less-than zero result is returned for a non-recoverable error.
-+
-+   If no errors are encountered then *TERRNO is left unmodified and
-+   a the length of the first response in bytes is returned.  */
- static int
- send_dg(res_state statp,
-       const u_char *buf, int buflen, const u_char *buf2, int buflen2,
-@@ -996,8 +1132,6 @@ send_dg(res_state statp,
- {
-       const HEADER *hp = (HEADER *) buf;
-       const HEADER *hp2 = (HEADER *) buf2;
--      u_char *ans = *ansp;
--      int orig_anssizp = *anssizp;
-       struct timespec now, timeout, finish;
-       struct pollfd pfd[1];
-       int ptimeout;
-@@ -1029,6 +1163,8 @@ send_dg(res_state statp,
-       int need_recompute = 0;
-       int nwritten = 0;
-       int recvresp1 = 0;
-+      /* Skip the second response if there is no second query.
-+           To do that we mark the second response as received.  */
-       int recvresp2 = buf2 == NULL;
-       pfd[0].fd = EXT(statp).nssocks[ns];
-       pfd[0].events = POLLOUT;
-@@ -1125,50 +1261,52 @@ send_dg(res_state statp,
-               int *thisresplenp;
-               if ((recvresp1 | recvresp2) == 0 || buf2 == NULL) {
-+                      /* We have not received any responses
-+                         yet or we only have one response to
-+                         receive.  */
-                       thisanssizp = anssizp;
-                       thisansp = anscp ?: ansp;
-                       assert (anscp != NULL || ansp2 == NULL);
-                       thisresplenp = &resplen;
-               } else {
--                      if (*anssizp != MAXPACKET) {
--                              /* No buffer allocated for the first
--                                 reply.  We can try to use the rest
--                                 of the user-provided buffer.  */
--#ifdef _STRING_ARCH_unaligned
--                              *anssizp2 = orig_anssizp - resplen;
--                              *ansp2 = *ansp + resplen;
--#else
--                              int aligned_resplen
--                                = ((resplen + __alignof__ (HEADER) - 1)
--                                   & ~(__alignof__ (HEADER) - 1));
--                              *anssizp2 = orig_anssizp - aligned_resplen;
--                              *ansp2 = *ansp + aligned_resplen;
--#endif
--                      } else {
--                              /* The first reply did not fit into the
--                                 user-provided buffer.  Maybe the second
--                                 answer will.  */
--                              *anssizp2 = orig_anssizp;
--                              *ansp2 = *ansp;
--                      }
--
-                       thisanssizp = anssizp2;
-                       thisansp = ansp2;
-                       thisresplenp = resplen2;
-               }
-               if (*thisanssizp < MAXPACKET
--                  /* Yes, we test ANSCP here.  If we have two buffers
--                     both will be allocatable.  */
--                  && anscp
-+                  /* If the current buffer is non-NULL and it's not
-+                     pointing at the static user-supplied buffer then
-+                     we can reallocate it.  */
-+                  && (thisansp != NULL && thisansp != ansp)
-+                  /* Is the size too small?  */
-                   && (ioctl (pfd[0].fd, FIONREAD, thisresplenp) < 0
--                      || *thisanssizp < *thisresplenp)) {
-+                      || *thisanssizp < *thisresplenp)
-+                  ) {
-+                      /* Always allocate MAXPACKET, callers expect
-+                         this specific size.  */
-                       u_char *newp = malloc (MAXPACKET);
-                       if (newp != NULL) {
--                              *anssizp = MAXPACKET;
--                              *thisansp = ans = newp;
-+                              *thisanssizp = MAXPACKET;
-+                              *thisansp = newp;
-                       }
-               }
-+              /* We could end up with truncation if anscp was NULL
-+                 (not allowed to change caller's buffer) and the
-+                 response buffer size is too small.  This isn't a
-+                 reliable way to detect truncation because the ioctl
-+                 may be an inaccurate report of the UDP message size.
-+                 Therefore we use this only to issue debug output.
-+                 To do truncation accurately with UDP we need
-+                 MSG_TRUNC which is only available on Linux.  We
-+                 can abstract out the Linux-specific feature in the
-+                 future to detect truncation.  */
-+              if (__glibc_unlikely (*thisanssizp < *thisresplenp)) {
-+                      Dprint(statp->options & RES_DEBUG,
-+                             (stdout, ";; response may be truncated (UDP)\n")
-+                      );
-+              }
-+
-               HEADER *anhp = (HEADER *) *thisansp;
-               socklen_t fromlen = sizeof(struct sockaddr_in6);
-               assert (sizeof(from) <= fromlen);
-Index: glibc-2.12-2-gc4ccff1/resolv/res_query.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/resolv/res_query.c
-+++ glibc-2.12-2-gc4ccff1/resolv/res_query.c
-@@ -391,6 +391,7 @@ __libc_res_nsearch(res_state statp,
-                   && (*answerp2 < answer || *answerp2 >= answer + anslen))
-                 {
-                   free (*answerp2);
-+                  *nanswerp2 = 0;
-                   *answerp2 = NULL;
-                 }
-       }
-@@ -431,6 +432,7 @@ __libc_res_nsearch(res_state statp,
-                               || *answerp2 >= answer + anslen))
-                         {
-                           free (*answerp2);
-+                          *nanswerp2 = 0;
-                           *answerp2 = NULL;
-                         }
-@@ -503,6 +505,7 @@ __libc_res_nsearch(res_state statp,
-       if (answerp2 && (*answerp2 < answer || *answerp2 >= answer + anslen))
-         {
-           free (*answerp2);
-+          *nanswerp2 = NULL;
-           *answerp2 = NULL;
-         }
-       if (saved_herrno != -1)
diff --git a/src/patches/glibc/glibc-rh1299319-0.patch b/src/patches/glibc/glibc-rh1299319-0.patch
deleted file mode 100644 (file)
index f27eccd..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-commit 2c1094bd700e63a8d7f547b3f5495bedb55c0a08
-Author: Ulrich Drepper <drepper@gmail.com>
-Date:   Thu Dec 22 22:43:39 2011 -0500
-
-    Create internal threads with sufficient stack size
-
-Index: glibc-2.12-2-gc4ccff1/nptl/Versions
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/nptl/Versions
-+++ glibc-2.12-2-gc4ccff1/nptl/Versions
-@@ -255,6 +255,6 @@ libpthread {
-   GLIBC_PRIVATE {
-     __pthread_initialize_minimal;
-     __pthread_clock_gettime; __pthread_clock_settime;
--    __pthread_unwind;
-+    __pthread_unwind; __pthread_get_minstack;
-   }
- }
-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
-@@ -507,3 +507,13 @@ __pthread_initialize_minimal_internal (i
- }
- strong_alias (__pthread_initialize_minimal_internal,
-             __pthread_initialize_minimal)
-+
-+
-+size_t
-+__pthread_get_minstack (const pthread_attr_t *attr)
-+{
-+  struct pthread_attr *iattr = (struct pthread_attr *) attr;
-+
-+  return (GLRO(dl_pagesize) + __static_tls_size + PTHREAD_STACK_MIN
-+        + iattr->guardsize);
-+}
-Index: glibc-2.12-2-gc4ccff1/nptl/pthreadP.h
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/nptl/pthreadP.h
-+++ glibc-2.12-2-gc4ccff1/nptl/pthreadP.h
-@@ -397,6 +397,7 @@ weak_function;
- extern void __pthread_init_static_tls (struct link_map *) attribute_hidden;
-+extern size_t __pthread_get_minstack (const pthread_attr_t *attr);
- /* Namespace save aliases.  */
- extern int __pthread_getschedparam (pthread_t thread_id, int *policy,
-Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/timer_routines.c
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/timer_routines.c
-+++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/timer_routines.c
-@@ -165,7 +165,7 @@ __start_helper_thread (void)
-      and should go away automatically when canceled.  */
-   pthread_attr_t attr;
-   (void) pthread_attr_init (&attr);
--  (void) pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
-+  (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
-   /* Block all signals in the helper thread but SIGSETXID.  To do this
-      thoroughly we temporarily have to block all signals here.  The
diff --git a/src/patches/glibc/glibc-rh1299319-1.patch b/src/patches/glibc/glibc-rh1299319-1.patch
deleted file mode 100644 (file)
index e6288a2..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-commit 232872379ee82cd040a52a48cbbae65a249b5765
-Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
-Date:   Sun Jan 8 19:56:52 2012 -0500
-
-    Use __pthread_get_minstack for AIO helper thread
-
-diff --git a/nptl/sysdeps/unix/sysv/linux/aio_misc.h b/nptl/sysdeps/unix/sysv/linux/aio_misc.h
-index 406d96e..8011c3e 100644
---- a/nptl/sysdeps/unix/sysv/linux/aio_misc.h
-+++ b/nptl/sysdeps/unix/sysv/linux/aio_misc.h
-@@ -47,7 +47,7 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
-   pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
-   /* The helper thread needs only very little resources.  */
--  (void) pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
-+  (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
-   /* Block all signals in the helper thread.  To do this thoroughly we
-      temporarily have to block all signals here.  */
diff --git a/src/patches/glibc/glibc-rh552960.patch b/src/patches/glibc/glibc-rh552960.patch
deleted file mode 100644 (file)
index 41eccb7..0000000
+++ /dev/null
@@ -1,1213 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/Makefile glibc-2.12-2-gc4ccff1.fixed/nptl/Makefile
---- glibc-2.12-2-gc4ccff1/nptl/Makefile        2013-07-09 10:18:22.267421846 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/Makefile  2013-07-09 10:16:22.043427519 +0530
-@@ -207,7 +207,8 @@ tests = tst-typesizes \
-       tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \
-       tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \
-       tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \
--      tst-cond20 tst-cond21 tst-cond22 tst-cond23 \
-+      tst-cond20 tst-cond21 tst-cond22 tst-cond23 tst-cond24 tst-cond25 \
-+      tst-cond-except \
-       tst-robust1 tst-robust2 tst-robust3 tst-robust4 tst-robust5 \
-       tst-robust6 tst-robust7 tst-robust8 tst-robust9 \
-       tst-robustpi1 tst-robustpi2 tst-robustpi3 tst-robustpi4 tst-robustpi5 \
-@@ -275,6 +276,8 @@ gen-as-const-headers = pthread-errnos.sy
- LDFLAGS-pthread.so = -Wl,--enable-new-dtags,-z,nodelete,-z,initfirst
-+LDFLAGS-tst-cond24 = -lrt
-+LDFLAGS-tst-cond25 = -lrt
- include ../Makeconfig
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S glibc-2.12-2-gc4ccff1.fixed/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
---- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S      2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S        2013-07-09 10:16:22.044427519 +0530
-@@ -203,9 +203,11 @@ __pthread_cond_timedwait:
- 42:   leal    (%ebp), %esi
-       movl    28(%esp), %edx
-       addl    $cond_futex, %ebx
-+.Ladd_cond_futex_pi:
-       movl    $SYS_futex, %eax
-       ENTER_KERNEL
-       subl    $cond_futex, %ebx
-+.Lsub_cond_futex_pi:
-       movl    %eax, %esi
-       /* Set the pi-requeued flag only if the kernel has returned 0. The
-          kernel does not hold the mutex on ETIMEDOUT or any other error.  */
-@@ -213,8 +215,23 @@ __pthread_cond_timedwait:
-       sete    24(%esp)
-       je      41f
--      /* Normal and PI futexes dont mix. Use normal futex functions only
--         if the kernel does not support the PI futex functions.  */
-+      /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns
-+         successfully, it has already locked the mutex for us and the
-+         pi_flag (24(%esp)) is set to denote that fact.  However, if another
-+         thread changed the futex value before we entered the wait, the
-+         syscall may return an EAGAIN and the mutex is not locked.  We go
-+         ahead with a success anyway since later we look at the pi_flag to
-+         decide if we got the mutex or not.  The sequence numbers then make
-+         sure that only one of the threads actually wake up.  We retry using
-+         normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal
-+         and PI futexes don't mix.
-+
-+         Note that we don't check for EAGAIN specifically; we assume that the
-+         only other error the futex function could return is EAGAIN (barring
-+         the ETIMEOUT of course, for the timeout case in futex) since
-+         anything else would mean an error in our function.  It is too
-+         expensive to do that check for every call (which is  quite common in
-+         case of a large number of threads), so it has been skipped.  */
-       cmpl    $-ENOSYS, %eax
-       jne     41f
-       xorl    %ecx, %ecx
-@@ -274,9 +291,24 @@ __pthread_cond_timedwait:
-       jne     9f
- 15:   cmpl    $-ETIMEDOUT, %esi
--      jne     8b
-+      je      28f
--      addl    $1, wakeup_seq(%ebx)
-+      /* We need to go back to futex_wait.  If we're using requeue_pi, then
-+         release the mutex we had acquired and go back.  */
-+      movl    24(%esp), %edx
-+      test    %edx, %edx
-+      jz      8b
-+
-+      /* Adjust the mutex values first and then unlock it.  The unlock
-+         should always succeed or else the kernel did not lock the mutex
-+         correctly.  */
-+      movl    dep_mutex(%ebx), %eax
-+      call    __pthread_mutex_cond_lock_adjust
-+      xorl    %edx, %edx
-+      call    __pthread_mutex_unlock_usercnt
-+      jmp     8b
-+
-+28:   addl    $1, wakeup_seq(%ebx)
-       adcl    $0, wakeup_seq+4(%ebx)
-       addl    $1, cond_futex(%ebx)
-       movl    $ETIMEDOUT, %esi
-@@ -644,10 +676,27 @@ __condvar_tw_cleanup:
-       movl    $0x7fffffff, %edx
-       ENTER_KERNEL
-+      /* Lock the mutex only if we don't own it already.  This only happens
-+         in case of PI mutexes, if we got cancelled after a successful
-+         return of the futex syscall and before disabling async
-+         cancellation.  */
- 5:    movl    24+FRAME_SIZE(%esp), %eax
--      call    __pthread_mutex_cond_lock
-+      movl    MUTEX_KIND(%eax), %ebx
-+      andl    $(ROBUST_BIT|PI_BIT), %ebx
-+      cmpl    $PI_BIT, %ebx
-+      jne     8f
-+
-+      movl    (%eax), %ebx
-+      andl    $TID_MASK, %ebx
-+      cmpl    %ebx, %gs:TID
-+      jne     8f
-+      /* We managed to get the lock.  Fix it up before returning.  */
-+      call    __pthread_mutex_cond_lock_adjust
-+      jmp     9f
-+
-+8:    call    __pthread_mutex_cond_lock
--      movl    %esi, (%esp)
-+9:    movl    %esi, (%esp)
- .LcallUR:
-       call    _Unwind_Resume
-       hlt
-@@ -665,7 +714,15 @@ __condvar_tw_cleanup:
-       .uleb128 .Lcstend-.Lcstbegin
- .Lcstbegin:
-       .long   .LcleanupSTART-.LSTARTCODE
--      .long   .Ladd_cond_futex-.LcleanupSTART
-+      .long   .Ladd_cond_futex_pi-.LcleanupSTART
-+      .long   __condvar_tw_cleanup-.LSTARTCODE
-+      .uleb128  0
-+      .long   .Ladd_cond_futex_pi-.LSTARTCODE
-+      .long   .Lsub_cond_futex_pi-.Ladd_cond_futex_pi
-+      .long   __condvar_tw_cleanup2-.LSTARTCODE
-+      .uleb128  0
-+      .long   .Lsub_cond_futex_pi-.LSTARTCODE
-+      .long   .Ladd_cond_futex-.Lsub_cond_futex_pi
-       .long   __condvar_tw_cleanup-.LSTARTCODE
-       .uleb128  0
-       .long   .Ladd_cond_futex-.LSTARTCODE
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S glibc-2.12-2-gc4ccff1.fixed/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
---- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S   2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S     2013-07-09 10:16:22.046427519 +0530
-@@ -138,17 +138,33 @@ __pthread_cond_wait:
-       movl    %ebp, %edx
-       xorl    %esi, %esi
-       addl    $cond_futex, %ebx
-+.Ladd_cond_futex_pi:
-       movl    $SYS_futex, %eax
-       ENTER_KERNEL
-       subl    $cond_futex, %ebx
-+.Lsub_cond_futex_pi:
-       /* Set the pi-requeued flag only if the kernel has returned 0. The
-          kernel does not hold the mutex on error.  */
-       cmpl    $0, %eax
-       sete    16(%esp)
-       je      19f
--      /* Normal and PI futexes dont mix. Use normal futex functions only
--         if the kernel does not support the PI futex functions.  */
-+      /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns
-+         successfully, it has already locked the mutex for us and the
-+         pi_flag (16(%esp)) is set to denote that fact.  However, if another
-+         thread changed the futex value before we entered the wait, the
-+         syscall may return an EAGAIN and the mutex is not locked.  We go
-+         ahead with a success anyway since later we look at the pi_flag to
-+         decide if we got the mutex or not.  The sequence numbers then make
-+         sure that only one of the threads actually wake up.  We retry using
-+         normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal
-+         and PI futexes don't mix.
-+
-+         Note that we don't check for EAGAIN specifically; we assume that the
-+         only other error the futex function could return is EAGAIN since
-+         anything else would mean an error in our function.  It is too
-+         expensive to do that check for every call (which is  quite common in
-+         case of a large number of threads), so it has been skipped.  */
-       cmpl    $-ENOSYS, %eax
-       jne     19f
-       xorl    %ecx, %ecx
-@@ -198,12 +214,12 @@ __pthread_cond_wait:
-       cmpl    8(%esp), %edx
-       jne     7f
-       cmpl    4(%esp), %edi
--      je      8b
-+      je      22f
- 7:    cmpl    %ecx, %edx
-       jne     9f
-       cmp     %eax, %edi
--      je      8b
-+      je      22f
- 9:    addl    $1, woken_seq(%ebx)
-       adcl    $0, woken_seq+4(%ebx)
-@@ -279,6 +295,22 @@ __pthread_cond_wait:
-       jmp     20b
-       cfi_adjust_cfa_offset(-FRAME_SIZE);
-+
-+      /* We need to go back to futex_wait.  If we're using requeue_pi, then
-+         release the mutex we had acquired and go back.  */
-+22:   movl    16(%esp), %edx
-+      test    %edx, %edx
-+      jz      8b
-+
-+      /* Adjust the mutex values first and then unlock it.  The unlock
-+         should always succeed or else the kernel did not lock the mutex
-+         correctly.  */
-+      movl    dep_mutex(%ebx), %eax
-+      call    __pthread_mutex_cond_lock_adjust
-+      xorl    %edx, %edx
-+      call    __pthread_mutex_unlock_usercnt
-+      jmp     8b
-+
-       /* Initial locking failed.  */
- 1:
- #if cond_lock == 0
-@@ -391,6 +423,7 @@ __pthread_cond_wait:
- #endif
-       call    __lll_unlock_wake
-       jmp     11b
-+
-       .size   __pthread_cond_wait, .-__pthread_cond_wait
- versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
-                 GLIBC_2_3_2)
-@@ -531,10 +564,27 @@ __condvar_w_cleanup:
-       movl    $0x7fffffff, %edx
-       ENTER_KERNEL
-+      /* Lock the mutex only if we don't own it already.  This only happens
-+         in case of PI mutexes, if we got cancelled after a successful
-+         return of the futex syscall and before disabling async
-+         cancellation.  */
- 5:    movl    24+FRAME_SIZE(%esp), %eax
--      call    __pthread_mutex_cond_lock
-+      movl    MUTEX_KIND(%eax), %ebx
-+      andl    $(ROBUST_BIT|PI_BIT), %ebx
-+      cmpl    $PI_BIT, %ebx
-+      jne     8f
-+
-+      movl    (%eax), %ebx
-+      andl    $TID_MASK, %ebx
-+      cmpl    %ebx, %gs:TID
-+      jne     8f
-+      /* We managed to get the lock.  Fix it up before returning.  */
-+      call    __pthread_mutex_cond_lock_adjust
-+      jmp     9f
--      movl    %esi, (%esp)
-+8:    call    __pthread_mutex_cond_lock
-+
-+9:    movl    %esi, (%esp)
- .LcallUR:
-       call    _Unwind_Resume
-       hlt
-@@ -552,7 +602,15 @@ __condvar_w_cleanup:
-       .uleb128 .Lcstend-.Lcstbegin
- .Lcstbegin:
-       .long   .LcleanupSTART-.LSTARTCODE
--      .long   .Ladd_cond_futex-.LcleanupSTART
-+      .long   .Ladd_cond_futex_pi-.LcleanupSTART
-+      .long   __condvar_w_cleanup-.LSTARTCODE
-+      .uleb128  0
-+      .long   .Ladd_cond_futex_pi-.LSTARTCODE
-+      .long   .Lsub_cond_futex_pi-.Ladd_cond_futex_pi
-+      .long   __condvar_w_cleanup2-.LSTARTCODE
-+      .uleb128  0
-+      .long   .Lsub_cond_futex_pi-.LSTARTCODE
-+      .long   .Ladd_cond_futex-.Lsub_cond_futex_pi
-       .long   __condvar_w_cleanup-.LSTARTCODE
-       .uleb128  0
-       .long   .Ladd_cond_futex-.LSTARTCODE
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/pthread-pi-defines.sym glibc-2.12-2-gc4ccff1.fixed/nptl/sysdeps/unix/sysv/linux/pthread-pi-defines.sym
---- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/pthread-pi-defines.sym  2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/sysdeps/unix/sysv/linux/pthread-pi-defines.sym    2013-07-09 10:16:22.047427519 +0530
-@@ -6,3 +6,4 @@ MUTEX_KIND     offsetof (pthread_mutex_t, __
- ROBUST_BIT    PTHREAD_MUTEX_ROBUST_NORMAL_NP
- PI_BIT                PTHREAD_MUTEX_PRIO_INHERIT_NP
- PS_BIT                PTHREAD_MUTEX_PSHARED_BIT
-+TID_MASK      FUTEX_TID_MASK
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S glibc-2.12-2-gc4ccff1.fixed/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 2013-07-09 10:18:22.506421835 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S   2013-07-09 10:16:22.048427519 +0530
-@@ -104,6 +104,8 @@ __pthread_cond_timedwait:
-       movq    %rsi, dep_mutex(%rdi)
- 22:
-+      xorb    %r15b, %r15b
-+
- #ifndef __ASSUME_FUTEX_CLOCK_REALTIME
- #  ifdef PIC
-       cmpl    $0, __have_futex_clock_realtime(%rip)
-@@ -189,18 +191,39 @@ __pthread_cond_timedwait:
-       movl    $SYS_futex, %eax
-       syscall
--      movl    $1, %r15d
-+      cmpl    $0, %eax
-+      sete    %r15b
-+
- #ifdef __ASSUME_REQUEUE_PI
-       jmp     62f
- #else
--      cmpq    $-4095, %rax
--      jnae    62f
-+      je      62f
-+
-+      /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns
-+         successfully, it has already locked the mutex for us and the
-+         pi_flag (%r15b) is set to denote that fact.  However, if another
-+         thread changed the futex value before we entered the wait, the
-+         syscall may return an EAGAIN and the mutex is not locked.  We go
-+         ahead with a success anyway since later we look at the pi_flag to
-+         decide if we got the mutex or not.  The sequence numbers then make
-+         sure that only one of the threads actually wake up.  We retry using
-+         normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal
-+         and PI futexes don't mix.
-+
-+         Note that we don't check for EAGAIN specifically; we assume that the
-+         only other error the futex function could return is EAGAIN (barring
-+         the ETIMEOUT of course, for the timeout case in futex) since
-+         anything else would mean an error in our function.  It is too
-+         expensive to do that check for every call (which is  quite common in
-+         case of a large number of threads), so it has been skipped.  */
-+      cmpl    $-ENOSYS, %eax
-+      jne     62f
-       subq    $cond_futex, %rdi
- #endif
- 61:   movl    $(FUTEX_WAIT_BITSET|FUTEX_PRIVATE_FLAG), %esi
--60:   xorl    %r15d, %r15d
-+60:   xorb    %r15b, %r15b
-       xorl    %eax, %eax
-       /* The following only works like this because we only support
-          two clocks, represented using a single bit.  */
-@@ -247,7 +270,23 @@ __pthread_cond_timedwait:
-       ja      39f
- 45:   cmpq    $-ETIMEDOUT, %r14
--      jne     38b
-+      je      99f
-+
-+      /* We need to go back to futex_wait.  If we're using requeue_pi, then
-+         release the mutex we had acquired and go back.  */
-+      test    %r15b, %r15b
-+      jz      38b
-+
-+      /* Adjust the mutex values first and then unlock it.  The unlock
-+         should always succeed or else the kernel did not lock the
-+         mutex correctly.  */
-+      movq    %r8, %rdi
-+      callq   __pthread_mutex_cond_lock_adjust
-+      xorl    %esi, %esi
-+      callq   __pthread_mutex_unlock_usercnt
-+      /* Reload cond_var.  */
-+      movq    8(%rsp), %rdi
-+      jmp     38b
- 99:   incq    wakeup_seq(%rdi)
-       incl    cond_futex(%rdi)
-@@ -297,7 +336,7 @@ __pthread_cond_timedwait:
-       /* If requeue_pi is used the kernel performs the locking of the
-          mutex. */
- 41:   movq    16(%rsp), %rdi
--      testl   %r15d, %r15d
-+      testb   %r15b, %r15b
-       jnz     64f
-       callq   __pthread_mutex_cond_lock
-@@ -405,8 +444,6 @@ __pthread_cond_timedwait:
- #ifndef __ASSUME_FUTEX_CLOCK_REALTIME
- .Lreltmo:
--      xorl    %r15d, %r15d
--
-       /* Get internal lock.  */
-       movl    $1, %esi
-       xorl    %eax, %eax
-@@ -765,10 +802,27 @@ __condvar_cleanup2:
-       movl    $SYS_futex, %eax
-       syscall
-+      /* Lock the mutex only if we don't own it already.  This only happens
-+         in case of PI mutexes, if we got cancelled after a successful
-+         return of the futex syscall and before disabling async
-+         cancellation.  */
- 5:    movq    16(%rsp), %rdi
--      callq   __pthread_mutex_cond_lock
-+      movl    MUTEX_KIND(%rdi), %eax
-+      andl    $(ROBUST_BIT|PI_BIT), %eax
-+      cmpl    $PI_BIT, %eax
-+      jne     7f
-+
-+      movl    (%rdi), %eax
-+      andl    $TID_MASK, %eax
-+      cmpl    %eax, %fs:TID
-+      jne     7f
-+      /* We managed to get the lock.  Fix it up before returning.  */
-+      callq   __pthread_mutex_cond_lock_adjust
-+      jmp     8f
-+
-+7:    callq   __pthread_mutex_cond_lock
--      movq    24(%rsp), %rdi
-+8:    movq    24(%rsp), %rdi
-       movq    FRAME_SIZE(%rsp), %r15
-       movq    FRAME_SIZE+8(%rsp), %r14
-       movq    FRAME_SIZE+16(%rsp), %r13
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S glibc-2.12-2-gc4ccff1.fixed/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      2013-07-09 10:18:22.507421834 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S        2013-07-09 10:16:22.048427519 +0530
-@@ -23,6 +23,7 @@
- #include <lowlevelcond.h>
- #include <tcb-offsets.h>
- #include <pthread-pi-defines.h>
-+#include <pthread-errnos.h>
- #include <kernel-features.h>
-@@ -137,12 +138,32 @@ __pthread_cond_wait:
-       movl    $SYS_futex, %eax
-       syscall
--      movl    $1, %r8d
-+      cmpl    $0, %eax
-+      sete    %r8b
-+
- #ifdef __ASSUME_REQUEUE_PI
-       jmp     62f
- #else
--      cmpq    $-4095, %rax
--      jnae    62f
-+      je      62f
-+
-+      /* When a futex syscall with FUTEX_WAIT_REQUEUE_PI returns
-+         successfully, it has already locked the mutex for us and the
-+         pi_flag (%r8b) is set to denote that fact.  However, if another
-+         thread changed the futex value before we entered the wait, the
-+         syscall may return an EAGAIN and the mutex is not locked.  We go
-+         ahead with a success anyway since later we look at the pi_flag to
-+         decide if we got the mutex or not.  The sequence numbers then make
-+         sure that only one of the threads actually wake up.  We retry using
-+         normal FUTEX_WAIT only if the kernel returned ENOSYS, since normal
-+         and PI futexes don't mix.
-+
-+         Note that we don't check for EAGAIN specifically; we assume that the
-+         only other error the futex function could return is EAGAIN since
-+         anything else would mean an error in our function.  It is too
-+         expensive to do that check for every call (which is  quite common in
-+         case of a large number of threads), so it has been skipped.  */
-+      cmpl    $-ENOSYS, %eax
-+      jne     62f
- # ifndef __ASSUME_PRIVATE_FUTEX
-       movl    $FUTEX_WAIT, %esi
-@@ -155,7 +176,7 @@ __pthread_cond_wait:
- #else
-       orl     %fs:PRIVATE_FUTEX, %esi
- #endif
--60:   xorl    %r8d, %r8d
-+60:   xorb    %r8b, %r8b
-       movl    $SYS_futex, %eax
-       syscall
-@@ -185,10 +206,10 @@ __pthread_cond_wait:
-       jne     16f
-       cmpq    24(%rsp), %r9
--      jbe     8b
-+      jbe     19f
-       cmpq    %rax, %r9
--      jna     8b
-+      jna     19f
-       incq    woken_seq(%rdi)
-@@ -230,7 +251,7 @@ __pthread_cond_wait:
-       /* If requeue_pi is used the kernel performs the locking of the
-          mutex. */
- 11:   movq    16(%rsp), %rdi
--      testl   %r8d, %r8d
-+      testb   %r8b, %r8b
-       jnz     18f
-       callq   __pthread_mutex_cond_lock
-@@ -247,6 +268,23 @@ __pthread_cond_wait:
-       xorl    %eax, %eax
-       jmp     14b
-+      /* We need to go back to futex_wait.  If we're using requeue_pi, then
-+         release the mutex we had acquired and go back.  */
-+19:   testb   %r8b, %r8b
-+      jz      8b
-+
-+      /* Adjust the mutex values first and then unlock it.  The unlock
-+         should always succeed or else the kernel did not lock the mutex
-+         correctly.  */
-+      movq    16(%rsp), %rdi
-+      callq   __pthread_mutex_cond_lock_adjust
-+      movq    %rdi, %r8
-+      xorl    %esi, %esi
-+      callq   __pthread_mutex_unlock_usercnt
-+      /* Reload cond_var.  */
-+      movq    8(%rsp), %rdi
-+      jmp     8b
-+
-       /* Initial locking failed.  */
- 1:
- #if cond_lock != 0
-@@ -324,6 +362,7 @@ __pthread_cond_wait:
- 13:   movq    %r10, %rax
-       jmp     14b
-+
-       .size   __pthread_cond_wait, .-__pthread_cond_wait
- versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
-                 GLIBC_2_3_2)
-@@ -454,10 +493,28 @@ __condvar_cleanup1:
-       movl    $SYS_futex, %eax
-       syscall
-+      /* Lock the mutex only if we don't own it already.  This only happens
-+         in case of PI mutexes, if we got cancelled after a successful
-+         return of the futex syscall and before disabling async
-+         cancellation.  */
- 5:    movq    16(%rsp), %rdi
--      callq   __pthread_mutex_cond_lock
-+      movl    MUTEX_KIND(%rdi), %eax
-+      andl    $(ROBUST_BIT|PI_BIT), %eax
-+      cmpl    $PI_BIT, %eax
-+      jne     7f
-+
-+      movl    (%rdi), %eax
-+      andl    $TID_MASK, %eax
-+      cmpl    %eax, %fs:TID
-+      jne     7f
-+      /* We managed to get the lock.  Fix it up before returning.  */
-+      callq   __pthread_mutex_cond_lock_adjust
-+      jmp     8f
-+
--      movq    24(%rsp), %rdi
-+7:    callq   __pthread_mutex_cond_lock
-+
-+8:    movq    24(%rsp), %rdi
- .LcallUR:
-       call    _Unwind_Resume@PLT
-       hlt
-@@ -476,11 +533,11 @@ __condvar_cleanup1:
-       .uleb128 .LcleanupSTART-.LSTARTCODE
-       .uleb128 .LcleanupEND-.LcleanupSTART
-       .uleb128 __condvar_cleanup1-.LSTARTCODE
--      .uleb128  0
-+      .uleb128 0
-       .uleb128 .LcallUR-.LSTARTCODE
-       .uleb128 .LENDCODE-.LcallUR
-       .uleb128 0
--      .uleb128  0
-+      .uleb128 0
- .Lcstend:
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/tst-cond24.c glibc-2.12-2-gc4ccff1.fixed/nptl/tst-cond24.c
---- glibc-2.12-2-gc4ccff1/nptl/tst-cond24.c    1970-01-01 05:30:00.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/tst-cond24.c      2013-07-09 10:19:10.008419593 +0530
-@@ -0,0 +1,249 @@
-+/* Verify that condition variables synchronized by PI mutexes don't hang.
-+   Copyright (C) 2012-2013 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <pthread.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <sys/types.h>
-+#include <sys/syscall.h>
-+#include <unistd.h>
-+#include <sys/time.h>
-+#include <time.h>
-+
-+#define THREADS_NUM 5
-+#define MAXITER 50000
-+
-+static pthread_mutex_t mutex;
-+static pthread_mutexattr_t mutex_attr;
-+static pthread_cond_t cond;
-+static pthread_t threads[THREADS_NUM];
-+static int pending = 0;
-+
-+typedef void * (*threadfunc) (void *);
-+
-+void *
-+thread_fun_timed (void *arg)
-+{
-+  int *ret = arg;
-+  int rv, i;
-+
-+  printf ("Started thread_fun_timed[%d]\n", *ret);
-+
-+  for (i = 0; i < MAXITER / THREADS_NUM; i++)
-+    {
-+      rv = pthread_mutex_lock (&mutex);
-+      if (rv)
-+        {
-+        printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv);
-+        *ret = 1;
-+        goto out;
-+      }
-+
-+      while (!pending)
-+      {
-+        struct timespec ts;
-+        clock_gettime(CLOCK_REALTIME, &ts);
-+        ts.tv_sec += 20;
-+        rv = pthread_cond_timedwait (&cond, &mutex, &ts);
-+
-+        /* There should be no timeout either.  */
-+        if (rv)
-+            {
-+            printf ("pthread_cond_wait: %s(%d)\n", strerror (rv), rv);
-+            *ret = 1;
-+            goto out;
-+          }
-+      }
-+
-+      pending--;
-+
-+      rv = pthread_mutex_unlock (&mutex);
-+      if (rv)
-+        {
-+        printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv);
-+        *ret = 1;
-+        goto out;
-+      }
-+    }
-+
-+  *ret = 0;
-+
-+out:
-+  return ret;
-+}
-+
-+void *
-+thread_fun (void *arg)
-+{
-+  int *ret = arg;
-+  int rv, i;
-+
-+  printf ("Started thread_fun[%d]\n", *ret);
-+
-+  for (i = 0; i < MAXITER / THREADS_NUM; i++)
-+    {
-+      rv = pthread_mutex_lock (&mutex);
-+      if (rv)
-+        {
-+        printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv);
-+        *ret = 1;
-+        goto out;
-+      }
-+
-+      while (!pending)
-+      {
-+        rv = pthread_cond_wait (&cond, &mutex);
-+
-+        if (rv)
-+            {
-+            printf ("pthread_cond_wait: %s(%d)\n", strerror (rv), rv);
-+            *ret = 1;
-+            goto out;
-+          }
-+      }
-+
-+      pending--;
-+
-+      rv = pthread_mutex_unlock (&mutex);
-+      if (rv)
-+        {
-+        printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv);
-+        *ret = 1;
-+        goto out;
-+      }
-+    }
-+
-+  *ret = 0;
-+
-+out:
-+  return ret;
-+}
-+
-+static int
-+do_test_wait (threadfunc f)
-+{
-+  int i;
-+  int rv;
-+  int counter = 0;
-+  int retval[THREADS_NUM];
-+
-+  puts ("Starting test");
-+
-+  rv = pthread_mutexattr_init (&mutex_attr);
-+  if (rv)
-+    {
-+      printf ("pthread_mutexattr_init: %s(%d)\n", strerror (rv), rv);
-+      return 1;
-+    }
-+
-+  rv = pthread_mutexattr_setprotocol (&mutex_attr, PTHREAD_PRIO_INHERIT);
-+  if (rv)
-+    {
-+      printf ("pthread_mutexattr_setprotocol: %s(%d)\n", strerror (rv), rv);
-+      return 1;
-+    }
-+
-+  rv = pthread_mutex_init (&mutex, &mutex_attr);
-+  if (rv)
-+    {
-+      printf ("pthread_mutex_init: %s(%d)\n", strerror (rv), rv);
-+      return 1;
-+    }
-+
-+  rv = pthread_cond_init (&cond, NULL);
-+  if (rv)
-+    {
-+      printf ("pthread_cond_init: %s(%d)\n", strerror (rv), rv);
-+      return 1;
-+    }
-+
-+  for (i = 0; i < THREADS_NUM; i++)
-+    {
-+      retval[i] = i;
-+      rv = pthread_create (&threads[i], NULL, f, &retval[i]);
-+      if (rv)
-+        {
-+          printf ("pthread_create: %s(%d)\n", strerror (rv), rv);
-+          return 1;
-+        }
-+    }
-+
-+  for (; counter < MAXITER; counter++)
-+    {
-+      rv = pthread_mutex_lock (&mutex);
-+      if (rv)
-+        {
-+          printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv);
-+          return 1;
-+        }
-+
-+      if (!(counter % 100))
-+      printf ("counter: %d\n", counter);
-+      pending += 1;
-+
-+      rv = pthread_cond_signal (&cond);
-+      if (rv)
-+        {
-+          printf ("pthread_cond_signal: %s(%d)\n", strerror (rv), rv);
-+          return 1;
-+        }
-+
-+      rv = pthread_mutex_unlock (&mutex);
-+      if (rv)
-+        {
-+          printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv);
-+          return 1;
-+        }
-+    }
-+
-+  for (i = 0; i < THREADS_NUM; i++)
-+    {
-+      void *ret;
-+      rv = pthread_join (threads[i], &ret);
-+      if (rv)
-+        {
-+          printf ("pthread_join: %s(%d)\n", strerror (rv), rv);
-+          return 1;
-+        }
-+      if (ret && *(int *)ret)
-+        {
-+        printf ("Thread %d returned with an error\n", i);
-+        return 1;
-+      }
-+    }
-+
-+  return 0;
-+}
-+
-+static int
-+do_test (void)
-+{
-+  puts ("Testing pthread_cond_wait");
-+  int ret = do_test_wait (thread_fun);
-+  if (ret)
-+    return ret;
-+
-+  puts ("Testing pthread_cond_timedwait");
-+  return do_test_wait (thread_fun_timed);
-+}
-+
-+#define TIMEOUT 20
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/tst-cond25.c glibc-2.12-2-gc4ccff1.fixed/nptl/tst-cond25.c
---- glibc-2.12-2-gc4ccff1/nptl/tst-cond25.c    1970-01-01 05:30:00.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/tst-cond25.c      2013-07-09 10:19:15.472419335 +0530
-@@ -0,0 +1,281 @@
-+/* Verify that condition variables synchronized by PI mutexes don't hang on
-+   on cancellation.
-+   Copyright (C) 2012-2013 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <pthread.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <stdint.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <sys/types.h>
-+#include <sys/syscall.h>
-+#include <unistd.h>
-+#include <sys/time.h>
-+#include <time.h>
-+
-+#define NUM 5
-+#define ITERS 10000
-+#define COUNT 100
-+
-+typedef void *(*thr_func) (void *);
-+
-+pthread_mutex_t mutex;
-+pthread_cond_t cond;
-+
-+void cleanup (void *u)
-+{
-+  /* pthread_cond_wait should always return with the mutex locked.  */
-+  if (pthread_mutex_unlock (&mutex))
-+    abort ();
-+}
-+
-+void *
-+signaller (void *u)
-+{
-+  int i, ret = 0;
-+  void *tret = NULL;
-+
-+  for (i = 0; i < ITERS; i++)
-+    {
-+      if ((ret = pthread_mutex_lock (&mutex)) != 0)
-+        {
-+        tret = (void *)1;
-+        printf ("signaller:mutex_lock failed: %s\n", strerror (ret));
-+        goto out;
-+      }
-+      if ((ret = pthread_cond_signal (&cond)) != 0)
-+        {
-+        tret = (void *)1;
-+        printf ("signaller:signal failed: %s\n", strerror (ret));
-+        goto unlock_out;
-+      }
-+      if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-+        {
-+        tret = (void *)1;
-+        printf ("signaller:mutex_unlock failed: %s\n", strerror (ret));
-+        goto out;
-+      }
-+      pthread_testcancel ();
-+    }
-+
-+out:
-+  return tret;
-+
-+unlock_out:
-+  if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-+    printf ("signaller:mutex_unlock[2] failed: %s\n", strerror (ret));
-+  goto out;
-+}
-+
-+void *
-+waiter (void *u)
-+{
-+  int i, ret = 0;
-+  void *tret = NULL;
-+  int seq = (uintptr_t) u;
-+
-+  for (i = 0; i < ITERS / NUM; i++)
-+    {
-+      if ((ret = pthread_mutex_lock (&mutex)) != 0)
-+        {
-+        tret = (void *) (uintptr_t) 1;
-+        printf ("waiter[%u]:mutex_lock failed: %s\n", seq, strerror (ret));
-+        goto out;
-+      }
-+      pthread_cleanup_push (cleanup, NULL);
-+
-+      if ((ret = pthread_cond_wait (&cond, &mutex)) != 0)
-+        {
-+        tret = (void *) (uintptr_t) 1;
-+        printf ("waiter[%u]:wait failed: %s\n", seq, strerror (ret));
-+        goto unlock_out;
-+      }
-+
-+      if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-+        {
-+        tret = (void *) (uintptr_t) 1;
-+        printf ("waiter[%u]:mutex_unlock failed: %s\n", seq, strerror (ret));
-+        goto out;
-+      }
-+      pthread_cleanup_pop (0);
-+    }
-+
-+out:
-+  puts ("waiter tests done");
-+  return tret;
-+
-+unlock_out:
-+  if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-+    printf ("waiter:mutex_unlock[2] failed: %s\n", strerror (ret));
-+  goto out;
-+}
-+
-+void *
-+timed_waiter (void *u)
-+{
-+  int i, ret;
-+  void *tret = NULL;
-+  int seq = (uintptr_t) u;
-+
-+  for (i = 0; i < ITERS / NUM; i++)
-+    {
-+      struct timespec ts;
-+
-+      if ((ret = clock_gettime(CLOCK_REALTIME, &ts)) != 0)
-+        {
-+        tret = (void *) (uintptr_t) 1;
-+        printf ("%u:clock_gettime failed: %s\n", seq, strerror (errno));
-+        goto out;
-+      }
-+      ts.tv_sec += 20;
-+
-+      if ((ret = pthread_mutex_lock (&mutex)) != 0)
-+        {
-+        tret = (void *) (uintptr_t) 1;
-+        printf ("waiter[%u]:mutex_lock failed: %s\n", seq, strerror (ret));
-+        goto out;
-+      }
-+      pthread_cleanup_push (cleanup, NULL);
-+
-+      /* We should not time out either.  */
-+      if ((ret = pthread_cond_timedwait (&cond, &mutex, &ts)) != 0)
-+        {
-+        tret = (void *) (uintptr_t) 1;
-+        printf ("waiter[%u]:timedwait failed: %s\n", seq, strerror (ret));
-+        goto unlock_out;
-+      }
-+      if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-+        {
-+        tret = (void *) (uintptr_t) 1;
-+        printf ("waiter[%u]:mutex_unlock failed: %s\n", seq, strerror (ret));
-+        goto out;
-+      }
-+      pthread_cleanup_pop (0);
-+    }
-+
-+out:
-+  puts ("timed_waiter tests done");
-+  return tret;
-+
-+unlock_out:
-+  if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-+    printf ("waiter[%u]:mutex_unlock[2] failed: %s\n", seq, strerror (ret));
-+  goto out;
-+}
-+
-+int
-+do_test_wait (thr_func f)
-+{
-+  pthread_t w[NUM];
-+  pthread_t s;
-+  pthread_mutexattr_t attr;
-+  int i, j, ret = 0;
-+  void *thr_ret;
-+
-+  for (i = 0; i < COUNT; i++)
-+    {
-+      if ((ret = pthread_mutexattr_init (&attr)) != 0)
-+        {
-+        printf ("mutexattr_init failed: %s\n", strerror (ret));
-+        goto out;
-+      }
-+
-+      if ((ret = pthread_mutexattr_setprotocol (&attr,
-+                                                PTHREAD_PRIO_INHERIT)) != 0)
-+        {
-+        printf ("mutexattr_setprotocol failed: %s\n", strerror (ret));
-+        goto out;
-+      }
-+
-+      if ((ret = pthread_cond_init (&cond, NULL)) != 0)
-+        {
-+        printf ("cond_init failed: %s\n", strerror (ret));
-+        goto out;
-+      }
-+
-+      if ((ret = pthread_mutex_init (&mutex, &attr)) != 0)
-+        {
-+        printf ("mutex_init failed: %s\n", strerror (ret));
-+        goto out;
-+      }
-+
-+      for (j = 0; j < NUM; j++)
-+        if ((ret = pthread_create (&w[j], NULL,
-+                                   f, (void *) (uintptr_t) j)) != 0)
-+        {
-+          printf ("waiter[%d]: create failed: %s\n", j, strerror (ret));
-+          goto out;
-+        }
-+
-+      if ((ret = pthread_create (&s, NULL, signaller, NULL)) != 0)
-+        {
-+        printf ("signaller: create failed: %s\n", strerror (ret));
-+        goto out;
-+      }
-+
-+      for (j = 0; j < NUM; j++)
-+        {
-+          pthread_cancel (w[j]);
-+
-+          if ((ret = pthread_join (w[j], &thr_ret)) != 0)
-+          {
-+            printf ("waiter[%d]: join failed: %s\n", j, strerror (ret));
-+            goto out;
-+          }
-+
-+          if (thr_ret != NULL && thr_ret != PTHREAD_CANCELED)
-+          {
-+            ret = 1;
-+            goto out;
-+          }
-+        }
-+
-+      /* The signalling thread could have ended before it was cancelled.  */
-+      pthread_cancel (s);
-+
-+      if ((ret = pthread_join (s, &thr_ret)) != 0)
-+        {
-+        printf ("signaller: join failed: %s\n", strerror (ret));
-+        goto out;
-+      }
-+
-+      if (thr_ret != NULL && thr_ret != PTHREAD_CANCELED)
-+        {
-+          ret = 1;
-+          goto out;
-+        }
-+    }
-+
-+out:
-+  return ret;
-+}
-+
-+int
-+do_test (int argc, char **argv)
-+{
-+  int ret = do_test_wait (waiter);
-+
-+  if (ret)
-+    return ret;
-+
-+  return do_test_wait (timed_waiter);
-+}
-+
-+#define TIMEOUT 5
-+#include "../test-skeleton.c"
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/tst-cond-except.c glibc-2.12-2-gc4ccff1.fixed/nptl/tst-cond-except.c
---- glibc-2.12-2-gc4ccff1/nptl/tst-cond-except.c       1970-01-01 05:30:00.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/tst-cond-except.c 2013-07-09 10:19:01.334420002 +0530
-@@ -0,0 +1,110 @@
-+/* Verify that exception table for pthread_cond_wait is correct.
-+   Copyright (C) 2012-2013 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <pthread.h>
-+#include <stdio.h>
-+#include <stdint.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+pthread_mutex_t mutex;
-+pthread_cond_t cond;
-+
-+#define CHECK_RETURN_VAL_OR_FAIL(ret,str) \
-+  ({ if ((ret) != 0) \
-+       { \
-+         printf ("%s failed: %s\n", (str), strerror (ret)); \
-+         ret = 1; \
-+         goto out; \
-+       } \
-+  })
-+
-+
-+void
-+clean (void *arg)
-+{
-+  puts ("clean: Unlocking mutex...");
-+  pthread_mutex_unlock ((pthread_mutex_t *) arg);
-+  puts ("clean: Mutex unlocked...");
-+}
-+
-+void *
-+thr (void *arg)
-+{
-+  int ret = 0;
-+  pthread_mutexattr_t mutexAttr;
-+  ret = pthread_mutexattr_init (&mutexAttr);
-+  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_mutexattr_init");
-+
-+  ret = pthread_mutexattr_setprotocol (&mutexAttr, PTHREAD_PRIO_INHERIT);
-+  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_mutexattr_setprotocol");
-+
-+  ret = pthread_mutex_init (&mutex, &mutexAttr);
-+  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_mutex_init");
-+
-+  ret = pthread_cond_init (&cond, 0);
-+  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_cond_init");
-+
-+  puts ("th: Init done, entering wait...");
-+
-+  pthread_cleanup_push (clean, (void *) &mutex);
-+  ret = pthread_mutex_lock (&mutex);
-+  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_mutex_lock");
-+  while (1)
-+    {
-+      ret = pthread_cond_wait (&cond, &mutex);
-+      CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_cond_wait");
-+    }
-+  pthread_cleanup_pop (1);
-+
-+out:
-+  return (void *) (uintptr_t) ret;
-+}
-+
-+int
-+do_test (void)
-+{
-+  pthread_t thread;
-+  int ret = 0;
-+  void *thr_ret = 0;
-+  ret = pthread_create (&thread, 0, thr, &thr_ret);
-+  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_create");
-+
-+  puts ("main: Thread created, waiting a bit...");
-+  sleep (2);
-+
-+  puts ("main: Cancelling thread...");
-+  ret = pthread_cancel (thread);
-+  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_cancel");
-+
-+  puts ("main: Joining th...");
-+  ret = pthread_join (thread, NULL);
-+  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_join");
-+
-+  if (thr_ret != NULL)
-+    return 1;
-+
-+  puts ("main: Joined thread, done!");
-+
-+out:
-+  return ret;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#define TIMEOUT 5
-+#include "../test-skeleton.c"
diff --git a/src/patches/glibc/glibc-rh580498.patch b/src/patches/glibc/glibc-rh580498.patch
deleted file mode 100644 (file)
index 05b673a..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-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
deleted file mode 100644 (file)
index 40f7b80..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-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
deleted file mode 100644 (file)
index 07b62e6..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-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
deleted file mode 100644 (file)
index b907a36..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-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
deleted file mode 100644 (file)
index 3eceb68..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-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
deleted file mode 100644 (file)
index 01e42dc..0000000
+++ /dev/null
@@ -1,4640 +0,0 @@
-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
deleted file mode 100644 (file)
index 6952dad..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-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
deleted file mode 100644 (file)
index 79fc72c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-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
deleted file mode 100644 (file)
index e6c00f0..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644 (file)
index 283e3fe..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-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
deleted file mode 100644 (file)
index 315521f..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-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
deleted file mode 100644 (file)
index 596fdd6..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-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
deleted file mode 100644 (file)
index 5337a42..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-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-rh629823-2.patch b/src/patches/glibc/glibc-rh629823-2.patch
deleted file mode 100644 (file)
index d3e4f45..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-commit 50fd745b4dec07e8e213cf2703b5cabcfa128225
-Author: Andreas Schwab <schwab@suse.de>
-Date:   Mon Jun 10 14:39:09 2013 +0200
-
-    Fix handling of netgroup cache in nscd
-
-diff --git a/nscd/connections.c b/nscd/connections.c
-index 7099215..69e3e7d 100644
---- a/nscd/connections.c
-+++ b/nscd/connections.c
-@@ -1779,7 +1779,7 @@ nscd_run_worker (void *p)
-       else
-       {
-         /* Get the key.  */
--        char keybuf[MAXKEYLEN];
-+        char keybuf[MAXKEYLEN + 1];
-         if (__builtin_expect (TEMP_FAILURE_RETRY (read (fd, keybuf,
-                                                         req.key_len))
-@@ -1791,6 +1791,7 @@ nscd_run_worker (void *p)
-                        strerror_r (errno, buf, sizeof (buf)));
-             goto close_and_out;
-           }
-+        keybuf[req.key_len] = '\0';
-         if (__builtin_expect (debug_level, 0) > 0)
-           {
-diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
-index 2d6c5aa..dd06ce4 100644
---- a/nscd/netgroupcache.c
-+++ b/nscd/netgroupcache.c
-@@ -192,18 +192,26 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-                           const char *nuser = data.val.triple.user;
-                           const char *ndomain = data.val.triple.domain;
--                          if (data.val.triple.host > data.val.triple.user
--                              || data.val.triple.user > data.val.triple.domain)
-+                          if (nhost == NULL || nuser == NULL || ndomain == NULL
-+                              || nhost > nuser || nuser > ndomain)
-                             {
--                              const char *last = MAX (nhost,
--                                                      MAX (nuser, ndomain));
--                              size_t bufused = (last + strlen (last) + 1
--                                                - buffer);
-+                              const char *last = nhost;
-+                              if (last == NULL
-+                                  || (nuser != NULL && nuser > last))
-+                                last = nuser;
-+                              if (last == NULL
-+                                  || (ndomain != NULL && ndomain > last))
-+                                last = ndomain;
-+
-+                              size_t bufused
-+                                = (last == NULL
-+                                   ? buffilled
-+                                   : last + strlen (last) + 1 - buffer);
-                               /* We have to make temporary copies.  */
--                              size_t hostlen = strlen (nhost) + 1;
--                              size_t userlen = strlen (nuser) + 1;
--                              size_t domainlen = strlen (ndomain) + 1;
-+                              size_t hostlen = strlen (nhost ?: "") + 1;
-+                              size_t userlen = strlen (nuser ?: "") + 1;
-+                              size_t domainlen = strlen (ndomain ?: "") + 1;
-                               size_t needed = hostlen + userlen + domainlen;
-                               if (buflen - req->key_len - bufused < needed)
-@@ -226,11 +234,11 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-                                 }
-                               nhost = memcpy (buffer + bufused,
--                                              nhost, hostlen);
-+                                              nhost ?: "", hostlen);
-                               nuser = memcpy ((char *) nhost + hostlen,
--                                              nuser, userlen);
-+                                              nuser ?: "", userlen);
-                               ndomain = memcpy ((char *) nuser + userlen,
--                                                ndomain, domainlen);
-+                                                ndomain ?: "", domainlen);
-                             }
-                           char *wp = buffer + buffilled;
-diff --git a/nscd/nscd_netgroup.c b/nscd/nscd_netgroup.c
-index cac4ebf..acb2c81 100644
---- a/nscd/nscd_netgroup.c
-+++ b/nscd/nscd_netgroup.c
-@@ -48,7 +48,7 @@ __nscd_setnetgrent (const char *group, struct __netgrent *datap)
- {
-   int gc_cycle;
-   int nretries = 0;
--  size_t group_len = strlen (group);
-+  size_t group_len = strlen (group) + 1;
-   /* If the mapping is available, try to search there instead of
-      communicating with the nscd.  */
diff --git a/src/patches/glibc/glibc-rh629823.patch b/src/patches/glibc/glibc-rh629823.patch
deleted file mode 100644 (file)
index 6315246..0000000
+++ /dev/null
@@ -1,1954 +0,0 @@
-diff -Nrup a/grp/initgroups.c b/grp/initgroups.c
---- a/grp/initgroups.c 2012-08-06 15:07:48.935060494 -0600
-+++ b/grp/initgroups.c 2012-08-23 14:19:49.370442142 -0600
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1989,91,93,1996-2005,2006,2008 Free Software Foundation, Inc.
-+/* Copyright (C) 1989,91,93,1996-2006,2008,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
-@@ -58,7 +58,8 @@ internal_getgrouplist (const char *user,
-   if (__nss_not_use_nscd_group > 0
-       && ++__nss_not_use_nscd_group > NSS_NSCD_RETRY)
-     __nss_not_use_nscd_group = 0;
--  if (!__nss_not_use_nscd_group)
-+  if (!__nss_not_use_nscd_group
-+      && !__nss_database_custom[NSS_DBSIDX_group])
-     {
-       int n = __nscd_getgrouplist (user, group, size, groupsp, limit);
-       if (n >= 0)
-diff -Nrup a/inet/getnetgrent_r.c b/inet/getnetgrent_r.c
---- a/inet/getnetgrent_r.c     2010-05-04 05:27:23.000000000 -0600
-+++ b/inet/getnetgrent_r.c     2012-08-06 15:10:05.865520055 -0600
-@@ -28,6 +28,7 @@
- #include "netgroup.h"
- #include "nsswitch.h"
- #include <sysdep.h>
-+#include <nscd/nscd_proto.h>
- /* Protect above variable against multiple uses at the same time.  */
-@@ -101,7 +102,7 @@ endnetgrent_hook (struct __netgrent *dat
- {
-   enum nss_status (*endfct) (struct __netgrent *);
--  if (datap->nip == NULL)
-+  if (datap->nip == NULL || datap->nip == (service_user *) -1l)
-     return;
-   endfct = __nss_lookup_function (datap->nip, "endnetgrent");
-@@ -189,8 +190,21 @@ setnetgrent (const char *group)
-   __libc_lock_lock (lock);
-+  if (__nss_not_use_nscd_netgroup > 0
-+      && ++__nss_not_use_nscd_netgroup > NSS_NSCD_RETRY)
-+    __nss_not_use_nscd_netgroup = 0;
-+
-+  if (!__nss_not_use_nscd_netgroup
-+      && !__nss_database_custom[NSS_DBSIDX_netgroup])
-+    {
-+      result = __nscd_setnetgrent (group, &dataset);
-+      if (result >= 0)
-+      goto out;
-+    }
-+
-   result = internal_setnetgrent (group, &dataset);
-+ out:
-   __libc_lock_unlock (lock);
-   return result;
-@@ -226,6 +240,26 @@ int internal_getnetgrent_r (char **hostp
-                           char *buffer, size_t buflen, int *errnop);
- libc_hidden_proto (internal_getnetgrent_r)
-+
-+static enum nss_status
-+nscd_getnetgrent (struct __netgrent *datap, char *buffer, size_t buflen,
-+                int *errnop)
-+{
-+  if (datap->cursor >= datap->data + datap->data_size)
-+    return NSS_STATUS_UNAVAIL;
-+
-+  datap->type = triple_val;
-+  datap->val.triple.host = datap->cursor;
-+  datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
-+  datap->val.triple.user = datap->cursor;
-+  datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
-+  datap->val.triple.domain = datap->cursor;
-+  datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
-+
-+  return NSS_STATUS_SUCCESS;
-+}
-+
-+
- int
- internal_getnetgrent_r (char **hostp, char **userp, char **domainp,
-                         struct __netgrent *datap,
-@@ -239,9 +273,18 @@ internal_getnetgrent_r (char **hostp, ch
-   /* Run through available functions, starting with the same function last
-      run.  We will repeat each function as long as it succeeds, and then go
-      on to the next service action.  */
--  int no_more = (datap->nip == NULL
--               || (fct = __nss_lookup_function (datap->nip, "getnetgrent_r"))
--                  == NULL);
-+  int no_more = datap->nip == NULL;
-+  if (! no_more)
-+    {
-+      if (datap->nip == (service_user *) -1l)
-+      fct = nscd_getnetgrent;
-+      else
-+      {
-+        fct = __nss_lookup_function (datap->nip, "getnetgrent_r");
-+        no_more = fct == NULL;
-+      }
-+    }
-+
-   while (! no_more)
-     {
-       status = (*fct) (datap, buffer, buflen, &errno);
-@@ -337,6 +380,18 @@ int
- innetgr (const char *netgroup, const char *host, const char *user,
-        const char *domain)
- {
-+  if (__nss_not_use_nscd_netgroup > 0
-+      && ++__nss_not_use_nscd_netgroup > NSS_NSCD_RETRY)
-+    __nss_not_use_nscd_netgroup = 0;
-+
-+  if (!__nss_not_use_nscd_netgroup
-+      && !__nss_database_custom[NSS_DBSIDX_netgroup])
-+    {
-+      int result = __nscd_innetgr (netgroup, host, user, domain);
-+      if (result >= 0)
-+      return result;
-+    }
-+
-   union
-   {
-     int (*f) (const char *, struct __netgrent *);
-@@ -444,7 +499,7 @@ innetgr (const char *netgroup, const cha
-         entry.needed_groups = tmp->next;
-         tmp->next = entry.known_groups;
-         entry.known_groups = tmp;
--        current_group = entry.known_groups->name;
-+        current_group = tmp->name;
-         continue;
-       }
-diff -Nrup a/nscd/Makefile b/nscd/Makefile
---- a/nscd/Makefile    2010-05-04 05:27:23.000000000 -0600
-+++ b/nscd/Makefile    2012-08-06 15:08:19.045941627 -0600
-@@ -22,7 +22,7 @@
- subdir        := nscd
- routines := nscd_getpw_r nscd_getgr_r nscd_gethst_r nscd_getai \
--          nscd_initgroups nscd_getserv_r
-+          nscd_initgroups nscd_getserv_r nscd_netgroup
- aux   := nscd_helper
- include ../Makeconfig
-@@ -34,7 +34,8 @@ nscd-modules := nscd connections pwdcach
-               getgrnam_r getgrgid_r hstcache gethstbyad_r gethstbynm3_r \
-               getsrvbynm_r getsrvbypt_r servicescache \
-               dbg_log nscd_conf nscd_stat cache mem nscd_setup_thread \
--              xmalloc xstrdup aicache initgrcache gai res_hconf
-+              xmalloc xstrdup aicache initgrcache gai res_hconf \
-+              netgroupcache
- ifeq ($(have-thread-library),yes)
-@@ -122,6 +123,7 @@ CFLAGS-servicescache.c += $(nscd-cflags)
- CFLAGS-getsrvbynm_r.c += $(nscd-cflags)
- CFLAGS-getsrvbypt_r.c += $(nscd-cflags)
- CFLAGS-res_hconf.c += $(nscd-cflags)
-+CFLAGS-netgroupcache.c += $(nscd-cflags)
- ifeq (yesyes,$(have-fpie)$(build-shared))
- relro-LDFLAGS += -Wl,-z,now
-diff -Nrup a/nscd/cache.c b/nscd/cache.c
---- a/nscd/cache.c     2012-08-06 15:07:48.973060344 -0600
-+++ b/nscd/cache.c     2012-08-06 15:08:19.046941626 -0600
-@@ -60,7 +60,9 @@ static time_t (*const readdfcts[LASTREQ]
-   [GETAI] = readdhstai,
-   [INITGROUPS] = readdinitgroups,
-   [GETSERVBYNAME] = readdservbyname,
--  [GETSERVBYPORT] = readdservbyport
-+  [GETSERVBYPORT] = readdservbyport,
-+  [GETNETGRENT] = readdgetnetgrent,
-+  [INNETGR] = readdinnetgr
- };
-@@ -70,7 +72,7 @@ static time_t (*const readdfcts[LASTREQ]
-    This function must be called with the read-lock held.  */
- struct datahead *
--cache_search (request_type type, void *key, size_t len,
-+cache_search (request_type type, const void *key, size_t len,
-             struct database_dyn *table, uid_t owner)
- {
-   unsigned long int hash = __nis_hash (key, len) % table->head->module;
-diff -Nrup a/nscd/connections.c b/nscd/connections.c
---- a/nscd/connections.c       2012-08-06 15:07:49.076059937 -0600
-+++ b/nscd/connections.c       2012-08-21 21:36:10.210358578 -0600
-@@ -57,11 +57,6 @@
- #endif
--/* Wrapper functions with error checking for standard functions.  */
--extern void *xmalloc (size_t n);
--extern void *xcalloc (size_t n, size_t s);
--extern void *xrealloc (void *o, size_t n);
--
- /* Support to run nscd as an unprivileged user */
- const char *server_user;
- static uid_t server_uid;
-@@ -100,7 +95,10 @@ const char *const serv2str[LASTREQ] =
-   [INITGROUPS] = "INITGROUPS",
-   [GETSERVBYNAME] = "GETSERVBYNAME",
-   [GETSERVBYPORT] = "GETSERVBYPORT",
--  [GETFDSERV] = "GETFDSERV"
-+  [GETFDSERV] = "GETFDSERV",
-+  [GETNETGRENT] = "GETNETGRENT",
-+  [INNETGR] = "INNETGR",
-+  [GETFDNETGR] = "GETFDNETGR"
- };
- /* The control data structures for the services.  */
-@@ -189,6 +187,27 @@ struct database_dyn dbs[lastdb] =
-     .wr_fd = -1,
-     .ro_fd = -1,
-     .mmap_used = false
-+  },
-+  [netgrdb] = {
-+    .lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
-+    .prune_lock = PTHREAD_MUTEX_INITIALIZER,
-+    .prune_run_lock = PTHREAD_MUTEX_INITIALIZER,
-+    .enabled = 0,
-+    .check_file = 1,
-+    .persistent = 0,
-+    .propagate = 0,           /* Not used.  */
-+    .shared = 0,
-+    .max_db_size = DEFAULT_MAX_DB_SIZE,
-+    .suggested_module = DEFAULT_SUGGESTED_MODULE,
-+    .reset_res = 0,
-+    .filename = "/etc/netgroup",
-+    .db_filename = _PATH_NSCD_NETGROUP_DB,
-+    .disabled_iov = &netgroup_iov_disabled,
-+    .postimeout = 28800,
-+    .negtimeout = 20,
-+    .wr_fd = -1,
-+    .ro_fd = -1,
-+    .mmap_used = false
-   }
- };
-@@ -218,7 +237,10 @@ static struct
-   [INITGROUPS] = { true, &dbs[grpdb] },
-   [GETSERVBYNAME] = { true, &dbs[servdb] },
-   [GETSERVBYPORT] = { true, &dbs[servdb] },
--  [GETFDSERV] = { false, &dbs[servdb] }
-+  [GETFDSERV] = { false, &dbs[servdb] },
-+  [GETNETGRENT] = { true, &dbs[netgrdb] },
-+  [INNETGR] = { true, &dbs[netgrdb] },
-+  [GETFDNETGR] = { false, &dbs[netgrdb] }
- };
-@@ -366,7 +388,8 @@ check_use (const char *data, nscd_ssize_
- static int
- verify_persistent_db (void *mem, struct database_pers_head *readhead, int dbnr)
- {
--  assert (dbnr == pwddb || dbnr == grpdb || dbnr == hstdb || dbnr == servdb);
-+  assert (dbnr == pwddb || dbnr == grpdb || dbnr == hstdb || dbnr == servdb
-+        || dbnr == netgrdb);
-   time_t now = time (NULL);
-@@ -1241,6 +1264,14 @@ request from '%s' [%ld] not handled due
-       addservbyport (db, fd, req, key, uid);
-       break;
-+    case GETNETGRENT:
-+      addgetnetgrent (db, fd, req, key, uid);
-+      break;
-+
-+    case INNETGR:
-+      addinnetgr (db, fd, req, key, uid);
-+      break;
-+
-     case GETSTAT:
-     case SHUTDOWN:
-     case INVALIDATE:
-@@ -1287,6 +1318,7 @@ request from '%s' [%ld] not handled due
-     case GETFDGR:
-     case GETFDHST:
-     case GETFDSERV:
-+    case GETFDNETGR:
- #ifdef SCM_RIGHTS
-       send_ro_fd (reqinfo[req->type].db, key, fd);
- #endif
-diff -Nrup a/nscd/netgroupcache.c b/nscd/netgroupcache.c
---- a/nscd/netgroupcache.c     1969-12-31 17:00:00.000000000 -0700
-+++ b/nscd/netgroupcache.c     2012-08-24 11:38:05.118254176 -0600
-@@ -0,0 +1,667 @@
-+/* Cache handling for netgroup lookup.
-+   Copyright (C) 2011 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
-+
-+   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; 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.  */
-+
-+#include <alloca.h>
-+#include <assert.h>
-+#include <errno.h>
-+#include <libintl.h>
-+#include <stdbool.h>
-+#include <unistd.h>
-+#include <sys/mman.h>
-+
-+#include "../inet/netgroup.h"
-+#include "nscd.h"
-+#include "dbg_log.h"
-+#ifdef HAVE_SENDFILE
-+# include <kernel-features.h>
-+#endif
-+
-+
-+/* This is the standard reply in case the service is disabled.  */
-+static const netgroup_response_header disabled =
-+{
-+  .version = NSCD_VERSION,
-+  .found = -1,
-+  .nresults = 0,
-+  .result_len = 0
-+};
-+
-+/* This is the struct describing how to write this record.  */
-+const struct iovec netgroup_iov_disabled =
-+{
-+  .iov_base = (void *) &disabled,
-+  .iov_len = sizeof (disabled)
-+};
-+
-+
-+/* This is the standard reply in case we haven't found the dataset.  */
-+static const netgroup_response_header notfound =
-+{
-+  .version = NSCD_VERSION,
-+  .found = 0,
-+  .nresults = 0,
-+  .result_len = 0
-+};
-+
-+
-+struct dataset
-+{
-+  struct datahead head;
-+  netgroup_response_header resp;
-+  char strdata[0];
-+};
-+
-+
-+static time_t
-+addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
-+               const char *key, uid_t uid, struct hashentry *he,
-+               struct datahead *dh, struct dataset **resultp)
-+{
-+  if (__builtin_expect (debug_level > 0, 0))
-+    {
-+      if (he == NULL)
-+      dbg_log (_("Haven't found \"%s\" in netgroup cache!"), key);
-+      else
-+      dbg_log (_("Reloading \"%s\" in netgroup cache!"), key);
-+    }
-+
-+  static service_user *netgroup_database;
-+  time_t timeout;
-+  struct dataset *dataset;
-+  bool cacheable = false;
-+  ssize_t total;
-+
-+  char *key_copy = NULL;
-+  struct __netgrent data;
-+  size_t buflen = MAX (1024, sizeof (*dataset) + req->key_len);
-+  size_t buffilled = sizeof (*dataset);
-+  char *buffer = NULL;
-+  size_t nentries = 0;
-+  bool use_malloc = false;
-+  size_t group_len = strlen (key) + 1;
-+  union
-+  {
-+    struct name_list elem;
-+    char mem[sizeof (struct name_list) + group_len];
-+  } first_needed;
-+
-+  if (netgroup_database == NULL
-+      && __nss_database_lookup ("netgroup", NULL, NULL, &netgroup_database))
-+    {
-+      /* No such service.  */
-+      total = sizeof (notfound);
-+      timeout = time (NULL) + db->negtimeout;
-+
-+      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)
-+      {
-+        dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
-+        dataset->head.recsize = total;
-+        dataset->head.notfound = true;
-+        dataset->head.nreloads = 0;
-+        dataset->head.usable = true;
-+
-+        /* Compute the timeout time.  */
-+        timeout = dataset->head.timeout = time (NULL) + db->negtimeout;
-+        dataset->head.ttl = db->negtimeout;
-+
-+        /* This is the reply.  */
-+        memcpy (&dataset->resp, &notfound, total);
-+
-+        /* Copy the key data.  */
-+        memcpy (dataset->strdata, key, req->key_len);
-+
-+        cacheable = true;
-+      }
-+
-+      goto writeout;
-+    }
-+
-+  memset (&data, '\0', sizeof (data));
-+  buffer = alloca (buflen);
-+  first_needed.elem.next = &first_needed.elem;
-+  memcpy (first_needed.elem.name, key, group_len);
-+  data.needed_groups = &first_needed.elem;
-+
-+  while (data.needed_groups != NULL)
-+    {
-+      /* Add the next group to the list of those which are known.  */
-+      struct name_list *this_group = data.needed_groups->next;
-+      if (this_group == data.needed_groups)
-+      data.needed_groups = NULL;
-+      else
-+      data.needed_groups->next = this_group->next;
-+      this_group->next = data.known_groups;
-+      data.known_groups = this_group;
-+
-+      union
-+      {
-+      enum nss_status (*f) (const char *, struct __netgrent *);
-+      void *ptr;
-+      } setfct;
-+
-+      service_user *nip = netgroup_database;
-+      int no_more = __nss_lookup (&nip, "setnetgrent", NULL, &setfct.ptr);
-+      while (!no_more)
-+      {
-+        enum nss_status status
-+          = DL_CALL_FCT (*setfct.f, (data.known_groups->name, &data));
-+
-+        if (status == NSS_STATUS_SUCCESS)
-+          {
-+            union
-+            {
-+              enum nss_status (*f) (struct __netgrent *, char *, size_t,
-+                                    int *);
-+              void *ptr;
-+            } getfct;
-+            getfct.ptr = __nss_lookup_function (nip, "getnetgrent_r");
-+            if (getfct.f != NULL)
-+              while (1)
-+                {
-+                  int e;
-+                  status = getfct.f (&data, buffer + buffilled,
-+                                     buflen - buffilled, &e);
-+                  if (status == NSS_STATUS_RETURN)
-+                    /* This was the last one for this group.  Look
-+                       at next group if available.  */
-+                    break;
-+                  if (status == NSS_STATUS_SUCCESS)
-+                    {
-+                      if (data.type == triple_val)
-+                        {
-+                          const char *nhost = data.val.triple.host;
-+                          const char *nuser = data.val.triple.user;
-+                          const char *ndomain = data.val.triple.domain;
-+
-+                          if (data.val.triple.host > data.val.triple.user
-+                              || data.val.triple.user > data.val.triple.domain)
-+                            {
-+                              const char *last = MAX (nhost,
-+                                                      MAX (nuser, ndomain));
-+                              size_t bufused = (last + strlen (last) + 1
-+                                                - buffer);
-+
-+                              /* We have to make temporary copies.  */
-+                              size_t hostlen = strlen (nhost) + 1;
-+                              size_t userlen = strlen (nuser) + 1;
-+                              size_t domainlen = strlen (ndomain) + 1;
-+                              size_t needed = hostlen + userlen + domainlen;
-+
-+                              if (buflen - req->key_len - bufused < needed)
-+                                {
-+                                  size_t newsize = MAX (2 * buflen,
-+                                                        buflen + 2 * needed);
-+                                  if (use_malloc || newsize > 1024 * 1024)
-+                                    {
-+                                      buflen = newsize;
-+                                      char *newbuf = xrealloc (use_malloc
-+                                                               ? buffer
-+                                                               : NULL,
-+                                                               buflen);
-+
-+                                      buffer = newbuf;
-+                                      use_malloc = true;
-+                                    }
-+                                  else
-+                                    extend_alloca (buffer, buflen, newsize);
-+                                }
-+
-+                              nhost = memcpy (buffer + bufused,
-+                                              nhost, hostlen);
-+                              nuser = memcpy ((char *) nhost + hostlen,
-+                                              nuser, userlen);
-+                              ndomain = memcpy ((char *) nuser + userlen,
-+                                                ndomain, domainlen);
-+                            }
-+
-+                          char *wp = buffer + buffilled;
-+                          wp = stpcpy (wp, nhost) + 1;
-+                          wp = stpcpy (wp, nuser) + 1;
-+                          wp = stpcpy (wp, ndomain) + 1;
-+                          buffilled = wp - buffer;
-+                          ++nentries;
-+                        }
-+                      else
-+                        {
-+                          /* Check that the group has not been
-+                             requested before.  */
-+                          struct name_list *runp = data.needed_groups;
-+                          if (runp != NULL)
-+                            while (1)
-+                              {
-+                                if (strcmp (runp->name, data.val.group) == 0)
-+                                  break;
-+
-+                                runp = runp->next;
-+                                if (runp == data.needed_groups)
-+                                  {
-+                                    runp = NULL;
-+                                    break;
-+                                  }
-+                              }
-+
-+                          if (runp == NULL)
-+                            {
-+                              runp = data.known_groups;
-+                              while (runp != NULL)
-+                                if (strcmp (runp->name, data.val.group) == 0)
-+                                  break;
-+                                else
-+                                  runp = runp->next;
-+                              }
-+
-+                          if (runp == NULL)
-+                            {
-+                              /* A new group is requested.  */
-+                              size_t namelen = strlen (data.val.group) + 1;
-+                              struct name_list *newg = alloca (sizeof (*newg)
-+                                                               + namelen);
-+                              memcpy (newg->name, data.val.group, namelen);
-+                              if (data.needed_groups == NULL)
-+                                data.needed_groups = newg->next = newg;
-+                              else
-+                                {
-+                                  newg->next = data.needed_groups->next;
-+                                  data.needed_groups->next = newg;
-+                                  data.needed_groups = newg;
-+                                }
-+                            }
-+                        }
-+                    }
-+                  else if (status == NSS_STATUS_UNAVAIL && e == ERANGE)
-+                    {
-+                      size_t newsize = 2 * buflen;
-+                      if (use_malloc || newsize > 1024 * 1024)
-+                        {
-+                          buflen = newsize;
-+                          char *newbuf = xrealloc (use_malloc
-+                                                   ? buffer : NULL, buflen);
-+
-+                          buffer = newbuf;
-+                          use_malloc = true;
-+                        }
-+                      else
-+                        extend_alloca (buffer, buflen, newsize);
-+                    }
-+                }
-+
-+            enum nss_status (*endfct) (struct __netgrent *);
-+            endfct = __nss_lookup_function (nip, "endnetgrent");
-+            if (endfct != NULL)
-+              (void) DL_CALL_FCT (*endfct, (&data));
-+
-+            break;
-+          }
-+
-+        no_more = __nss_next2 (&nip, "setnetgrent", NULL, &setfct.ptr,
-+                               status, 0);
-+      }
-+    }
-+
-+  total = buffilled;
-+
-+  /* Fill in the dataset.  */
-+  dataset = (struct dataset *) buffer;
-+  dataset->head.allocsize = total + req->key_len;
-+  dataset->head.recsize = total - offsetof (struct dataset, resp);
-+  dataset->head.notfound = false;
-+  dataset->head.nreloads = he == NULL ? 0 : (dh->nreloads + 1);
-+  dataset->head.usable = true;
-+  dataset->head.ttl = db->postimeout;
-+  timeout = dataset->head.timeout = time (NULL) + dataset->head.ttl;
-+
-+  dataset->resp.version = NSCD_VERSION;
-+  dataset->resp.found = 1;
-+  dataset->resp.nresults = nentries;
-+  dataset->resp.result_len = buffilled - sizeof (*dataset);
-+
-+  assert (buflen - buffilled >= req->key_len);
-+  key_copy = memcpy (buffer + buffilled, key, req->key_len);
-+  buffilled += req->key_len;
-+
-+  /* Now we can determine whether on refill we have to create a new
-+     record or not.  */
-+  if (he != NULL)
-+    {
-+      assert (fd == -1);
-+
-+      if (dataset->head.allocsize == dh->allocsize
-+        && dataset->head.recsize == dh->recsize
-+        && memcmp (&dataset->resp, dh->data,
-+                   dh->allocsize - offsetof (struct dataset, resp)) == 0)
-+      {
-+        /* The data has not changed.  We will just bump the 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;
-+        dataset = (struct dataset *) dh;
-+
-+        goto out;
-+      }
-+    }
-+
-+  {
-+    struct dataset *newp
-+      = (struct dataset *) mempool_alloc (db, total + req->key_len, 1);
-+    if (__builtin_expect (newp != NULL, 1))
-+      {
-+      /* Adjust pointer into the memory block.  */
-+      key_copy = (char *) newp + (key_copy - buffer);
-+
-+      dataset = memcpy (newp, dataset, total + req->key_len);
-+      cacheable = true;
-+
-+      if (he != NULL)
-+        /* Mark the old record as obsolete.  */
-+        dh->usable = false;
-+      }
-+  }
-+
-+  if (he == NULL && fd != -1)
-+    {
-+      /* We write the dataset before inserting it to the database
-+       since while inserting this thread might block and so would
-+       unnecessarily let the receiver wait.  */
-+    writeout:
-+#ifdef HAVE_SENDFILE
-+      if (__builtin_expect (db->mmap_used, 1) && cacheable)
-+      {
-+        assert (db->wr_fd != -1);
-+        assert ((char *) &dataset->resp > (char *) db->data);
-+        assert ((char *) dataset - (char *) db->head + total
-+                <= (sizeof (struct database_pers_head)
-+                    + db->head->module * sizeof (ref_t)
-+                    + db->head->data_size));
-+# ifndef __ASSUME_SENDFILE
-+        ssize_t written =
-+# endif
-+          sendfileall (fd, db->wr_fd, (char *) &dataset->resp
-+                       - (char *) db->head, dataset->head.recsize);
-+# ifndef __ASSUME_SENDFILE
-+        if (written == -1 && errno == ENOSYS)
-+          goto use_write;
-+# endif
-+      }
-+      else
-+#endif
-+      {
-+#if defined HAVE_SENDFILE && !defined __ASSUME_SENDFILE
-+      use_write:
-+#endif
-+        writeall (fd, &dataset->resp, dataset->head.recsize);
-+      }
-+    }
-+
-+  if (cacheable)
-+    {
-+      /* If necessary, we also propagate the data to disk.  */
-+      if (db->persistent)
-+      {
-+        // XXX async OK?
-+        uintptr_t pval = (uintptr_t) dataset & ~pagesize_m1;
-+        msync ((void *) pval,
-+               ((uintptr_t) dataset & pagesize_m1) + total + req->key_len,
-+               MS_ASYNC);
-+      }
-+
-+      (void) cache_add (req->type, key_copy, req->key_len, &dataset->head,
-+                      true, db, uid, he == NULL);
-+
-+      pthread_rwlock_unlock (&db->lock);
-+
-+      /* Mark the old entry as obsolete.  */
-+      if (dh != NULL)
-+      dh->usable = false;
-+    }
-+
-+ out:
-+  if (use_malloc)
-+    free (buffer);
-+
-+  *resultp = dataset;
-+
-+  return timeout;
-+}
-+
-+
-+static time_t
-+addinnetgrX (struct database_dyn *db, int fd, request_header *req,
-+           char *key, uid_t uid, struct hashentry *he,
-+           struct datahead *dh)
-+{
-+  const char *group = key;
-+  key = (char *) rawmemchr (key, '\0') + 1;
-+  size_t group_len = key - group - 1;
-+  const char *host = *key++ ? key : NULL;
-+  if (host != NULL)
-+    key = (char *) rawmemchr (key, '\0') + 1;
-+  const char *user = *key++ ? key : NULL;
-+  if (user != NULL)
-+    key = (char *) rawmemchr (key, '\0') + 1;
-+  const char *domain = *key++ ? key : NULL;
-+
-+  if (__builtin_expect (debug_level > 0, 0))
-+    {
-+      if (he == NULL)
-+      dbg_log (_("Haven't found \"%s (%s,%s,%s)\" in netgroup cache!"),
-+               group, host ?: "", user ?: "", domain ?: "");
-+      else
-+      dbg_log (_("Reloading \"%s (%s,%s,%s)\" in netgroup cache!"),
-+               group, host ?: "", user ?: "", domain ?: "");
-+    }
-+
-+  struct dataset *result = (struct dataset *) cache_search (GETNETGRENT,
-+                                                          group, group_len,
-+                                                          db, uid);
-+  time_t timeout;
-+  if (result != NULL)
-+    timeout = result->head.timeout;
-+  else
-+    {
-+      request_header req_get =
-+      {
-+        .type = GETNETGRENT,
-+        .key_len = group_len
-+      };
-+      timeout = addgetnetgrentX (db, -1, &req_get, group, uid, NULL, NULL,
-+                               &result);
-+    }
-+
-+  struct indataset
-+  {
-+    struct datahead head;
-+    innetgroup_response_header resp;
-+  } *dataset
-+      = (struct indataset *) mempool_alloc (db,
-+                                          sizeof (*dataset) + req->key_len,
-+                                          1);
-+  struct indataset dataset_mem;
-+  bool cacheable = true;
-+  if (__builtin_expect (dataset == NULL, 0))
-+    {
-+      cacheable = false;
-+      dataset = &dataset_mem;
-+    }
-+
-+  dataset->head.allocsize = sizeof (*dataset) + req->key_len;
-+  dataset->head.recsize = sizeof (innetgroup_response_header);
-+  dataset->head.notfound = result->head.notfound;
-+  dataset->head.nreloads = he == NULL ? 0 : (dh->nreloads + 1);
-+  dataset->head.usable = true;
-+  dataset->head.ttl = result->head.ttl;
-+  dataset->head.timeout = timeout;
-+
-+  dataset->resp.version = NSCD_VERSION;
-+  dataset->resp.found = result->resp.found;
-+  /* Until we find a matching entry the result is 0.  */
-+  dataset->resp.result = 0;
-+
-+  char *key_copy = memcpy ((char *) (dataset + 1), group, req->key_len);
-+
-+  if (dataset->resp.found)
-+    {
-+      const char *triplets = (const char *) (&result->resp + 1);
-+
-+      for (nscd_ssize_t i = result->resp.nresults; i > 0; --i)
-+      {
-+        bool success = true;
-+
-+        if (host != NULL)
-+          success = strcmp (host, triplets) == 0;
-+        triplets = (const char *) rawmemchr (triplets, '\0') + 1;
-+
-+        if (success && user != NULL)
-+          success = strcmp (user, triplets) == 0;
-+        triplets = (const char *) rawmemchr (triplets, '\0') + 1;
-+
-+        if (success && (domain == NULL || strcmp (domain, triplets) == 0))
-+          {
-+            dataset->resp.result = 1;
-+            break;
-+          }
-+        triplets = (const char *) rawmemchr (triplets, '\0') + 1;
-+      }
-+    }
-+
-+  if (he != NULL && dh->data[0].innetgroupdata.result == dataset->resp.result)
-+    {
-+      /* The data has not changed.  We will just bump the timeout
-+       value.  Note that the new record has been allocated on
-+       the stack and need not be freed.  */
-+      dh->timeout = timeout;
-+      dh->ttl = dataset->head.ttl;
-+      ++dh->nreloads;
-+      return timeout;
-+    }
-+
-+  if (he == NULL)
-+    {
-+      /* We write the dataset before inserting it to the database
-+       since while inserting this thread might block and so would
-+       unnecessarily let the receiver wait.  */
-+       assert (fd != -1);
-+
-+#ifdef HAVE_SENDFILE
-+      if (__builtin_expect (db->mmap_used, 1) && cacheable)
-+      {
-+        assert (db->wr_fd != -1);
-+        assert ((char *) &dataset->resp > (char *) db->data);
-+        assert ((char *) dataset - (char *) db->head + sizeof (*dataset)
-+                <= (sizeof (struct database_pers_head)
-+                    + db->head->module * sizeof (ref_t)
-+                    + db->head->data_size));
-+# ifndef __ASSUME_SENDFILE
-+        ssize_t written =
-+# endif
-+          sendfileall (fd, db->wr_fd,
-+                       (char *) &dataset->resp - (char *) db->head,
-+                       sizeof (innetgroup_response_header));
-+# ifndef __ASSUME_SENDFILE
-+        if (written == -1 && errno == ENOSYS)
-+          goto use_write;
-+# endif
-+      }
-+      else
-+# ifndef __ASSUME_SENDFILE
-+      use_write:
-+# endif
-+#endif
-+        writeall (fd, &dataset->resp, sizeof (innetgroup_response_header));
-+    }
-+
-+  if (cacheable)
-+    {
-+      /* If necessary, we also propagate the data to disk.  */
-+      if (db->persistent)
-+      {
-+        // XXX async OK?
-+        uintptr_t pval = (uintptr_t) dataset & ~pagesize_m1;
-+        msync ((void *) pval,
-+               ((uintptr_t) dataset & pagesize_m1) + sizeof (*dataset)
-+               + req->key_len,
-+               MS_ASYNC);
-+      }
-+
-+      (void) cache_add (req->type, key_copy, req->key_len, &dataset->head,
-+                      true, db, uid, he == NULL);
-+
-+      pthread_rwlock_unlock (&db->lock);
-+
-+      /* Mark the old entry as obsolete.  */
-+      if (dh != NULL)
-+      dh->usable = false;
-+    }
-+
-+  return timeout;
-+}
-+
-+
-+void
-+addgetnetgrent (struct database_dyn *db, int fd, request_header *req,
-+              void *key, uid_t uid)
-+{
-+  struct dataset *ignore;
-+
-+  addgetnetgrentX (db, fd, req, key, uid, NULL, NULL, &ignore);
-+}
-+
-+
-+time_t
-+readdgetnetgrent (struct database_dyn *db, struct hashentry *he,
-+                struct datahead *dh)
-+{
-+  request_header req =
-+    {
-+      .type = GETNETGRENT,
-+      .key_len = he->len
-+    };
-+  struct dataset *ignore;
-+
-+  return addgetnetgrentX (db, -1, &req, db->data + he->key, he->owner, he, dh,
-+                        &ignore);
-+}
-+
-+
-+void
-+addinnetgr (struct database_dyn *db, int fd, request_header *req,
-+          void *key, uid_t uid)
-+{
-+  addinnetgrX (db, fd, req, key, uid, NULL, NULL);
-+}
-+
-+
-+time_t
-+readdinnetgr (struct database_dyn *db, struct hashentry *he,
-+            struct datahead *dh)
-+{
-+  request_header req =
-+    {
-+      .type = INNETGR,
-+      .key_len = he->len
-+    };
-+
-+  return addinnetgrX (db, -1, &req, db->data + he->key, he->owner, he, dh);
-+}
-diff -Nrup a/nscd/nscd-client.h b/nscd/nscd-client.h
---- a/nscd/nscd-client.h       2012-08-06 15:07:49.082059915 -0600
-+++ b/nscd/nscd-client.h       2012-08-06 15:08:19.090941456 -0600
-@@ -70,6 +70,9 @@ typedef enum
-   GETSERVBYNAME,
-   GETSERVBYPORT,
-   GETFDSERV,
-+  GETNETGRENT,
-+  INNETGR,
-+  GETFDNETGR,
-   LASTREQ
- } request_type;
-@@ -171,6 +174,24 @@ typedef struct
- } serv_response_header;
-+/* Structure send in reply to netgroup query.  Note that this struct is
-+   sent also if the service is disabled or there is no record found.  */
-+typedef struct
-+{
-+  int32_t version;
-+  int32_t found;
-+  nscd_ssize_t nresults;
-+  nscd_ssize_t result_len;
-+} netgroup_response_header;
-+
-+typedef struct
-+{
-+  int32_t version;
-+  int32_t found;
-+  int32_t result;
-+} innetgroup_response_header;
-+
-+
- /* Type for offsets in data part of database.  */
- typedef uint32_t ref_t;
- /* Value for invalid/no reference.  */
-@@ -210,6 +231,8 @@ struct datahead
-     ai_response_header aidata;
-     initgr_response_header initgrdata;
-     serv_response_header servdata;
-+    netgroup_response_header netgroupdata;
-+    innetgroup_response_header innetgroupdata;
-     nscd_ssize_t align1;
-     nscd_time_t align2;
-   } data[0];
-diff -Nrup a/nscd/nscd.conf b/nscd/nscd.conf
---- a/nscd/nscd.conf   2012-08-06 15:07:48.553062002 -0600
-+++ b/nscd/nscd.conf   2012-08-06 15:08:19.091941452 -0600
-@@ -77,3 +77,12 @@
-       persistent              services        yes
-       shared                  services        yes
-       max-db-size             services        33554432
-+
-+      enable-cache            netgroup        yes
-+      positive-time-to-live   netgroup        28800
-+      negative-time-to-live   netgroup        20
-+      suggested-size          netgroup        211
-+      check-files             netgroup        yes
-+      persistent              netgroup        yes
-+      shared                  netgroup        yes
-+      max-db-size             netgroup        33554432
-diff -Nrup a/nscd/nscd.h b/nscd/nscd.h
---- a/nscd/nscd.h      2012-08-06 15:07:49.085059903 -0600
-+++ b/nscd/nscd.h      2012-08-06 15:08:19.093941443 -0600
-@@ -38,6 +38,7 @@ typedef enum
-   grpdb,
-   hstdb,
-   servdb,
-+  netgrdb,
-   lastdb
- } dbtype;
-@@ -107,6 +108,7 @@ struct database_dyn
- #define _PATH_NSCD_GROUP_DB   "/var/db/nscd/group"
- #define _PATH_NSCD_HOSTS_DB   "/var/db/nscd/hosts"
- #define _PATH_NSCD_SERVICES_DB        "/var/db/nscd/services"
-+#define _PATH_NSCD_NETGROUP_DB        "/var/db/nscd/netgroup"
- /* Path used when not using persistent storage.  */
- #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX"
-@@ -140,6 +142,7 @@ extern const struct iovec pwd_iov_disabl
- extern const struct iovec grp_iov_disabled;
- extern const struct iovec hst_iov_disabled;
- extern const struct iovec serv_iov_disabled;
-+extern const struct iovec netgroup_iov_disabled;
- /* Initial number of threads to run.  */
-@@ -185,6 +188,11 @@ extern gid_t old_gid;
- /* Prototypes for global functions.  */
-+/* Wrapper functions with error checking for standard functions.  */
-+extern void *xmalloc (size_t n);
-+extern void *xcalloc (size_t n, size_t s);
-+extern void *xrealloc (void *o, size_t n);
-+
- /* nscd.c */
- extern void termination_handler (int signum) __attribute__ ((__noreturn__));
- extern int nscd_open_socket (void);
-@@ -203,8 +211,8 @@ extern void send_stats (int fd, struct d
- extern int receive_print_stats (void) __attribute__ ((__noreturn__));
- /* cache.c */
--extern struct datahead *cache_search (request_type, void *key, size_t len,
--                                    struct database_dyn *table,
-+extern struct datahead *cache_search (request_type, const void *key,
-+                                    size_t len, struct database_dyn *table,
-                                     uid_t owner);
- extern int cache_add (int type, const void *key, size_t len,
-                     struct datahead *packet, bool first,
-@@ -273,6 +281,16 @@ extern void addservbyport (struct databa
- extern time_t readdservbyport (struct database_dyn *db, struct hashentry *he,
-                              struct datahead *dh);
-+/* netgroupcache.c */
-+extern void addinnetgr (struct database_dyn *db, int fd, request_header *req,
-+                      void *key, uid_t uid);
-+extern time_t readdinnetgr (struct database_dyn *db, struct hashentry *he,
-+                          struct datahead *dh);
-+extern void addgetnetgrent (struct database_dyn *db, int fd,
-+                          request_header *req, void *key, uid_t uid);
-+extern time_t readdgetnetgrent (struct database_dyn *db, struct hashentry *he,
-+                              struct datahead *dh);
-+
- /* mem.c */
- extern void *mempool_alloc (struct database_dyn *db, size_t len,
-                           int data_alloc);
-diff -Nrup a/nscd/nscd_conf.c b/nscd/nscd_conf.c
---- a/nscd/nscd_conf.c 2010-05-04 05:27:23.000000000 -0600
-+++ b/nscd/nscd_conf.c 2012-08-06 15:08:19.093941443 -0600
-@@ -43,7 +43,8 @@ const char *const dbnames[lastdb] =
-   [pwddb] = "passwd",
-   [grpdb] = "group",
-   [hstdb] = "hosts",
--  [servdb] = "services"
-+  [servdb] = "services",
-+  [netgrdb] = "netgroup"
- };
-diff -Nrup a/nscd/nscd_netgroup.c b/nscd/nscd_netgroup.c
---- a/nscd/nscd_netgroup.c     1969-12-31 17:00:00.000000000 -0700
-+++ b/nscd/nscd_netgroup.c     2012-08-06 15:08:19.094941439 -0600
-@@ -0,0 +1,290 @@
-+/* Copyright (C) 2011 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
-+
-+   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 <stdlib.h>
-+#include <string.h>
-+#include <not-cancel.h>
-+
-+#include "nscd-client.h"
-+#include "nscd_proto.h"
-+
-+int __nss_not_use_nscd_netgroup;
-+
-+
-+libc_locked_map_ptr (static, map_handle);
-+/* Note that we only free the structure if necessary.  The memory
-+   mapping is not removed since it is not visible to the malloc
-+   handling.  */
-+libc_freeres_fn (pw_map_free)
-+{
-+  if (map_handle.mapped != NO_MAPPING)
-+    {
-+      void *p = map_handle.mapped;
-+      map_handle.mapped = NO_MAPPING;
-+      free (p);
-+    }
-+}
-+
-+
-+int
-+__nscd_setnetgrent (const char *group, struct __netgrent *datap)
-+{
-+  int gc_cycle;
-+  int nretries = 0;
-+  size_t group_len = strlen (group);
-+
-+  /* If the mapping is available, try to search there instead of
-+     communicating with the nscd.  */
-+  struct mapped_database *mapped;
-+  mapped = __nscd_get_map_ref (GETFDNETGR, "netgroup", &map_handle, &gc_cycle);
-+
-+ retry:;
-+  char *respdata = NULL;
-+  int retval = -1;
-+  netgroup_response_header netgroup_resp;
-+
-+  if (mapped != NO_MAPPING)
-+    {
-+      struct datahead *found = __nscd_cache_search (GETNETGRENT, group,
-+                                                  group_len, mapped,
-+                                                  sizeof netgroup_resp);
-+      if (found != NULL)
-+      {
-+        respdata = (char *) (&found->data[0].netgroupdata + 1);
-+        netgroup_resp = found->data[0].netgroupdata;
-+        /* Now check if we can trust pw_resp fields.  If GC is
-+           in progress, it can contain anything.  */
-+        if (mapped->head->gc_cycle != gc_cycle)
-+          {
-+            retval = -2;
-+            goto out;
-+          }
-+      }
-+    }
-+
-+  int sock = -1;
-+  if (respdata == NULL)
-+    {
-+      sock = __nscd_open_socket (group, group_len, GETNETGRENT,
-+                               &netgroup_resp, sizeof (netgroup_resp));
-+      if (sock == -1)
-+      {
-+        /* nscd not running or wrong version.  */
-+        __nss_not_use_nscd_netgroup = 1;
-+        goto out;
-+      }
-+    }
-+
-+  if (netgroup_resp.found == 1)
-+    {
-+      size_t datalen = netgroup_resp.result_len;
-+
-+      /* If we do not have to read the data here it comes from the
-+       mapped data and does not have to be freed.  */
-+      if (respdata == NULL)
-+      {
-+        /* The data will come via the socket.  */
-+        respdata = malloc (datalen);
-+        if (respdata == NULL)
-+          goto out_close;
-+
-+        if ((size_t) __readall (sock, respdata, datalen) != datalen)
-+          {
-+            free (respdata);
-+            goto out_close;
-+          }
-+      }
-+
-+      datap->data = respdata;
-+      datap->data_size = datalen;
-+      datap->cursor = respdata;
-+      datap->first = 1;
-+      datap->nip = (service_user *) -1l;
-+      datap->known_groups = NULL;
-+      datap->needed_groups = NULL;
-+
-+      retval = 1;
-+    }
-+  else
-+    {
-+      if (__builtin_expect (netgroup_resp.found == -1, 0))
-+      {
-+        /* The daemon does not cache this database.  */
-+        __nss_not_use_nscd_netgroup = 1;
-+        goto out_close;
-+      }
-+
-+      /* Set errno to 0 to indicate no error, just no found record.  */
-+      __set_errno (0);
-+      /* Even though we have not found anything, the result is zero.  */
-+      retval = 0;
-+    }
-+
-+ out_close:
-+  if (sock != -1)
-+    close_not_cancel_no_status (sock);
-+ out:
-+  if (__nscd_drop_map_ref (mapped, &gc_cycle) != 0)
-+    {
-+      /* When we come here this means there has been a GC cycle while we
-+       were looking for the data.  This means the data might have been
-+       inconsistent.  Retry if possible.  */
-+      if ((gc_cycle & 1) != 0 || ++nretries == 5 || retval == -1)
-+      {
-+        /* nscd is just running gc now.  Disable using the mapping.  */
-+        if (atomic_decrement_val (&mapped->counter) == 0)
-+          __nscd_unmap (mapped);
-+        mapped = NO_MAPPING;
-+      }
-+
-+      if (retval != -1)
-+      goto retry;
-+    }
-+
-+  return retval;
-+}
-+
-+
-+int
-+__nscd_innetgr (const char *netgroup, const char *host, const char *user,
-+              const char *domain)
-+{
-+  size_t key_len = (strlen (netgroup) + strlen (host ?: "")
-+                  + strlen (user ?: "") + strlen (domain ?: "") + 7);
-+  char *key;
-+  bool use_alloca = __libc_use_alloca (key_len);
-+  if (use_alloca)
-+    key = alloca (key_len);
-+  else
-+    {
-+      key = malloc (key_len);
-+      if (key == NULL)
-+      return -1;
-+    }
-+  char *wp = stpcpy (key, netgroup) + 1;
-+  if (host != NULL)
-+    {
-+      *wp++ = '\1';
-+      wp = stpcpy (wp, host) + 1;
-+    }
-+  else
-+    *wp++ = '\0';
-+  if (user != NULL)
-+    {
-+      *wp++ = '\1';
-+      wp = stpcpy (wp, user) + 1;
-+    }
-+  else
-+    *wp++ = '\0';
-+  if (domain != NULL)
-+    {
-+      *wp++ = '\1';
-+      wp = stpcpy (wp, domain) + 1;
-+    }
-+  else
-+    *wp++ = '\0';
-+  key_len = wp - key;
-+
-+  /* If the mapping is available, try to search there instead of
-+     communicating with the nscd.  */
-+  int gc_cycle;
-+  int nretries = 0;
-+  struct mapped_database *mapped;
-+  mapped = __nscd_get_map_ref (GETFDNETGR, "netgroup", &map_handle, &gc_cycle);
-+
-+ retry:;
-+  int retval = -1;
-+  innetgroup_response_header innetgroup_resp;
-+  int sock = -1;
-+
-+  if (mapped != NO_MAPPING)
-+    {
-+      struct datahead *found = __nscd_cache_search (INNETGR, key,
-+                                                  key_len, mapped,
-+                                                  sizeof innetgroup_resp);
-+      if (found != NULL)
-+      {
-+        innetgroup_resp = found->data[0].innetgroupdata;
-+        /* Now check if we can trust pw_resp fields.  If GC is
-+           in progress, it can contain anything.  */
-+        if (mapped->head->gc_cycle != gc_cycle)
-+          {
-+            retval = -2;
-+            goto out;
-+          }
-+
-+        goto found_entry;
-+      }
-+    }
-+
-+  sock = __nscd_open_socket (key, key_len, INNETGR,
-+                           &innetgroup_resp, sizeof (innetgroup_resp));
-+  if (sock == -1)
-+    {
-+      /* nscd not running or wrong version.  */
-+      __nss_not_use_nscd_netgroup = 1;
-+      goto out;
-+    }
-+
-+ found_entry:
-+  if (innetgroup_resp.found == 1)
-+    retval = innetgroup_resp.result;
-+  else
-+    {
-+      if (__builtin_expect (innetgroup_resp.found == -1, 0))
-+      {
-+        /* The daemon does not cache this database.  */
-+        __nss_not_use_nscd_netgroup = 1;
-+        goto out_close;
-+      }
-+
-+      /* Set errno to 0 to indicate no error, just no found record.  */
-+      __set_errno (0);
-+      /* Even though we have not found anything, the result is zero.  */
-+      retval = 0;
-+    }
-+
-+ out_close:
-+  if (sock != -1)
-+    close_not_cancel_no_status (sock);
-+ out:
-+  if (__nscd_drop_map_ref (mapped, &gc_cycle) != 0)
-+    {
-+      /* When we come here this means there has been a GC cycle while we
-+       were looking for the data.  This means the data might have been
-+       inconsistent.  Retry if possible.  */
-+      if ((gc_cycle & 1) != 0 || ++nretries == 5 || retval == -1)
-+      {
-+        /* nscd is just running gc now.  Disable using the mapping.  */
-+        if (atomic_decrement_val (&mapped->counter) == 0)
-+          __nscd_unmap (mapped);
-+        mapped = NO_MAPPING;
-+      }
-+
-+      if (retval != -1)
-+      goto retry;
-+    }
-+
-+  if (! use_alloca)
-+    free (key);
-+
-+  return retval;
-+}
-diff -Nrup a/nscd/nscd_proto.h b/nscd/nscd_proto.h
---- a/nscd/nscd_proto.h        2010-05-04 05:27:23.000000000 -0600
-+++ b/nscd/nscd_proto.h        2012-08-06 15:14:24.446648305 -0600
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1998-2000, 2002, 2004, 2007 Free Software Foundation, Inc.
-+/* Copyright (C) 1998-2000,2002,2004,2007,2011 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
-@@ -36,6 +36,7 @@ extern int __nss_not_use_nscd_passwd att
- extern int __nss_not_use_nscd_group attribute_hidden;
- extern int __nss_not_use_nscd_hosts attribute_hidden;
- extern int __nss_not_use_nscd_services attribute_hidden;
-+extern int __nss_not_use_nscd_netgroup attribute_hidden;
- extern int __nscd_getpwnam_r (const char *name, struct passwd *resultbuf,
-                             char *buffer, size_t buflen,
-@@ -71,5 +72,9 @@ extern int __nscd_getservbyname_r (const
- extern int __nscd_getservbyport_r (int port, const char *proto,
-                                  struct servent *result_buf, char *buf,
-                                  size_t buflen, struct servent **result);
-+extern int __nscd_innetgr (const char *netgroup, const char *host,
-+                         const char *user, const char *domain);
-+extern int __nscd_setnetgrent (const char *group, struct __netgrent *datap);
-+
- #endif /* _NSCD_PROTO_H */
-diff -Nrup a/nscd/selinux.c b/nscd/selinux.c
---- a/nscd/selinux.c   2010-05-04 05:27:23.000000000 -0600
-+++ b/nscd/selinux.c   2012-08-06 15:08:19.096941431 -0600
-@@ -1,5 +1,5 @@
- /* SELinux access controls for nscd.
--   Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
-+   Copyright (C) 2004,2005,2006,2007,2009,2011 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Matthew Rickard <mjricka@epoch.ncsc.mil>, 2004.
-@@ -46,7 +46,7 @@
- int selinux_enabled;
- /* Define mappings of access vector permissions to request types.  */
--static const int perms[LASTREQ] =
-+static const access_vector_t perms[LASTREQ] =
- {
-   [GETPWBYNAME] = NSCD__GETPWD,
-   [GETPWBYUID] = NSCD__GETPWD,
-@@ -69,6 +69,11 @@ static const int perms[LASTREQ] =
-   [GETSERVBYPORT] = NSCD__GETSERV,
-   [GETFDSERV] = NSCD__SHMEMSERV,
- #endif
-+#ifdef NSCD__GETNETGRP
-+  [GETNETGRENT] = NSCD__GETNETGRP,
-+  [INNETGR] = NSCD__GETNETGRP,
-+  [GETFDNETGR] = NSCD__SHMEMNETGRP,
-+#endif
- };
- /* Store an entry ref to speed AVC decisions.  */
-diff -Nrup a/nss/Makefile b/nss/Makefile
---- a/nss/Makefile     2012-08-06 15:07:48.938060482 -0600
-+++ b/nss/Makefile     2012-08-23 14:19:49.382442094 -0600
-@@ -1,4 +1,5 @@
--# Copyright (C) 1996-1998,2000-2002,2007,2009 Free Software Foundation, Inc.
-+# Copyright (C) 1996-1998,2000-2002,2007,2009,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
-@@ -39,7 +40,7 @@ databases            = proto service hosts network
- others                  := getent
- install-bin             := getent
--tests                 = test-netdb
-+tests                 = test-netdb tst-nss-test1
- xtests                        = bug-erange
- include ../Makeconfig
-@@ -85,3 +86,14 @@ endif
- # a statically-linked program that hasn't already loaded it.
- $(services:%=$(objpfx)libnss_%.so): $(common-objpfx)libc.so \
-                                   $(common-objpfx)libc_nonshared.a
-+
-+
-+distribute            += nss_test1.c
-+
-+CFLAGS-nss_test1.c = -DNOT_IN_libc=1
-+$(objpfx)/libnss_test1.so: $(objpfx)nss_test1.os $(common-objpfx)libc.so \
-+                         $(common-objpfx)libc_nonshared.a
-+      $(build-module)
-+$(objpfx)/libnss_test1.so$(libnss_test1.so-version): $(objpfx)/libnss_test1.so
-+      $(make-link)
-+$(objpfx)tst-nss-test1.out: $(objpfx)/libnss_test1.so$(libnss_test1.so-version)
-diff -Nrup a/nss/Versions b/nss/Versions
---- a/nss/Versions     2012-08-06 15:07:48.939060479 -0600
-+++ b/nss/Versions     2012-08-06 15:08:19.096941431 -0600
-@@ -12,7 +12,7 @@ libc {
-     __nss_disable_nscd; __nss_lookup_function; _nss_files_parse_sgent;
-     __nss_passwd_lookup2; __nss_group_lookup2; __nss_hosts_lookup2;
--    __nss_services_lookup2; __nss_next2;
-+    __nss_services_lookup2; __nss_next2; __nss_lookup;
-   }
- }
-diff -Nrup a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c
---- a/nss/getXXbyYY_r.c        2010-05-04 05:27:23.000000000 -0600
-+++ b/nss/getXXbyYY_r.c        2012-08-23 14:19:49.403442011 -0600
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1996-2004, 2006, 2007, 2009 Free Software Foundation, Inc.
-+/* Copyright (C) 1996-2004,2006,2007,2009,2010 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-@@ -87,6 +87,8 @@
- # define NOT_USENSCD_NAME ADD_NOT_NSCDUSE (DATABASE_NAME)
- # define ADD_NOT_NSCDUSE(name) ADD_NOT_NSCDUSE1 (name)
- # define ADD_NOT_NSCDUSE1(name) __nss_not_use_nscd_##name
-+# define CONCAT2(arg1, arg2) CONCAT2_2 (arg1, arg2)
-+# define CONCAT2_2(arg1, arg2) arg1##arg2
- #endif
- #define FUNCTION_NAME_STRING STRINGIZE (FUNCTION_NAME)
-@@ -186,7 +188,8 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, L
-   if (NOT_USENSCD_NAME > 0 && ++NOT_USENSCD_NAME > NSS_NSCD_RETRY)
-     NOT_USENSCD_NAME = 0;
--  if (!NOT_USENSCD_NAME)
-+  if (!NOT_USENSCD_NAME
-+      && !__nss_database_custom[CONCAT2 (NSS_DBSIDX_, DATABASE_NAME)])
-     {
-       nscd_status = NSCD_NAME (ADD_VARIABLES, resbuf, buffer, buflen, result
-                              H_ERRNO_VAR);
-diff -Nrup a/nss/getent.c b/nss/getent.c
---- a/nss/getent.c     2010-05-04 05:27:23.000000000 -0600
-+++ b/nss/getent.c     2012-08-06 15:15:06.479427609 -0600
-@@ -466,7 +466,6 @@ static int
- netgroup_keys (int number, char *key[])
- {
-   int result = 0;
--  int i;
-   if (number == 0)
-     {
-@@ -474,18 +473,28 @@ netgroup_keys (int number, char *key[])
-       return 3;
-     }
--  for (i = 0; i < number; ++i)
-+  if (number == 4)
-     {
--      if (!setnetgrent (key[i]))
-+      char *host = strcmp (key[1], "*") == 0 ? NULL : key[1];
-+      char *user = strcmp (key[2], "*") == 0 ? NULL : key[2];
-+      char *domain = strcmp (key[3], "*") == 0 ? NULL : key[3];
-+
-+      printf ("%-21s (%s,%s,%s) = %d\n",
-+            key[0], host ?: "", user ?: "", domain ?: "",
-+            innetgr (key[0], host, user, domain));
-+    }
-+  else if (number == 1)
-+    {
-+      if (!setnetgrent (key[0]))
-       result = 2;
-       else
-       {
-         char *p[3];
--        printf ("%-21s", key[i]);
-+        printf ("%-21s", key[0]);
-         while (getnetgrent (p, p + 1, p + 2))
--          printf (" (%s, %s, %s)", p[0] ?: " ", p[1] ?: "", p[2] ?: "");
-+          printf (" (%s,%s,%s)", p[0] ?: " ", p[1] ?: "", p[2] ?: "");
-         putchar_unlocked ('\n');
-       }
-     }
-diff -Nrup a/nss/nss_files/files-parse.c b/nss/nss_files/files-parse.c
---- a/nss/nss_files/files-parse.c      2010-05-04 05:27:23.000000000 -0600
-+++ b/nss/nss_files/files-parse.c      2012-08-23 14:19:49.418441951 -0600
-@@ -1,5 +1,5 @@
- /* Common code for file-based database parsers in nss_files module.
--   Copyright (C) 1996-2000, 2003, 2004, 2009 Free Software Foundation, Inc.
-+   Copyright (C) 1996-2000,2003,2004,2009,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
-@@ -29,7 +29,7 @@
-    DATABASE -- string of the database file's name ("hosts", "passwd").
-    ENTDATA -- if defined, `struct ENTDATA' is used by the parser to store
--              things pointed to by the resultant `struct STRUCTURE'.
-+            things pointed to by the resultant `struct STRUCTURE'.
-    NEED_H_ERRNO - defined iff an arg `int *herrnop' is used.
-@@ -229,7 +229,7 @@ strtou32 (const char *nptr, char **endpt
-   char **list = parse_list (&line, buf_start, buf_end, '\0', errnop);       \
-   if (list)                                                                 \
-     result->TRAILING_LIST_MEMBER = list;                                    \
--  else                                                                              \
-+  else                                                                              \
-     return -1;                /* -1 indicates we ran out of space.  */              \
- }
-diff -Nrup a/nss/nss_test1.c b/nss/nss_test1.c
---- a/nss/nss_test1.c  1969-12-31 17:00:00.000000000 -0700
-+++ b/nss/nss_test1.c  2012-08-23 14:19:49.418441951 -0600
-@@ -0,0 +1,154 @@
-+#include <errno.h>
-+#include <nss.h>
-+#include <pthread.h>
-+#include <string.h>
-+
-+
-+#define COPY_IF_ROOM(s) \
-+  ({ size_t len_ = strlen (s) + 1;            \
-+     char *start_ = cp;                               \
-+     buflen - (cp - buffer) < len_            \
-+     ? NULL                                   \
-+     : (cp = mempcpy (cp, s, len_), start_); })
-+
-+
-+/* Password handling.  */
-+#include <pwd.h>
-+
-+static struct passwd pwd_data[] =
-+  {
-+#define PWD(u) \
-+    { .pw_name = (char *) "name" #u, .pw_passwd = (char *) "*", .pw_uid = u,  \
-+      .pw_gid = 100, .pw_gecos = (char *) "*", .pw_dir = (char *) "*",              \
-+      .pw_shell = (char *) "*" }
-+    PWD (100),
-+    PWD (30),
-+    PWD (200),
-+    PWD (60),
-+    PWD (20000)
-+  };
-+#define npwd_data (sizeof (pwd_data) / sizeof (pwd_data[0]))
-+
-+static size_t pwd_iter;
-+#define CURPWD pwd_data[pwd_iter]
-+
-+static pthread_mutex_t pwd_lock = PTHREAD_MUTEX_INITIALIZER;
-+
-+
-+enum nss_status
-+_nss_test1_setpwent (int stayopen)
-+{
-+  pwd_iter = 0;
-+  return NSS_STATUS_SUCCESS;
-+}
-+
-+
-+enum nss_status
-+_nss_test1_endpwent (void)
-+{
-+  return NSS_STATUS_SUCCESS;
-+}
-+
-+
-+enum nss_status
-+_nss_test1_getpwent_r (struct passwd *result, char *buffer, size_t buflen,
-+                     int *errnop)
-+{
-+  char *cp = buffer;
-+  int res = NSS_STATUS_SUCCESS;
-+
-+  pthread_mutex_lock (&pwd_lock);
-+
-+  if (pwd_iter >= npwd_data)
-+    res = NSS_STATUS_NOTFOUND;
-+  else
-+    {
-+      result->pw_name = COPY_IF_ROOM (CURPWD.pw_name);
-+      result->pw_passwd = COPY_IF_ROOM (CURPWD.pw_passwd);
-+      result->pw_uid = CURPWD.pw_uid;
-+      result->pw_gid = CURPWD.pw_gid;
-+      result->pw_gecos = COPY_IF_ROOM (CURPWD.pw_gecos);
-+      result->pw_dir = COPY_IF_ROOM (CURPWD.pw_dir);
-+      result->pw_shell = COPY_IF_ROOM (CURPWD.pw_shell);
-+
-+      if (result->pw_name == NULL || result->pw_passwd == NULL
-+        || result->pw_gecos == NULL || result->pw_dir == NULL
-+        || result->pw_shell == NULL)
-+      {
-+        *errnop = ERANGE;
-+        res = NSS_STATUS_TRYAGAIN;
-+      }
-+
-+      ++pwd_iter;
-+    }
-+
-+  pthread_mutex_unlock (&pwd_lock);
-+
-+  return res;
-+}
-+
-+
-+enum nss_status
-+_nss_test1_getpwuid_r (uid_t uid, struct passwd *result, char *buffer,
-+                     size_t buflen, int *errnop)
-+{
-+  for (size_t idx = 0; idx < npwd_data; ++idx)
-+    if (pwd_data[idx].pw_uid == uid)
-+      {
-+      char *cp = buffer;
-+      int res = NSS_STATUS_SUCCESS;
-+
-+      result->pw_name = COPY_IF_ROOM (pwd_data[idx].pw_name);
-+      result->pw_passwd = COPY_IF_ROOM (pwd_data[idx].pw_passwd);
-+      result->pw_uid = pwd_data[idx].pw_uid;
-+      result->pw_gid = pwd_data[idx].pw_gid;
-+      result->pw_gecos = COPY_IF_ROOM (pwd_data[idx].pw_gecos);
-+      result->pw_dir = COPY_IF_ROOM (pwd_data[idx].pw_dir);
-+      result->pw_shell = COPY_IF_ROOM (pwd_data[idx].pw_shell);
-+
-+      if (result->pw_name == NULL || result->pw_passwd == NULL
-+          || result->pw_gecos == NULL || result->pw_dir == NULL
-+          || result->pw_shell == NULL)
-+        {
-+          *errnop = ERANGE;
-+          res = NSS_STATUS_TRYAGAIN;
-+        }
-+
-+      return res;
-+      }
-+
-+  return NSS_STATUS_NOTFOUND;
-+}
-+
-+
-+enum nss_status
-+_nss_test1_getpwnam_r (const char *name, struct passwd *result, char *buffer,
-+                     size_t buflen, int *errnop)
-+{
-+  for (size_t idx = 0; idx < npwd_data; ++idx)
-+    if (strcmp (pwd_data[idx].pw_name, name) == 0)
-+      {
-+      char *cp = buffer;
-+      int res = NSS_STATUS_SUCCESS;
-+
-+      result->pw_name = COPY_IF_ROOM (pwd_data[idx].pw_name);
-+      result->pw_passwd = COPY_IF_ROOM (pwd_data[idx].pw_passwd);
-+      result->pw_uid = pwd_data[idx].pw_uid;
-+      result->pw_gid = pwd_data[idx].pw_gid;
-+      result->pw_gecos = COPY_IF_ROOM (pwd_data[idx].pw_gecos);
-+      result->pw_dir = COPY_IF_ROOM (pwd_data[idx].pw_dir);
-+      result->pw_shell = COPY_IF_ROOM (pwd_data[idx].pw_shell);
-+
-+      if (result->pw_name == NULL || result->pw_passwd == NULL
-+          || result->pw_gecos == NULL || result->pw_dir == NULL
-+          || result->pw_shell == NULL)
-+        {
-+          *errnop = ERANGE;
-+          res = NSS_STATUS_TRYAGAIN;
-+        }
-+
-+      return res;
-+      }
-+
-+  return NSS_STATUS_NOTFOUND;
-+}
-diff -Nrup a/nss/nsswitch.c b/nss/nsswitch.c
---- a/nss/nsswitch.c   2010-05-04 05:27:23.000000000 -0600
-+++ b/nss/nsswitch.c   2012-08-23 14:19:49.430441903 -0600
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1996-1999, 2001-2007, 2009 Free Software Foundation, Inc.
-+/* Copyright (C) 1996-1999,2001-2007,2009,2010 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-@@ -71,6 +71,9 @@ static const struct
- };
- #define ndatabases (sizeof (databases) / sizeof (databases[0]))
-+/* Flags whether custom rules for database is set.  */
-+bool __nss_database_custom[NSS_DBSIDX_max];
-+
- __libc_lock_define_initialized (static, lock)
-@@ -165,6 +168,7 @@ __nss_lookup (service_user **ni, const c
-   return *fctp != NULL ? 0 : (*ni)->next == NULL ? 1 : -1;
- }
-+libc_hidden_def (__nss_lookup)
- /* -1 == not found
-@@ -265,6 +269,7 @@ __nss_configure_lookup (const char *dbna
-   /* Install new rules.  */
-   *databases[cnt].dbp = new_db;
-+  __nss_database_custom[cnt] = true;
-   __libc_lock_unlock (lock);
-@@ -729,6 +734,7 @@ __nss_disable_nscd (void)
-   __nss_not_use_nscd_group = -1;
-   __nss_not_use_nscd_hosts = -1;
-   __nss_not_use_nscd_services = -1;
-+  __nss_not_use_nscd_netgroup = -1;
- }
-diff -Nrup a/nss/nsswitch.h b/nss/nsswitch.h
---- a/nss/nsswitch.h   2010-05-04 05:27:23.000000000 -0600
-+++ b/nss/nsswitch.h   2012-08-23 14:19:49.431441899 -0600
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1996-1999,2001,2002,2003,2004,2007
-+/* Copyright (C) 1996-1999,2001,2002,2003,2004,2007,2010
-    Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-@@ -28,6 +28,7 @@
- #include <resolv.h>
- #include <search.h>
- #include <dlfcn.h>
-+#include <stdbool.h>
- /* Actions performed after lookup finished.  */
- typedef enum
-@@ -96,6 +97,19 @@ typedef struct name_database
- } name_database;
-+/* Indices into DATABASES in nsswitch.c and __NSS_DATABASE_CUSTOM.  */
-+enum
-+  {
-+#define DEFINE_DATABASE(arg) NSS_DBSIDX_##arg,
-+#include "databases.def"
-+#undef DEFINE_DATABASE
-+    NSS_DBSIDX_max
-+  };
-+
-+/* Flags whether custom rules for database is set.  */
-+extern bool __nss_database_custom[NSS_DBSIDX_max];
-+
-+
- /* Interface functions for NSS.  */
- /* Get the data structure representing the specified database.
-@@ -111,7 +125,8 @@ libc_hidden_proto (__nss_database_lookup
-    position is remembered in NI.  The function returns a value < 0 if
-    an error occurred or no such function exists.  */
- extern int __nss_lookup (service_user **ni, const char *fct_name,
--                       const char *fct2_name, void **fctp) attribute_hidden;
-+                       const char *fct2_name, void **fctp);
-+libc_hidden_proto (__nss_lookup)
- /* Determine the next step in the lookup process according to the
-    result STATUS of the call to the last function returned by
-diff -Nrup a/nss/tst-nss-test1.c b/nss/tst-nss-test1.c
---- a/nss/tst-nss-test1.c      1969-12-31 17:00:00.000000000 -0700
-+++ b/nss/tst-nss-test1.c      2012-08-23 14:19:49.432441895 -0600
-@@ -0,0 +1,72 @@
-+#include <nss.h>
-+#include <pwd.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+
-+static int
-+do_test (void)
-+{
-+  int retval = 0;
-+
-+  __nss_configure_lookup ("passwd", "test1");
-+
-+  static const unsigned int pwdids[] = { 100, 30, 200, 60, 20000 };
-+#define npwdids (sizeof (pwdids) / sizeof (pwdids[0]))
-+  setpwent ();
-+
-+  const unsigned int *np = pwdids;
-+  for (struct passwd *p = getpwent (); p != NULL; ++np, p = getpwent ())
-+    if (p->pw_uid != *np || strncmp (p->pw_name, "name", 4) != 0
-+      || atol (p->pw_name + 4) != *np)
-+      {
-+      printf ("passwd entry %ju wrong (%s, %u)\n",
-+              np - pwdids, p->pw_name, p->pw_uid);
-+      retval = 1;
-+      break;
-+      }
-+
-+  endpwent ();
-+
-+  for (int i = npwdids - 1; i >= 0; --i)
-+    {
-+      char buf[30];
-+      snprintf (buf, sizeof (buf), "name%u", pwdids[i]);
-+
-+      struct passwd *p = getpwnam (buf);
-+      if (p == NULL || p->pw_uid != pwdids[i] || strcmp (buf, p->pw_name) != 0)
-+      {
-+        printf ("passwd entry \"%s\" wrong\n", buf);
-+        retval = 1;
-+      }
-+
-+      p = getpwuid (pwdids[i]);
-+      if (p == NULL || p->pw_uid != pwdids[i] || strcmp (buf, p->pw_name) != 0)
-+      {
-+        printf ("passwd entry %u wrong\n", pwdids[i]);
-+        retval = 1;
-+      }
-+
-+      snprintf (buf, sizeof (buf), "name%u", pwdids[i] + 1);
-+
-+      p = getpwnam (buf);
-+      if (p != NULL)
-+      {
-+        printf ("passwd entry \"%s\" wrong\n", buf);
-+        retval = 1;
-+      }
-+
-+      p = getpwuid (pwdids[i] + 1);
-+      if (p != NULL)
-+      {
-+        printf ("passwd entry %u wrong\n", pwdids[i] + 1);
-+        retval = 1;
-+      }
-+    }
-+
-+  return retval;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff -Nrup a/shlib-versions b/shlib-versions
---- a/shlib-versions   2010-05-04 05:27:23.000000000 -0600
-+++ b/shlib-versions   2012-08-23 14:19:49.473441732 -0600
-@@ -114,6 +114,10 @@ alpha.*-.*-linux.*        libresolv=2.1
- .*-.*-.*              libnss_ldap=2
- .*-.*-.*              libnss_hesiod=2
-+# Tests for NSS.  They must have the same NSS_SHLIB_REVISION number as
-+# the rest.
-+.*-.*-.*              libnss_test1=2
-+
- # Version for libnsl with YP and NIS+ functions.
- alpha.*-.*-linux.*    libnsl=1.1
- .*-.*-.*              libnsl=1
-diff -Nrup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
---- a/sysdeps/posix/getaddrinfo.c      2012-08-06 15:07:49.571057983 -0600
-+++ b/sysdeps/posix/getaddrinfo.c      2012-08-23 14:19:49.541441461 -0600
-@@ -669,7 +669,8 @@ gaih_inet (const char *name, const struc
-             && ++__nss_not_use_nscd_hosts > NSS_NSCD_RETRY)
-           __nss_not_use_nscd_hosts = 0;
--        if (!__nss_not_use_nscd_hosts)
-+        if (!__nss_not_use_nscd_hosts
-+            && !__nss_database_custom[NSS_DBSIDX_hosts])
-           {
-             /* Try to use nscd.  */
-             struct nscd_ai_result *air = NULL;
diff --git a/src/patches/glibc/glibc-rh630801.patch b/src/patches/glibc/glibc-rh630801.patch
deleted file mode 100644 (file)
index 5bd3c66..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-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
deleted file mode 100644 (file)
index 42a1a56..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-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
deleted file mode 100644 (file)
index 52df4ae..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-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
deleted file mode 100644 (file)
index 7fd390d..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-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
deleted file mode 100644 (file)
index c32c1fe..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-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
deleted file mode 100644 (file)
index 644614e..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-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
deleted file mode 100644 (file)
index bbb959e..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-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
deleted file mode 100644 (file)
index ff55945..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644 (file)
index 79a3212..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644 (file)
index 5ef68dc..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-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
deleted file mode 100644 (file)
index f101430..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644 (file)
index a720130..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-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
deleted file mode 100644 (file)
index 60b840b..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-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-rh663641-2.patch b/src/patches/glibc/glibc-rh663641-2.patch
deleted file mode 100644 (file)
index 13c1bee..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/csu/libc-start.c glibc-2.12-2-gc4ccff1.fixed/csu/libc-start.c
---- glibc-2.12-2-gc4ccff1/csu/libc-start.c     2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/csu/libc-start.c       2013-07-09 23:34:59.596859295 +0530
-@@ -33,7 +33,7 @@ extern int __libc_multiple_libcs;
- #include <tls.h>
- #ifndef SHARED
- # include <dl-osinfo.h>
--extern void __pthread_initialize_minimal (void);
-+extern void __pthread_initialize_minimal (int, char **, char **);
- # ifndef THREAD_SET_STACK_GUARD
- /* Only exported for architectures that don't store the stack guard canary
-    in thread local area.  */
-@@ -143,7 +143,7 @@ LIBC_START_MAIN (int (*main) (int, char
-   /* Initialize the thread library at least a bit since the libgcc
-      functions are using thread functions if these are available and
-      we need to setup errno.  */
--  __pthread_initialize_minimal ();
-+  __pthread_initialize_minimal (argc, argv, __environ);
-   /* Set up the stack checker's canary.  */
-   uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (_dl_random);
-diff -pruN glibc-2.12-2-gc4ccff1/csu/libc-tls.c glibc-2.12-2-gc4ccff1.fixed/csu/libc-tls.c
---- glibc-2.12-2-gc4ccff1/csu/libc-tls.c       2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/csu/libc-tls.c 2013-07-09 23:34:59.596859295 +0530
-@@ -244,7 +244,7 @@ _dl_tls_setup (void)
-    not used.  */
- void
- __attribute__ ((weak))
--__pthread_initialize_minimal (void)
-+__pthread_initialize_minimal (int argc, char **argv, char **envp)
- {
-   __libc_setup_tls (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN);
- }
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/Makefile glibc-2.12-2-gc4ccff1.fixed/nptl/Makefile
---- glibc-2.12-2-gc4ccff1/nptl/Makefile        2013-07-09 23:35:21.692858252 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/Makefile  2013-07-09 23:34:59.597859295 +0530
-@@ -197,7 +197,7 @@ CFLAGS-pt-system.c = -fexceptions
- tests = tst-typesizes \
--      tst-attr1 tst-attr2 tst-attr3 \
-+      tst-attr1 tst-attr2 tst-attr3 tst-default-attr \
-       tst-mutex1 tst-mutex2 tst-mutex3 tst-mutex4 tst-mutex5 tst-mutex6 \
-       tst-mutex7 tst-mutex8 tst-mutex9 tst-mutex5a tst-mutex7a \
-       tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 tst-mutexpi5 \
-@@ -279,6 +279,13 @@ LDFLAGS-pthread.so = -Wl,--enable-new-dt
- LDFLAGS-tst-cond24 = -lrt
- LDFLAGS-tst-cond25 = -lrt
-+# The size is 1MB + 4KB.  The extra 4KB has been added to prevent allocatestack
-+# from resizing the input size to avoid the 64K aliasing conflict on Intel
-+# processors.
-+DEFAULT_STACKSIZE=1052672
-+CFLAGS-tst-default-attr.c = -DDEFAULT_STACKSIZE=$(DEFAULT_STACKSIZE)
-+tst-default-attr-ENV = GLIBC_PTHREAD_STACKSIZE=$(DEFAULT_STACKSIZE)
-+
- include ../Makeconfig
- ifeq ($(have-forced-unwind),yes)
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/nptl-init.c glibc-2.12-2-gc4ccff1.fixed/nptl/nptl-init.c
---- glibc-2.12-2-gc4ccff1/nptl/nptl-init.c     2013-07-09 23:35:21.723858250 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/nptl-init.c       2013-07-09 23:36:35.070854789 +0530
-@@ -36,6 +36,7 @@
- #include <smp.h>
- #include <lowlevellock.h>
- #include <kernel-features.h>
-+#include <libc-internal.h>
- /* Size and alignment of static TLS block.  */
-@@ -288,8 +289,28 @@ extern void **__libc_dl_error_tsd (void)
- /* This can be set by the debugger before initialization is complete.  */
- static bool __nptl_initial_report_events __attribute_used__;
-+/* Validate and set the default stacksize.  */
-+static void
-+set_default_stacksize (size_t stacksize)
-+{
-+  if (stacksize < PTHREAD_STACK_MIN)
-+    stacksize = PTHREAD_STACK_MIN;
-+
-+  /* Make sure it meets the minimum size that allocate_stack
-+     (allocatestack.c) will demand, which depends on the page size.  */
-+  const uintptr_t pagesz = GLRO(dl_pagesize);
-+  const size_t minstack = pagesz + __static_tls_size + MINIMAL_REST_STACK;
-+
-+  if (stacksize < minstack)
-+    stacksize = minstack;
-+
-+  /* Round the resource limit up to page size.  */
-+  stacksize = ALIGN_UP (stacksize, pagesz);
-+  __default_pthread_attr.stacksize = stacksize;
-+}
-+
- void
--__pthread_initialize_minimal_internal (void)
-+__pthread_initialize_minimal_internal (int argc, char **argv, char **envp)
- {
- #ifndef SHARED
-   /* Unlike in the dynamically linked case the dynamic linker has not
-@@ -413,29 +434,44 @@ __pthread_initialize_minimal_internal (v
-   __static_tls_size = roundup (__static_tls_size, static_tls_align);
--  /* Determine the default allowed stack size.  This is the size used
--     in case the user does not specify one.  */
--  struct rlimit limit;
--  if (getrlimit (RLIMIT_STACK, &limit) != 0
--      || limit.rlim_cur == RLIM_INFINITY)
--    /* The system limit is not usable.  Use an architecture-specific
--       default.  */
--    limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
--  else if (limit.rlim_cur < PTHREAD_STACK_MIN)
--    /* The system limit is unusably small.
--       Use the minimal size acceptable.  */
--    limit.rlim_cur = PTHREAD_STACK_MIN;
-+  /* Initialize the environment.  libc.so gets initialized after us due to a
-+     circular dependency and hence __environ is not available otherwise.  */
-+  __environ = envp; 
--  /* Make sure it meets the minimum size that allocate_stack
--     (allocatestack.c) will demand, which depends on the page size.  */
--  const uintptr_t pagesz = __sysconf (_SC_PAGESIZE);
--  const size_t minstack = pagesz + __static_tls_size + MINIMAL_REST_STACK;
--  if (limit.rlim_cur < minstack)
--    limit.rlim_cur = minstack;
-+#ifndef SHARED
-+  __libc_init_secure ();
-+#endif
--  /* Round the resource limit up to page size.  */
--  limit.rlim_cur = (limit.rlim_cur + pagesz - 1) & -pagesz;
--  __default_pthread_attr.stacksize = limit.rlim_cur;
-+  /* Get the default stack size from the environment variable if it is set and
-+     is valid.  */
-+  size_t stacksize = 0;
-+  char *envval = __secure_getenv ("GLIBC_PTHREAD_STACKSIZE");
-+
-+  if (__builtin_expect (envval != NULL && envval[0] != '\0', 0))
-+    {
-+      char *env_conv = envval;
-+      size_t ret = strtoul (envval, &env_conv, 0);
-+
-+      if (*env_conv == '\0' && env_conv != envval)
-+      stacksize = ret;
-+    }
-+
-+  if (stacksize == 0)
-+    {
-+      /* Determine the default allowed stack size.  */
-+      struct rlimit limit;
-+      if (getrlimit (RLIMIT_STACK, &limit) != 0
-+        || limit.rlim_cur == RLIM_INFINITY)
-+      /* The system limit is not usable.  Use an architecture-specific
-+         default.  */
-+      stacksize = ARCH_STACK_DEFAULT_SIZE;
-+      else
-+      stacksize = limit.rlim_cur;
-+    }
-+
-+  /* Finally, set the default stack size.  This size is used when the user does
-+     not specify a stack size during thread creation.  */
-+  set_default_stacksize (stacksize);
-   __default_pthread_attr.guardsize = GLRO (dl_pagesize);
- #ifdef SHARED
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/tst-default-attr.c glibc-2.12-2-gc4ccff1.fixed/nptl/tst-default-attr.c
---- glibc-2.12-2-gc4ccff1/nptl/tst-default-attr.c      1970-01-01 05:30:00.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/tst-default-attr.c        2013-07-09 23:34:59.598859295 +0530
-@@ -0,0 +1,109 @@
-+/* Verify that default stack size gets set correctly from the environment
-+   variable.
-+
-+   Copyright (C) 2013 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <pthread.h>
-+#include <stdio.h>
-+#include <stdint.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <errno.h>
-+
-+#define RETURN_IF_FAIL(f, ...) \
-+  ({                                                                        \
-+    int ret = f (__VA_ARGS__);                                                      \
-+    if (ret != 0)                                                           \
-+      {                                                                             \
-+      printf ("%s:%d: %s returned %d (errno = %d)\n", __FILE__, __LINE__,   \
-+              #f, ret, errno);                                              \
-+      return ret;                                                           \
-+      }                                                                             \
-+  })
-+
-+/* DEFAULT_STACKSIZE macro is defined in the Makefile.  */
-+static size_t stacksize = DEFAULT_STACKSIZE;
-+
-+static int
-+verify_stacksize_result (pthread_attr_t *attr)
-+{
-+  size_t stack;
-+
-+  RETURN_IF_FAIL (pthread_attr_getstacksize, attr, &stack);
-+
-+  if (stacksize != stack)
-+    {
-+      printf ("failed to set default stacksize (%zu, %zu)\n", stacksize, stack);
-+      return 1;
-+    }
-+
-+  return 0;
-+}
-+
-+static void *
-+thr (void *unused __attribute__ ((unused)))
-+{
-+  pthread_attr_t attr;
-+  int ret;
-+
-+  memset (&attr, 0xab, sizeof attr);
-+  /* To verify that the attributes actually got applied.  */
-+  if ((ret = pthread_getattr_np (pthread_self (), &attr)) != 0)
-+    {
-+      printf ("pthread_getattr_np failed: %s\n", strerror (ret));
-+      goto out;
-+    }
-+
-+  ret = verify_stacksize_result (&attr);
-+
-+out:
-+  return (void *) (uintptr_t) ret;
-+}
-+
-+static int
-+run_threads (void)
-+{
-+  pthread_t t;
-+  void *tret = NULL;
-+
-+  /* Run twice to ensure that the attributes do not get overwritten in the
-+     first run somehow.  */
-+  for (int i = 0; i < 2; i++)
-+    {
-+      RETURN_IF_FAIL (pthread_create, &t, NULL, thr, NULL);
-+      RETURN_IF_FAIL (pthread_join, t, &tret);
-+
-+      if (tret != NULL)
-+      {
-+        puts ("Thread failed");
-+        return 1;
-+      }
-+    }
-+
-+  return 0;
-+}
-+
-+static int
-+do_test (void)
-+{
-+  RETURN_IF_FAIL (run_threads);
-+  return 0;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
diff --git a/src/patches/glibc/glibc-rh663641-3.patch b/src/patches/glibc/glibc-rh663641-3.patch
deleted file mode 100644 (file)
index 182fe99..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/pt-initfini.c glibc-2.12-2-gc4ccff1.fixed/nptl/sysdeps/pthread/pt-initfini.c
---- glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/pt-initfini.c   2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/sysdeps/pthread/pt-initfini.c     2013-07-22 21:52:03.519184065 +0530
-@@ -63,21 +63,21 @@ asm ("\n/*@TESTS_END*/");
- asm ("\n/*@_init_PROLOG_BEGINS*/");
- static void
--call_initialize_minimal (void)
-+call_initialize_minimal (int argc, char **argv, char **envp)
- {
--  extern void __pthread_initialize_minimal_internal (void)
-+  extern void __pthread_initialize_minimal_internal (int, char **, char **)
-     __attribute ((visibility ("hidden")));
--  __pthread_initialize_minimal_internal ();
-+  __pthread_initialize_minimal_internal (argc, argv, envp);
- }
- SECTION (".init");
--extern void __attribute__ ((section (".init"))) _init (void);
-+extern void __attribute__ ((section (".init"))) _init (int, char **, char **);
- void
--_init (void)
-+_init (int argc, char **argv, char **envp)
- {
-   /* The very first thing we must do is to set up the registers.  */
--  call_initialize_minimal ();
-+  call_initialize_minimal (argc, argv, envp);
-   asm ("ALIGN");
-   asm("END_INIT");
diff --git a/src/patches/glibc/glibc-rh663641.patch b/src/patches/glibc/glibc-rh663641.patch
deleted file mode 100644 (file)
index e1ca4f1..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/include/libc-internal.h glibc-2.12-2-gc4ccff1.fixed/include/libc-internal.h
---- glibc-2.12-2-gc4ccff1/include/libc-internal.h      2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/include/libc-internal.h        2013-07-09 23:44:00.272833779 +0530
-@@ -34,4 +34,24 @@ extern void __libc_thread_freeres (void)
- /* Define and initialize `__progname' et. al.  */
- extern void __init_misc (int, char **, char **);
-+/* Align a value by rounding down to closest size.
-+   e.g. Using size of 4096, we get this behavior:
-+      {4095, 4096, 4097} = {0, 4096, 4096}.  */
-+#define ALIGN_DOWN(base, size)        ((base) & -((__typeof__ (base)) (size)))
-+
-+/* Align a value by rounding up to closest size.
-+   e.g. Using size of 4096, we get this behavior:
-+      {4095, 4096, 4097} = {4096, 4096, 8192}.
-+
-+  Note: The size argument has side effects (expanded multiple times).  */
-+#define ALIGN_UP(base, size)  ALIGN_DOWN ((base) + (size) - 1, (size))
-+
-+/* Same as ALIGN_DOWN(), but automatically casts when base is a pointer.  */
-+#define PTR_ALIGN_DOWN(base, size) \
-+  ((__typeof__ (base)) ALIGN_DOWN ((uintptr_t) (base), (size)))
-+
-+/* Same as ALIGN_UP(), but automatically casts when base is a pointer.  */
-+#define PTR_ALIGN_UP(base, size) \
-+  ((__typeof__ (base)) ALIGN_UP ((uintptr_t) (base), (size)))
-+
- #endif /* _LIBC_INTERNAL  */
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/allocatestack.c glibc-2.12-2-gc4ccff1.fixed/nptl/allocatestack.c
---- glibc-2.12-2-gc4ccff1/nptl/allocatestack.c 2013-07-09 23:43:09.427836179 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/allocatestack.c   2013-07-09 23:43:52.727834136 +0530
-@@ -351,7 +351,7 @@ allocate_stack (const struct pthread_att
-   /* Get the stack size from the attribute if it is set.  Otherwise we
-      use the default we determined at start time.  */
--  size = attr->stacksize ?: __default_stacksize;
-+  size = attr->stacksize ?: __default_pthread_attr.stacksize;
-   /* Get memory for the stack.  */
-   if (__builtin_expect (attr->flags & ATTR_FLAG_STACKADDR, 0))
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/nptl-init.c glibc-2.12-2-gc4ccff1.fixed/nptl/nptl-init.c
---- glibc-2.12-2-gc4ccff1/nptl/nptl-init.c     2013-07-09 23:43:09.553836173 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/nptl-init.c       2013-07-09 23:43:52.728834135 +0530
-@@ -435,7 +435,8 @@ __pthread_initialize_minimal_internal (v
-   /* Round the resource limit up to page size.  */
-   limit.rlim_cur = (limit.rlim_cur + pagesz - 1) & -pagesz;
--  __default_stacksize = limit.rlim_cur;
-+  __default_pthread_attr.stacksize = limit.rlim_cur;
-+  __default_pthread_attr.guardsize = GLRO (dl_pagesize);
- #ifdef SHARED
-   /* Transfer the old value from the dynamic linker's internal location.  */
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/pthread_attr_getstacksize.c glibc-2.12-2-gc4ccff1.fixed/nptl/pthread_attr_getstacksize.c
---- glibc-2.12-2-gc4ccff1/nptl/pthread_attr_getstacksize.c     2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/pthread_attr_getstacksize.c       2013-07-09 23:43:52.817834131 +0530
-@@ -33,7 +33,7 @@ __pthread_attr_getstacksize (attr, stack
-   /* If the user has not set a stack size we return what the system
-      will use as the default.  */
--  *stacksize = iattr->stacksize ?: __default_stacksize;
-+  *stacksize = iattr->stacksize ?: __default_pthread_attr.stacksize;
-   return 0;
- }
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/pthread_barrier_init.c glibc-2.12-2-gc4ccff1.fixed/nptl/pthread_barrier_init.c
---- glibc-2.12-2-gc4ccff1/nptl/pthread_barrier_init.c  2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/pthread_barrier_init.c    2013-07-09 23:43:52.821834131 +0530
-@@ -23,7 +23,7 @@
- #include <kernel-features.h>
--static const struct pthread_barrierattr default_attr =
-+static const struct pthread_barrierattr default_barrierattr =
-   {
-     .pshared = PTHREAD_PROCESS_PRIVATE
-   };
-@@ -43,7 +43,7 @@ pthread_barrier_init (barrier, attr, cou
-   const struct pthread_barrierattr *iattr
-     = (attr != NULL
-        ? iattr = (struct pthread_barrierattr *) attr
--       : &default_attr);
-+       : &default_barrierattr);
-   if (iattr->pshared != PTHREAD_PROCESS_PRIVATE
-       && __builtin_expect (iattr->pshared != PTHREAD_PROCESS_SHARED, 0))
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/pthread_create.c glibc-2.12-2-gc4ccff1.fixed/nptl/pthread_create.c
---- glibc-2.12-2-gc4ccff1/nptl/pthread_create.c        2013-07-09 23:43:09.542836173 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/pthread_create.c  2013-07-09 23:43:52.822834131 +0530
-@@ -425,15 +425,6 @@ start_thread (void *arg)
- }
--/* Default thread attributes for the case when the user does not
--   provide any.  */
--static const struct pthread_attr default_attr =
--  {
--    /* Just some value > 0 which gets rounded to the nearest page size.  */
--    .guardsize = 1,
--  };
--
--
- int
- __pthread_create_2_1 (newthread, attr, start_routine, arg)
-      pthread_t *newthread;
-@@ -447,7 +438,7 @@ __pthread_create_2_1 (newthread, attr, s
-   if (iattr == NULL)
-     /* Is this the best idea?  On NUMA machines this could mean
-        accessing far-away memory.  */
--    iattr = &default_attr;
-+    iattr = &__default_pthread_attr;
-   struct pthread *pd = NULL;
-   int err = ALLOCATE_STACK (iattr, &pd);
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/pthread_mutex_init.c glibc-2.12-2-gc4ccff1.fixed/nptl/pthread_mutex_init.c
---- glibc-2.12-2-gc4ccff1/nptl/pthread_mutex_init.c    2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/pthread_mutex_init.c      2013-07-09 23:43:52.822834131 +0530
-@@ -24,7 +24,7 @@
- #include <kernel-features.h>
- #include "pthreadP.h"
--static const struct pthread_mutexattr default_attr =
-+static const struct pthread_mutexattr default_mutexattr =
-   {
-     /* Default is a normal mutex, not shared between processes.  */
-     .mutexkind = PTHREAD_MUTEX_NORMAL
-@@ -45,7 +45,8 @@ __pthread_mutex_init (mutex, mutexattr)
-   assert (sizeof (pthread_mutex_t) <= __SIZEOF_PTHREAD_MUTEX_T);
--  imutexattr = (const struct pthread_mutexattr *) mutexattr ?: &default_attr;
-+  imutexattr = ((const struct pthread_mutexattr *) mutexattr
-+              ?: &default_mutexattr);
-   /* Sanity checks.  */
-   switch (__builtin_expect (imutexattr->mutexkind
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/pthreadP.h glibc-2.12-2-gc4ccff1.fixed/nptl/pthreadP.h
---- glibc-2.12-2-gc4ccff1/nptl/pthreadP.h      2013-07-09 23:43:09.553836173 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/pthreadP.h        2013-07-09 23:43:52.823834131 +0530
-@@ -148,8 +148,8 @@ enum
- /* Internal variables.  */
--/* Default stack size.  */
--extern size_t __default_stacksize attribute_hidden;
-+/* Default pthread attributes.  */
-+extern struct pthread_attr __default_pthread_attr attribute_hidden;
- /* Size and alignment of static TLS block.  */
- extern size_t __static_tls_size attribute_hidden;
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/pthread_rwlock_init.c glibc-2.12-2-gc4ccff1.fixed/nptl/pthread_rwlock_init.c
---- glibc-2.12-2-gc4ccff1/nptl/pthread_rwlock_init.c   2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/pthread_rwlock_init.c     2013-07-09 23:43:52.823834131 +0530
-@@ -21,7 +21,7 @@
- #include <kernel-features.h>
--static const struct pthread_rwlockattr default_attr =
-+static const struct pthread_rwlockattr default_rwlockattr =
-   {
-     .lockkind = PTHREAD_RWLOCK_DEFAULT_NP,
-     .pshared = PTHREAD_PROCESS_PRIVATE
-@@ -35,7 +35,7 @@ __pthread_rwlock_init (rwlock, attr)
- {
-   const struct pthread_rwlockattr *iattr;
--  iattr = ((const struct pthread_rwlockattr *) attr) ?: &default_attr;
-+  iattr = ((const struct pthread_rwlockattr *) attr) ?: &default_rwlockattr;
-   memset (rwlock, '\0', sizeof (*rwlock));
-diff -pruN glibc-2.12-2-gc4ccff1/nptl/vars.c glibc-2.12-2-gc4ccff1.fixed/nptl/vars.c
---- glibc-2.12-2-gc4ccff1/nptl/vars.c  2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/nptl/vars.c    2013-07-09 23:43:52.824834131 +0530
-@@ -21,13 +21,9 @@
- #include <tls.h>
- #include <unistd.h>
--/* Default stack size.  */
--size_t __default_stacksize attribute_hidden
--#ifdef SHARED
--;
--#else
--  = PTHREAD_STACK_MIN;
--#endif
-+/* Default thread attributes for the case when the user does not
-+   provide any.  */
-+struct pthread_attr __default_pthread_attr attribute_hidden;
- /* Flag whether the machine is SMP or not.  */
- int __is_smp attribute_hidden;
diff --git a/src/patches/glibc/glibc-rh667974.patch b/src/patches/glibc/glibc-rh667974.patch
deleted file mode 100644 (file)
index 48aacac..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-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
deleted file mode 100644 (file)
index c5aa2d4..0000000
+++ /dev/null
@@ -1,714 +0,0 @@
-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
deleted file mode 100644 (file)
index fd6df1e..0000000
+++ /dev/null
@@ -1,352 +0,0 @@
-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
deleted file mode 100644 (file)
index 27b7361..0000000
+++ /dev/null
@@ -1,514 +0,0 @@
-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
deleted file mode 100644 (file)
index 0c86f25..0000000
+++ /dev/null
@@ -1,1638 +0,0 @@
-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
deleted file mode 100644 (file)
index ce98926..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-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
deleted file mode 100644 (file)
index 4c7fc8a..0000000
+++ /dev/null
@@ -1,333 +0,0 @@
-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
deleted file mode 100644 (file)
index 1036769..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-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
deleted file mode 100644 (file)
index aa2adf1..0000000
+++ /dev/null
@@ -1,6165 +0,0 @@
-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
deleted file mode 100644 (file)
index 3932eb8..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-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
deleted file mode 100644 (file)
index 0e6c72b..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-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
deleted file mode 100644 (file)
index e8053dc..0000000
+++ /dev/null
@@ -1,1284 +0,0 @@
-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
deleted file mode 100644 (file)
index 9d30d38..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-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
deleted file mode 100644 (file)
index 961c805..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-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
deleted file mode 100644 (file)
index d25ce84..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-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
deleted file mode 100644 (file)
index 0660431..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-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
deleted file mode 100644 (file)
index 742a79a..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-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
deleted file mode 100644 (file)
index fdde4b5..0000000
+++ /dev/null
@@ -1,875 +0,0 @@
-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
deleted file mode 100644 (file)
index 63b971e..0000000
+++ /dev/null
@@ -1,449 +0,0 @@
-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
deleted file mode 100644 (file)
index 26949fe..0000000
+++ /dev/null
@@ -1,503 +0,0 @@
-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
deleted file mode 100644 (file)
index bd286e1..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-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
deleted file mode 100644 (file)
index afadc66..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-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
deleted file mode 100644 (file)
index dc979be..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-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
deleted file mode 100644 (file)
index 8bd121b..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-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
deleted file mode 100644 (file)
index d331996..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-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
deleted file mode 100644 (file)
index 26addbf..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-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
deleted file mode 100644 (file)
index 45808af..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-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
deleted file mode 100644 (file)
index d2f7b55..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644 (file)
index 2dd3f8a..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-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
deleted file mode 100644 (file)
index 5d3c131..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-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
deleted file mode 100644 (file)
index 1eea554..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-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
deleted file mode 100644 (file)
index 728464d..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-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
deleted file mode 100644 (file)
index cf12246..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-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
deleted file mode 100644 (file)
index 960c192..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-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
deleted file mode 100644 (file)
index adefea0..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-       * 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
deleted file mode 100644 (file)
index 6c74ccf..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-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
deleted file mode 100644 (file)
index 43157cd..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-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
deleted file mode 100644 (file)
index a53e770..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-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
deleted file mode 100644 (file)
index 6f9dd12..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-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
deleted file mode 100644 (file)
index 0176dc9..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-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
deleted file mode 100644 (file)
index 721d4a4..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-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
deleted file mode 100644 (file)
index 3f629b4..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-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
deleted file mode 100644 (file)
index 8252062..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644 (file)
index 4418ac6..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-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
deleted file mode 100644 (file)
index 8f76beb..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-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
deleted file mode 100644 (file)
index 58d96d8..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- 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
deleted file mode 100644 (file)
index 0a49b8c..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-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
deleted file mode 100644 (file)
index a554d4b..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-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
deleted file mode 100644 (file)
index d75773e..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-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
deleted file mode 100644 (file)
index 80ba5e8..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-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
deleted file mode 100644 (file)
index 1147af6..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-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
-@@ -178,7 +178,8 @@ cache_addgr (struct database_dyn *db, in
-       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);
-+      size_t alloca_used = 0;
-+      char *buf = alloca_account (buf_len, alloca_used);
-       ssize_t n;
-       size_t cnt;
-@@ -190,7 +191,8 @@ cache_addgr (struct database_dyn *db, in
-       /* 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));
-+      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;
-@@ -205,10 +207,10 @@ cache_addgr (struct database_dyn *db, in
-        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;
-+      bool dataset_in_stack_or_freed = false;
-       dataset = NULL;
--      if (he == NULL)
-+      if (he == NULL || ! __libc_use_alloca (alloca_used + total + n))
-       dataset = (struct dataset *) mempool_alloc (db, total + n, 1);
-       if (dataset == NULL)
-@@ -216,10 +218,10 @@ cache_addgr (struct database_dyn *db, in
-         /* 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);
-+        dataset = (struct dataset *) alloca_account (total + n, alloca_used);
-         /* We cannot add this record to the permanent database.  */
--        alloca_used = true;
-+        dataset_in_stack_or_freed = true;
-       }
-       dataset->head.allocsize = total + n;
-@@ -273,6 +275,14 @@ cache_addgr (struct database_dyn *db, in
-                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
-           {
-@@ -288,7 +298,7 @@ cache_addgr (struct database_dyn *db, in
-                 key_copy = (char *) newp + (key_copy - (char *) dataset);
-                 dataset = memcpy (newp, dataset, total + n);
--                alloca_used = false;
-+                dataset_in_stack_or_freed = false;
-               }
-             /* Mark the old record as obsolete.  */
-@@ -303,7 +313,7 @@ cache_addgr (struct database_dyn *db, in
-         assert (fd != -1);
- #ifdef HAVE_SENDFILE
--        if (__builtin_expect (db->mmap_used, 1) && !alloca_used)
-+        if (__builtin_expect (db->mmap_used, 1) && !dataset_in_stack_or_freed)
-           {
-             assert (db->wr_fd != -1);
-             assert ((char *) &dataset->resp > (char *) db->data);
-@@ -330,7 +340,7 @@ cache_addgr (struct database_dyn *db, in
-       /* Add the record to the database.  But only if it has not been
-        stored on the stack.  */
--      if (! alloca_used)
-+      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
deleted file mode 100644 (file)
index adc6c99..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-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
deleted file mode 100644 (file)
index fc0e2e0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-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
deleted file mode 100644 (file)
index 3aea97e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-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
deleted file mode 100644 (file)
index 62b5492..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-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
deleted file mode 100644 (file)
index f2c90e2..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-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
deleted file mode 100644 (file)
index 15774b4..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-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
deleted file mode 100644 (file)
index e21caaa..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-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
deleted file mode 100644 (file)
index 729c5a4..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-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
deleted file mode 100644 (file)
index e98b9c0..0000000
+++ /dev/null
@@ -1,657 +0,0 @@
-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
deleted file mode 100644 (file)
index 5aa9084..0000000
+++ /dev/null
@@ -1,862 +0,0 @@
-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-rh804686.patch b/src/patches/glibc/glibc-rh804686.patch
deleted file mode 100644 (file)
index 292cd84..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
---- a/resolv/res_query.c       2010-05-04 05:27:23.000000000 -0600
-+++ a/resolv/res_query.c       2012-08-03 13:43:10.761506047 -0600
-@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp,
-                 int *resplen2)
- {
-       HEADER *hp = (HEADER *) answer;
-+      HEADER *hp2;
-       int n, use_malloc = 0;
-         u_int oflags = statp->_flags;
-@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp,
-         /* __libc_res_nsend might have reallocated the buffer.  */
-         hp = (HEADER *) *answerp;
--      /* We simplify the following tests by assigning HP to HP2.  It
--         is easy to verify that this is the same as ignoring all
--         tests of HP2.  */
--      HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp;
--
--      if (n < (int) sizeof (HEADER) && answerp2 != NULL
--          && *resplen2 > (int) sizeof (HEADER))
-+      /* We simplify the following tests by assigning HP to HP2 or
-+         vice versa.  It is easy to verify that this is the same as
-+         ignoring all tests of HP or HP2.  */
-+      if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER))
-         {
--          /* Special case of partial answer.  */
--          assert (hp != hp2);
--          hp = hp2;
-+          hp2 = hp;
-         }
--      else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER)
--               && n > (int) sizeof (HEADER))
-+      else
-         {
--          /* Special case of partial answer.  */
--          assert (hp != hp2);
--          hp2 = hp;
-+          hp2 = (HEADER *) *answerp2;
-+          if (n < (int) sizeof (HEADER))
-+            {
-+              hp = hp2;
-+            }
-         }
-+      /* Make sure both hp and hp2 are defined */
-+      assert((hp != NULL) && (hp2 != NULL));
-+
-       if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0)
-           && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) {
- #ifdef DEBUG
---- a/resolv/res_send.c        2012-08-03 13:31:26.622168278 -0600
-+++ a/resolv/res_send.c        2012-08-03 13:43:11.881501862 -0600
-@@ -549,7 +549,7 @@ __libc_res_nsend(res_state statp, const
-                                   ns, ansp, ansp2, nansp2, resplen2);
-                       if (n < 0)
-                               return (-1);
--                      if (n == 0)
-+                      if (n == 0 && (buf2 == NULL || *resplen2 == 0))
-                               goto next_ns;
-               } else {
-                       /* Use datagrams. */
-@@ -559,7 +559,7 @@ __libc_res_nsend(res_state statp, const
-                                   ansp2, nansp2, resplen2);
-                       if (n < 0)
-                               return (-1);
--                      if (n == 0)
-+                      if (n == 0 && (buf2 == NULL || *resplen2 == 0))
-                               goto next_ns;
-                       if (v_circuit)
-                         // XXX Check whether both requests failed or
-@@ -1275,10 +1275,14 @@ send_dg(res_state statp,
-                               (*thisresplenp > *thisanssizp)
-                               ? *thisanssizp : *thisresplenp);
--                      if (recvresp1 || (buf2 != NULL && recvresp2))
-+                      if (recvresp1 || (buf2 != NULL && recvresp2)) {
-+                        *resplen2 = 0;
-                         return resplen;
-+                      }
-                       if (buf2 != NULL)
-                         {
-+                          /* No data from the first reply.  */
-+                          resplen = 0;
-                           /* We are waiting for a possible second reply.  */
-                           if (hp->id == anhp->id)
-                             recvresp1 = 1;
diff --git a/src/patches/glibc/glibc-rh804689.patch b/src/patches/glibc/glibc-rh804689.patch
deleted file mode 100644 (file)
index a96a33f..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-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-rh806404.patch b/src/patches/glibc/glibc-rh806404.patch
deleted file mode 100644 (file)
index b78b903..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -rup a/nss/getnssent.c b/nss/getnssent.c
---- a/nss/getnssent.c  2004-12-13 14:48:34.000000000 -0700
-+++ b/nss/getnssent.c  2012-03-23 13:46:54.639095121 -0600
-@@ -33,7 +33,7 @@ __nss_getent (getent_r_function func, vo
-       *buffer = malloc (*buffer_size);
-     }
--  while (buffer != NULL
-+  while (*buffer != NULL
-        && func (resbuf, *buffer, *buffer_size, &result, h_errnop) == ERANGE
-        && (h_errnop == NULL || *h_errnop == NETDB_INTERNAL))
-     {
diff --git a/src/patches/glibc/glibc-rh808337.patch b/src/patches/glibc/glibc-rh808337.patch
deleted file mode 100644 (file)
index bc20cbc..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644 (file)
index 9a2cae3..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-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
deleted file mode 100644 (file)
index 81aa63a..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-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-rh809726.patch b/src/patches/glibc/glibc-rh809726.patch
deleted file mode 100644 (file)
index 0f264c8..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-diff -rup a/localedata/locales/fi_FI b/localedata/locales/fi_FI
---- a/localedata/locales/fi_FI 2012-07-11 14:48:45.994749607 -0600
-+++ b/localedata/locales/fi_FI 2012-07-11 14:50:20.003277477 -0600
-@@ -63,60 +63,65 @@ reorder-after <z>
- <a-diaerisis>
- <o-diaerisis>
--reorder-after <U005A>
-+reorder-after <U007A>
- <U00E5> <a-ring>;<BAS>;<MIN>;IGNORE
--<U00C5> <a-ring>;<BAS>;<CAP>;IGNORE
- <U01FB> <a-ring>;<ACA>;<MIN>;IGNORE
--<U01FA> <a-ring>;<ACA>;<CAP>;IGNORE
- <U00E4> <a-diaerisis>;<BAS>;<MIN>;IGNORE
--<U00C4> <a-diaerisis>;<BAS>;<CAP>;IGNORE
- <U00E6> <a-diaerisis>;<REU>;<MIN>;IGNORE
--<U00C6> <a-diaerisis>;<REU>;<CAP>;IGNORE
- <U01FD> <a-diaerisis>;<U01FD>;<MIN>;IGNORE
--<U01FC> <a-diaerisis>;<U01FD>;<CAP>;IGNORE
- <U01E3> <a-diaerisis>;<MAC>;<MIN>;IGNORE
--<U01E2> <a-diaerisis>;<MAC>;<CAP>;IGNORE
- <U00F6> <o-diaerisis>;<BAS>;<MIN>;IGNORE
--<U00D6> <o-diaerisis>;<BAS>;<CAP>;IGNORE
- <U00F8> <o-diaerisis>;<U00D8>;<MIN>;IGNORE
--<U00D8> <o-diaerisis>;<U00D8>;<CAP>;IGNORE
- <U01FF> <o-diaerisis>;<U01FF>;<MIN>;IGNORE
--<U01FE> <o-diaerisis>;<U01FF>;<CAP>;IGNORE
- <U00F5> <o-diaerisis>;<TIL>;<MIN>;IGNORE
-+reorder-after <U005A>
-+<U00C5> <a-ring>;<BAS>;<CAP>;IGNORE
-+<U01FA> <a-ring>;<ACA>;<CAP>;IGNORE
-+<U00C4> <a-diaerisis>;<BAS>;<CAP>;IGNORE
-+<U00C6> <a-diaerisis>;<REU>;<CAP>;IGNORE
-+<U01FC> <a-diaerisis>;<U01FD>;<CAP>;IGNORE
-+<U01E2> <a-diaerisis>;<MAC>;<CAP>;IGNORE
-+<U00D6> <o-diaerisis>;<BAS>;<CAP>;IGNORE
-+<U00D8> <o-diaerisis>;<U00D8>;<CAP>;IGNORE
-+<U01FE> <o-diaerisis>;<U01FF>;<CAP>;IGNORE
- <U00D5> <o-diaerisis>;<TIL>;<CAP>;IGNORE
--reorder-after <U016A>
-+reorder-after <U016B>
- <U0076> <v>;<U0056>;<BAS>;<MIN>
--<U0056> <v>;<U0056>;<BAS>;<CAP>
- <U1E7D> <v>;<U0056>;<TIL>;<MIN>
--<U1E7C> <v>;<U0056>;<TIL>;<CAP>
- <U0077> <w>;<U0057>;<BAS>;<MIN>
--<U0057> <w>;<U0057>;<BAS>;<CAP>
- <U1E83> <w>;<U0057>;<ACA>;<MIN>
--<U1E82> <w>;<U0057>;<ACA>;<CAP>
- <U1E81> <w>;<U0057>;<GRA>;<MIN>
--<U1E80> <w>;<U0057>;<GRA>;<CAP>
- <U0175> <w>;<U0057>;<CIR>;<MIN>
--<U0174> <w>;<U0057>;<CIR>;<CAP>
- <U1E85> <w>;<U0057>;<REU>;<MIN>
--<U1E84> <w>;<U0057>;<REU>;<CAP>
- <U1E87> <w>;<U0057>;<PCT>;<MIN>
-+reorder-after <U016A>
-+<U0056> <v>;<U0056>;<BAS>;<CAP>
-+<U1E7C> <v>;<U0056>;<TIL>;<CAP>
-+<U0057> <w>;<U0057>;<BAS>;<CAP>
-+<U1E82> <w>;<U0057>;<ACA>;<CAP>
-+<U1E80> <w>;<U0057>;<GRA>;<CAP>
-+<U0174> <w>;<U0057>;<CIR>;<CAP>
-+<U1E84> <w>;<U0057>;<REU>;<CAP>
- <U1E86> <w>;<U0057>;<PCT>;<CAP>
- reorder-after <U00FF>
- <U00FC> <y>;<DTT>;<MIN>;IGNORE
-+reorder-after <U0178>
- <U00DC> <y>;<DTT>;<CAP>;IGNORE
- %  Present in iso14651_t1, but these definitions seem to have been
- %  removed from latest iso14651 tables.
--reorder-after <U0162>
-+reorder-after <U0163>
- <U00FE> "<t><h>";"<LIG><LIG>";"<MIN><MIN>";IGNORE
-+reorder-after <U0162>
- <U00DE> "<t><h>";"<LIG><LIG>";"<CAP><CAP>";IGNORE
- reorder-after <U0064>
- <U00F0> <d>;<PCL>;<MIN>;IGNORE
--<U00D0> <d>;<PCL>;<CAP>;IGNORE
- <U0111> <d>;<OBL>;<MIN>;IGNORE
-+reorder-after <U0044>
-+<U00D0> <d>;<PCL>;<CAP>;IGNORE
- <U0110> <d>;<OBL>;<CAP>;IGNORE
- reorder-end
diff --git a/src/patches/glibc/glibc-rh823909.patch b/src/patches/glibc/glibc-rh823909.patch
deleted file mode 100644 (file)
index ed9c4c9..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/iconvdata/ibm930.c b/iconvdata/ibm930.c
-index 25a9be0..6f758eb 100644
---- a/iconvdata/ibm930.c
-+++ b/iconvdata/ibm930.c
-@@ -162,7 +162,8 @@ enum
-       while (ch > rp2->end)                                                 \
-         ++rp2;                                                              \
-                                                                             \
--      if (__builtin_expect (ch < rp2->start, 0)                             \
-+      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
-+          || __builtin_expect (ch < rp2->start, 0)                          \
-           || (res = __ibm930db_to_ucs4[ch + rp2->idx],                      \
-               __builtin_expect (res, L'\1') == L'\0' && ch != '\0'))        \
-         {                                                                   \
-@@ -215,7 +216,8 @@ enum
-       while (ch > rp2->end)                                                 \
-         ++rp2;                                                              \
-                                                                             \
--      if (__builtin_expect (ch < rp2->start, 0)                             \
-+      if (__builtin_expect (rp2->start == 0xffff, 0)                        \
-+          || __builtin_expect (ch < rp2->start, 0)                          \
-           || (cp = __ucs4_to_ibm930db[ch + rp2->idx],                       \
-               __builtin_expect (cp[0], L'\1')== L'\0' && ch != '\0'))       \
-         {                                                                   \
-
diff --git a/src/patches/glibc/glibc-rh826149.patch b/src/patches/glibc/glibc-rh826149.patch
deleted file mode 100644 (file)
index 805572b..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-diff -Nrup a/posix/fnmatch.c b/posix/fnmatch.c
---- a/posix/fnmatch.c  2012-05-25 12:37:26.566678872 -0400
-+++ b/posix/fnmatch.c  2012-05-25 13:08:44.451972286 -0400
-@@ -333,6 +333,7 @@ fnmatch (pattern, string, flags)
- # if HANDLE_MULTIBYTE
-   if (__builtin_expect (MB_CUR_MAX, 1) != 1)
-     {
-+      const char *orig_pattern = pattern;
-       mbstate_t ps;
-       size_t n;
-       const char *p;
-@@ -356,10 +357,9 @@ fnmatch (pattern, string, flags)
-                                                alloca_used);
-         n = mbsrtowcs (wpattern, &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: Fall back to single byte matching. */
-+          goto try_singlebyte;
-+
-         if (p)
-           {
-             memset (&ps, '\0', sizeof (ps));
-@@ -371,10 +371,8 @@ fnmatch (pattern, string, flags)
-       prepare_wpattern:
-         n = mbsrtowcs (NULL, &pattern, 0, &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: Fall back to single byte matching. */
-+          goto try_singlebyte;
-         if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0))
-           {
-             __set_errno (ENOMEM);
-@@ -401,14 +399,8 @@ fnmatch (pattern, string, flags)
-                                               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?  */
--          free_return:
--            free (wpattern_malloc);
--            return -1;
--          }
-+          /* Something wrong: Fall back to single byte matching. */
-+          goto free_and_try_singlebyte;
-         if (p)
-           {
-             memset (&ps, '\0', sizeof (ps));
-@@ -420,10 +412,8 @@ fnmatch (pattern, string, flags)
-       prepare_wstring:
-         n = mbsrtowcs (NULL, &string, 0, &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?  */
--          goto free_return;
-+          /* Something wrong: Fall back to single byte matching. */
-+          goto free_and_try_singlebyte;
-         if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0))
-           {
-             free (wpattern_malloc);
-@@ -450,6 +440,11 @@ fnmatch (pattern, string, flags)
-       free (wpattern_malloc);
-       return res;
-+
-+      free_and_try_singlebyte:
-+      free(wpattern_malloc);
-+      try_singlebyte:
-+      pattern = orig_pattern;
-     }
- # endif  /* mbstate_t and mbsrtowcs or _LIBC.  */
diff --git a/src/patches/glibc/glibc-rh827362.patch b/src/patches/glibc/glibc-rh827362.patch
deleted file mode 100644 (file)
index 7e6d07e..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/libio/Makefile glibc-2.12-2-gc4ccff1.fseek/libio/Makefile
---- glibc-2.12-2-gc4ccff1/libio/Makefile       2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fseek/libio/Makefile 2012-09-05 17:28:08.699360413 +0530
-@@ -58,7 +58,7 @@ tests = tst_swprintf tst_wprintf tst_sws
-       tst-memstream1 tst-memstream2 \
-       tst-wmemstream1 tst-wmemstream2 \
-       bug-memstream1 bug-wmemstream1 \
--      tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos
-+      tst-setvbuf1 tst-popen1 tst-fgetwc bug-wsetpos tst-fseek
- test-srcs = test-freopen
- all: # Make this the default target; it will be defined in Rules.
-diff -pruN glibc-2.12-2-gc4ccff1/libio/tst-fseek.c glibc-2.12-2-gc4ccff1.fseek/libio/tst-fseek.c
---- glibc-2.12-2-gc4ccff1/libio/tst-fseek.c    1970-01-01 05:30:00.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fseek/libio/tst-fseek.c      2012-09-05 17:27:33.606359692 +0530
-@@ -0,0 +1,153 @@
-+/* Verify that fseek/ftell combination works for wide chars.
-+
-+   Copyright (C) 2012 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <locale.h>
-+#include <errno.h>
-+#include <wchar.h>
-+#include <unistd.h>
-+#include <string.h>
-+
-+/* Defined in test-skeleton.c.  */
-+static int create_temp_file (const char *base, char **filename);
-+
-+
-+static int
-+do_seek_end (FILE *fp)
-+{
-+  long save;
-+
-+  if (fp == NULL)
-+    {
-+      printf ("do_seek_end: fopen: %s\n", strerror (errno));
-+      return 1;
-+    }
-+
-+  if (fputws (L"abc\n", fp) == -1)
-+    {
-+      printf ("do_seek_end: fputws: %s\n", strerror (errno));
-+      return 1;
-+    }
-+
-+  save = ftell (fp);
-+  rewind (fp);
-+
-+  if (fseek (fp, 0, SEEK_END) == -1)
-+    {
-+      printf ("do_seek_end: fseek: %s\n", strerror (errno));
-+      return 1;
-+    }
-+
-+  if (save != ftell (fp))
-+    {
-+      printf ("save = %ld, ftell = %ld\n", save, ftell (fp));
-+      return 1;
-+    }
-+
-+  return 0;
-+}
-+
-+int
-+do_seek_set (FILE *fp)
-+{
-+  long save;
-+
-+  if (fputws (L"abc\n", fp) == -1)
-+    {
-+      printf ("seek_set: fputws: %s\n", strerror (errno));
-+      return 1;
-+    }
-+
-+  save = ftell (fp);
-+
-+  if (fputws (L"xyz\n", fp) == -1)
-+    {
-+      printf ("seek_set: fputws: %s\n", strerror (errno));
-+      return 1;
-+    }
-+
-+  if (fseek (fp, save, SEEK_SET) == -1)
-+    {
-+      printf ("seek_set: fseek: %s\n", strerror (errno));
-+      return 1;
-+    }
-+
-+  if (save != ftell (fp))
-+    {
-+      printf ("save = %ld, ftell = %ld\n", save, ftell (fp));
-+      return 1;
-+    }
-+
-+  return 0;
-+}
-+
-+static int
-+do_test (void)
-+{
-+  if (setlocale (LC_ALL, "en_US.utf8") == NULL)
-+    {
-+      printf ("Cannot set en_US.utf8 locale.\n");
-+      exit (1);
-+    }
-+
-+  int ret = 0;
-+  char *filename;
-+  int fd = create_temp_file ("tst-fseek.out", &filename);
-+
-+  if (fd == -1)
-+    return 1;
-+
-+  FILE *fp = fdopen (fd, "w+");
-+  if (fp == NULL)
-+    {
-+      printf ("seek_set: fopen: %s\n", strerror (errno));
-+      close (fd);
-+      return 1;
-+    }
-+
-+  if (do_seek_set (fp))
-+    {
-+      printf ("SEEK_SET test failed\n");
-+      ret = 1;
-+    }
-+
-+  /* Reopen the file.  */
-+  fclose (fp);
-+  fp = fopen (filename, "w+");
-+  if (fp == NULL)
-+    {
-+      printf ("seek_end: fopen: %s\n", strerror (errno));
-+      return 1;
-+    }
-+
-+  if (do_seek_end (fp))
-+    {
-+      printf ("SEEK_END test failed\n");
-+      ret = 1;
-+    }
-+
-+  fclose (fp);
-+
-+  return ret;
-+}
-+
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff -pruN glibc-2.12-2-gc4ccff1/libio/wfileops.c glibc-2.12-2-gc4ccff1.fseek/libio/wfileops.c
---- glibc-2.12-2-gc4ccff1/libio/wfileops.c     2010-05-04 16:57:23.000000000 +0530
-+++ glibc-2.12-2-gc4ccff1.fseek/libio/wfileops.c       2012-09-05 17:27:33.608359685 +0530
-@@ -547,6 +547,55 @@ _IO_wfile_sync (fp)
- }
- INTDEF(_IO_wfile_sync)
-+/* Adjust the internal buffer pointers to reflect the state in the external
-+   buffer.  The content between fp->_IO_read_base and fp->_IO_read_ptr is
-+   assumed to be converted and available in the range
-+   fp->_wide_data->_IO_read_base and fp->_wide_data->_IO_read_end.  */
-+static inline int
-+adjust_wide_data (_IO_FILE *fp, bool do_convert)
-+{
-+  struct _IO_codecvt *cv = fp->_codecvt;
-+
-+  int clen = (*cv->__codecvt_do_encoding) (cv);
-+
-+  /* Take the easy way out for constant length encodings if we don't need to
-+     convert.  */
-+  if (!do_convert && clen > 0)
-+    {
-+      fp->_wide_data->_IO_read_end += ((fp->_IO_read_ptr - fp->_IO_read_base)
-+                                     / clen);
-+      goto done;
-+    }
-+
-+  enum __codecvt_result status;
-+  const char *read_stop = (const char *) fp->_IO_read_base;
-+  do
-+    {
-+
-+      fp->_wide_data->_IO_last_state = fp->_wide_data->_IO_state;
-+      status = (*cv->__codecvt_do_in) (cv, &fp->_wide_data->_IO_state,
-+                                     fp->_IO_read_base, fp->_IO_read_ptr,
-+                                     &read_stop,
-+                                     fp->_wide_data->_IO_read_base,
-+                                     fp->_wide_data->_IO_buf_end,
-+                                     &fp->_wide_data->_IO_read_end);
-+
-+      /* Should we return EILSEQ?  */
-+      if (__builtin_expect (status == __codecvt_error, 0))
-+      {
-+        fp->_flags |= _IO_ERR_SEEN;
-+        return -1;
-+      }
-+    }
-+  while (__builtin_expect (status == __codecvt_partial, 0));
-+
-+done:
-+  /* Now seek to the end of the read buffer.  */
-+  fp->_wide_data->_IO_read_ptr = fp->_wide_data->_IO_read_end;
-+
-+  return 0;
-+}
-+
- _IO_off64_t
- _IO_wfile_seekoff (fp, offset, dir, mode)
-      _IO_FILE *fp;
-@@ -695,6 +744,10 @@ _IO_wfile_seekoff (fp, offset, dir, mode
-                    fp->_wide_data->_IO_buf_base);
-         _IO_wsetp (fp, fp->_wide_data->_IO_buf_base,
-                    fp->_wide_data->_IO_buf_base);
-+
-+        if (adjust_wide_data (fp, false))
-+          goto dumb;
-+
-         _IO_mask_flags (fp, 0, _IO_EOF_SEEN);
-         goto resync;
-       }
-@@ -735,6 +788,10 @@ _IO_wfile_seekoff (fp, offset, dir, mode
-   _IO_wsetg (fp, fp->_wide_data->_IO_buf_base,
-            fp->_wide_data->_IO_buf_base, fp->_wide_data->_IO_buf_base);
-   _IO_wsetp (fp, fp->_wide_data->_IO_buf_base, fp->_wide_data->_IO_buf_base);
-+
-+  if (adjust_wide_data (fp, true))
-+    goto dumb;
-+
-   fp->_offset = result + count;
-   _IO_mask_flags (fp, 0, _IO_EOF_SEEN);
-   return offset;
diff --git a/src/patches/glibc/glibc-rh830127.patch b/src/patches/glibc/glibc-rh830127.patch
deleted file mode 100644 (file)
index 06dea73..0000000
+++ /dev/null
@@ -1,403 +0,0 @@
-diff -Nrup a/stdio-common/bug22.c b/stdio-common/bug22.c
---- a/stdio-common/bug22.c     2010-05-04 05:27:23.000000000 -0600
-+++ b/stdio-common/bug22.c     2012-08-03 13:56:40.887829210 -0600
-@@ -1,12 +1,22 @@
- /* BZ #5424 */
- #include <stdio.h>
-+#include <errno.h>
-+/* INT_MAX + 1 */
- #define N 2147483648
-+/* (INT_MAX / 2) + 2 */
-+#define N2 1073741825
-+
-+/* INT_MAX - 3 */
-+#define N3 2147483644
-+
- #define STRINGIFY(S) #S
- #define MAKE_STR(S) STRINGIFY(S)
- #define SN MAKE_STR(N)
-+#define SN2 MAKE_STR(N2)
-+#define SN3 MAKE_STR(N3)
- static int
- do_test (void)
-@@ -20,13 +30,27 @@ do_test (void)
-       return 1;
-     }
--  ret = fprintf (fp, "%" SN "d%" SN "d", 1, 1);
-+  ret = fprintf (fp, "%" SN "d", 1);
-+  printf ("ret = %d\n", ret);
-+  if (ret != -1 || errno != EOVERFLOW)
-+        return 1;
-+
-+  ret = fprintf (fp, "%." SN "d", 1);
-+  printf ("ret = %d\n", ret);
-+  if (ret != -1 || errno != EOVERFLOW)
-+        return 1;
-+
-+  ret = fprintf (fp, "%." SN3 "d", 1);
-+  printf ("ret = %d\n", ret);
-+  if (ret != -1 || errno != EOVERFLOW)
-+        return 1;
-+  ret = fprintf (fp, "%" SN2 "d%" SN2 "d", 1, 1);
-   printf ("ret = %d\n", ret);
--  return ret != -1;
-+  return ret != -1 || errno != EOVERFLOW;
- }
--#define TIMEOUT 30
-+#define TIMEOUT 60
- #define TEST_FUNCTION do_test ()
- #include "../test-skeleton.c"
-diff -Nrup a/stdio-common/printf-parse.h b/stdio-common/printf-parse.h
---- a/stdio-common/printf-parse.h      2010-05-04 05:27:23.000000000 -0600
-+++ b/stdio-common/printf-parse.h      2012-08-03 13:57:31.932638761 -0600
-@@ -14,9 +14,8 @@
-    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.  */
-+   License along with the GNU C Library; if not, see
-+   <http://www.gnu.org/licenses/>.  */
- #include <printf.h>
- #include <stdint.h>
-@@ -69,16 +68,27 @@ union printf_arg
- #ifndef DONT_NEED_READ_INT
- /* Read a simple integer from a string and update the string pointer.
-    It is assumed that the first character is a digit.  */
--static unsigned int
-+static int
- read_int (const UCHAR_T * *pstr)
- {
--  unsigned int retval = **pstr - L_('0');
-+  int retval = **pstr - L_('0');
-   while (ISDIGIT (*++(*pstr)))
--    {
--      retval *= 10;
--      retval += **pstr - L_('0');
--    }
-+    if (retval >= 0)
-+      {
-+      if (INT_MAX / 10 < retval)
-+        retval = -1;
-+      else
-+        {
-+          int digit = **pstr - L_('0');
-+
-+          retval *= 10;
-+          if (INT_MAX - digit < retval)
-+            retval = -1;
-+          else
-+            retval += digit;
-+        }
-+      }
-   return retval;
- }
-diff -Nrup a/stdio-common/printf-parsemb.c b/stdio-common/printf-parsemb.c
---- a/stdio-common/printf-parsemb.c    2010-05-04 05:27:23.000000000 -0600
-+++ b/stdio-common/printf-parsemb.c    2012-08-03 13:58:44.683366361 -0600
-@@ -13,9 +13,8 @@
-    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.  */
-+   License along with the GNU C Library; if not, see
-+   <http://www.gnu.org/licenses/>.  */
- #include <ctype.h>
- #include <limits.h>
-@@ -88,12 +87,15 @@ __parse_one_specmb (const UCHAR_T *forma
-       n = read_int (&format);
--      if (n > 0 && *format == L_('$'))
-+      if (n != 0 && *format == L_('$'))
-       /* Is positional parameter.  */
-       {
-         ++format;             /* Skip the '$'.  */
--        spec->data_arg = n - 1;
--        *max_ref_arg = MAX (*max_ref_arg, n);
-+        if (n != -1)
-+          {
-+            spec->data_arg = n - 1;
-+            *max_ref_arg = MAX (*max_ref_arg, n);
-+          }
-       }
-       else
-       /* Oops; that was actually the width and/or 0 padding flag.
-@@ -161,10 +163,13 @@ __parse_one_specmb (const UCHAR_T *forma
-         /* The width argument might be found in a positional parameter.  */
-         n = read_int (&format);
--        if (n > 0 && *format == L_('$'))
-+        if (n != 0 && *format == L_('$'))
-           {
--            spec->width_arg = n - 1;
--            *max_ref_arg = MAX (*max_ref_arg, n);
-+            if (n != -1)
-+              {
-+                spec->width_arg = n - 1;
-+                *max_ref_arg = MAX (*max_ref_arg, n);
-+              }
-             ++format;         /* Skip '$'.  */
-           }
-       }
-@@ -178,9 +183,13 @@ __parse_one_specmb (const UCHAR_T *forma
-       }
-     }
-   else if (ISDIGIT (*format))
--    /* Constant width specification.  */
--    spec->info.width = read_int (&format);
-+    {
-+      int n = read_int (&format);
-+      /* Constant width specification.  */
-+      if (n != -1)
-+      spec->info.width = n;
-+    }
-   /* Get the precision.  */
-   spec->prec_arg = -1;
-   /* -1 means none given; 0 means explicit 0.  */
-@@ -197,10 +206,13 @@ __parse_one_specmb (const UCHAR_T *forma
-           {
-             n = read_int (&format);
--            if (n > 0 && *format == L_('$'))
-+            if (n != 0 && *format == L_('$'))
-               {
--                spec->prec_arg = n - 1;
--                *max_ref_arg = MAX (*max_ref_arg, n);
-+                if (n != -1)
-+                  {
-+                    spec->prec_arg = n - 1;
-+                    *max_ref_arg = MAX (*max_ref_arg, n);
-+                  }
-                 ++format;
-               }
-           }
-@@ -214,7 +226,12 @@ __parse_one_specmb (const UCHAR_T *forma
-           }
-       }
-       else if (ISDIGIT (*format))
--      spec->info.prec = read_int (&format);
-+      {
-+        int n = read_int (&format);
-+
-+        if (n != -1)
-+          spec->info.prec = n;
-+      }
-       else
-       /* "%.?" is treated like "%.0?".  */
-       spec->info.prec = 0;
-@@ -295,9 +312,9 @@ __parse_one_specmb (const UCHAR_T *forma
-       /* We don't try to get the types for all arguments if the format
-        uses more than one.  The normal case is covered though.  If
-        the call returns -1 we continue with the normal specifiers.  */
--      || (spec->ndata_args = (*__printf_arginfo_table[spec->info.spec])
--        (&spec->info, 1, &spec->data_arg_type,
--         &spec->size)) < 0)
-+      || (int) (spec->ndata_args = (*__printf_arginfo_table[spec->info.spec])
-+                                 (&spec->info, 1, &spec->data_arg_type,
-+                                  &spec->size)) < 0)
-     {
-       /* Find the data argument types of a built-in spec.  */
-       spec->ndata_args = 1;
-diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
---- a/stdio-common/vfprintf.c  2012-08-03 13:31:26.605168350 -0600
-+++ b/stdio-common/vfprintf.c  2012-08-03 14:09:26.836725512 -0600
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1991-2008, 2009   Free Software Foundation, Inc.
-+/* Copyright (C) 1991-2012   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
-@@ -12,9 +12,8 @@
-    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.  */
-+   License along with the GNU C Library; if not, see
-+   <http://www.gnu.org/licenses/>.  */
- #include <ctype.h>
- #include <limits.h>
-@@ -67,10 +66,10 @@
-   do {                                                                              \
-     unsigned int _val = val;                                                \
-     assert ((unsigned int) done < (unsigned int) INT_MAX);                  \
--    if (__builtin_expect ((unsigned int) INT_MAX - (unsigned int) done              \
--                        < _val, 0))                                         \
-+    if (__builtin_expect (INT_MAX - done < _val, 0))                        \
-       {                                                                             \
-       done = -1;                                                            \
-+       __set_errno (EOVERFLOW);                                             \
-       goto all_done;                                                        \
-       }                                                                             \
-     done += _val;                                                           \
-@@ -141,12 +140,17 @@
-   do                                                                        \
-     {                                                                       \
-       assert ((size_t) done <= (size_t) INT_MAX);                           \
--      if ((size_t) PUT (s, (String), (Len)) != (size_t) (Len)               \
--        || (size_t) INT_MAX - (size_t) done < (size_t) (Len))               \
-+      if ((size_t) PUT (s, (String), (Len)) != (size_t) (Len))                      \
-       {                                                                     \
-         done = -1;                                                          \
-         goto all_done;                                                      \
-       }                                                                     \
-+      if (__builtin_expect (INT_MAX - done < (Len), 0))                             \
-+      {                                                                             \
-+      done = -1;                                                            \
-+       __set_errno (EOVERFLOW);                                             \
-+      goto all_done;                                                        \
-+      }                                                                             \
-       done += (Len);                                                        \
-     }                                                                       \
-   while (0)
-@@ -1435,10 +1439,21 @@ vfprintf (FILE *s, const CHAR_T *format,
-       const UCHAR_T *tmp;     /* Temporary value.  */
-       tmp = ++f;
--      if (ISDIGIT (*tmp) && read_int (&tmp) && *tmp == L_('$'))
--        /* The width comes from a positional parameter.  */
--        goto do_positional;
-+      if (ISDIGIT (*tmp))
-+        {
-+          int pos = read_int (&tmp);
-+          if (pos == -1)
-+            {
-+              __set_errno (EOVERFLOW);
-+              done = -1;
-+              goto all_done;
-+            }
-+
-+          if (pos && *tmp == L_('$'))
-+            /* The width comes from a positional parameter.  */
-+            goto do_positional;
-+        }
-       width = va_arg (ap, int);
-       /* Negative width means left justified.  */
-@@ -1449,9 +1464,9 @@ vfprintf (FILE *s, const CHAR_T *format,
-           left = 1;
-         }
--      if (__builtin_expect (width >= (size_t) -1 / sizeof (CHAR_T) - 32, 0))
-+      if (__builtin_expect (width >= INT_MAX / sizeof (CHAR_T) - 32, 0))
-         {
--          __set_errno (ERANGE);
-+          __set_errno (EOVERFLOW);
-           done = -1;
-           goto all_done;
-         }
-@@ -1481,9 +1496,10 @@ vfprintf (FILE *s, const CHAR_T *format,
-     LABEL (width):
-       width = read_int (&f);
--      if (__builtin_expect (width >= (size_t) -1 / sizeof (CHAR_T) - 32, 0))
-+      if (__builtin_expect (width == -1
-+                          || width >= INT_MAX / sizeof (CHAR_T) - 32, 0))
-       {
--        __set_errno (ERANGE);
-+        __set_errno (EOVERFLOW);
-         done = -1;
-         goto all_done;
-       }
-@@ -1518,10 +1534,21 @@ vfprintf (FILE *s, const CHAR_T *format,
-         const UCHAR_T *tmp;   /* Temporary value.  */
-         tmp = ++f;
--        if (ISDIGIT (*tmp) && read_int (&tmp) > 0 && *tmp == L_('$'))
--          /* The precision comes from a positional parameter.  */
--          goto do_positional;
-+        if (ISDIGIT (*tmp))
-+          {
-+            int pos = read_int (&tmp);
-+
-+            if (pos == -1)
-+              {
-+                __set_errno (EOVERFLOW);
-+                done = -1;
-+                goto all_done;
-+              }
-+            if (pos && *tmp == L_('$'))
-+              /* The precision comes from a positional parameter.  */
-+              goto do_positional;
-+          }
-         prec = va_arg (ap, int);
-         /* If the precision is negative the precision is omitted.  */
-@@ -1529,15 +1556,26 @@ vfprintf (FILE *s, const CHAR_T *format,
-           prec = -1;
-       }
-       else if (ISDIGIT (*f))
--      prec = read_int (&f);
-+      {
-+        prec = read_int (&f);
-+
-+        /* The precision was specified in this case as an extremely
-+           large positive value.  */
-+        if (prec == -1)
-+          {
-+            __set_errno (EOVERFLOW);
-+            done = -1;
-+            goto all_done;
-+          }
-+      }
-       else
-       prec = 0;
-       if (prec > width
-         && prec > sizeof (work_buffer) / sizeof (work_buffer[0]) - 32)
-       {
--        if (__builtin_expect (prec >= (size_t) -1 / sizeof (CHAR_T) - 32, 0))
-+        if (__builtin_expect (prec >= INT_MAX / sizeof (CHAR_T) - 32, 0))
-           {
--            __set_errno (ERANGE);
-+            __set_errno (EOVERFLOW);
-             done = -1;
-             goto all_done;
-           }
-@@ -1722,13 +1760,13 @@ do_positional:
-     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);
-+    bytes_per_arg = (sizeof (*args_value) + sizeof (*args_size)
-+                   + sizeof (*args_type));
-     /* Check for potential integer overflow.  */
--    if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0))
-+    if (__builtin_expect (nargs > INT_MAX / bytes_per_arg, 0))
-       {
--         __set_errno (ERANGE);
-+       __set_errno (EOVERFLOW);
-          done = -1;
-          goto all_done;
-       }
-@@ -1746,6 +1784,8 @@ do_positional:
-           }
-       }
-+    /* Set up the remaining two arrays to each point past the end of the
-+       prior array, since space for all three has been allocated now.  */
-     args_size = &args_value[nargs].pa_int;
-     args_type = &args_size[nargs];
-     memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0',
diff --git a/src/patches/glibc/glibc-rh832516.patch b/src/patches/glibc/glibc-rh832516.patch
deleted file mode 100644 (file)
index 476af4b..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -Nrup a/locale/loadlocale.c b/locale/loadlocale.c
---- a/locale/loadlocale.c      2010-05-04 07:27:23.000000000 -0400
-+++ b/locale/loadlocale.c      2012-08-05 17:19:47.761384155 -0400
-@@ -170,7 +170,6 @@ _nl_load_locale (struct loaded_l10nfile 
-   int save_err;
-   int alloc = ld_mapped;
--  file->decided = 1;
-   file->data = NULL;
-   fd = open_not_cancel_2 (file->filename, O_RDONLY);
-@@ -279,6 +278,7 @@ _nl_load_locale (struct loaded_l10nfile 
-   newdata->alloc = alloc;
-   file->data = newdata;
-+  file->decided = 1;
- }
- void
diff --git a/src/patches/glibc/glibc-rh832694.patch b/src/patches/glibc/glibc-rh832694.patch
deleted file mode 100644 (file)
index 249afb5..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/sysdeps/gnu/errlist.c b/sysdeps/gnu/errlist.c
-index e3d2faf..5437ff8 100644
---- a/sysdeps/gnu/errlist.c
-+++ b/sysdeps/gnu/errlist.c
-@@ -780,11 +780,12 @@ TRANS The user's disk quota was exceeded. */
- #endif
- #ifdef ESTALE
- /*
--TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--TRANS system which is due to file system rearrangements on the server host.
--TRANS Repairing this condition usually requires unmounting and remounting
--TRANS the NFS file system on the local host. */
--    [ERR_REMAP (ESTALE)] = N_("Stale NFS file handle"),
-+TRANS Stale file handle.  This indicates an internal confusion in the 
-+TRANS file system which is due to file system rearrangements on the server host
-+TRANS for NFS filesystems or corruption in other filesystems.
-+TRANS Repairing this condition usually requires unmounting, possibly
-+TRANS repairing and remounting the file system. */
-+    [ERR_REMAP (ESTALE)] = N_("Stale file handle"),
- # if ESTALE > ERR_MAX
- # undef ERR_MAX
- # define ERR_MAX ESTALE
diff --git a/src/patches/glibc/glibc-rh833717.patch b/src/patches/glibc/glibc-rh833717.patch
deleted file mode 100644 (file)
index e44573c..0000000
+++ /dev/null
@@ -1,45265 +0,0 @@
-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-rh834386-2.patch b/src/patches/glibc/glibc-rh834386-2.patch
deleted file mode 100644 (file)
index ad895c7..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-2013-05-03  Carlos O'Donell  <carlos at redhat.com>
-
-        * intl/dcigettext.c (DCIGETTEXT): Skip translating if _nl_find_msg returns -1.
-        (_nl_find_msg): Return -1 if recursive call returned -1. If newmem is null
-        return -1.
-        * intl/loadmsgcat.c (_nl_load_domain): If _nl_find_msg returns -1 abort
-        loading the domain.
-
-diff -Nrup a/intl/dcigettext.c b/intl/dcigettext.c
---- a/intl/dcigettext.c        2010-05-04 07:27:23.000000000 -0400
-+++ b/intl/dcigettext.c        2013-08-01 00:11:54.616363264 -0400
-@@ -640,6 +640,11 @@ DCIGETTEXT (domainname, msgid1, msgid2, 
-                 retval = _nl_find_msg (domain->successor[cnt], binding,
-                                        msgid1, 1, &retlen);
-+                /* Resource problems are not fatal, instead we return no
-+                  translation.  */
-+                if (__builtin_expect (retval == (char *) -1, 0))
-+                  goto no_translation;
-+
-                 if (retval != NULL)
-                   {
-                     domain = domain->successor[cnt];
-@@ -943,6 +948,11 @@ _nl_find_msg (domain_file, domainbinding
-           nullentry =
-             _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen);
-+          /* Resource problems are fatal.  If we continue onwards we will
-+             only attempt to calloc a new conv_tab and fail later.  */
-+          if (__builtin_expect (nullentry == (char *) -1, 0))
-+             return (char *) -1;
-+
-           if (nullentry != NULL)
-             {
-               const char *charsetstr;
-@@ -1156,7 +1166,7 @@ _nl_find_msg (domain_file, domainbinding
-                                                            freemem_size);
- # ifdef _LIBC
-                     if (newmem != NULL)
--                      transmem_list = transmem_list->next;
-+                      transmem_list = newmem;
-                     else
-                       {
-                         struct transmem_list *old = transmem_list;
-@@ -1171,6 +1181,16 @@ _nl_find_msg (domain_file, domainbinding
-                     malloc_count = 1;
-                     freemem_size = INITIAL_BLOCK_SIZE;
-                     newmem = (transmem_block_t *) malloc (freemem_size);
-+# ifdef _LIBC
-+                    if (newmem != NULL)
-+                      {
-+                        /* Add the block to the list of blocks we have to free
-+                           at some point.  */
-+                        newmem->next = transmem_list;
-+                        transmem_list = newmem;
-+                      }
-+                    /* Fall through and return -1.  */
-+# endif
-                   }
-                 if (__builtin_expect (newmem == NULL, 0))
-                   {
-@@ -1181,11 +1201,6 @@ _nl_find_msg (domain_file, domainbinding
-                   }
- # ifdef _LIBC
--                /* Add the block to the list of blocks we have to free
--                   at some point.  */
--                newmem->next = transmem_list;
--                transmem_list = newmem;
--
-                 freemem = (unsigned char *) newmem->data;
-                 freemem_size -= offsetof (struct transmem_list, data);
- # else
-@@ -1402,7 +1417,7 @@ get_output_charset (domainbinding)
-         return _NL_CURRENT (LC_CTYPE, CODESET);
- # else
- #  if HAVE_ICONV
--        extern const char *locale_charset PARAMS ((void);
-+        extern const char *locale_charset PARAMS ((void));
-         return locale_charset ();
- #  endif
- # endif
-diff -Nrup a/intl/loadmsgcat.c b/intl/loadmsgcat.c
---- a/intl/loadmsgcat.c        2010-05-04 07:27:23.000000000 -0400
-+++ b/intl/loadmsgcat.c        2013-08-01 00:12:48.448237849 -0400
-@@ -1235,7 +1235,7 @@ _nl_load_domain (domain_file, domainbind
-     default:
-       /* This is an invalid revision.  */
-     invalid:
--      /* This is an invalid .mo file.  */
-+      /* This is an invalid .mo file or we ran out of resources.  */
-       free (domain->malloced);
- #ifdef HAVE_MMAP
-       if (use_mmap)
-@@ -1255,6 +1255,12 @@ _nl_load_domain (domain_file, domainbind
-   /* Get the header entry and look for a plural specification.  */
-   nullentry = _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen);
-+  if (__builtin_expect (nullentry == (char *) -1, 0))
-+    {
-+      __libc_rwlock_fini (domain->conversions_lock);
-+      goto invalid;
-+    }
-+
-   EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals);
-  out:
diff --git a/src/patches/glibc/glibc-rh834386.patch b/src/patches/glibc/glibc-rh834386.patch
deleted file mode 100644 (file)
index 61ddbe8..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-#
-# Red Hat BZ:
-# https://bugzilla.redhat.com/show_bug.cgi?id=816647
-#
-# ChangeLog
-#
-#2013-04-30  Patsy Franklin  <pfrankli@redhat.com>
-#
-#      * iconv/gconv_cache.c (find_module): Demangle init_fct before 
-#      checking for NULL. Mangle __btowc_fct if init_fct is non-NULL.
-#      * iconv/gconv_db.c (free_derivation): Check that __shlib_handle 
-#      is non-NULL before demangling the end_fct.  Check for NULL
-#      end_fct after demangling.
-#      (__gconv_release_step): Demangle the end_fct before checking 
-#      it for NULL.   Remove assert on __shlibc_handle != NULL.
-#      (gen_steps): Don't check btowc_fct for NULL before mangling.  
-#      Demangle init_fct before checking for NULL.
-#      (increment_counter): Likewise
-#      * gconv_dl.c (__gconv_find_shlib): Don't check init_fct or
-#      end_fct for NULL before mangling.
-#      * wcsmbs/btowc.c (__btowc): Demangle btowc_fct before checking
-#      for NULL.
-#
-diff -Nrup a/iconv/gconv_cache.c b/iconv/gconv_cache.c
---- a/iconv/gconv_cache.c      2012-12-24 22:02:13.000000000 -0500
-+++ b/iconv/gconv_cache.c      2013-04-30 11:34:20.112389987 -0400
-@@ -207,17 +207,16 @@ find_module (const char *directory, cons
-       result->__data = NULL;
-       /* Call the init function.  */
--      if (result->__init_fct != NULL)
--      {
--        __gconv_init_fct init_fct = result->__init_fct;
-+      __gconv_init_fct init_fct = result->__init_fct;
- #ifdef PTR_DEMANGLE
--        PTR_DEMANGLE (init_fct);
-+      PTR_DEMANGLE (init_fct);
- #endif
-+      if (init_fct != NULL)
-+      {
-         status = DL_CALL_FCT (init_fct, (result));
- #ifdef PTR_MANGLE
--        if (result->__btowc_fct != NULL)
--          PTR_MANGLE (result->__btowc_fct);
-+        PTR_MANGLE (result->__btowc_fct);
- #endif
-       }
-     }
-diff -Nrup a/iconv/gconv_db.c b/iconv/gconv_db.c
---- a/iconv/gconv_db.c 2012-12-24 22:02:13.000000000 -0500
-+++ b/iconv/gconv_db.c 2013-04-30 11:32:42.700592914 -0400
-@@ -179,16 +179,15 @@ free_derivation (void *p)
-   size_t cnt;
-   for (cnt = 0; cnt < deriv->nsteps; ++cnt)
--    if (deriv->steps[cnt].__counter > 0
--      && deriv->steps[cnt].__end_fct != NULL)
-+    if ((deriv->steps[cnt].__counter > 0)
-+      && (deriv->steps[cnt].__shlib_handle != NULL))
-       {
--      assert (deriv->steps[cnt].__shlib_handle != NULL);
--
-       __gconv_end_fct end_fct = deriv->steps[cnt].__end_fct;
- #ifdef PTR_DEMANGLE
-       PTR_DEMANGLE (end_fct);
- #endif
--      DL_CALL_FCT (end_fct, (&deriv->steps[cnt]));
-+      if (end_fct != NULL)
-+        DL_CALL_FCT (end_fct, (&deriv->steps[cnt]));
-       }
-   /* Free the name strings.  */
-@@ -212,16 +211,12 @@ __gconv_release_step (struct __gconv_ste
-   if (step->__shlib_handle != NULL && --step->__counter == 0)
-     {
-       /* Call the destructor.  */
--      if (step->__end_fct != NULL)
--      {
--        assert (step->__shlib_handle != NULL);
--
--        __gconv_end_fct end_fct = step->__end_fct;
-+      __gconv_end_fct end_fct = step->__end_fct;
- #ifdef PTR_DEMANGLE
--        PTR_DEMANGLE (end_fct);
-+      PTR_DEMANGLE (end_fct);
- #endif
--        DL_CALL_FCT (end_fct, (step));
--      }
-+      if (end_fct != NULL)
-+      DL_CALL_FCT (end_fct, (step));
- #ifndef STATIC_GCONV
-       /* Release the loaded module.  */
-@@ -293,13 +288,11 @@ gen_steps (struct derivation_step *best,
-             /* Call the init function.  */
-             __gconv_init_fct init_fct = result[step_cnt].__init_fct;
--            if (init_fct != NULL)
--              {
--                assert (result[step_cnt].__shlib_handle != NULL);
--
- # ifdef PTR_DEMANGLE
--                PTR_DEMANGLE (init_fct);
-+            PTR_DEMANGLE (init_fct);
- # endif
-+            if (init_fct != NULL)
-+              {
-                 status = DL_CALL_FCT (init_fct, (&result[step_cnt]));
-                 if (__builtin_expect (status, __GCONV_OK) != __GCONV_OK)
-@@ -312,8 +305,7 @@ gen_steps (struct derivation_step *best,
-                   }
- # ifdef PTR_MANGLE
--                if (result[step_cnt].__btowc_fct != NULL)
--                  PTR_MANGLE (result[step_cnt].__btowc_fct);
-+                PTR_MANGLE (result[step_cnt].__btowc_fct);
- # endif
-               }
-           }
-@@ -393,16 +385,15 @@ increment_counter (struct __gconv_step *
-         /* Call the init function.  */
-         __gconv_init_fct init_fct = step->__init_fct;
--        if (init_fct != NULL)
--          {
- #ifdef PTR_DEMANGLE
--            PTR_DEMANGLE (init_fct);
-+        PTR_DEMANGLE (init_fct);
- #endif
-+        if (init_fct != NULL)
-+          {
-             DL_CALL_FCT (init_fct, (step));
- #ifdef PTR_MANGLE
--            if (step->__btowc_fct != NULL)
--              PTR_MANGLE (step->__btowc_fct);
-+            PTR_MANGLE (step->__btowc_fct);
- #endif
-           }
-       }
-diff -Nrup a/iconv/gconv_dl.c b/iconv/gconv_dl.c
---- a/iconv/gconv_dl.c 2012-12-24 22:02:13.000000000 -0500
-+++ b/iconv/gconv_dl.c 2013-04-30 11:32:42.701592922 -0400
-@@ -132,10 +132,8 @@ __gconv_find_shlib (const char *name)
- #ifdef PTR_MANGLE
-                 PTR_MANGLE (found->fct);
--                if (found->init_fct != NULL)
--                  PTR_MANGLE (found->init_fct);
--                if (found->end_fct !=  NULL)
--                  PTR_MANGLE (found->end_fct);
-+                PTR_MANGLE (found->init_fct);
-+                PTR_MANGLE (found->end_fct);
- #endif
-                 /* We have succeeded in loading the shared object.  */
-diff -Nrup a/wcsmbs/btowc.c b/wcsmbs/btowc.c
---- a/wcsmbs/btowc.c   2012-12-24 22:02:13.000000000 -0500
-+++ b/wcsmbs/btowc.c   2013-04-30 11:32:42.701592922 -0400
-@@ -47,15 +47,15 @@ __btowc (c)
-   /* Get the conversion functions.  */
-   fcts = get_gconv_fcts (_NL_CURRENT_DATA (LC_CTYPE));
-   __gconv_btowc_fct btowc_fct = fcts->towc->__btowc_fct;
-+#ifdef PTR_DEMANGLE
-+  if (fcts->towc->__shlib_handle != NULL)
-+    PTR_DEMANGLE (btowc_fct);
-+#endif
-   if (__builtin_expect (fcts->towc_nsteps == 1, 1)
-       && __builtin_expect (btowc_fct != NULL, 1))
-     {
-       /* Use the shortcut function.  */
--#ifdef PTR_DEMANGLE
--      if (fcts->towc->__shlib_handle != NULL)
--      PTR_DEMANGLE (btowc_fct);
--#endif
-       return DL_CALL_FCT (btowc_fct, (fcts->towc, (unsigned char) c));
-     }
-   else
diff --git a/src/patches/glibc/glibc-rh837695.patch b/src/patches/glibc/glibc-rh837695.patch
deleted file mode 100644 (file)
index 03e1e02..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -rup a/nss/nsswitch.h b/nss/nsswitch.h
---- a/nss/nsswitch.h   2010-05-04 05:27:23.000000000 -0600
-+++ b/nss/nsswitch.h   2012-07-05 11:28:15.316585117 -0600
-@@ -182,4 +182,8 @@ extern int __nss_hostname_digits_dots (c
-                                      int *h_errnop);
- libc_hidden_proto (__nss_hostname_digits_dots)
-+/* Maximum number of aliases we allow.  */
-+#define MAX_NR_ALIASES  48
-+#define MAX_NR_ADDRS    48
-+
- #endif        /* nsswitch.h */
-Only in b/nss: nsswitch.h.orig
-diff -rup a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
---- a/resolv/nss_dns/dns-host.c        2012-07-05 11:27:39.298760961 -0600
-+++ b/resolv/nss_dns/dns-host.c        2012-07-05 11:28:15.317585112 -0600
-@@ -89,10 +89,6 @@
- #define RESOLVSORT
--/* Maximum number of aliases we allow.  */
--#define MAX_NR_ALIASES        48
--#define MAX_NR_ADDRS  48
--
- #if PACKETSZ > 65536
- # define MAXPACKET    PACKETSZ
- #else
-Only in b/resolv/nss_dns: dns-host.c.orig
-diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
---- a/sysdeps/posix/getaddrinfo.c      2012-07-05 11:27:39.284761028 -0600
-+++ b/sysdeps/posix/getaddrinfo.c      2012-07-05 14:15:39.785546125 -0600
-@@ -565,7 +565,10 @@ gaih_inet (const char *name, const struc
-            IPv6 scope ids. */
-         if (req->ai_family == AF_INET)
-           {
--            size_t tmpbuflen = 512;
-+              /* Add room for struct host_data in resolv/nss_dns/dns-host.c */
-+              size_t tmpbuflen = 512 + (MAX_NR_ALIASES+MAX_NR_ADDRS+1)*sizeof(char*)
-+                                  + 16 * sizeof(char);
-+
-             assert (tmpbuf == NULL);
-             tmpbuf = alloca_account (tmpbuflen, alloca_used);
-             int rc;
-@@ -807,7 +810,7 @@ gaih_inet (const char *name, const struc
-         old_res_options = _res.options;
-         _res.options &= ~RES_USE_INET6;
--        size_t tmpbuflen = 1024;
-+        size_t tmpbuflen = 1024 + sizeof(struct gaih_addrtuple);
-         malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen);
-         assert (tmpbuf == NULL);
-         if (!malloc_tmpbuf)
-Only in b/sysdeps/posix: getaddrinfo.c.orig
-Only in b/sysdeps/posix: getaddrinfo.c.rej
diff --git a/src/patches/glibc/glibc-rh837918.patch b/src/patches/glibc/glibc-rh837918.patch
deleted file mode 100644 (file)
index 924d83d..0000000
+++ /dev/null
@@ -1,7183 +0,0 @@
-diff -Nrup a/math/libm-test.inc b/math/libm-test.inc
---- a/math/libm-test.inc       2010-05-04 05:27:23.000000000 -0600
-+++ b/math/libm-test.inc       2012-08-06 09:54:00.821929695 -0600
-@@ -2018,6 +2018,142 @@ cos_test (void)
- static void
-+cos_test_tonearest (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(cos) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (cos_tonearest);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TONEAREST))
-+    {
-+      TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L);
-+      TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L);
-+      TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L);
-+      TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L);
-+      TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L);
-+      TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L);
-+      TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L);
-+      TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L);
-+      TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L);
-+      TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (cos_tonearest);
-+}
-+
-+
-+static void
-+cos_test_towardzero (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(cos) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (cos_towardzero);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TOWARDZERO))
-+    {
-+      TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L);
-+      TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L);
-+      TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L);
-+      TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L);
-+      TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L);
-+      TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L);
-+      TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L);
-+      TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L);
-+      TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L);
-+      TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (cos_towardzero);
-+}
-+
-+
-+static void
-+cos_test_downward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(cos) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (cos_downward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_DOWNWARD))
-+    {
-+      TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L);
-+      TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L);
-+      TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L);
-+      TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L);
-+      TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L);
-+      TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L);
-+      TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L);
-+      TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L);
-+      TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L);
-+      TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (cos_downward);
-+}
-+
-+
-+static void
-+cos_test_upward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(cos) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (cos_upward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_UPWARD))
-+    {
-+      TEST_f_f (cos, 1, 0.5403023058681397174009366074429766037323L);
-+      TEST_f_f (cos, 2, -0.4161468365471423869975682295007621897660L);
-+      TEST_f_f (cos, 3, -0.9899924966004454572715727947312613023937L);
-+      TEST_f_f (cos, 4, -0.6536436208636119146391681830977503814241L);
-+      TEST_f_f (cos, 5, 0.2836621854632262644666391715135573083344L);
-+      TEST_f_f (cos, 6, 0.9601702866503660205456522979229244054519L);
-+      TEST_f_f (cos, 7, 0.7539022543433046381411975217191820122183L);
-+      TEST_f_f (cos, 8, -0.1455000338086135258688413818311946826093L);
-+      TEST_f_f (cos, 9, -0.9111302618846769883682947111811653112463L);
-+      TEST_f_f (cos, 10, -0.8390715290764524522588639478240648345199L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (cos_upward);
-+}
-+
-+
-+static void
- cosh_test (void)
- {
-   errno = 0;
-@@ -2043,6 +2179,114 @@ cosh_test (void)
- static void
-+cosh_test_tonearest (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(cosh) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (cosh_tonearest);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TONEAREST))
-+    {
-+      TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L);
-+      TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L);
-+      TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (cosh_tonearest);
-+}
-+
-+
-+static void
-+cosh_test_towardzero (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(cosh) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (cosh_towardzero);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TOWARDZERO))
-+    {
-+      TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L);
-+      TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L);
-+      TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (cosh_towardzero);
-+}
-+
-+
-+static void
-+cosh_test_downward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(cosh) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (cosh_downward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_DOWNWARD))
-+    {
-+      TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L);
-+      TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L);
-+      TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (cosh_downward);
-+}
-+
-+
-+static void
-+cosh_test_upward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(cosh) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (cosh_upward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_UPWARD))
-+    {
-+      TEST_f_f (cosh, 22, 1792456423.065795780980053377632656584997L);
-+      TEST_f_f (cosh, 23, 4872401723.124451300068625740569997090344L);
-+      TEST_f_f (cosh, 24, 13244561064.92173614708845674912733665919L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (cosh_upward);
-+}
-+
-+
-+static void
- cpow_test (void)
- {
-   errno = 0;
-@@ -2527,6 +2771,114 @@ exp_test (void)
- static void
-+exp_test_tonearest (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(exp) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (exp_tonearest);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TONEAREST))
-+    {
-+      TEST_f_f (exp, 1, M_El);
-+      TEST_f_f (exp, 2, M_E2l);
-+      TEST_f_f (exp, 3, M_E3l);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (exp_tonearest);
-+}
-+
-+
-+static void
-+exp_test_towardzero (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(exp) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (exp_towardzero);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TOWARDZERO))
-+    {
-+      TEST_f_f (exp, 1, M_El);
-+      TEST_f_f (exp, 2, M_E2l);
-+      TEST_f_f (exp, 3, M_E3l);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (exp_towardzero);
-+}
-+
-+
-+static void
-+exp_test_downward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(exp) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (exp_downward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_DOWNWARD))
-+    {
-+      TEST_f_f (exp, 1, M_El);
-+      TEST_f_f (exp, 2, M_E2l);
-+      TEST_f_f (exp, 3, M_E3l);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (exp_downward);
-+}
-+
-+
-+static void
-+exp_test_upward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(exp) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (exp_upward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_UPWARD))
-+    {
-+      TEST_f_f (exp, 1, M_El);
-+      TEST_f_f (exp, 2, M_E2l);
-+      TEST_f_f (exp, 3, M_E3l);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (exp_upward);
-+}
-+
-+
-+static void
- exp10_test (void)
- {
-   errno = 0;
-@@ -4848,22 +5200,127 @@ pow_test (void)
-   END (pow);
- }
-+
- static void
--remainder_test (void)
-+pow_test_tonearest (void)
- {
-+  int save_round_mode;
-   errno = 0;
--  FUNC(remainder) (1.625, 1.0);
-+  FUNC(pow) (0, 0);
-   if (errno == ENOSYS)
-     /* Function not implemented.  */
-     return;
--  START (remainder);
-+  START (pow_tonearest);
--  TEST_ff_f (remainder, 1, 0, nan_value, INVALID_EXCEPTION);
--  TEST_ff_f (remainder, 1, minus_zero, nan_value, INVALID_EXCEPTION);
--  TEST_ff_f (remainder, plus_infty, 1, nan_value, INVALID_EXCEPTION);
--  TEST_ff_f (remainder, minus_infty, 1, nan_value, INVALID_EXCEPTION);
--  TEST_ff_f (remainder, nan_value, nan_value, nan_value);
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TONEAREST))
-+    {
-+      TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L);
-+      TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (pow_tonearest);
-+}
-+
-+
-+static void
-+pow_test_towardzero (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(pow) (0, 0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (pow_towardzero);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TOWARDZERO))
-+    {
-+      TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L);
-+      TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (pow_towardzero);
-+}
-+
-+
-+static void
-+pow_test_downward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(pow) (0, 0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (pow_downward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_DOWNWARD))
-+    {
-+      TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L);
-+      TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (pow_downward);
-+}
-+
-+
-+static void
-+pow_test_upward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(pow) (0, 0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (pow_upward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_UPWARD))
-+    {
-+      TEST_ff_f (pow, 1.0625L, 1.125L, 1.070582293028761362162622578677070098674L);
-+      TEST_ff_f (pow, 1.5L, 1.03125L, 1.519127098714743184071644334163037684948L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (pow_upward);
-+}
-+
-+
-+static void
-+remainder_test (void)
-+{
-+  errno = 0;
-+  FUNC(remainder) (1.625, 1.0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (remainder);
-+
-+  TEST_ff_f (remainder, 1, 0, nan_value, INVALID_EXCEPTION);
-+  TEST_ff_f (remainder, 1, minus_zero, nan_value, INVALID_EXCEPTION);
-+  TEST_ff_f (remainder, plus_infty, 1, nan_value, INVALID_EXCEPTION);
-+  TEST_ff_f (remainder, minus_infty, 1, nan_value, INVALID_EXCEPTION);
-+  TEST_ff_f (remainder, nan_value, nan_value, nan_value);
-   TEST_ff_f (remainder, 1.625, 1.0, -0.375);
-   TEST_ff_f (remainder, -1.625, 1.0, 0.375);
-@@ -5545,6 +6002,7 @@ sin_test (void)
- #ifdef TEST_DOUBLE
-   TEST_f_f (sin, 0.80190127184058835, 0.71867942238767868);
-+  TEST_f_f (sin, 2.522464e-1, 2.4957989804940911e-1);
- #endif
-   END (sin);
-@@ -5553,6 +6011,142 @@ sin_test (void)
- static void
-+sin_test_tonearest (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(sin) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (sin_tonearest);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TONEAREST))
-+    {
-+      TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L);
-+      TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L);
-+      TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L);
-+      TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L);
-+      TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L);
-+      TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L);
-+      TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L);
-+      TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L);
-+      TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L);
-+      TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (sin_tonearest);
-+}
-+
-+
-+static void
-+sin_test_towardzero (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(sin) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (sin_towardzero);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TOWARDZERO))
-+    {
-+      TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L);
-+      TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L);
-+      TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L);
-+      TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L);
-+      TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L);
-+      TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L);
-+      TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L);
-+      TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L);
-+      TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L);
-+      TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (sin_towardzero);
-+}
-+
-+
-+static void
-+sin_test_downward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(sin) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (sin_downward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_DOWNWARD))
-+    {
-+      TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L);
-+      TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L);
-+      TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L);
-+      TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L);
-+      TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L);
-+      TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L);
-+      TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L);
-+      TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L);
-+      TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L);
-+      TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (sin_downward);
-+}
-+
-+
-+static void
-+sin_test_upward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(sin) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (sin_upward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_UPWARD))
-+    {
-+      TEST_f_f (sin, 1, 0.8414709848078965066525023216302989996226L);
-+      TEST_f_f (sin, 2, 0.9092974268256816953960198659117448427023L);
-+      TEST_f_f (sin, 3, 0.1411200080598672221007448028081102798469L);
-+      TEST_f_f (sin, 4, -0.7568024953079282513726390945118290941359L);
-+      TEST_f_f (sin, 5, -0.9589242746631384688931544061559939733525L);
-+      TEST_f_f (sin, 6, -0.2794154981989258728115554466118947596280L);
-+      TEST_f_f (sin, 7, 0.6569865987187890903969990915936351779369L);
-+      TEST_f_f (sin, 8, 0.9893582466233817778081235982452886721164L);
-+      TEST_f_f (sin, 9, 0.4121184852417565697562725663524351793439L);
-+      TEST_f_f (sin, 10, -0.5440211108893698134047476618513772816836L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (sin_upward);
-+}
-+
-+
-+static void
- sincos_test (void)
- {
-   FLOAT sin_res, cos_res;
-@@ -5610,6 +6204,115 @@ sinh_test (void)
-   END (sinh);
- }
-+
-+static void
-+sinh_test_tonearest (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(sinh) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (sinh_tonearest);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TONEAREST))
-+    {
-+      TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L);
-+      TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L);
-+      TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (sinh_tonearest);
-+}
-+
-+
-+static void
-+sinh_test_towardzero (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(sinh) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (sinh_towardzero);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TOWARDZERO))
-+    {
-+      TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L);
-+      TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L);
-+      TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (sinh_towardzero);
-+}
-+
-+
-+static void
-+sinh_test_downward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(sinh) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (sinh_downward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_DOWNWARD))
-+    {
-+      TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L);
-+      TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L);
-+      TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (sinh_downward);
-+}
-+
-+
-+static void
-+sinh_test_upward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(sinh) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (sinh_upward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_UPWARD))
-+    {
-+      TEST_f_f (sinh, 22, 1792456423.065795780701106568345764104225L);
-+      TEST_f_f (sinh, 23, 4872401723.124451299966006944252978187305L);
-+      TEST_f_f (sinh, 24, 13244561064.92173614705070540368454568168L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (sinh_upward);
-+}
-+
-+
- static void
- sqrt_test (void)
- {
-@@ -5673,6 +6376,143 @@ tan_test (void)
-   END (tan);
- }
-+
-+static void
-+tan_test_tonearest (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(tan) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (tan_tonearest);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TONEAREST))
-+    {
-+      TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L);
-+      TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L);
-+      TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L);
-+      TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L);
-+      TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L);
-+      TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L);
-+      TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L);
-+      TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L);
-+      TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L);
-+      TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (tan_tonearest);
-+}
-+
-+
-+static void
-+tan_test_towardzero (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(tan) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (tan_towardzero);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_TOWARDZERO))
-+    {
-+      TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L);
-+      TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L);
-+      TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L);
-+      TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L);
-+      TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L);
-+      TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L);
-+      TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L);
-+      TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L);
-+      TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L);
-+      TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (tan_towardzero);
-+}
-+
-+
-+static void
-+tan_test_downward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(tan) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (tan_downward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_DOWNWARD))
-+    {
-+      TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L);
-+      TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L);
-+      TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L);
-+      TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L);
-+      TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L);
-+      TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L);
-+      TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L);
-+      TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L);
-+      TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L);
-+      TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (tan_downward);
-+}
-+
-+
-+static void
-+tan_test_upward (void)
-+{
-+  int save_round_mode;
-+  errno = 0;
-+  FUNC(tan) (0);
-+  if (errno == ENOSYS)
-+    /* Function not implemented.  */
-+    return;
-+
-+  START (tan_upward);
-+
-+  save_round_mode = fegetround ();
-+
-+  if (!fesetround (FE_UPWARD))
-+    {
-+      TEST_f_f (tan, 1, 1.5574077246549022305069748074583601730873L);
-+      TEST_f_f (tan, 2, -2.1850398632615189916433061023136825434320L);
-+      TEST_f_f (tan, 3, -0.1425465430742778052956354105339134932261L);
-+      TEST_f_f (tan, 4, 1.1578212823495775831373424182673239231198L);
-+      TEST_f_f (tan, 5, -3.3805150062465856369827058794473439087096L);
-+      TEST_f_f (tan, 6, -0.2910061913847491570536995888681755428312L);
-+      TEST_f_f (tan, 7, 0.8714479827243187364564508896003135663222L);
-+      TEST_f_f (tan, 8, -6.7997114552203786999252627596086333648814L);
-+      TEST_f_f (tan, 9, -0.4523156594418098405903708757987855343087L);
-+      TEST_f_f (tan, 10, 0.6483608274590866712591249330098086768169L);
-+    }
-+
-+  fesetround (save_round_mode);
-+
-+  END (tan_upward);
-+}
-+
-+
- static void
- tanh_test (void)
- {
-@@ -6171,20 +7011,44 @@ main (int argc, char **argv)
-   atan_test ();
-   atan2_test ();
-   cos_test ();
-+  cos_test_tonearest ();
-+  cos_test_towardzero ();
-+  cos_test_downward ();
-+  cos_test_upward ();
-   sin_test ();
-+  sin_test_tonearest ();
-+  sin_test_towardzero ();
-+  sin_test_downward ();
-+  sin_test_upward ();
-   sincos_test ();
-   tan_test ();
-+  tan_test_tonearest ();
-+  tan_test_towardzero ();
-+  tan_test_downward ();
-+  tan_test_upward ();
-   /* Hyperbolic functions:  */
-   acosh_test ();
-   asinh_test ();
-   atanh_test ();
-   cosh_test ();
-+  cosh_test_tonearest ();
-+  cosh_test_towardzero ();
-+  cosh_test_downward ();
-+  cosh_test_upward ();
-   sinh_test ();
-+  sinh_test_tonearest ();
-+  sinh_test_towardzero ();
-+  sinh_test_downward ();
-+  sinh_test_upward ();
-   tanh_test ();
-   /* Exponential and logarithmic functions:  */
-   exp_test ();
-+  exp_test_tonearest ();
-+  exp_test_towardzero ();
-+  exp_test_downward ();
-+  exp_test_upward ();
-   exp10_test ();
-   exp2_test ();
-   expm1_test ();
-@@ -6207,6 +7071,10 @@ main (int argc, char **argv)
-   fabs_test ();
-   hypot_test ();
-   pow_test ();
-+  pow_test_tonearest ();
-+  pow_test_towardzero ();
-+  pow_test_downward ();
-+  pow_test_upward ();
-   sqrt_test ();
-   /* Error and gamma functions:  */
-diff -Nrup a/math/math_private.h b/math/math_private.h
---- a/math/math_private.h      2010-05-04 05:27:23.000000000 -0600
-+++ b/math/math_private.h      2012-08-06 09:54:00.821929695 -0600
-@@ -357,4 +357,41 @@ extern void __docos (double __x, double
- #define math_force_eval(x) __asm __volatile ("" : : "m" (x))
- #endif
-+
-+/* The standards only specify one variant of the fenv.h interfaces.
-+   But at least for some architectures we can be more efficient if we
-+   know what operations are going to be performed.  Therefore we
-+   define additional interfaces.  By default they refer to the normal
-+   interfaces.  */
-+#define libc_fegetround() fegetround ()
-+#define libc_fegetroundf() fegetround ()
-+#define libc_fegetroundl() fegetround ()
-+
-+#define libc_fesetround(r) (void) fesetround (r)
-+#define libc_fesetroundf(r) (void) fesetround (r)
-+#define libc_fesetroundl(r) (void) fesetround (r)
-+
-+#define libc_feholdexcept(e) (void) feholdexcept (e)
-+#define libc_feholdexceptf(e) (void) feholdexcept (e)
-+#define libc_feholdexceptl(e) (void) feholdexcept (e)
-+
-+#define libc_feholdexcept_setround(e, r) \
-+  do { feholdexcept (e); fesetround (r); } while (0)
-+#define libc_feholdexcept_setroundf(e, r) \
-+  do { feholdexcept (e); fesetround (r); } while (0)
-+#define libc_feholdexcept_setroundl(e, r) \
-+  do { feholdexcept (e); fesetround (r); } while (0)
-+
-+#define libc_fetestexcept(e) fetestexcept (e)
-+#define libc_fetestexceptf(e) fetestexcept (e)
-+#define libc_fetestexceptl(e) fetestexcept (e)
-+
-+#define libc_fesetenv(e) (void) fesetenv (e)
-+#define libc_fesetenvf(e) (void) fesetenv (e)
-+#define libc_fesetenvl(e) (void) fesetenv (e)
-+
-+#define libc_feupdateenv(e) (void) feupdateenv (e)
-+#define libc_feupdateenvf(e) (void) feupdateenv (e)
-+#define libc_feupdateenvl(e) (void) feupdateenv (e)
-+
- #endif /* _MATH_PRIVATE_H_ */
-diff -Nrup a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
---- a/sysdeps/i386/fpu/libm-test-ulps  2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/i386/fpu/libm-test-ulps  2012-08-06 11:29:16.370874961 -0600
-@@ -9,18 +9,12 @@ ldouble: 1
- Test "asin (-0.5) == -pi/6":
- ildouble: 1
- ldouble: 1
--Test "asin (-1.0) == -pi/2":
--ildouble: 1
--ldouble: 1
- Test "asin (0.5) == pi/6":
- ildouble: 1
- ldouble: 1
- Test "asin (0.75) == 0.848062078981481008052944338998418080":
- ildouble: 1
- ldouble: 1
--Test "asin (1.0) == pi/2":
--ildouble: 1
--ldouble: 1
- # atanh
- Test "atanh (0.75) == 0.972955074527656652552676371721589865":
-@@ -35,20 +29,6 @@ ildouble: 2
- ldouble: 2
- # cacosh
--Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
--double: 1
--float: 9
--idouble: 1
--ifloat: 9
--ildouble: 6
--ldouble: 6
--Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
--double: 1
--float: 4
--idouble: 1
--ifloat: 4
--ildouble: 1
--ldouble: 1
- Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
- ildouble: 1
- ldouble: 1
-@@ -124,8 +104,6 @@ ldouble: 1
- Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
- float: 1
- ifloat: 1
--ildouble: 1
--ldouble: 1
- Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
- double: 1
- idouble: 1
-@@ -149,9 +127,7 @@ float: 1
- idouble: 1
- ifloat: 1
- Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- # cexp
-@@ -186,8 +162,6 @@ ifloat: 1
- Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
- double: 1
- idouble: 1
--ildouble: 1
--ldouble: 1
- Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
- double: 1
- float: 1
-@@ -262,27 +236,175 @@ ifloat: 1
- # cos
- Test "cos (M_PI_6l * 2.0) == 0.5":
- double: 1
--float: 1
- idouble: 1
--ifloat: 1
- Test "cos (M_PI_6l * 4.0) == -0.5":
- double: 2
- float: 1
- idouble: 2
- ifloat: 1
-+
-+# cos_downward
-+Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
-+double: 1
-+idouble: 1
-+Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (9) == -0.9111302618846769883682947111811653112463":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# cos_tonearest
-+Test "cos_tonearest (8) == -0.1455000338086135258688413818311946826093":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_tonearest (9) == -0.9111302618846769883682947111811653112463":
-+ildouble: 1
-+ldouble: 1
-+
-+# cos_towardzero
-+Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
- ildouble: 1
- ldouble: 1
--Test "cos (pi/2) == 0":
-+Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-+Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241":
-+double: 1
-+idouble: 1
-+Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
--# cosh
--Test "cosh (0.75) == 1.29468328467684468784170818539018176":
-+# cos_upward
-+Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (2) == -0.4161468365471423869975682295007621897660":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (3) == -0.9899924966004454572715727947312613023937":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
-+double: 1
-+idouble: 1
-+Test "cos_upward (5) == 0.2836621854632262644666391715135573083344":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
- ildouble: 1
-+ldouble: 1
-+Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
-+double: 1
-+idouble: 1
-+Test "cos_upward (8) == -0.1455000338086135258688413818311946826093":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
-+# cosh_downward
-+Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
-+double: 1
-+float: 1
-+ldouble: 2
-+Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
-+double: 1
-+float: 1
-+ldouble: 1
-+Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
-+float: 1
-+ldouble: 1
-+
-+# cosh_tonearest
-+Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
-+ldouble: 1
-+
-+# cosh_towardzero
-+Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
-+double: 1
-+float: 1
-+ldouble: 2
-+Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
-+double: 1
-+float: 1
-+ldouble: 1
-+Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
-+float: 1
-+ldouble: 1
-+
-+# cosh_upward
-+Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
-+ldouble: 1
-+Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
-+double: 1
- # cpow
- Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-@@ -353,12 +475,8 @@ double: 1
- float: 1
- idouble: 1
- ifloat: 1
--ildouble: 2
--ldouble: 2
- Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -370,40 +488,36 @@ ifloat: 1
- Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
- double: 1
- idouble: 1
--ildouble: 439
--ldouble: 439
-+ildouble: 1
-+ldouble: 1
- Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
- float: 1
- ifloat: 1
--ildouble: 2
--ldouble: 2
-+ildouble: 1
-+ldouble: 1
- Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
- ildouble: 1
- ldouble: 1
- Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 3
- ldouble: 3
- # ctanh
- Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
--ildouble: 5
--ldouble: 5
-+ildouble: 3
-+ldouble: 3
- Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
- float: 1
- ifloat: 1
--ildouble: 25
--ldouble: 25
-+ildouble: 1
-+ldouble: 1
- Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
- float: 1
- ifloat: 1
- Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
- double: 1
-@@ -419,9 +533,6 @@ double: 1
- idouble: 1
- # erfc
--Test "erfc (0.75) == 0.288844366346484868401062165408589223":
--float: 1
--ifloat: 1
- Test "erfc (1.25) == 0.0770998717435417698634765188027188596":
- ildouble: 1
- ldouble: 1
-@@ -434,14 +545,6 @@ idouble: 1
- ildouble: 1
- ldouble: 1
--# exp
--Test "exp (0.75) == 2.11700001661267466854536981983709561":
--ildouble: 1
--Test "exp (1000.0) == 0.197007111401704699388887935224332313e435":
--ildouble: 754
--Test "exp (50.0) == 5184705528587072464087.45332293348538":
--ildouble: 16
--
- # exp10
- Test "exp10 (-1) == 0.1":
- ildouble: 1
-@@ -453,6 +556,51 @@ Test "exp10 (3) == 1000":
- ildouble: 8
- ldouble: 8
-+# exp_downward
-+Test "exp_downward (1) == e":
-+ildouble: 1
-+ldouble: 1
-+Test "exp_downward (2) == e^2":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "exp_downward (3) == e^3":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# exp_towardzero
-+Test "exp_towardzero (1) == e":
-+ildouble: 1
-+ldouble: 1
-+Test "exp_towardzero (2) == e^2":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "exp_towardzero (3) == e^3":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# exp_upward
-+Test "exp_upward (1) == e":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
- # expm1
- Test "expm1 (1) == M_El - 1.0":
- ildouble: 1
-@@ -485,26 +633,24 @@ float: 1
- # j0
- Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
-+ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "j0 (10.0) == -0.245935764451348335197760862485328754":
--double: 3
-+double: 1
- float: 1
--idouble: 3
-+idouble: 1
- ifloat: 1
- Test "j0 (2.0) == 0.223890779141235668051827454649948626":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
-+ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "j0 (8.0) == 0.171650807137553906090869407851972001":
-@@ -512,13 +658,8 @@ float: 1
- ifloat: 1
- # j1
--Test "j1 (0.75) == 0.349243602174862192523281016426251335":
--double: 1
--idouble: 1
- Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -526,9 +667,7 @@ Test "j1 (2.0) == 0.57672480775687338720
- double: 1
- idouble: 1
- Test "j1 (8.0) == 0.234636346853914624381276651590454612":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -536,38 +675,31 @@ ldouble: 1
- # jn
- Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
-+ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
--double: 3
-+double: 1
- float: 1
--idouble: 3
-+idouble: 1
- ifloat: 1
- Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
-+ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
- float: 1
- ifloat: 1
--Test "jn (1, 0.75) == 0.349243602174862192523281016426251335":
--double: 1
--idouble: 1
- Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -575,9 +707,7 @@ Test "jn (1, 2.0) == 0.57672480775687338
- double: 1
- idouble: 1
- Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -589,9 +719,7 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
- float: 1
-@@ -606,38 +734,32 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
--double: 5
--float: 2
--idouble: 5
--ifloat: 2
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
- ildouble: 2
- ldouble: 2
- Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
--double: 2
--idouble: 2
- ildouble: 1
- ldouble: 1
- Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
- ildouble: 1
- ldouble: 1
- Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
- ildouble: 1
- ldouble: 1
- Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
--double: 5
--float: 2
--idouble: 5
--ifloat: 2
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
--double: 1
--idouble: 1
- ildouble: 1
- ldouble: 1
-@@ -648,9 +770,7 @@ idouble: 1
- ildouble: 1
- ldouble: 1
- Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
- double: 1
-@@ -660,11 +780,6 @@ ifloat: 2
- ildouble: 1
- ldouble: 1
--# log
--Test "log (e) == 1":
--float: 1
--ifloat: 1
--
- # log10
- Test "log10 (0.75) == -0.124938736608299953132449886193870744":
- ildouble: 1
-@@ -675,20 +790,179 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
--# sincos
--Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-+# pow_downward
-+Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
- double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
- float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# pow_towardzero
-+Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
-+double: 1
- idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
-+float: 1
- ifloat: 1
--Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
-+ildouble: 1
-+ldouble: 1
-+
-+# pow_upward
-+Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_downward
-+Test "sin_downward (1) == 0.8414709848078965066525023216302989996226":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
-+double: 1
-+idouble: 1
-+Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
-+Test "sin_downward (7) == 0.6569865987187890903969990915936351779369":
- ildouble: 1
- ldouble: 1
--Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
-+Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (9) == 0.4121184852417565697562725663524351793439":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_tonearest
-+Test "sin_tonearest (10) == -0.5440211108893698134047476618513772816836":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_tonearest (4) == -0.7568024953079282513726390945118290941359":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439":
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_towardzero
-+Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
-+double: 1
-+idouble: 1
-+Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (7) == 0.6569865987187890903969990915936351779369":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_upward
-+Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "sin_upward (10) == -0.5440211108893698134047476618513772816836":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (5) == -0.9589242746631384688931544061559939733525":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (7) == 0.6569865987187890903969990915936351779369":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "sin_upward (8) == 0.9893582466233817778081235982452886721164":
-+float: 1
-+ifloat: 1
-+
-+# sincos
-+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-+double: 1
-+idouble: 1
-+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
- double: 1
- float: 1
- idouble: 1
-@@ -698,66 +972,237 @@ ldouble: 1
- # sinh
- Test "sinh (0.75) == 0.822316731935829980703661634446913849":
--double: 1
- ildouble: 1
--# tan
--Test "tan (pi/4) == 1":
-+# sinh_downward
-+Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
- double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ldouble: 4
-+Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
-+double: 1
-+float: 1
- idouble: 1
-+ifloat: 1
-+Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
-+float: 1
-+ifloat: 1
-+ldouble: 5
--# tgamma
--Test "tgamma (-0.5) == -2 sqrt (pi)":
--double: 2
-+# sinh_tonearest
-+Test "sinh_tonearest (22) == 1792456423.065795780701106568345764104225":
-+ldouble: 3
-+Test "sinh_tonearest (23) == 4872401723.124451299966006944252978187305":
-+ldouble: 1
-+Test "sinh_tonearest (24) == 13244561064.92173614705070540368454568168":
-+ldouble: 6
-+
-+# sinh_towardzero
-+Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ldouble: 4
-+Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
-+float: 1
-+ifloat: 1
-+ldouble: 5
-+
-+# sinh_upward
-+Test "sinh_upward (22) == 1792456423.065795780701106568345764104225":
-+ldouble: 16
-+Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
-+ldouble: 27
-+Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
-+double: 1
-+idouble: 1
-+ldouble: 7
-+
-+# tan_downward
-+Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tan_downward (3) == -0.1425465430742778052956354105339134932261":
-+double: 1
-+idouble: 1
-+Test "tan_downward (4) == 1.1578212823495775831373424182673239231198":
- float: 1
--idouble: 2
- ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "tgamma (0.5) == sqrt (pi)":
-+Test "tan_downward (5) == -3.3805150062465856369827058794473439087096":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
-+double: 1
- float: 1
-+idouble: 1
- ifloat: 1
--Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-+Test "tan_downward (7) == 0.8714479827243187364564508896003135663222":
-+double: 1
-+idouble: 1
-+Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
-+float: 1
-+ifloat: 1
-+
-+# tan_tonearest
-+Test "tan_tonearest (6) == -0.2910061913847491570536995888681755428312":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_tonearest (8) == -6.7997114552203786999252627596086333648814":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_tonearest (9) == -0.4523156594418098405903708757987855343087":
-+ildouble: 1
-+ldouble: 1
-+
-+# tan_towardzero
-+Test "tan_towardzero (1) == 1.5574077246549022305069748074583601730873":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
--Test "tgamma (4) == 6":
-+Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (2) == -2.1850398632615189916433061023136825434320":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222":
-+double: 1
-+idouble: 1
-+Test "tan_towardzero (8) == -6.7997114552203786999252627596086333648814":
-+double: 1
-+idouble: 1
-+ildouble: 2
-+ldouble: 2
-+Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
-+double: 1
-+idouble: 1
- ildouble: 1
- ldouble: 1
--# y0
--Test "y0 (0.125) == -1.38968062514384052915582277745018693":
-+# tan_upward
-+Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
- ildouble: 1
- ldouble: 1
--Test "y0 (0.75) == -0.137172769385772397522814379396581855":
-+Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (2) == -2.1850398632615189916433061023136825434320":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (4) == 1.1578212823495775831373424182673239231198":
-+double: 1
-+idouble: 1
-+Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
--Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
-+Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (7) == 0.8714479827243187364564508896003135663222":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (8) == -6.7997114552203786999252627596086333648814":
-+double: 1
-+idouble: 1
-+ildouble: 2
-+ldouble: 2
-+Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# tgamma
-+Test "tgamma (-0.5) == -2 sqrt (pi)":
- double: 2
- float: 1
- idouble: 2
- ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "y0 (1.5) == 0.382448923797758843955068554978089862":
-+Test "tgamma (0.5) == sqrt (pi)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
--Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
-+
-+# y0
-+Test "y0 (0.125) == -1.38968062514384052915582277745018693":
-+ildouble: 1
-+ldouble: 1
-+Test "y0 (0.75) == -0.137172769385772397522814379396581855":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
-+Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
-+ildouble: 1
-+ldouble: 1
-+Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
-+float: 1
-+ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "y0 (8.0) == 0.223521489387566220527323400498620359":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -766,9 +1211,6 @@ ldouble: 1
- Test "y1 (0.125) == -5.19993611253477499595928744876579921":
- ildouble: 1
- ldouble: 1
--Test "y1 (1.0) == -0.781212821300288716547150000047964821":
--double: 1
--idouble: 1
- Test "y1 (10.0) == 0.249015424206953883923283474663222803":
- double: 2
- float: 2
-@@ -782,9 +1224,7 @@ ifloat: 2
- ildouble: 1
- ldouble: 1
- Test "y1 (8.0) == -0.158060461731247494255555266187483550":
--double: 1
- float: 2
--idouble: 1
- ifloat: 2
- ildouble: 1
- ldouble: 1
-@@ -799,37 +1239,21 @@ float: 1
- idouble: 1
- ifloat: 1
- Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
--double: 2
--float: 1
--idouble: 2
--ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
- Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
- ildouble: 1
- ldouble: 1
--Test "yn (1, 1.0) == -0.781212821300288716547150000047964821":
--double: 1
--idouble: 1
- Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
- double: 2
- float: 2
-@@ -843,17 +1267,13 @@ ifloat: 2
- ildouble: 1
- ldouble: 1
- Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
--double: 1
- float: 2
--idouble: 1
- ifloat: 2
- ildouble: 1
- ldouble: 1
- Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
- double: 1
--float: 1
- idouble: 1
--ifloat: 1
- ildouble: 2
- ldouble: 2
- Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
-@@ -862,28 +1282,22 @@ ifloat: 1
- ildouble: 4
- ldouble: 4
- Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
--double: 1
- float: 2
--idouble: 1
- ifloat: 2
- Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
- double: 1
--float: 3
-+float: 1
- idouble: 1
--ifloat: 3
-+ifloat: 1
- Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
--double: 2
- float: 3
--idouble: 2
- ifloat: 3
- Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
- ildouble: 1
- ldouble: 1
- Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
- double: 1
--float: 1
- idouble: 1
--ifloat: 1
- ildouble: 2
- ldouble: 2
- Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
-@@ -892,15 +1306,13 @@ float: 1
- idouble: 1
- ifloat: 1
- Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- # Maximal error of functions:
- Function: "acos":
--ildouble: 622
--ldouble: 622
-+ildouble: 1
-+ldouble: 1
- Function: "asin":
- ildouble: 1
-@@ -917,18 +1329,6 @@ ildouble: 2
- ldouble: 2
- Function: Real part of "cacosh":
--double: 1
--float: 9
--idouble: 1
--ifloat: 9
--ildouble: 6
--ldouble: 6
--
--Function: Imaginary part of "cacosh":
--double: 1
--float: 4
--idouble: 1
--ifloat: 4
- ildouble: 1
- ldouble: 1
-@@ -1033,8 +1433,6 @@ double: 1
- float: 1
- idouble: 1
- ifloat: 1
--ildouble: 1
--ldouble: 1
- Function: "cos":
- double: 2
-@@ -1044,16 +1442,58 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
--Function: "cosh":
-+Function: "cos_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cos_tonearest":
- ildouble: 1
-+ldouble: 1
-+
-+Function: "cos_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cos_upward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cosh_downward":
-+double: 1
-+float: 1
-+ldouble: 2
-+
-+Function: "cosh_tonearest":
-+ldouble: 1
-+
-+Function: "cosh_towardzero":
-+double: 1
-+float: 1
-+ldouble: 2
-+
-+Function: "cosh_upward":
-+double: 1
-+ldouble: 1
- Function: Real part of "cpow":
- double: 1
- float: 4
- idouble: 1
- ifloat: 4
--ildouble: 763
--ldouble: 763
-+ildouble: 6
-+ldouble: 6
- Function: Imaginary part of "cpow":
- double: 2
-@@ -1086,38 +1526,32 @@ double: 1
- float: 1
- idouble: 1
- ifloat: 1
--ildouble: 2
--ldouble: 2
- Function: Real part of "ctan":
- double: 1
- idouble: 1
--ildouble: 439
--ldouble: 439
-+ildouble: 1
-+ldouble: 1
- Function: Imaginary part of "ctan":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 3
- ldouble: 3
- Function: Real part of "ctanh":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
--ildouble: 5
--ldouble: 5
-+ildouble: 3
-+ldouble: 3
- Function: Imaginary part of "ctanh":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
--ildouble: 25
--ldouble: 25
-+ildouble: 1
-+ldouble: 1
- Function: "erf":
- double: 1
-@@ -1125,19 +1559,36 @@ idouble: 1
- Function: "erfc":
- double: 1
--float: 1
- idouble: 1
--ifloat: 1
- ildouble: 1
- ldouble: 1
--Function: "exp":
--ildouble: 754
--
- Function: "exp10":
- ildouble: 8
- ldouble: 8
-+Function: "exp_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "exp_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "exp_upward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+
- Function: "expm1":
- ildouble: 1
-@@ -1151,10 +1602,10 @@ Function: "hypot":
- float: 1
- Function: "j0":
--double: 3
--float: 2
--idouble: 3
--ifloat: 2
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -1167,10 +1618,10 @@ ildouble: 1
- ldouble: 1
- Function: "jn":
--double: 5
--float: 2
--idouble: 5
--ifloat: 2
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
- ildouble: 2
- ldouble: 2
-@@ -1192,6 +1643,58 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
-+Function: "pow_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "pow_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "pow_upward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_tonearest":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_upward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
- Function: "sincos":
- double: 1
- float: 1
-@@ -1201,13 +1704,62 @@ ildouble: 1
- ldouble: 1
- Function: "sinh":
--double: 1
- ildouble: 1
-+Function: "sinh_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ldouble: 5
-+
-+Function: "sinh_tonearest":
-+ldouble: 6
-+
-+Function: "sinh_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ldouble: 5
-+
-+Function: "sinh_upward":
-+double: 1
-+idouble: 1
-+ldouble: 27
-+
- Function: "tan":
- double: 1
- idouble: 1
-+Function: "tan_downward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "tan_tonearest":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "tan_towardzero":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "tan_upward":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
- Function: "tgamma":
- double: 2
- float: 1
-@@ -1217,9 +1769,9 @@ ildouble: 1
- ldouble: 1
- Function: "y0":
--double: 2
-+double: 1
- float: 1
--idouble: 2
-+idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-diff -Nrup a/sysdeps/ieee754/dbl-64/e_exp.c b/sysdeps/ieee754/dbl-64/e_exp.c
---- a/sysdeps/ieee754/dbl-64/e_exp.c   2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/ieee754/dbl-64/e_exp.c   2012-08-06 09:54:00.823929687 -0600
-@@ -1,7 +1,7 @@
- /*
-  * IBM Accurate Mathematical Library
-  * written by International Business Machines Corp.
-- * Copyright (C) 2001 Free Software Foundation
-+ * Copyright (C) 2001-2012 Free Software Foundation
-  *
-  * This program is free software; you can redistribute it and/or modify
-  * it under the terms of the GNU Lesser General Public License as published by
-@@ -39,6 +39,7 @@
- #include "MathLib.h"
- #include "uexp.tbl"
- #include "math_private.h"
-+#include <fenv.h>
- double __slowexp(double);
-@@ -53,6 +54,10 @@ double __ieee754_exp(double x) {
-   int4 k;
- #endif
-   int4 i,j,m,n,ex;
-+  fenv_t env;
-+  double retval;
-+
-+  libc_feholdexcept_setround (&env, FE_TONEAREST);
-   junk1.x = x;
-   m = junk1.i[HIGH_HALF];
-@@ -85,18 +90,19 @@ double __ieee754_exp(double x) {
-     rem=(bet + bet*eps)+al*eps;
-     res = al + rem;
-     cor = (al - res) + rem;
--    if  (res == (res+cor*err_0)) return res*binexp.x;
--    else return __slowexp(x); /*if error is over bound */
-+    if  (res == (res+cor*err_0)) { retval = res*binexp.x; goto ret; }
-+    else { retval = __slowexp(x); goto ret; } /*if error is over bound */
-   }
--  if (n <= smallint) return 1.0;
-+  if (n <= smallint) { retval = 1.0; goto ret; }
-   if (n >= badint) {
--    if (n > infint) return(x+x);               /* x is NaN */
--    if (n < infint) return ( (x>0) ? (hhuge*hhuge) : (tiny*tiny) );
-+    if (n > infint) { retval = x+x; goto ret; }               /* x is NaN */
-+    if (n < infint) { retval = (x>0) ? (hhuge*hhuge) : (tiny*tiny); goto ret; }
-     /* x is finite,  cause either overflow or underflow  */
--    if (junk1.i[LOW_HALF] != 0)  return (x+x);                /*  x is NaN  */
--    return ((x>0)?inf.x:zero );             /* |x| = inf;  return either inf or 0 */
-+    if (junk1.i[LOW_HALF] != 0) { retval = x+x; goto ret; } /*  x is NaN  */
-+    retval = (x>0)?inf.x:zero;             /* |x| = inf;  return either inf or 0 */
-+    goto ret;
-   }
-   y = x*log2e.x + three51.x;
-@@ -121,8 +127,8 @@ double __ieee754_exp(double x) {
-     if (res < 1.0) {res+=res; cor+=cor; ex-=1;}
-     if (ex >=-1022) {
-       binexp.i[HIGH_HALF] = (1023+ex)<<20;
--      if  (res == (res+cor*err_0)) return res*binexp.x;
--      else return __slowexp(x); /*if error is over bound */
-+      if  (res == (res+cor*err_0)) { retval = res*binexp.x; goto ret; }
-+      else { retval = __slowexp(x); goto ret; } /*if error is over bound */
-     }
-     ex = -(1022+ex);
-     binexp.i[HIGH_HALF] = (1023-ex)<<20;
-@@ -135,15 +141,19 @@ double __ieee754_exp(double x) {
-     cor = (t-res)+y;
-     if (res == (res + eps*cor))
-     { binexp.i[HIGH_HALF] = 0x00100000;
--      return (res-1.0)*binexp.x;
-+      retval = (res-1.0)*binexp.x;
-+      goto ret;
-     }
--    else return __slowexp(x); /*   if error is over bound    */
-+    else { retval = __slowexp(x); goto ret; } /*   if error is over bound    */
-   }
-   else {
-     binexp.i[HIGH_HALF] =(junk1.i[LOW_HALF]+767)<<20;
--    if  (res == (res+cor*err_0)) return res*binexp.x*t256.x;
--    else return __slowexp(x);
-+    if (res == (res+cor*err_0)) { retval = res*binexp.x*t256.x; goto ret; }
-+    else { retval = __slowexp(x); goto ret; }
-   }
-+ ret:
-+  libc_feupdateenv (&env);
-+  return retval;
- }
- /************************************************************************/
-diff -Nrup a/sysdeps/ieee754/dbl-64/e_exp2.c b/sysdeps/ieee754/dbl-64/e_exp2.c
---- a/sysdeps/ieee754/dbl-64/e_exp2.c  2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/ieee754/dbl-64/e_exp2.c  2012-08-06 09:54:00.824929683 -0600
-@@ -24,9 +24,6 @@
-    17 (1), March 1991, pp. 26-45.
-    It has been slightly modified to compute 2^x instead of e^x.
-    */
--#ifndef _GNU_SOURCE
--#define _GNU_SOURCE
--#endif
- #include <stdlib.h>
- #include <float.h>
- #include <ieee754.h>
-@@ -37,13 +34,8 @@
- #include "t_exp2.h"
--/* XXX I know the assembler generates a warning about incorrect section
--   attributes. But without the attribute here the compiler places the
--   constants in the .data section.  Ideally the constant is placed in
--   .rodata.cst8 so that it can be merged, but gcc sucks, it ICEs when
--   we try to force this section on it.  --drepper  */
--static const volatile double TWO1023 = 8.988465674311579539e+307;
--static const volatile double TWOM1000 = 9.3326361850321887899e-302;
-+static const double TWO1023 = 8.988465674311579539e+307;
-+static const double TWOM1000 = 9.3326361850321887899e-302;
- double
- __ieee754_exp2 (double x)
-@@ -60,11 +52,7 @@ __ieee754_exp2 (double x)
-       union ieee754_double ex2_u, scale_u;
-       fenv_t oldenv;
--      feholdexcept (&oldenv);
--#ifdef FE_TONEAREST
--      /* If we don't have this, it's too bad.  */
--      fesetround (FE_TONEAREST);
--#endif
-+      libc_feholdexcept_setround (&oldenv, FE_TONEAREST);
-       /* 1. Argument reduction.
-        Choose integers ex, -256 <= t < 256, and some real
-@@ -108,9 +96,10 @@ __ieee754_exp2 (double x)
-              * x + .055504110254308625)
-             * x + .240226506959100583)
-            * x + .69314718055994495) * ex2_u.d;
-+      math_opt_barrier (x22);
-       /* 5. Return (2^x2-1) * 2^(t/512+e+ex) + 2^(t/512+e+ex).  */
--      fesetenv (&oldenv);
-+      libc_fesetenv (&oldenv);
-       result = x22 * x + ex2_u.d;
-diff -Nrup a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c
---- a/sysdeps/ieee754/dbl-64/e_pow.c   2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/ieee754/dbl-64/e_pow.c   2012-08-06 09:54:00.824929683 -0600
-@@ -42,6 +42,7 @@
- #include "MathLib.h"
- #include "upow.tbl"
- #include "math_private.h"
-+#include <fenv.h>
- double __exp1(double x, double xx, double error);
-@@ -79,6 +80,11 @@ double __ieee754_pow(double x, double y)
-        (u.i[HIGH_HALF]==0 && u.i[LOW_HALF]!=0))  &&
-                                       /*   2^-1023< x<= 2^-1023 * 0x1.0000ffffffff */
-       (v.i[HIGH_HALF]&0x7fffffff) < 0x4ff00000) {              /* if y<-1 or y>1   */
-+    fenv_t env;
-+    double retval;
-+
-+    libc_feholdexcept_setround (&env, FE_TONEAREST);
-+
-     z = log1(x,&aa,&error);                                 /* x^y  =e^(y log (X)) */
-     t = y*134217729.0;
-     y1 = t - (t-y);
-@@ -92,7 +98,10 @@ double __ieee754_pow(double x, double y)
-     a2 = (a-a1)+aa;
-     error = error*ABS(y);
-     t = __exp1(a1,a2,1.9e16*error);     /* return -10 or 0 if wasn't computed exactly */
--    return (t>0)?t:power1(x,y);
-+    retval = (t>0)?t:power1(x,y);
-+
-+    libc_feupdateenv (&env);
-+    return retval;
-   }
-   if (x == 0) {
-diff -Nrup a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c
---- a/sysdeps/ieee754/dbl-64/s_sin.c   2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/ieee754/dbl-64/s_sin.c   2012-08-06 09:54:00.827929671 -0600
-@@ -55,6 +55,7 @@
- #include "MathLib.h"
- #include "sincos.tbl"
- #include "math_private.h"
-+#include <fenv.h>
- static const double
-           sn3 = -1.66666666666664880952546298448555E-01,
-@@ -97,12 +98,16 @@ double __sin(double x){
- #if 0
-       int4 nn;
- #endif
-+      fenv_t env;
-+      double retval = 0;
-+
-+      libc_feholdexcept_setround (&env, FE_TONEAREST);
-       u.x = x;
-       m = u.i[HIGH_HALF];
-       k = 0x7fffffff&m;              /* no sign           */
-       if (k < 0x3e500000)            /* if x->0 =>sin(x)=x */
--       return x;
-+        { retval = x; goto ret; }
-  /*---------------------------- 2^-26 < |x|< 0.25 ----------------------*/
-       else  if (k < 0x3fd00000){
-         xx = x*x;
-@@ -110,7 +115,8 @@ double __sin(double x){
-         t = ((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + s1.x)*(xx*x);
-         res = x+t;
-         cor = (x-res)+t;
--        return (res == res + 1.07*cor)? res : slow(x);
-+        retval = (res == res + 1.07*cor)? res : slow(x);
-+        goto ret;
-       }    /*  else  if (k < 0x3fd00000)    */
- /*---------------------------- 0.25<|x|< 0.855469---------------------- */
-       else if (k < 0x3feb6000)  {
-@@ -127,7 +133,8 @@ double __sin(double x){
-         cor=(ssn+s*ccs-sn*c)+cs*s;
-         res=sn+cor;
-         cor=(sn-res)+cor;
--        return (res==res+1.025*cor)? res : slow1(x);
-+        retval = (res==res+1.096*cor)? res : slow1(x);
-+        goto ret;
-       }    /*   else  if (k < 0x3feb6000)    */
- /*----------------------- 0.855469  <|x|<2.426265  ----------------------*/
-@@ -153,7 +160,8 @@ double __sin(double x){
-         cor=(ccs-s*ssn-cs*c)-sn*s;
-         res=cs+cor;
-         cor=(cs-res)+cor;
--        return (res==res+1.020*cor)? ((m>0)?res:-res) : slow2(x);
-+        retval = (res==res+1.020*cor)? ((m>0)?res:-res) : slow2(x);
-+        goto ret;
-       } /*   else  if (k < 0x400368fd)    */
- /*-------------------------- 2.426265<|x|< 105414350 ----------------------*/
-@@ -179,7 +187,8 @@ double __sin(double x){
-             res = a+t;
-             cor = (a-res)+t;
-             cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps;
--            return (res == res + cor)? res : sloww(a,da,x);
-+            retval = (res == res + cor)? res : sloww(a,da,x);
-+            goto ret;
-           }
-           else  {
-             if (a>0)
-@@ -200,7 +209,8 @@ double __sin(double x){
-             res=sn+cor;
-             cor=(sn-res)+cor;
-             cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps;
--            return (res==res+cor)? ((m)?res:-res) : sloww1(a,da,x);
-+            retval = (res==res+cor)? ((m)?res:-res) : sloww1(a,da,x);
-+            goto ret;
-           }
-           break;
-@@ -222,7 +232,8 @@ double __sin(double x){
-           res=cs+cor;
-           cor=(cs-res)+cor;
-           cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps;
--          return (res==res+cor)? ((n&2)?-res:res) : sloww2(a,da,x,n);
-+          retval = (res==res+cor)? ((n&2)?-res:res) : sloww2(a,da,x,n);
-+          goto ret;
-           break;
-@@ -258,7 +269,8 @@ double __sin(double x){
-             res = a+t;
-             cor = (a-res)+t;
-             cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps;
--            return (res == res + cor)? res : bsloww(a,da,x,n);
-+            retval = (res == res + cor)? res : bsloww(a,da,x,n);
-+            goto ret;
-           }
-           else  {
-             if (a>0) {m=1;t=a;db=da;}
-@@ -277,7 +289,8 @@ double __sin(double x){
-             res=sn+cor;
-             cor=(sn-res)+cor;
-             cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps;
--            return (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n);
-+            retval = (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n);
-+            goto ret;
-                  }
-           break;
-@@ -299,7 +312,8 @@ double __sin(double x){
-           res=cs+cor;
-           cor=(cs-res)+cor;
-           cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps;
--          return (res==res+cor)? ((n&2)?-res:res) : bsloww2(a,da,x,n);
-+          retval = (res==res+cor)? ((n&2)?-res:res) : bsloww2(a,da,x,n);
-+          goto ret;
-           break;
-@@ -313,17 +327,20 @@ double __sin(double x){
-         n = __branred(x,&a,&da);
-         switch (n) {
-         case 0:
--          if (a*a < 0.01588) return bsloww(a,da,x,n);
--          else return bsloww1(a,da,x,n);
-+          if (a*a < 0.01588) retval = bsloww(a,da,x,n);
-+          else retval = bsloww1(a,da,x,n);
-+          goto ret;
-           break;
-         case 2:
--          if (a*a < 0.01588) return bsloww(-a,-da,x,n);
--          else return bsloww1(-a,-da,x,n);
-+          if (a*a < 0.01588) retval = bsloww(-a,-da,x,n);
-+          else retval = bsloww1(-a,-da,x,n);
-+          goto ret;
-           break;
-         case 1:
-         case 3:
--          return  bsloww2(a,da,x,n);
-+          retval = bsloww2(a,da,x,n);
-+          goto ret;
-           break;
-         }
-@@ -333,9 +350,13 @@ double __sin(double x){
-       else {
-         if (k == 0x7ff00000 && u.i[LOW_HALF] == 0)
-           __set_errno (EDOM);
--        return x / x;
-+        retval = x / x;
-+        goto ret;
-       }
--      return 0;         /* unreachable */
-+
-+ ret:
-+      libc_feupdateenv (&env);
-+      return retval;
- }
-@@ -350,11 +371,16 @@ double __cos(double x)
-   mynumber u,v;
-   int4 k,m,n;
-+  fenv_t env;
-+  double retval = 0;
-+
-+  libc_feholdexcept_setround (&env, FE_TONEAREST);
-+
-   u.x = x;
-   m = u.i[HIGH_HALF];
-   k = 0x7fffffff&m;
--  if (k < 0x3e400000 ) return 1.0; /* |x|<2^-27 => cos(x)=1 */
-+  if (k < 0x3e400000 ) { retval = 1.0; goto ret; } /* |x|<2^-27 => cos(x)=1 */
-   else if (k < 0x3feb6000 ) {/* 2^-27 < |x| < 0.855469 */
-     y=ABS(x);
-@@ -371,7 +397,8 @@ double __cos(double x)
-     cor=(ccs-s*ssn-cs*c)-sn*s;
-     res=cs+cor;
-     cor=(cs-res)+cor;
--    return (res==res+1.020*cor)? res : cslow2(x);
-+    retval = (res==res+1.020*cor)? res : cslow2(x);
-+    goto ret;
- }    /*   else  if (k < 0x3feb6000)    */
-@@ -385,7 +412,8 @@ double __cos(double x)
-       res = a+t;
-       cor = (a-res)+t;
-       cor = (cor>0)? 1.02*cor+1.0e-31 : 1.02*cor -1.0e-31;
--      return (res == res + cor)? res : csloww(a,da,x);
-+      retval = (res == res + cor)? res : csloww(a,da,x);
-+      goto ret;
-     }
-     else  {
-       if (a>0) {m=1;t=a;db=da;}
-@@ -404,7 +432,8 @@ double __cos(double x)
-       res=sn+cor;
-       cor=(sn-res)+cor;
-       cor = (cor>0)? 1.035*cor+1.0e-31 : 1.035*cor-1.0e-31;
--      return (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x);
-+      retval = (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x);
-+      goto ret;
- }
- }    /*   else  if (k < 0x400368fd)    */
-@@ -431,7 +460,8 @@ double __cos(double x)
-       res = a+t;
-       cor = (a-res)+t;
-       cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps;
--      return (res == res + cor)? res : csloww(a,da,x);
-+      retval = (res == res + cor)? res : csloww(a,da,x);
-+      goto ret;
-       }
-       else  {
-       if (a>0) {m=1;t=a;db=da;}
-@@ -450,7 +480,8 @@ double __cos(double x)
-       res=sn+cor;
-       cor=(sn-res)+cor;
-       cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps;
--      return (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x);
-+      retval = (res==res+cor)? ((m)?res:-res) : csloww1(a,da,x);
-+      goto ret;
-       }
-       break;
-@@ -471,7 +502,8 @@ double __cos(double x)
-       res=cs+cor;
-       cor=(cs-res)+cor;
-       cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps;
--      return (res==res+cor)? ((n)?-res:res) : csloww2(a,da,x,n);
-+      retval = (res==res+cor)? ((n)?-res:res) : csloww2(a,da,x,n);
-+      goto ret;
-            break;
-@@ -506,7 +538,8 @@ double __cos(double x)
-       res = a+t;
-       cor = (a-res)+t;
-       cor = (cor>0)? 1.02*cor+eps : 1.02*cor -eps;
--      return (res == res + cor)? res : bsloww(a,da,x,n);
-+      retval = (res == res + cor)? res : bsloww(a,da,x,n);
-+      goto ret;
-       }
-       else  {
-       if (a>0) {m=1;t=a;db=da;}
-@@ -525,7 +558,8 @@ double __cos(double x)
-       res=sn+cor;
-       cor=(sn-res)+cor;
-       cor = (cor>0)? 1.035*cor+eps : 1.035*cor-eps;
--      return (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n);
-+      retval = (res==res+cor)? ((m)?res:-res) : bsloww1(a,da,x,n);
-+      goto ret;
-       }
-       break;
-@@ -546,7 +580,8 @@ double __cos(double x)
-       res=cs+cor;
-       cor=(cs-res)+cor;
-       cor = (cor>0)? 1.025*cor+eps : 1.025*cor-eps;
--      return (res==res+cor)? ((n)?-res:res) : bsloww2(a,da,x,n);
-+      retval = (res==res+cor)? ((n)?-res:res) : bsloww2(a,da,x,n);
-+      goto ret;
-       break;
-     }
-@@ -558,17 +593,20 @@ double __cos(double x)
-     n = __branred(x,&a,&da);
-     switch (n) {
-     case 1:
--      if (a*a < 0.01588) return bsloww(-a,-da,x,n);
--      else return bsloww1(-a,-da,x,n);
-+      if (a*a < 0.01588) retval = bsloww(-a,-da,x,n);
-+      else retval = bsloww1(-a,-da,x,n);
-+      goto ret;
-       break;
-               case 3:
--                if (a*a < 0.01588) return bsloww(a,da,x,n);
--                else return bsloww1(a,da,x,n);
-+                if (a*a < 0.01588) retval = bsloww(a,da,x,n);
-+                else retval = bsloww1(a,da,x,n);
-+                goto ret;
-                 break;
-     case 0:
-     case 2:
--      return  bsloww2(a,da,x,n);
-+      retval = bsloww2(a,da,x,n);
-+      goto ret;
-       break;
-     }
-@@ -580,10 +618,13 @@ double __cos(double x)
-   else {
-     if (k == 0x7ff00000 && u.i[LOW_HALF] == 0)
-       __set_errno (EDOM);
--    return x / x; /* |x| > 2^1024 */
-+    retval = x / x; /* |x| > 2^1024 */
-+    goto ret;
-   }
--  return 0;
-+ ret:
-+  libc_feupdateenv (&env);
-+  return retval;
- }
- /************************************************************************/
-diff -Nrup a/sysdeps/ieee754/dbl-64/s_tan.c b/sysdeps/ieee754/dbl-64/s_tan.c
---- a/sysdeps/ieee754/dbl-64/s_tan.c   2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/ieee754/dbl-64/s_tan.c   2012-08-06 09:54:00.828929666 -0600
-@@ -40,6 +40,8 @@
- #include "mpa.h"
- #include "MathLib.h"
- #include "math.h"
-+#include "math_private.h"
-+#include <fenv.h>
- static double tanMp(double);
- void __mptan(double, mp_no *, int);
-@@ -58,21 +60,27 @@ double tan(double x) {
-   mp_no mpy;
- #endif
-+  fenv_t env;
-+  double retval;
-+
-   int __branred(double, double *, double *);
-   int __mpranred(double, mp_no *, int);
-+  libc_feholdexcept_setround (&env, FE_TONEAREST);
-+
-   /* x=+-INF, x=NaN */
-   num.d = x;  ux = num.i[HIGH_HALF];
-   if ((ux&0x7ff00000)==0x7ff00000) {
-     if ((ux&0x7fffffff)==0x7ff00000)
-       __set_errno (EDOM);
--    return x-x;
-+    retval = x-x;
-+    goto ret;
-   }
-   w=(x<ZERO) ? -x : x;
-   /* (I) The case abs(x) <= 1.259e-8 */
--  if (w<=g1.d)  return x;
-+  if (w<=g1.d) { retval = x; goto ret; }
-   /* (II) The case 1.259e-8 < abs(x) <= 0.0608 */
-   if (w<=g2.d) {
-@@ -80,7 +88,7 @@ double tan(double x) {
-     /* First stage */
-     x2 = x*x;
-     t2 = x*x2*(d3.d+x2*(d5.d+x2*(d7.d+x2*(d9.d+x2*d11.d))));
--    if ((y=x+(t2-u1.d*t2)) == x+(t2+u1.d*t2))  return y;
-+    if ((y=x+(t2-u1.d*t2)) == x+(t2+u1.d*t2)) { retval = y; goto ret; }
-     /* Second stage */
-     c1 = x2*(a15.d+x2*(a17.d+x2*(a19.d+x2*(a21.d+x2*(a23.d+x2*(a25.d+
-@@ -100,8 +108,9 @@ double tan(double x) {
-     MUL2(x2,xx2,c2,cc2,c1,cc1,t1,t2,t3,t4,t5,t6,t7,t8)
-     MUL2(x ,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8)
-     ADD2(x    ,zero.d,c2,cc2,c1,cc1,t1,t2)
--    if ((y=c1+(cc1-u2.d*c1)) == c1+(cc1+u2.d*c1))  return y;
--    return tanMp(x);
-+    if ((y=c1+(cc1-u2.d*c1)) == c1+(cc1+u2.d*c1)) { retval = y; goto ret; }
-+    retval = tanMp(x);
-+    goto ret;
-   }
-   /* (III) The case 0.0608 < abs(x) <= 0.787 */
-@@ -112,10 +121,10 @@ double tan(double x) {
-     z = w-xfg[i][0].d;  z2 = z*z;   s = (x<ZERO) ? MONE : ONE;
-     pz = z+z*z2*(e0.d+z2*e1.d);
-     fi = xfg[i][1].d;   gi = xfg[i][2].d;   t2 = pz*(gi+fi)/(gi-pz);
--    if ((y=fi+(t2-fi*u3.d))==fi+(t2+fi*u3.d))  return (s*y);
-+    if ((y=fi+(t2-fi*u3.d))==fi+(t2+fi*u3.d)) { retval = (s*y); goto ret; }
-     t3 = (t2<ZERO) ? -t2 : t2;
-     t4 = fi*ua3.d+t3*ub3.d;
--    if ((y=fi+(t2-t4))==fi+(t2+t4))  return (s*y);
-+    if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (s*y); goto ret; }
-     /* Second stage */
-     ffi = xfg[i][3].d;
-@@ -133,8 +142,9 @@ double tan(double x) {
-     SUB2(one.d,zero.d,c3,cc3,c1,cc1,t1,t2)
-     DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--    if ((y=c3+(cc3-u4.d*c3))==c3+(cc3+u4.d*c3))  return (s*y);
--    return tanMp(x);
-+      if ((y=c3+(cc3-u4.d*c3))==c3+(cc3+u4.d*c3)) { retval = (s*y); goto ret; }
-+    retval = tanMp(x);
-+    goto ret;
-   }
-   /* (---) The case 0.787 < abs(x) <= 25 */
-@@ -152,7 +162,7 @@ double tan(double x) {
-     else         {ya= a;  yya= da;  sy= ONE;}
-     /* (IV),(V) The case 0.787 < abs(x) <= 25,    abs(y) <= 1e-7 */
--    if (ya<=gy1.d)  return tanMp(x);
-+    if (ya<=gy1.d) { retval = tanMp(x); goto ret; }
-     /* (VI) The case 0.787 < abs(x) <= 25,    1e-7 < abs(y) <= 0.0608 */
-     if (ya<=gy2.d) {
-@@ -162,10 +172,10 @@ double tan(double x) {
-         /* First stage -cot */
-         EADD(a,t2,b,db)
-         DIV2(one.d,zero.d,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--        if ((y=c+(dc-u6.d*c))==c+(dc+u6.d*c))  return (-y); }
-+      if ((y=c+(dc-u6.d*c))==c+(dc+u6.d*c)) { retval = (-y); goto ret; } }
-       else {
-         /* First stage tan */
--        if ((y=a+(t2-u5.d*a))==a+(t2+u5.d*a))  return y; }
-+      if ((y=a+(t2-u5.d*a))==a+(t2+u5.d*a)) { retval = y; goto ret; } }
-       /* Second stage */
-       /* Range reduction by algorithm ii */
-       t = (x*hpinv.d + toint.d);
-@@ -203,11 +213,12 @@ double tan(double x) {
-       if (n) {
-         /* Second stage -cot */
-         DIV2(one.d,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--        if ((y=c2+(cc2-u8.d*c2)) == c2+(cc2+u8.d*c2))  return (-y); }
-+      if ((y=c2+(cc2-u8.d*c2)) == c2+(cc2+u8.d*c2)) { retval = (-y); goto ret; } }
-       else {
-         /* Second stage tan */
--        if ((y=c1+(cc1-u7.d*c1)) == c1+(cc1+u7.d*c1))  return y; }
--      return tanMp(x);
-+      if ((y=c1+(cc1-u7.d*c1)) == c1+(cc1+u7.d*c1)) { retval = y; goto ret; } }
-+      retval = tanMp(x);
-+      goto ret;
-     }
-     /* (VII) The case 0.787 < abs(x) <= 25,    0.0608 < abs(y) <= 0.787 */
-@@ -221,17 +232,17 @@ double tan(double x) {
-     if (n) {
-       /* -cot */
-       t2 = pz*(fi+gi)/(fi+pz);
--      if ((y=gi-(t2-gi*u10.d))==gi-(t2+gi*u10.d))  return (-sy*y);
-+      if ((y=gi-(t2-gi*u10.d))==gi-(t2+gi*u10.d)) { retval = (-sy*y); goto ret; }
-       t3 = (t2<ZERO) ? -t2 : t2;
-       t4 = gi*ua10.d+t3*ub10.d;
--      if ((y=gi-(t2-t4))==gi-(t2+t4))  return (-sy*y); }
-+      if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } }
-     else   {
-       /* tan */
-       t2 = pz*(gi+fi)/(gi-pz);
--      if ((y=fi+(t2-fi*u9.d))==fi+(t2+fi*u9.d))  return (sy*y);
-+      if ((y=fi+(t2-fi*u9.d))==fi+(t2+fi*u9.d)) { retval = (sy*y); goto ret; }
-       t3 = (t2<ZERO) ? -t2 : t2;
-       t4 = fi*ua9.d+t3*ub9.d;
--      if ((y=fi+(t2-t4))==fi+(t2+t4))  return (sy*y); }
-+      if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } }
-     /* Second stage */
-     ffi = xfg[i][3].d;
-@@ -252,13 +263,14 @@ double tan(double x) {
-     if (n) {
-       /* -cot */
-       DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--      if ((y=c3+(cc3-u12.d*c3))==c3+(cc3+u12.d*c3))  return (-sy*y); }
-+      if ((y=c3+(cc3-u12.d*c3))==c3+(cc3+u12.d*c3)) { retval = (-sy*y); goto ret; } }
-     else {
-       /* tan */
-       DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--      if ((y=c3+(cc3-u11.d*c3))==c3+(cc3+u11.d*c3))  return (sy*y); }
-+      if ((y=c3+(cc3-u11.d*c3))==c3+(cc3+u11.d*c3)) { retval = (sy*y); goto ret; } }
--    return tanMp(x);
-+    retval = tanMp(x);
-+    goto ret;
-   }
-   /* (---) The case 25 < abs(x) <= 1e8 */
-@@ -280,7 +292,7 @@ double tan(double x) {
-     else         {ya= a;  yya= da;  sy= ONE;}
-     /* (+++) The case 25 < abs(x) <= 1e8,    abs(y) <= 1e-7 */
--    if (ya<=gy1.d)  return tanMp(x);
-+    if (ya<=gy1.d) { retval = tanMp(x); goto ret; }
-     /* (VIII) The case 25 < abs(x) <= 1e8,    1e-7 < abs(y) <= 0.0608 */
-     if (ya<=gy2.d) {
-@@ -290,10 +302,10 @@ double tan(double x) {
-         /* First stage -cot */
-         EADD(a,t2,b,db)
-         DIV2(one.d,zero.d,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--        if ((y=c+(dc-u14.d*c))==c+(dc+u14.d*c))  return (-y); }
-+      if ((y=c+(dc-u14.d*c))==c+(dc+u14.d*c)) { retval = (-y); goto ret; } }
-       else {
-         /* First stage tan */
--        if ((y=a+(t2-u13.d*a))==a+(t2+u13.d*a))  return y; }
-+      if ((y=a+(t2-u13.d*a))==a+(t2+u13.d*a)) { retval = y; goto ret; } }
-       /* Second stage */
-       MUL2(a,da,a,da,x2,xx2,t1,t2,t3,t4,t5,t6,t7,t8)
-@@ -317,11 +329,12 @@ double tan(double x) {
-       if (n) {
-         /* Second stage -cot */
-         DIV2(one.d,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--        if ((y=c2+(cc2-u16.d*c2)) == c2+(cc2+u16.d*c2))  return (-y); }
-+      if ((y=c2+(cc2-u16.d*c2)) == c2+(cc2+u16.d*c2)) { retval = (-y); goto ret; } }
-       else {
-         /* Second stage tan */
--        if ((y=c1+(cc1-u15.d*c1)) == c1+(cc1+u15.d*c1))  return (y); }
--      return tanMp(x);
-+      if ((y=c1+(cc1-u15.d*c1)) == c1+(cc1+u15.d*c1)) { retval = (y); goto ret; } }
-+      retval = tanMp(x);
-+      goto ret;
-     }
-     /* (IX) The case 25 < abs(x) <= 1e8,    0.0608 < abs(y) <= 0.787 */
-@@ -334,17 +347,17 @@ double tan(double x) {
-     if (n) {
-       /* -cot */
-       t2 = pz*(fi+gi)/(fi+pz);
--      if ((y=gi-(t2-gi*u18.d))==gi-(t2+gi*u18.d))  return (-sy*y);
-+      if ((y=gi-(t2-gi*u18.d))==gi-(t2+gi*u18.d)) { retval = (-sy*y); goto ret; }
-       t3 = (t2<ZERO) ? -t2 : t2;
-       t4 = gi*ua18.d+t3*ub18.d;
--      if ((y=gi-(t2-t4))==gi-(t2+t4))  return (-sy*y); }
-+      if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } }
-     else   {
-       /* tan */
-       t2 = pz*(gi+fi)/(gi-pz);
--      if ((y=fi+(t2-fi*u17.d))==fi+(t2+fi*u17.d))  return (sy*y);
-+      if ((y=fi+(t2-fi*u17.d))==fi+(t2+fi*u17.d)) { retval = (sy*y); goto ret; }
-       t3 = (t2<ZERO) ? -t2 : t2;
-       t4 = fi*ua17.d+t3*ub17.d;
--      if ((y=fi+(t2-t4))==fi+(t2+t4))  return (sy*y); }
-+      if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } }
-     /* Second stage */
-     ffi = xfg[i][3].d;
-@@ -365,12 +378,13 @@ double tan(double x) {
-     if (n) {
-       /* -cot */
-       DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--      if ((y=c3+(cc3-u20.d*c3))==c3+(cc3+u20.d*c3))  return (-sy*y); }
-+      if ((y=c3+(cc3-u20.d*c3))==c3+(cc3+u20.d*c3)) { retval = (-sy*y); goto ret; } }
-     else {
-       /* tan */
-       DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--      if ((y=c3+(cc3-u19.d*c3))==c3+(cc3+u19.d*c3))  return (sy*y); }
--    return tanMp(x);
-+      if ((y=c3+(cc3-u19.d*c3))==c3+(cc3+u19.d*c3)) { retval = (sy*y); goto ret; } }
-+    retval = tanMp(x);
-+    goto ret;
-   }
-   /* (---) The case 1e8 < abs(x) < 2**1024 */
-@@ -381,7 +395,7 @@ double tan(double x) {
-   else         {ya= a;  yya= da;  sy= ONE;}
-   /* (+++) The case 1e8 < abs(x) < 2**1024,    abs(y) <= 1e-7 */
--  if (ya<=gy1.d)  return tanMp(x);
-+  if (ya<=gy1.d) { retval = tanMp(x); goto ret; }
-   /* (X) The case 1e8 < abs(x) < 2**1024,    1e-7 < abs(y) <= 0.0608 */
-   if (ya<=gy2.d) {
-@@ -391,10 +405,10 @@ double tan(double x) {
-       /* First stage -cot */
-       EADD(a,t2,b,db)
-       DIV2(one.d,zero.d,b,db,c,dc,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--      if ((y=c+(dc-u22.d*c))==c+(dc+u22.d*c))  return (-y); }
-+      if ((y=c+(dc-u22.d*c))==c+(dc+u22.d*c)) { retval = (-y); goto ret; } }
-     else {
-       /* First stage tan */
--      if ((y=a+(t2-u21.d*a))==a+(t2+u21.d*a))  return y; }
-+      if ((y=a+(t2-u21.d*a))==a+(t2+u21.d*a)) { retval = y; goto ret; } }
-     /* Second stage */
-     /* Reduction by algorithm iv */
-@@ -423,11 +437,12 @@ double tan(double x) {
-     if (n) {
-       /* Second stage -cot */
-       DIV2(one.d,zero.d,c1,cc1,c2,cc2,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--      if ((y=c2+(cc2-u24.d*c2)) == c2+(cc2+u24.d*c2))  return (-y); }
-+      if ((y=c2+(cc2-u24.d*c2)) == c2+(cc2+u24.d*c2)) { retval = (-y); goto ret; } }
-     else {
-       /* Second stage tan */
--      if ((y=c1+(cc1-u23.d*c1)) == c1+(cc1+u23.d*c1))  return y; }
--    return tanMp(x);
-+      if ((y=c1+(cc1-u23.d*c1)) == c1+(cc1+u23.d*c1)) { retval = y; goto ret; } }
-+    retval = tanMp(x);
-+    goto ret;
-   }
-   /* (XI) The case 1e8 < abs(x) < 2**1024,    0.0608 < abs(y) <= 0.787 */
-@@ -440,17 +455,17 @@ double tan(double x) {
-   if (n) {
-     /* -cot */
-     t2 = pz*(fi+gi)/(fi+pz);
--    if ((y=gi-(t2-gi*u26.d))==gi-(t2+gi*u26.d))  return (-sy*y);
-+    if ((y=gi-(t2-gi*u26.d))==gi-(t2+gi*u26.d)) { retval = (-sy*y); goto ret; }
-     t3 = (t2<ZERO) ? -t2 : t2;
-     t4 = gi*ua26.d+t3*ub26.d;
--    if ((y=gi-(t2-t4))==gi-(t2+t4))  return (-sy*y); }
-+    if ((y=gi-(t2-t4))==gi-(t2+t4)) { retval = (-sy*y); goto ret; } }
-   else   {
-     /* tan */
-     t2 = pz*(gi+fi)/(gi-pz);
--    if ((y=fi+(t2-fi*u25.d))==fi+(t2+fi*u25.d))  return (sy*y);
-+    if ((y=fi+(t2-fi*u25.d))==fi+(t2+fi*u25.d)) { retval = (sy*y); goto ret; }
-     t3 = (t2<ZERO) ? -t2 : t2;
-     t4 = fi*ua25.d+t3*ub25.d;
--    if ((y=fi+(t2-t4))==fi+(t2+t4))  return (sy*y); }
-+    if ((y=fi+(t2-t4))==fi+(t2+t4)) { retval = (sy*y); goto ret; } }
-   /* Second stage */
-   ffi = xfg[i][3].d;
-@@ -471,15 +486,19 @@ double tan(double x) {
-   if (n) {
-     /* -cot */
-     DIV2(c1,cc1,c2,cc2,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--    if ((y=c3+(cc3-u28.d*c3))==c3+(cc3+u28.d*c3))  return (-sy*y); }
-+    if ((y=c3+(cc3-u28.d*c3))==c3+(cc3+u28.d*c3)) { retval = (-sy*y); goto ret; } }
-   else {
-     /* tan */
-     DIV2(c2,cc2,c1,cc1,c3,cc3,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10)
--    if ((y=c3+(cc3-u27.d*c3))==c3+(cc3+u27.d*c3))  return (sy*y); }
--  return tanMp(x);
-+    if ((y=c3+(cc3-u27.d*c3))==c3+(cc3+u27.d*c3)) { retval = (sy*y); goto ret; } }
-+  retval = tanMp(x);
-+  goto ret;
-+
-+ ret:
-+  libc_feupdateenv (&env);
-+  return retval;
- }
--
- /* multiple precision stage                                              */
- /* Convert x to multi precision number,compute tan(x) by mptan() routine */
- /* and converts result back to double                                    */
-diff -Nrup a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
---- a/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c 2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c 2012-08-06 09:54:00.828929666 -0600
-@@ -24,22 +24,14 @@
- #include "math.h"
- #include "math_private.h"
--#ifdef __STDC__
- static const double
--#else
--static double
--#endif
- TWO52[2]={
-   4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
-  -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
- };
--#ifdef __STDC__
--      double __nearbyint(double x)
--#else
--      double __nearbyint(x)
--      double x;
--#endif
-+double
-+__nearbyint(double x)
- {
-       fenv_t env;
-       int64_t i0,sx;
-@@ -47,20 +39,19 @@ TWO52[2]={
-       EXTRACT_WORDS64(i0,x);
-       sx = (i0>>63)&1;
-       j0 = ((i0>>52)&0x7ff)-0x3ff;
--      if(j0<52) {
-+      if(__builtin_expect(j0<52, 1)) {
-           if(j0<0) {
-             if((i0&UINT64_C(0x7fffffffffffffff))==0) return x;
-               uint64_t i = i0 & UINT64_C(0xfffffffffffff);
-               i0 &= UINT64_C(0xfffe000000000000);
-               i0 |= (((i|-i) >> 12) & UINT64_C(0x8000000000000));
-               INSERT_WORDS64(x,i0);
--              feholdexcept (&env);
-+              libc_feholdexcept (&env);
-               double w = TWO52[sx]+x;
-               double t =  w-TWO52[sx];
--              fesetenv (&env);
--              EXTRACT_WORDS64(i0,t);
--              INSERT_WORDS64(t,(i0&UINT64_C(0x7fffffffffffffff))|(sx<<63));
--              return t;
-+              math_opt_barrier(t);
-+              libc_fesetenv (&env);
-+              return copysign(t, x);
-           } else {
-               uint64_t i = UINT64_C(0x000fffffffffffff)>>j0;
-               if((i0&i)==0) return x; /* x is integral */
-@@ -73,10 +64,11 @@ TWO52[2]={
-           else return x;              /* x is integral */
-       }
-       INSERT_WORDS64(x,i0);
--      feholdexcept (&env);
-+      libc_feholdexcept (&env);
-       double w = TWO52[sx]+x;
-       double t = w-TWO52[sx];
--      fesetenv (&env);
-+      math_opt_barrier (t);
-+      libc_fesetenv (&env);
-       return t;
- }
- weak_alias (__nearbyint, nearbyint)
-diff -Nrup a/sysdeps/ieee754/flt-32/e_exp2f.c b/sysdeps/ieee754/flt-32/e_exp2f.c
---- a/sysdeps/ieee754/flt-32/e_exp2f.c 2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/ieee754/flt-32/e_exp2f.c 2012-08-06 09:54:00.829929661 -0600
-@@ -56,11 +56,7 @@ __ieee754_exp2f (float x)
-       union ieee754_float ex2_u, scale_u;
-       fenv_t oldenv;
--      feholdexcept (&oldenv);
--#ifdef FE_TONEAREST
--      /* If we don't have this, it's too bad.  */
--      fesetround (FE_TONEAREST);
--#endif
-+      libc_feholdexcept_setroundf (&oldenv, FE_TONEAREST);
-       /* 1. Argument reduction.
-        Choose integers ex, -128 <= t < 128, and some real
-@@ -103,7 +99,7 @@ __ieee754_exp2f (float x)
-       x22 = (.24022656679f * x + .69314736128f) * ex2_u.f;
-       /* 5. Return (2^x2-1) * 2^(t/512+e+ex) + 2^(t/512+e+ex).  */
--      fesetenv (&oldenv);
-+      libc_fesetenv (&oldenv);
-       result = x22 * x + ex2_u.f;
-diff -Nrup a/sysdeps/ieee754/flt-32/e_expf.c b/sysdeps/ieee754/flt-32/e_expf.c
---- a/sysdeps/ieee754/flt-32/e_expf.c  2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/ieee754/flt-32/e_expf.c  2012-08-06 09:54:00.829929661 -0600
-@@ -47,9 +47,6 @@
-    to perform an 'accurate table method' expf, because of the range reduction
-    overhead (compare exp2f).
-    */
--#ifndef _GNU_SOURCE
--#define _GNU_SOURCE
--#endif
- #include <float.h>
- #include <ieee754.h>
- #include <math.h>
-@@ -60,8 +57,8 @@
- extern const float __exp_deltatable[178];
- extern const double __exp_atable[355] /* __attribute__((mode(DF))) */;
--static const volatile float TWOM100 = 7.88860905e-31;
--static const volatile float TWO127 = 1.7014118346e+38;
-+static const float TWOM100 = 7.88860905e-31;
-+static const float TWO127 = 1.7014118346e+38;
- float
- __ieee754_expf (float x)
-@@ -86,10 +83,7 @@ __ieee754_expf (float x)
-       union ieee754_double ex2_u;
-       fenv_t oldenv;
--      feholdexcept (&oldenv);
--#ifdef FE_TONEAREST
--      fesetround (FE_TONEAREST);
--#endif
-+      libc_feholdexcept_setroundf (&oldenv, FE_TONEAREST);
-       /* Calculate n.  */
-       n = x * M_1_LN2 + THREEp22;
-@@ -119,7 +113,7 @@ __ieee754_expf (float x)
-       x22 = (0.5000000496709180453 * dx + 1.0000001192102037084) * dx + delta;
-       /* Return result.  */
--      fesetenv (&oldenv);
-+      libc_fesetenvf (&oldenv);
-       result = x22 * ex2_u.d + ex2_u.d;
-       return (float) result;
-diff -Nrup a/sysdeps/ieee754/flt-32/s_nearbyintf.c b/sysdeps/ieee754/flt-32/s_nearbyintf.c
---- a/sysdeps/ieee754/flt-32/s_nearbyintf.c    2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/ieee754/flt-32/s_nearbyintf.c    2012-08-06 09:54:00.891929402 -0600
-@@ -19,22 +19,14 @@
- #include "math.h"
- #include "math_private.h"
--#ifdef __STDC__
- static const float
--#else
--static float
--#endif
- TWO23[2]={
-   8.3886080000e+06, /* 0x4b000000 */
-  -8.3886080000e+06, /* 0xcb000000 */
- };
--#ifdef __STDC__
--      float __nearbyintf(float x)
--#else
--      float __nearbyintf(x)
--      float x;
--#endif
-+float
-+__nearbyintf(float x)
- {
-       fenv_t env;
-       int32_t i0,j0,sx;
-@@ -50,13 +42,13 @@ TWO23[2]={
-               i0 &= 0xfff00000;
-               i0 |= ((i1|-i1)>>9)&0x400000;
-               SET_FLOAT_WORD(x,i0);
--              feholdexcept (&env);
--              w = TWO23[sx]+x;
--              t =  w-TWO23[sx];
--              fesetenv (&env);
-+              libc_feholdexceptf (&env);
-+              w = TWO23[sx]+x;
-+              t =  w-TWO23[sx];
-+              libc_fesetenvf (&env);
-               GET_FLOAT_WORD(i0,t);
-               SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
--              return t;
-+              return t;
-           } else {
-               i = (0x007fffff)>>j0;
-               if((i0&i)==0) return x; /* x is integral */
-@@ -64,14 +56,14 @@ TWO23[2]={
-               if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);
-           }
-       } else {
--          if(j0==0x80) return x+x;    /* inf or NaN */
-+          if(__builtin_expect(j0==0x80, 0)) return x+x;       /* inf or NaN */
-           else return x;              /* x is integral */
-       }
-       SET_FLOAT_WORD(x,i0);
--      feholdexcept (&env);
-+      libc_feholdexceptf (&env);
-       w = TWO23[sx]+x;
-       t = w-TWO23[sx];
--      fesetenv (&env);
-+      libc_fesetenvf (&env);
-       return t;
- }
- weak_alias (__nearbyintf, nearbyintf)
-diff -Nrup a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps
---- a/sysdeps/powerpc/fpu/libm-test-ulps       2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/powerpc/fpu/libm-test-ulps       2012-08-06 10:03:24.424569052 -0600
-@@ -37,16 +37,9 @@ ildouble: 1
- ldouble: 1
- # cacosh
--Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
--double: 1
--float: 7
--idouble: 1
--ifloat: 7
- Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
--double: 1
--float: 3
--idouble: 1
--ifloat: 3
-+float: 1
-+ifloat: 1
- # casin
- Test "Real part of: casin (-2 - 3 i) == -0.57065278432109940071028387968566963 - 1.9833870299165354323470769028940395 i":
-@@ -84,8 +77,6 @@ ifloat: 1
- # catan
- Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
--float: 3
--ifloat: 3
- ildouble: 1
- ldouble: 1
- Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
-@@ -93,23 +84,14 @@ double: 1
- float: 1
- idouble: 1
- ifloat: 1
--Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
--float: 4
--ifloat: 4
- # catanh
- Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
- double: 4
- idouble: 4
--Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
--float: 4
--ifloat: 4
- Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
- double: 1
- idouble: 1
--Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
--float: 6
--ifloat: 6
- # cbrt
- Test "cbrt (-27.0) == -3.0":
-@@ -167,8 +149,6 @@ ldouble: 1
- # clog
- Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
--float: 3
--ifloat: 3
- ildouble: 1
- ldouble: 1
- Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
-@@ -197,9 +177,7 @@ ildouble: 1
- ldouble: 1
- Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
- double: 1
--float: 5
- idouble: 1
--ifloat: 5
- ildouble: 1
- ldouble: 1
- Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
-@@ -298,23 +276,165 @@ ldouble: 1
- # cos
- Test "cos (M_PI_6l * 2.0) == 0.5":
- double: 1
--float: 1
- idouble: 1
--ifloat: 1
- Test "cos (M_PI_6l * 4.0) == -0.5":
- double: 2
- float: 1
- idouble: 2
- ifloat: 1
--Test "cos (pi/2) == 0":
--double: 1
-+
-+# cos_downward
-+Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
-+float: 1
-+ifloat: 1
-+ildouble: 4
-+ldouble: 4
-+Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (6) == 0.9601702866503660205456522979229244054519":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "cos_downward (9) == -0.9111302618846769883682947111811653112463":
-+ildouble: 1
-+ldouble: 1
-+
-+# cos_tonearest
-+Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+
-+# cos_towardzero
-+Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323":
-+ildouble: 2
-+ldouble: 2
-+Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
- float: 1
--idouble: 1
- ifloat: 1
--Test "cos (16.0) == -0.9576594803233846418996372326511034717803"
- ildouble: 2
- ldouble: 2
-+# cos_upward
-+Test "cos_upward (1) == 0.5403023058681397174009366074429766037323":
-+ildouble: 2
-+ldouble: 2
-+Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (4) == -0.6536436208636119146391681830977503814241":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (5) == 0.2836621854632262644666391715135573083344":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
-+float: 2
-+ifloat: 2
-+
-+# cosh_downward
-+Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
-+float: 1
-+ifloat: 1
-+ildouble: 5269156250720
-+ldouble: 5269156250720
-+Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
-+float: 1
-+ifloat: 1
-+ildouble: 484603564240
-+ldouble: 484603564240
-+Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
-+float: 1
-+ifloat: 1
-+ildouble: 89137844202
-+ldouble: 89137844202
-+
-+# cosh_tonearest
-+Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
-+ildouble: 5269156250719
-+ldouble: 5269156250719
-+Test "cosh_tonearest (23) == 4872401723.124451300068625740569997090344":
-+ildouble: 484603564240
-+ldouble: 484603564240
-+Test "cosh_tonearest (24) == 13244561064.92173614708845674912733665919":
-+ildouble: 89137844202
-+ldouble: 89137844202
-+
-+# cosh_towardzero
-+Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
-+float: 1
-+ifloat: 1
-+ildouble: 5269156250720
-+ldouble: 5269156250720
-+Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
-+float: 1
-+ifloat: 1
-+ildouble: 484603564240
-+ldouble: 484603564240
-+Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
-+float: 1
-+ifloat: 1
-+ildouble: 89137844202
-+ldouble: 89137844202
-+
-+# cosh_upward
-+Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
-+ildouble: 5269156250719
-+ldouble: 5269156250719
-+Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
-+ildouble: 484603564240
-+ldouble: 484603564240
-+Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
-+ildouble: 89137844200
-+ldouble: 89137844200
-+
- # cpow
- Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
- float: 1
-@@ -386,12 +506,6 @@ float: 1
- ifloat: 1
- # ctan
--Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
--double: 1
--idouble: 1
--Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
--ildouble: 1
--ldouble: 1
- Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
- double: 1
- idouble: 1
-@@ -463,6 +577,33 @@ Test "exp2 (10) == 1024":
- ildouble: 2
- ldouble: 2
-+# exp_downward
-+Test "exp_downward (2) == e^2":
-+float: 1
-+ifloat: 1
-+Test "exp_downward (3) == e^3":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# exp_towardzero
-+Test "exp_towardzero (2) == e^2":
-+float: 1
-+ifloat: 1
-+Test "exp_towardzero (3) == e^3":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# exp_upward
-+Test "exp_upward (1) == e":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
- # expm1
- Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
- double: 1
-@@ -505,40 +646,27 @@ ifloat: 1
- # j0
- Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
--ildouble: 1
--ldouble: 1
-+ifloat: 1
- Test "j0 (10.0) == -0.245935764451348335197760862485328754":
--double: 3
-+double: 2
- float: 1
--idouble: 3
-+idouble: 2
- ifloat: 1
--ildouble: 1
--ldouble: 1
--Test "j0 (2.0) == 0.223890779141235668051827454649948626":
--float: 2
--ifloat: 2
- Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
--ildouble: 1
--ldouble: 1
-+ifloat: 1
- Test "j0 (8.0) == 0.171650807137553906090869407851972001":
- float: 1
- ifloat: 1
--ildouble: 1
--ldouble: 1
- # j1
- Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
- float: 2
- ifloat: 2
--ildouble: 1
--ldouble: 1
- Test "j1 (2.0) == 0.576724807756873387202448242269137087":
- double: 1
- idouble: 1
-@@ -551,38 +679,25 @@ ldouble: 1
- # jn
- Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
--ildouble: 1
--ldouble: 1
-+ifloat: 1
- Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
--double: 3
-+double: 2
- float: 1
--idouble: 3
-+idouble: 2
- ifloat: 1
--ildouble: 1
--ldouble: 1
--Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
--float: 2
--ifloat: 2
- Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
--ildouble: 1
--ldouble: 1
-+ifloat: 1
- Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
- float: 1
- ifloat: 1
--ildouble: 1
--ldouble: 1
- Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
- float: 2
- ifloat: 2
--ildouble: 1
--ldouble: 1
- Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
- double: 1
- idouble: 1
-@@ -615,11 +730,8 @@ ifloat: 1
- ildouble: 4
- ldouble: 4
- Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
--float: 4
--ifloat: 4
--Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
--ildouble: 1
--ldouble: 1
-+float: 3
-+ifloat: 3
- Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
- double: 1
- float: 1
-@@ -628,21 +740,18 @@ ifloat: 1
- Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
- double: 1
- idouble: 1
--Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
--ildouble: 1
--ldouble: 1
- Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
- double: 3
--float: 2
-+float: 1
- idouble: 3
--ifloat: 2
-+ifloat: 1
- ildouble: 2
- ldouble: 2
- Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
-+ifloat: 1
- ildouble: 2
- ldouble: 2
-@@ -675,115 +784,350 @@ Test "log1p (-0.25) == -0.28768207245178
- float: 1
- ifloat: 1
--# log2
--Test "log2 (e) == M_LOG2El":
-+# pow_downward
-+Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
- ildouble: 1
- ldouble: 1
--
--# sin
--Test "sin (16.0) == -0.2879033166650652947844562482186175296207"
--ildouble: 2
--ldouble: 2
--
--# sincos
--Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
--double: 1
-+Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
- float: 1
--idouble: 1
- ifloat: 1
--Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
--double: 1
-+
-+# pow_towardzero
-+Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
-+ildouble: 1
-+ldouble: 1
-+Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
- float: 1
--idouble: 1
- ifloat: 1
--Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
-+
-+# pow_upward
-+Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
- float: 1
- ifloat: 1
--
--# sinh
--Test "sinh (0.75) == 0.822316731935829980703661634446913849":
-+Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
- ildouble: 1
- ldouble: 1
--# tan
--Test "tan (pi/4) == 1":
--double: 1
--idouble: 1
-+# sin_downward
-+Test "sin_downward (1) == 0.8414709848078965066525023216302989996226":
-+ildouble: 4
-+ldouble: 4
-+Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
- ildouble: 1
- ldouble: 1
--
--# tanh
--Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
-+Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
- ildouble: 1
- ldouble: 1
--Test "tanh (0.75) == 0.635148952387287319214434357312496495":
-+Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
- ildouble: 1
- ldouble: 1
--# tgamma
--Test "tgamma (-0.5) == -2 sqrt (pi)":
--double: 1
-+# sin_tonearest
-+Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
- float: 1
--idouble: 1
- ifloat: 1
--Test "tgamma (0.5) == sqrt (pi)":
-+
-+# sin_towardzero
-+Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
- float: 1
- ifloat: 1
--Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
--double: 1
-+ildouble: 2
-+ldouble: 2
-+Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
- float: 1
--idouble: 1
- ifloat: 1
--
--# y0
--Test "y0 (0.125) == -1.38968062514384052915582277745018693":
-+Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
- ildouble: 1
- ldouble: 1
--Test "y0 (0.75) == -0.137172769385772397522814379396581855":
-+Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
- ildouble: 1
- ldouble: 1
--Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
--double: 2
-+Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
- float: 1
--idouble: 2
- ifloat: 1
-+Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
- ildouble: 1
- ldouble: 1
--Test "y0 (1.5) == 0.382448923797758843955068554978089862":
--double: 2
-+Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
- float: 1
--idouble: 2
- ifloat: 1
--Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_upward
-+Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
-+float: 2
-+ifloat: 2
-+Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
-+float: 1
-+ifloat: 1
-+
-+# sincos
-+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-+double: 1
-+idouble: 1
-+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
-+Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
-+float: 1
-+ifloat: 1
-+
-+# sinh
-+Test "sinh (0.75) == 0.822316731935829980703661634446913849":
- ildouble: 1
- ldouble: 1
--Test "y0 (2.0) == 0.510375672649745119596606592727157873":
-+
-+# sinh_downward
-+Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
-+float: 1
-+ifloat: 1
-+ildouble: 5269156250718
-+ldouble: 5269156250718
-+Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
-+float: 1
-+ifloat: 1
-+ildouble: 484603564240
-+ldouble: 484603564240
-+Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
-+float: 1
-+ifloat: 1
-+ildouble: 89137844201
-+ldouble: 89137844201
-+
-+# sinh_tonearest
-+Test "sinh_tonearest (22) == 1792456423.065795780701106568345764104225":
-+ildouble: 5269156250719
-+ldouble: 5269156250719
-+Test "sinh_tonearest (23) == 4872401723.124451299966006944252978187305":
-+ildouble: 484603564241
-+ldouble: 484603564241
-+Test "sinh_tonearest (24) == 13244561064.92173614705070540368454568168":
-+ildouble: 89137844201
-+ldouble: 89137844201
-+
-+# sinh_towardzero
-+Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
-+float: 1
-+ifloat: 1
-+ildouble: 5269156250718
-+ldouble: 5269156250718
-+Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
-+float: 1
-+ifloat: 1
-+ildouble: 484603564240
-+ldouble: 484603564240
-+Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
-+float: 1
-+ifloat: 1
-+ildouble: 89137844201
-+ldouble: 89137844201
-+
-+# sinh_upward
-+Test "sinh_upward (22) == 1792456423.065795780701106568345764104225":
-+ildouble: 5269156250719
-+ldouble: 5269156250719
-+Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
-+ildouble: 484603564241
-+ldouble: 484603564241
-+Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
-+ildouble: 89137844202
-+ldouble: 89137844202
-+
-+# tan
-+Test "tan (pi/4) == 1":
-+ildouble: 1
-+ldouble: 1
-+
-+# tan_downward
-+Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# tan_tonearest
-+Test "tan_tonearest (10) == 0.6483608274590866712591249330098086768169":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_tonearest (4) == 1.1578212823495775831373424182673239231198":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_tonearest (7) == 0.8714479827243187364564508896003135663222":
-+ildouble: 1
-+ldouble: 1
-+
-+# tan_towardzero
-+Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
-+float: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (7) == 0.8714479827243187364564508896003135663222":
-+ildouble: 2
-+ldouble: 2
-+Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# tan_upward
-+Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
-+float: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (7) == 0.8714479827243187364564508896003135663222":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
-+ildouble: 1
-+ldouble: 1
-+
-+# tanh
-+Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
-+ildouble: 1
-+ldouble: 1
-+Test "tanh (0.75) == 0.635148952387287319214434357312496495":
-+ildouble: 1
-+ldouble: 1
-+
-+# tgamma
-+Test "tgamma (-0.5) == -2 sqrt (pi)":
- double: 1
-+float: 1
- idouble: 1
--Test "y0 (8.0) == 0.223521489387566220527323400498620359":
-+ifloat: 1
-+Test "tgamma (0.5) == sqrt (pi)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
-+
-+# y0
-+Test "y0 (0.125) == -1.38968062514384052915582277745018693":
- ildouble: 1
- ldouble: 1
--
--# y1
--Test "y1 (0.125) == -5.19993611253477499595928744876579921":
-+Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "y0 (1.5) == 0.382448923797758843955068554978089862":
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
-+Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "y0 (2.0) == 0.510375672649745119596606592727157873":
- double: 1
- idouble: 1
--Test "y1 (1.5) == -0.412308626973911295952829820633445323":
-+Test "y0 (8.0) == 0.223521489387566220527323400498620359":
-+double: 1
- float: 1
-+idouble: 1
- ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# y1
- Test "y1 (10.0) == 0.249015424206953883923283474663222803":
- double: 3
- float: 1
-@@ -794,30 +1138,27 @@ ldouble: 2
- Test "y1 (2.0) == -0.107032431540937546888370772277476637":
- double: 1
- float: 1
--idouble: 2
--ifloat: 2
-+idouble: 1
-+ifloat: 1
- Test "y1 (8.0) == -0.158060461731247494255555266187483550":
- double: 1
- float: 2
- idouble: 1
- ifloat: 2
--ildouble: 2
--ldouble: 2
-+ildouble: 1
-+ldouble: 1
- # yn
- Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
- ildouble: 1
- ldouble: 1
--Test "yn (0, 0.75) == -0.137172769385772397522814379396581855":
--ildouble: 1
--ldouble: 1
- Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
- double: 2
- float: 1
- idouble: 2
- ifloat: 1
--ildouble: 2
--ldouble: 2
-+ildouble: 1
-+ldouble: 1
- Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
- double: 2
- float: 1
-@@ -828,8 +1169,6 @@ double: 1
- float: 1
- idouble: 1
- ifloat: 1
--ildouble: 2
--ldouble: 2
- Test "yn (0, 2.0) == 0.510375672649745119596606592727157873":
- double: 1
- idouble: 1
-@@ -838,14 +1177,8 @@ double: 1
- float: 1
- idouble: 1
- ifloat: 1
--ildouble: 2
--ldouble: 2
--Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
--double: 1
--idouble: 1
--Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
--float: 2
--ifloat: 2
-+ildouble: 1
-+ldouble: 1
- Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
- double: 3
- float: 1
-@@ -863,14 +1196,8 @@ double: 1
- float: 2
- idouble: 1
- ifloat: 2
--ildouble: 2
--ldouble: 2
--Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
--double: 1
--idouble: 1
--Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
--double: 1
--idouble: 1
-+ildouble: 1
-+ldouble: 1
- Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
- double: 1
- float: 2
-@@ -881,21 +1208,14 @@ float: 2
- ifloat: 2
- Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
- double: 2
--float: 2
- idouble: 2
--ifloat: 2
--ildouble: 2
--ldouble: 2
- Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
- double: 3
- float: 1
- idouble: 3
- ifloat: 1
--ildouble: 2
--ldouble: 2
--Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
--double: 1
--idouble: 1
-+ildouble: 1
-+ldouble: 1
- Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
- float: 1
- ifloat: 1
-@@ -904,8 +1224,8 @@ double: 1
- float: 1
- idouble: 1
- ifloat: 1
--ildouble: 2
--ldouble: 2
-+ildouble: 1
-+ldouble: 1
- Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
- double: 1
- idouble: 1
-@@ -950,18 +1270,12 @@ ildouble: 1
- ldouble: 1
- Function: Real part of "cacosh":
--double: 1
--float: 7
--idouble: 1
--ifloat: 7
- ildouble: 1
- ldouble: 1
- Function: Imaginary part of "cacosh":
--double: 1
--float: 3
--idouble: 1
--ifloat: 3
-+float: 1
-+ifloat: 1
- Function: Real part of "casin":
- double: 1
-@@ -992,8 +1306,6 @@ ildouble: 1
- ldouble: 1
- Function: Real part of "catan":
--float: 4
--ifloat: 4
- ildouble: 1
- ldouble: 1
-@@ -1009,10 +1321,6 @@ Function: Real part of "catanh":
- double: 4
- idouble: 4
--Function: Imaginary part of "catanh":
--float: 6
--ifloat: 6
--
- Function: "cbrt":
- double: 1
- idouble: 1
-@@ -1066,8 +1374,6 @@ ildouble: 2
- ldouble: 2
- Function: Imaginary part of "clog":
--float: 3
--ifloat: 3
- ildouble: 1
- ldouble: 1
-@@ -1079,9 +1385,9 @@ ldouble: 3
- Function: Imaginary part of "clog10":
- double: 1
--float: 5
-+float: 1
- idouble: 1
--ifloat: 5
-+ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -1093,10 +1399,54 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
-+Function: "cos_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 4
-+ldouble: 4
-+
-+Function: "cos_tonearest":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cos_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "cos_upward":
-+float: 2
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
- Function: "cosh":
- ildouble: 1
- ldouble: 1
-+Function: "cosh_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 5269156250720
-+ldouble: 5269156250720
-+
-+Function: "cosh_tonearest":
-+ildouble: 5269156250719
-+ldouble: 5269156250719
-+
-+Function: "cosh_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 5269156250720
-+ldouble: 5269156250720
-+
-+Function: "cosh_upward":
-+ildouble: 5269156250719
-+ldouble: 5269156250719
-+
- Function: Real part of "cpow":
- double: 2
- float: 5
-@@ -1113,10 +1463,6 @@ ifloat: 2
- ildouble: 2
- ldouble: 2
--Function: Imaginary part of "cproj":
--ildouble: 1
--ldouble: 1
--
- Function: Real part of "csin":
- ildouble: 1
- ldouble: 1
-@@ -1146,8 +1492,6 @@ ildouble: 1
- ldouble: 1
- Function: Real part of "ctan":
--double: 1
--idouble: 1
- ildouble: 1
- ldouble: 1
-@@ -1201,6 +1545,28 @@ Function: "exp2":
- ildouble: 2
- ldouble: 2
-+Function: "exp_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "exp_tonearest":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "exp_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "exp_upward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
- Function: "expm1":
- double: 1
- float: 1
-@@ -1218,10 +1584,10 @@ ildouble: 1
- ldouble: 1
- Function: "j0":
--double: 3
--float: 2
--idouble: 3
--ifloat: 2
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -1235,9 +1601,9 @@ ldouble: 1
- Function: "jn":
- double: 3
--float: 4
-+float: 3
- idouble: 3
--ifloat: 4
-+ifloat: 3
- ildouble: 4
- ldouble: 4
-@@ -1264,8 +1630,6 @@ ldouble: 1
- Function: "log1p":
- float: 1
- ifloat: 1
--ildouble: 1
--ldouble: 1
- Function: "log2":
- ildouble: 1
-@@ -1275,10 +1639,52 @@ Function: "pow":
- ildouble: 1
- ldouble: 1
-+Function: "pow_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "pow_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "pow_upward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
- Function: "sin":
- ildouble: 1
- ldouble: 1
-+Function: "sin_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 4
-+ldouble: 4
-+
-+Function: "sin_tonearest":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "sin_upward":
-+float: 2
-+ifloat: 2
-+ildouble: 2
-+ldouble: 2
-+
- Function: "sincos":
- double: 1
- float: 1
-@@ -1291,12 +1697,54 @@ Function: "sinh":
- ildouble: 1
- ldouble: 1
-+Function: "sinh_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 5269156250718
-+ldouble: 5269156250718
-+
-+Function: "sinh_tonearest":
-+ildouble: 5269156250719
-+ldouble: 5269156250719
-+
-+Function: "sinh_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 5269156250718
-+ldouble: 5269156250718
-+
-+Function: "sinh_upward":
-+ildouble: 5269156250719
-+ldouble: 5269156250719
-+
- Function: "tan":
- double: 1
- idouble: 1
- ildouble: 1
- ldouble: 1
-+Function: "tan_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "tan_tonearest":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "tan_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+
-+Function: "tan_upward":
-+float: 1
-+ifloat: 1
-+ildouble: 3
-+ldouble: 3
-+
- Function: "tanh":
- ildouble: 1
- ldouble: 1
-diff -Nrup a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps
---- a/sysdeps/s390/fpu/libm-test-ulps  2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/s390/fpu/libm-test-ulps  2012-08-06 09:54:38.324772546 -0600
-@@ -31,16 +31,9 @@ ildouble: 1
- ldouble: 1
- # cacosh
--Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
--double: 1
--float: 7
--idouble: 1
--ifloat: 7
- Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
--double: 1
--float: 3
--idouble: 1
--ifloat: 3
-+float: 1
-+ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -83,17 +76,11 @@ ildouble: 1
- ldouble: 1
- # catan
--Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
--float: 3
--ifloat: 3
- Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
--Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
--float: 4
--ifloat: 4
- Test "Imaginary part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
- ildouble: 1
- ldouble: 1
-@@ -102,17 +89,12 @@ ldouble: 1
- Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
- double: 4
- idouble: 4
--Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
--float: 4
--ifloat: 4
- Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
- double: 1
- idouble: 1
- ildouble: 1
- ldouble: 1
- Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
--float: 6
--ifloat: 6
- ildouble: 1
- ldouble: 1
-@@ -185,9 +167,6 @@ ildouble: 1
- ldouble: 1
- # clog
--Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
--float: 3
--ifloat: 3
- Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
- float: 1
- ifloat: 1
-@@ -210,9 +189,7 @@ ildouble: 1
- ldouble: 1
- Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
- double: 1
--float: 5
- idouble: 1
--ifloat: 5
- ildouble: 1
- ldouble: 1
- Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
-@@ -288,9 +265,7 @@ ifloat: 1
- # cos
- Test "cos (M_PI_6l * 2.0) == 0.5":
- double: 1
--float: 1
- idouble: 1
--ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "cos (M_PI_6l * 4.0) == -0.5":
-@@ -300,11 +275,159 @@ idouble: 2
- ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "cos (pi/2) == 0":
--double: 1
-+
-+# cos_downward
-+Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (10) == -0.8390715290764524522588639478240648345199":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (6) == 0.9601702866503660205456522979229244054519":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+# cos_tonearest
-+Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+
-+# cos_towardzero
-+Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (4) == -0.6536436208636119146391681830977503814241":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (6) == 0.9601702866503660205456522979229244054519":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+# cos_upward
-+Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+# cosh_downward
-+Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# cosh_tonearest
-+Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
-+ildouble: 1
-+ldouble: 1
-+
-+# cosh_towardzero
-+Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
- float: 1
--idouble: 1
- ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# cosh_upward
-+Test "cosh_upward (22) == 1792456423.065795780980053377632656584997":
-+ildouble: 1
-+ldouble: 1
-+Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
-+ildouble: 1
-+ldouble: 1
-+Test "cosh_upward (24) == 13244561064.92173614708845674912733665919":
-+ildouble: 1
-+ldouble: 1
- # cpow
- Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-@@ -393,8 +516,6 @@ ldouble: 1
- # ctan
- Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
--double: 1
--idouble: 1
- ildouble: 1
- ldouble: 1
- Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
-@@ -467,6 +588,37 @@ Test "exp2 (10) == 1024":
- ildouble: 2
- ldouble: 2
-+# exp_downward
-+Test "exp_downward (2) == e^2":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "exp_downward (3) == e^3":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# exp_towardzero
-+Test "exp_towardzero (2) == e^2":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "exp_towardzero (3) == e^3":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# exp_upward
-+Test "exp_upward (1) == e":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
- # expm1
- Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
- double: 1
-@@ -513,29 +665,27 @@ ifloat: 1
- # j0
- Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
-+ifloat: 1
- Test "j0 (0.75) == 0.864242275166648623555731103820923211":
- float: 1
- ifloat: 1
- Test "j0 (10.0) == -0.245935764451348335197760862485328754":
--double: 3
-+double: 2
- float: 1
--idouble: 3
-+idouble: 2
- ifloat: 1
- ildouble: 2
- ldouble: 2
- Test "j0 (2.0) == 0.223890779141235668051827454649948626":
--float: 2
--ifloat: 2
- ildouble: 2
- ldouble: 2
- Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
-+ifloat: 1
- Test "j0 (8.0) == 0.171650807137553906090869407851972001":
- float: 1
- ifloat: 1
-@@ -569,29 +719,27 @@ ldouble: 4
- # jn
- Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
-+ifloat: 1
- Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
- float: 1
- ifloat: 1
- Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
--double: 3
-+double: 2
- float: 1
--idouble: 3
-+idouble: 2
- ifloat: 1
- ildouble: 2
- ldouble: 2
- Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
--float: 2
--ifloat: 2
- ildouble: 2
- ldouble: 2
- Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
-+ifloat: 1
- Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
- float: 1
- ifloat: 1
-@@ -640,15 +788,13 @@ Test "jn (10, 1.0) == 0.2630615123687453
- ildouble: 1
- ldouble: 1
- Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
--double: 4
--float: 3
--idouble: 4
--ifloat: 3
-+float: 1
-+ifloat: 1
- ildouble: 2
- ldouble: 2
- Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
--float: 4
--ifloat: 4
-+float: 3
-+ifloat: 3
- Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
- double: 1
- float: 1
-@@ -661,16 +807,16 @@ idouble: 1
- ifloat: 1
- Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
- double: 3
--float: 2
-+float: 1
- idouble: 3
--ifloat: 2
-+ifloat: 1
- ildouble: 2
- ldouble: 2
- Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
- double: 1
--float: 2
-+float: 1
- idouble: 1
--ifloat: 2
-+ifloat: 1
- # lgamma
- Test "lgamma (-0.5) == log(2*sqrt(pi))":
-@@ -713,71 +859,315 @@ Test "log2 (0.75) == -.41503749927884381
- ildouble: 1
- ldouble: 1
--# sincos
--Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
--double: 1
-+# pow_downward
-+Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
- float: 1
--idouble: 1
- ifloat: 1
--ildouble: 1
--ldouble: 1
--Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
--double: 1
-+
-+# pow_towardzero
-+Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
-+float: 1
-+ifloat: 1
-+
-+# pow_upward
-+Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
--double: 1
-+
-+# sin_downward
-+Test "sin_downward (1) == 0.8414709848078965066525023216302989996226":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
- float: 1
--idouble: 1
- ifloat: 1
--Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
-+Test "sin_downward (2) == 0.9092974268256816953960198659117448427023":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
- float: 1
- ifloat: 1
--
--# sqrt
--Test "sqrt (2) == M_SQRT2l":
- ildouble: 1
- ldouble: 1
--
--# tan
--Test "tan (pi/4) == 1":
--double: 1
--idouble: 1
--
--# tanh
--Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
-+Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
- ildouble: 1
- ldouble: 1
--Test "tanh (-1.0) == -0.7615941559557648881194582826047935904":
-+Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
-+float: 1
-+ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "tanh (0.75) == 0.635148952387287319214434357312496495":
-+Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
-+float: 1
-+ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "tanh (1.0) == 0.7615941559557648881194582826047935904":
-+Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
- ildouble: 1
- ldouble: 1
--# tgamma
--Test "tgamma (-0.5) == -2 sqrt (pi)":
--double: 1
-+# sin_tonearest
-+Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "tgamma (0.5) == sqrt (pi)":
-+Test "sin_tonearest (3) == 0.1411200080598672221007448028081102798469":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_tonearest (6) == -0.2794154981989258728115554466118947596280":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439":
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_towardzero
-+Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
- float: 1
- ifloat: 1
--Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
--double: 1
-+Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
- float: 1
--idouble: 1
- ifloat: 1
--Test "tgamma (4) == 6":
-+Test "sin_towardzero (2) == 0.9092974268256816953960198659117448427023":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+# sin_upward
-+Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (10) == -0.5440211108893698134047476618513772816836":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
-+float: 2
-+ifloat: 2
-+Test "sin_upward (3) == 0.1411200080598672221007448028081102798469":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (7) == 0.6569865987187890903969990915936351779369":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# sincos
-+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-+double: 1
-+idouble: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
-+float: 1
-+ifloat: 1
-+
-+# sinh_downward
-+Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# sinh_towardzero
-+Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
-+float: 1
-+ifloat: 1
-+
-+# sinh_upward
-+Test "sinh_upward (22) == 1792456423.065795780701106568345764104225":
-+ildouble: 1
-+ldouble: 1
-+Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
-+ildouble: 1
-+ldouble: 1
-+Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
-+ildouble: 1
-+ldouble: 1
-+
-+# sqrt
-+Test "sqrt (2) == M_SQRT2l":
-+ildouble: 1
-+ldouble: 1
-+
-+# tan_downward
-+Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
-+float: 1
-+ifloat: 1
-+
-+# tan_towardzero
-+Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# tan_upward
-+Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (2) == -2.1850398632615189916433061023136825434320":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (4) == 1.1578212823495775831373424182673239231198":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
-+ildouble: 1
-+ldouble: 1
-+
-+# tanh
-+Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
-+ildouble: 1
-+ldouble: 1
-+Test "tanh (-1.0) == -0.7615941559557648881194582826047935904":
-+ildouble: 1
-+ldouble: 1
-+Test "tanh (0.75) == 0.635148952387287319214434357312496495":
-+ildouble: 1
-+ldouble: 1
-+Test "tanh (1.0) == 0.7615941559557648881194582826047935904":
-+ildouble: 1
-+ldouble: 1
-+
-+# tgamma
-+Test "tgamma (-0.5) == -2 sqrt (pi)":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tgamma (0.5) == sqrt (pi)":
-+float: 1
-+ifloat: 1
-+Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-+double: 1
-+float: 1
-+idouble: 1
-+ifloat: 1
-+Test "tgamma (4) == 6":
- ildouble: 1
- ldouble: 1
-@@ -917,17 +1307,13 @@ ifloat: 2
- ildouble: 5
- ldouble: 5
- Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
--double: 1
- float: 2
--idouble: 1
- ifloat: 2
- ildouble: 1
- ldouble: 1
- Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
- double: 2
--float: 2
- idouble: 2
--ifloat: 2
- ildouble: 2
- ldouble: 2
- Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
-@@ -941,9 +1327,7 @@ Test "yn (3, 0.125) == -2612.69757350066
- double: 1
- idouble: 1
- Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 2
- ldouble: 2
-@@ -973,17 +1357,9 @@ Function: Imaginary part of "cacos":
- ildouble: 1
- ldouble: 1
--Function: Real part of "cacosh":
--double: 1
--float: 7
--idouble: 1
--ifloat: 7
--
- Function: Imaginary part of "cacosh":
--double: 1
--float: 3
--idouble: 1
--ifloat: 3
-+float: 1
-+ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -1013,10 +1389,6 @@ ifloat: 6
- ildouble: 2
- ldouble: 2
--Function: Real part of "catan":
--float: 4
--ifloat: 4
--
- Function: Imaginary part of "catan":
- double: 1
- float: 1
-@@ -1032,8 +1404,6 @@ ildouble: 1
- ldouble: 1
- Function: Imaginary part of "catanh":
--float: 6
--ifloat: 6
- ildouble: 1
- ldouble: 1
-@@ -1089,10 +1459,6 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
--Function: Imaginary part of "clog":
--float: 3
--ifloat: 3
--
- Function: Real part of "clog10":
- float: 1
- ifloat: 1
-@@ -1101,9 +1467,9 @@ ldouble: 1
- Function: Imaginary part of "clog10":
- double: 1
--float: 5
-+float: 1
- idouble: 1
--ifloat: 5
-+ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -1115,6 +1481,48 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
-+Function: "cos_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "cos_tonearest":
-+float: 1
-+ifloat: 1
-+
-+Function: "cos_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "cos_upward":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cosh_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cosh_tonearest":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cosh_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cosh_upward":
-+ildouble: 1
-+ldouble: 1
-+
- Function: Real part of "cpow":
- double: 2
- float: 4
-@@ -1162,8 +1570,6 @@ ildouble: 1
- ldouble: 1
- Function: Real part of "ctan":
--double: 1
--idouble: 1
- ildouble: 1
- ldouble: 1
-@@ -1211,6 +1617,24 @@ Function: "exp2":
- ildouble: 2
- ldouble: 2
-+Function: "exp_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "exp_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "exp_upward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
- Function: "expm1":
- double: 1
- float: 1
-@@ -1228,10 +1652,10 @@ float: 1
- ifloat: 1
- Function: "j0":
--double: 3
--float: 2
--idouble: 3
--ifloat: 2
-+double: 2
-+float: 1
-+idouble: 2
-+ifloat: 1
- ildouble: 2
- ldouble: 2
-@@ -1244,10 +1668,10 @@ ildouble: 4
- ldouble: 4
- Function: "jn":
--double: 4
--float: 4
--idouble: 4
--ifloat: 4
-+double: 3
-+float: 3
-+idouble: 3
-+ifloat: 3
- ildouble: 4
- ldouble: 4
-@@ -1277,6 +1701,44 @@ Function: "log2":
- ildouble: 1
- ldouble: 1
-+Function: "pow_downward":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow_towardzero":
-+float: 1
-+ifloat: 1
-+
-+Function: "pow_upward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_tonearest":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "sin_upward":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
- Function: "sincos":
- double: 1
- float: 1
-@@ -1285,6 +1747,22 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
-+Function: "sinh_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "sinh_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "sinh_upward":
-+ildouble: 1
-+ldouble: 1
-+
- Function: "sqrt":
- ildouble: 1
- ldouble: 1
-@@ -1293,6 +1771,24 @@ Function: "tan":
- double: 1
- idouble: 1
-+Function: "tan_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "tan_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "tan_upward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
- Function: "tanh":
- ildouble: 1
- ldouble: 1
-diff -Nrup a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
---- a/sysdeps/x86_64/fpu/libm-test-ulps        2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/x86_64/fpu/libm-test-ulps        2012-08-06 11:02:14.602759422 -0600
-@@ -42,26 +42,13 @@ ldouble: 1
- # cacos
- Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
--float: 1
--ifloat: 1
- ildouble: 2
- ldouble: 2
- # cacosh
--Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
--double: 1
--float: 7
--idouble: 1
--ifloat: 7
--ildouble: 6
--ldouble: 6
- Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
--double: 1
--float: 3
--idouble: 1
--ifloat: 3
--ildouble: 1
--ldouble: 1
-+float: 1
-+ifloat: 1
- Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
- ildouble: 1
- ldouble: 1
-@@ -75,8 +62,6 @@ ifloat: 1
- ildouble: 2
- ldouble: 2
- Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
--float: 1
--ifloat: 1
- ildouble: 2
- ldouble: 2
-@@ -103,21 +88,15 @@ double: 1
- float: 1
- idouble: 1
- ifloat: 1
--ldouble: 1
- ildouble: 1
-+ldouble: 1
- # catan
--Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
--float: 3
--ifloat: 3
- Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
- double: 1
- float: 1
- idouble: 1
- ifloat: 1
--Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
--float: 4
--ifloat: 4
- # catanh
- Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
-@@ -125,15 +104,9 @@ double: 4
- idouble: 4
- ildouble: 1
- ldouble: 1
--Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
--float: 4
--ifloat: 4
- Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
- double: 1
- idouble: 1
--Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
--float: 6
--ifloat: 6
- # cbrt
- Test "cbrt (-0.001) == -0.1":
-@@ -152,14 +125,9 @@ ildouble: 1
- ldouble: 1
- # ccos
--Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
--double: 1
--idouble: 1
- Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
- float: 1
- ifloat: 1
--ildouble: 1
--ldouble: 1
- Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
- double: 1
- float: 1
-@@ -168,19 +136,17 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
--ildouble: 1
--ldouble: 1
- float: 1
- ifloat: 1
-+ildouble: 1
-+ldouble: 1
- # ccosh
- Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
- float: 1
- ifloat: 1
- Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -205,9 +171,6 @@ ildouble: 1
- ldouble: 1
- # clog
--Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
--float: 3
--ifloat: 3
- Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
- float: 1
- ifloat: 1
-@@ -227,11 +190,7 @@ idouble: 1
- ifloat: 1
- Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
- double: 1
--float: 5
- idouble: 1
--ifloat: 5
--ildouble: 1
--ldouble: 1
- Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
- double: 1
- float: 1
-@@ -276,9 +235,7 @@ float: 1
- idouble: 1
- ifloat: 1
- Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -306,33 +263,164 @@ ifloat: 1
- # cos
- Test "cos (M_PI_6l * 2.0) == 0.5":
- double: 1
--float: 1
- idouble: 1
--ifloat: 1
- Test "cos (M_PI_6l * 4.0) == -0.5":
- double: 2
- float: 1
- idouble: 2
- ifloat: 1
-+
-+# cos_downward
-+Test "cos_downward (1) == 0.5403023058681397174009366074429766037323":
-+float: 1
-+ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "cos (pi/2) == 0":
--double: 1
-+Test "cos_downward (2) == -0.4161468365471423869975682295007621897660":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (3) == -0.9899924966004454572715727947312613023937":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (4) == -0.6536436208636119146391681830977503814241":
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "cos (0.80190127184058835) == 0.69534156199418473":
--double: 1
--idouble: 1
-+Test "cos_downward (5) == 0.2836621854632262644666391715135573083344":
-+float: 1
-+ifloat: 1
-+Test "cos_downward (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (8) == -0.1455000338086135258688413818311946826093":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_downward (9) == -0.9111302618846769883682947111811653112463":
-+ildouble: 1
-+ldouble: 1
-+
-+# cos_tonearest
-+Test "cos_tonearest (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+Test "cos_tonearest (8) == -0.1455000338086135258688413818311946826093":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_tonearest (9) == -0.9111302618846769883682947111811653112463":
-+ildouble: 1
-+ldouble: 1
-+
-+# cos_towardzero
-+Test "cos_towardzero (1) == 0.5403023058681397174009366074429766037323":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (10) == -0.8390715290764524522588639478240648345199":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (2) == -0.4161468365471423869975682295007621897660":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (3) == -0.9899924966004454572715727947312613023937":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (5) == 0.2836621854632262644666391715135573083344":
-+float: 1
-+ifloat: 1
-+Test "cos_towardzero (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_towardzero (8) == -0.1455000338086135258688413818311946826093":
-+float: 1
-+ifloat: 1
-+
-+# cos_upward
-+Test "cos_upward (10) == -0.8390715290764524522588639478240648345199":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (2) == -0.4161468365471423869975682295007621897660":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (3) == -0.9899924966004454572715727947312613023937":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (5) == 0.2836621854632262644666391715135573083344":
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (6) == 0.9601702866503660205456522979229244054519":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cos_upward (7) == 0.7539022543433046381411975217191820122183":
-+float: 1
-+ifloat: 1
-+Test "cos_upward (9) == -0.9111302618846769883682947111811653112463":
-+float: 2
-+ifloat: 2
-+
-+# cosh_downward
-+Test "cosh_downward (22) == 1792456423.065795780980053377632656584997":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "cosh_downward (23) == 4872401723.124451300068625740569997090344":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cosh_downward (24) == 13244561064.92173614708845674912733665919":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# cosh_tonearest
-+Test "cosh_tonearest (22) == 1792456423.065795780980053377632656584997":
-+ildouble: 1
-+ldouble: 1
-+
-+# cosh_towardzero
-+Test "cosh_towardzero (22) == 1792456423.065795780980053377632656584997":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "cosh_towardzero (23) == 4872401723.124451300068625740569997090344":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "cosh_towardzero (24) == 13244561064.92173614708845674912733665919":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# cosh_upward
-+Test "cosh_upward (23) == 4872401723.124451300068625740569997090344":
-+ildouble: 1
-+ldouble: 1
- # cpow
- Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
- float: 1
- ifloat: 1
--ldouble: 1
- ildouble: 1
-+ldouble: 1
- Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
- float: 1
- ifloat: 1
-@@ -363,9 +451,9 @@ ildouble: 1
- ldouble: 1
- Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
- double: 1
--float: 5
-+float: 4
- idouble: 1
--ifloat: 5
-+ifloat: 4
- Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
- float: 2
- ifloat: 2
-@@ -383,22 +471,11 @@ ldouble: 1
- Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
- ildouble: 1
- ldouble: 1
--Test "Imaginary part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
--float: 1
--ifloat: 1
--Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
--double: 1
--idouble: 1
- # csinh
--Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
--double: 1
--idouble: 1
- Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
- double: 1
- idouble: 1
--ildouble: 2
--ldouble: 2
- Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
- float: 1
- ifloat: 1
-@@ -418,37 +495,31 @@ ifloat: 1
- # ctan
- Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
--double: 1
--idouble: 1
--ildouble: 439
--ldouble: 439
-+ildouble: 1
-+ldouble: 1
- Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
--float: 1
--ifloat: 1
--ildouble: 2
--ldouble: 2
-+ildouble: 1
-+ldouble: 1
- Test "Real part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
- ildouble: 1
- ldouble: 1
- Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
- double: 1
--float: 1
- idouble: 1
--ifloat: 1
- ildouble: 3
- ldouble: 3
- # ctanh
- Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
--float: 2
--ifloat: 2
--ildouble: 5
--ldouble: 5
- double: 1
-+float: 2
- idouble: 1
-+ifloat: 2
-+ildouble: 3
-+ldouble: 3
- Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
--ildouble: 25
--ldouble: 25
-+ildouble: 1
-+ldouble: 1
- Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
- float: 1
- ifloat: 1
-@@ -456,10 +527,10 @@ Test "Real part of: ctanh (0.75 + 1.25 i
- double: 1
- idouble: 1
- Test "Imaginary part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
--ildouble: 1
--ldouble: 1
- double: 1
- idouble: 1
-+ildouble: 1
-+ldouble: 1
- # erf
- Test "erf (1.25) == 0.922900128256458230136523481197281140":
-@@ -481,26 +552,61 @@ ldouble: 1
- # exp10
- Test "exp10 (-1) == 0.1":
--ildouble: 1
--ldouble: 1
--float: 1
--ifloat: 1
- double: 2
--idouble: 2
--Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
--ildouble: 2
--ldouble: 2
- float: 1
-+idouble: 2
- ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
- double: 1
-+float: 1
- idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
- Test "exp10 (3) == 1000":
--ildouble: 8
--ldouble: 8
--float: 2
--ifloat: 2
- double: 6
-+float: 2
- idouble: 6
-+ifloat: 2
-+ildouble: 3
-+ldouble: 3
-+
-+# exp_downward
-+Test "exp_downward (1) == e":
-+ildouble: 1
-+ldouble: 1
-+Test "exp_downward (2) == e^2":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "exp_downward (3) == e^3":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# exp_towardzero
-+Test "exp_towardzero (1) == e":
-+ildouble: 1
-+ldouble: 1
-+Test "exp_towardzero (2) == e^2":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+Test "exp_towardzero (3) == e^3":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# exp_upward
-+Test "exp_upward (1) == e":
-+float: 1
-+ifloat: 1
- # expm1
- Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-@@ -570,9 +676,7 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "j0 (8.0) == 0.171650807137553906090869407851972001":
--double: 2
- float: 1
--idouble: 2
- ifloat: 1
- # j1
-@@ -617,9 +721,7 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
- Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
--double: 2
- float: 1
--idouble: 2
- ifloat: 1
- Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
- float: 2
-@@ -714,12 +816,12 @@ ldouble: 1
- # log10
- Test "log10 (0.75) == -0.124938736608299953132449886193870744":
--ildouble: 1
--ldouble: 1
--float: 2
--ifloat: 2
- double: 1
-+float: 2
- idouble: 1
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
- Test "log10 (e) == log10(e)":
- float: 1
- ifloat: 1
-@@ -731,37 +833,309 @@ Test "log1p (-0.25) == -0.28768207245178
- float: 1
- ifloat: 1
--# sincos
--Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
-+# pow_downward
-+Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
- ildouble: 1
- ldouble: 1
--Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
--double: 1
-+Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
--Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
-+
-+# pow_towardzero
-+Test "pow_towardzero (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
-+ildouble: 1
-+ldouble: 1
-+Test "pow_towardzero (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# pow_upward
-+Test "pow_upward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "pow_upward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_downward
-+Test "sin_downward (1) == 0.8414709848078965066525023216302989996226":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (10) == -0.5440211108893698134047476618513772816836":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (3) == 0.1411200080598672221007448028081102798469":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (4) == -0.7568024953079282513726390945118290941359":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (5) == -0.9589242746631384688931544061559939733525":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (6) == -0.2794154981989258728115554466118947596280":
-+float: 1
-+ifloat: 1
-+Test "sin_downward (7) == 0.6569865987187890903969990915936351779369":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (8) == 0.9893582466233817778081235982452886721164":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_downward (9) == 0.4121184852417565697562725663524351793439":
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_tonearest
-+Test "sin_tonearest (1) == 0.8414709848078965066525023216302989996226":
-+float: 1
-+ifloat: 1
-+Test "sin_tonearest (10) == -0.5440211108893698134047476618513772816836":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_tonearest (4) == -0.7568024953079282513726390945118290941359":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_tonearest (9) == 0.4121184852417565697562725663524351793439":
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_towardzero
-+Test "sin_towardzero (1) == 0.8414709848078965066525023216302989996226":
- float: 1
- ifloat: 1
--Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts 0.69534156199418473 in cos_res":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (10) == -0.5440211108893698134047476618513772816836":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (3) == 0.1411200080598672221007448028081102798469":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (4) == -0.7568024953079282513726390945118290941359":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (5) == -0.9589242746631384688931544061559939733525":
-+float: 1
-+ifloat: 1
-+Test "sin_towardzero (6) == -0.2794154981989258728115554466118947596280":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (7) == 0.6569865987187890903969990915936351779369":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (8) == 0.9893582466233817778081235982452886721164":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_towardzero (9) == 0.4121184852417565697562725663524351793439":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# sin_upward
-+Test "sin_upward (1) == 0.8414709848078965066525023216302989996226":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (2) == 0.9092974268256816953960198659117448427023":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (4) == -0.7568024953079282513726390945118290941359":
-+float: 1
-+ifloat: 1
-+Test "sin_upward (6) == -0.2794154981989258728115554466118947596280":
-+ildouble: 1
-+ldouble: 1
-+Test "sin_upward (9) == 0.4121184852417565697562725663524351793439":
-+float: 1
-+ifloat: 1
-+
-+# sincos
-+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
- double: 1
- idouble: 1
--
--# tan
--Test "tan (pi/4) == 1":
-+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
- double: 1
-+float: 1
- idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
-+float: 1
-+ifloat: 1
-+
-+# sinh_downward
-+Test "sinh_downward (22) == 1792456423.065795780701106568345764104225":
-+float: 1
-+ifloat: 1
-+ildouble: 4
-+ldouble: 4
-+Test "sinh_downward (23) == 4872401723.124451299966006944252978187305":
-+float: 1
-+ifloat: 1
-+Test "sinh_downward (24) == 13244561064.92173614705070540368454568168":
-+float: 1
-+ifloat: 1
-+ildouble: 5
-+ldouble: 5
-+
-+# sinh_tonearest
-+Test "sinh_tonearest (22) == 1792456423.065795780701106568345764104225":
-+ildouble: 3
-+ldouble: 3
-+Test "sinh_tonearest (23) == 4872401723.124451299966006944252978187305":
-+ildouble: 1
-+ldouble: 1
-+Test "sinh_tonearest (24) == 13244561064.92173614705070540368454568168":
-+ildouble: 6
-+ldouble: 6
-+
-+# sinh_towardzero
-+Test "sinh_towardzero (22) == 1792456423.065795780701106568345764104225":
-+float: 1
-+ifloat: 1
-+ildouble: 4
-+ldouble: 4
-+Test "sinh_towardzero (23) == 4872401723.124451299966006944252978187305":
-+float: 1
-+ifloat: 1
-+Test "sinh_towardzero (24) == 13244561064.92173614705070540368454568168":
-+float: 1
-+ifloat: 1
-+ildouble: 5
-+ldouble: 5
-+
-+# sinh_upward
-+Test "sinh_upward (22) == 1792456423.065795780701106568345764104225":
-+ildouble: 16
-+ldouble: 16
-+Test "sinh_upward (23) == 4872401723.124451299966006944252978187305":
-+ildouble: 27
-+ldouble: 27
-+Test "sinh_upward (24) == 13244561064.92173614705070540368454568168":
-+ildouble: 7
-+ldouble: 7
-+
-+# tan_downward
-+Test "tan_downward (1) == 1.5574077246549022305069748074583601730873":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (10) == 0.6483608274590866712591249330098086768169":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (2) == -2.1850398632615189916433061023136825434320":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (4) == 1.1578212823495775831373424182673239231198":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_downward (5) == -3.3805150062465856369827058794473439087096":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_downward (6) == -0.2910061913847491570536995888681755428312":
-+float: 1
-+ifloat: 1
-+Test "tan_downward (8) == -6.7997114552203786999252627596086333648814":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_downward (9) == -0.4523156594418098405903708757987855343087":
-+float: 1
-+ifloat: 1
-+
-+# tan_tonearest
-+Test "tan_tonearest (6) == -0.2910061913847491570536995888681755428312":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_tonearest (8) == -6.7997114552203786999252627596086333648814":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_tonearest (9) == -0.4523156594418098405903708757987855343087":
-+ildouble: 1
-+ldouble: 1
-+
-+# tan_towardzero
-+Test "tan_towardzero (10) == 0.6483608274590866712591249330098086768169":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (2) == -2.1850398632615189916433061023136825434320":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (3) == -0.1425465430742778052956354105339134932261":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (4) == 1.1578212823495775831373424182673239231198":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (5) == -3.3805150062465856369827058794473439087096":
-+float: 1
-+ifloat: 1
-+Test "tan_towardzero (6) == -0.2910061913847491570536995888681755428312":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_towardzero (8) == -6.7997114552203786999252627596086333648814":
-+ildouble: 2
-+ldouble: 2
-+Test "tan_towardzero (9) == -0.4523156594418098405903708757987855343087":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+# tan_upward
-+Test "tan_upward (1) == 1.5574077246549022305069748074583601730873":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (10) == 0.6483608274590866712591249330098086768169":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (2) == -2.1850398632615189916433061023136825434320":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (3) == -0.1425465430742778052956354105339134932261":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (5) == -3.3805150062465856369827058794473439087096":
-+float: 1
-+ifloat: 1
-+Test "tan_upward (6) == -0.2910061913847491570536995888681755428312":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (7) == 0.8714479827243187364564508896003135663222":
-+ildouble: 1
-+ldouble: 1
-+Test "tan_upward (8) == -6.7997114552203786999252627596086333648814":
-+ildouble: 2
-+ldouble: 2
-+Test "tan_upward (9) == -0.4523156594418098405903708757987855343087":
-+ildouble: 1
-+ldouble: 1
- # tgamma
- Test "tgamma (-0.5) == -2 sqrt (pi)":
-@@ -779,9 +1153,6 @@ double: 1
- float: 1
- idouble: 1
- ifloat: 1
--Test "tgamma (4) == 6":
--ildouble: 1
--ldouble: 1
- # y0
- Test "y0 (0.125) == -1.38968062514384052915582277745018693":
-@@ -960,27 +1331,17 @@ ildouble: 1
- ldouble: 1
- Function: Imaginary part of "cacos":
--float: 1
--ifloat: 1
- ildouble: 2
- ldouble: 2
- Function: Real part of "cacosh":
--double: 1
--float: 7
--idouble: 1
--ifloat: 7
--ildouble: 6
--ldouble: 6
--
--Function: Imaginary part of "cacosh":
--double: 1
--float: 3
--idouble: 1
--ifloat: 3
- ildouble: 1
- ldouble: 1
-+Function: Imaginary part of "cacosh":
-+float: 1
-+ifloat: 1
-+
- Function: Real part of "casin":
- double: 1
- float: 1
-@@ -990,8 +1351,6 @@ ildouble: 2
- ldouble: 2
- Function: Imaginary part of "casin":
--float: 1
--ifloat: 1
- ildouble: 2
- ldouble: 2
-@@ -1011,10 +1370,6 @@ ifloat: 6
- ildouble: 5
- ldouble: 5
--Function: Real part of "catan":
--float: 4
--ifloat: 4
--
- Function: Imaginary part of "catan":
- double: 1
- float: 1
-@@ -1027,10 +1382,6 @@ idouble: 4
- ildouble: 1
- ldouble: 1
--Function: Imaginary part of "catanh":
--float: 6
--ifloat: 6
--
- Function: "cbrt":
- double: 1
- idouble: 1
-@@ -1058,9 +1409,7 @@ idouble: 1
- ifloat: 1
- Function: Imaginary part of "ccosh":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -1081,25 +1430,17 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
--Function: Imaginary part of "clog":
--float: 3
--ifloat: 3
--
- Function: Real part of "clog10":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
- Function: Imaginary part of "clog10":
- double: 1
--float: 5
-+float: 1
- idouble: 1
--ifloat: 5
--ildouble: 1
--ldouble: 1
-+ifloat: 1
- Function: "cos":
- double: 2
-@@ -1109,11 +1450,55 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
-+Function: "cos_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cos_tonearest":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cos_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cos_upward":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cosh_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "cosh_tonearest":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "cosh_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "cosh_upward":
-+ildouble: 1
-+ldouble: 1
-+
- Function: Real part of "cpow":
- double: 2
--float: 5
-+float: 4
- idouble: 2
--ifloat: 5
-+ifloat: 4
- ildouble: 5
- ldouble: 5
-@@ -1129,16 +1514,8 @@ Function: Real part of "csin":
- ildouble: 1
- ldouble: 1
--Function: Imaginary part of "csin":
--double: 1
--float: 1
--idouble: 1
--ifloat: 1
--
- Function: Real part of "csinh":
--double: 1
- float: 1
--idouble: 1
- ifloat: 1
- ildouble: 1
- ldouble: 1
-@@ -1148,24 +1525,18 @@ double: 1
- float: 1
- idouble: 1
- ifloat: 1
--ildouble: 2
--ldouble: 2
- Function: Real part of "csqrt":
- float: 1
- ifloat: 1
- Function: Real part of "ctan":
--double: 1
--idouble: 1
--ildouble: 439
--ldouble: 439
-+ildouble: 1
-+ldouble: 1
- Function: Imaginary part of "ctan":
- double: 1
--float: 1
- idouble: 1
--ifloat: 1
- ildouble: 3
- ldouble: 3
-@@ -1174,16 +1545,16 @@ double: 1
- float: 2
- idouble: 1
- ifloat: 2
--ildouble: 5
--ldouble: 5
-+ildouble: 3
-+ldouble: 3
- Function: Imaginary part of "ctanh":
--float: 1
--ifloat: 1
--ildouble: 25
--ldouble: 25
- double: 1
-+float: 1
- idouble: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
- Function: "erf":
- double: 1
-@@ -1196,12 +1567,28 @@ ildouble: 1
- ldouble: 1
- Function: "exp10":
--ildouble: 8
--ldouble: 8
--float: 2
--ifloat: 2
- double: 6
-+float: 2
- idouble: 6
-+ifloat: 2
-+ildouble: 3
-+ldouble: 3
-+
-+Function: "exp_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "exp_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "exp_upward":
-+float: 1
-+ifloat: 1
- Function: "expm1":
- double: 1
-@@ -1250,17 +1637,59 @@ ildouble: 1
- ldouble: 1
- Function: "log10":
-+double: 1
- float: 2
-+idouble: 1
- ifloat: 2
- ildouble: 1
- ldouble: 1
--double: 1
--idouble: 1
- Function: "log1p":
- float: 1
- ifloat: 1
-+Function: "pow_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "pow_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "pow_upward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_tonearest":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "sin_upward":
-+float: 2
-+ifloat: 2
-+ildouble: 1
-+ldouble: 1
-+
- Function: "sincos":
- double: 1
- float: 1
-@@ -1269,10 +1698,52 @@ ifloat: 1
- ildouble: 1
- ldouble: 1
-+Function: "sinh_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 5
-+ldouble: 5
-+
-+Function: "sinh_tonearest":
-+ildouble: 6
-+ldouble: 6
-+
-+Function: "sinh_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 5
-+ldouble: 5
-+
-+Function: "sinh_upward":
-+ildouble: 27
-+ldouble: 27
-+
- Function: "tan":
- double: 1
- idouble: 1
-+Function: "tan_downward":
-+float: 1
-+ifloat: 1
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "tan_tonearest":
-+ildouble: 1
-+ldouble: 1
-+
-+Function: "tan_towardzero":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
-+Function: "tan_upward":
-+float: 1
-+ifloat: 1
-+ildouble: 2
-+ldouble: 2
-+
- Function: "tgamma":
- double: 1
- float: 1
-diff -Nrup a/sysdeps/x86_64/fpu/math_private.h b/sysdeps/x86_64/fpu/math_private.h
---- a/sysdeps/x86_64/fpu/math_private.h        2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/x86_64/fpu/math_private.h        2012-08-06 09:54:00.893929393 -0600
-@@ -56,3 +56,82 @@ do {                                                                \
- } while (0)
- #endif
-+
-+
-+/* Specialized variants of the <fenv.h> interfaces which only handle
-+   either the FPU or the SSE unit.  */
-+#undef libc_fegetround
-+#define libc_fegetround() \
-+  ({                                                                        \
-+     unsigned int mxcsr;                                                    \
-+     asm volatile ("stmxcsr %0" : "=m" (*&mxcsr));                          \
-+     (mxcsr & 0x6000) >> 3;                                                 \
-+  })
-+#undef libc_fegetroundf
-+#define libc_fegetroundf() libc_fegetround ()
-+// #define libc_fegetroundl() fegetround ()
-+
-+#undef libc_fesetround
-+#define libc_fesetround(r) \
-+  do {                                                                              \
-+     unsigned int mxcsr;                                                    \
-+     asm ("stmxcsr %0" : "=m" (*&mxcsr));                                   \
-+     mxcsr = (mxcsr & ~0x6000) | ((r) << 3);                                \
-+     asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr));                         \
-+  } while (0)
-+#undef libc_fesetroundf
-+#define libc_fesetroundf(r) libc_fesetround (r)
-+// #define libc_fesetroundl(r) (void) fesetround (r)
-+
-+#undef libc_feholdexcept
-+#define libc_feholdexcept(e) \
-+  do {                                                                              \
-+     unsigned int mxcsr;                                                    \
-+     asm ("stmxcsr %0" : "=m" (*&mxcsr));                                   \
-+     (e)->__mxcsr = mxcsr;                                                  \
-+     mxcsr = (mxcsr | 0x1f80) & ~0x3f;                                              \
-+     asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr));                         \
-+  } while (0)
-+#undef libc_feholdexceptf
-+#define libc_feholdexceptf(e) libc_feholdexcept (e)
-+// #define libc_feholdexceptl(e) (void) feholdexcept (e)
-+
-+#undef libc_feholdexcept_setround
-+#define libc_feholdexcept_setround(e, r) \
-+  do {                                                                              \
-+     unsigned int mxcsr;                                                    \
-+     asm ("stmxcsr %0" : "=m" (*&mxcsr));                                   \
-+     (e)->__mxcsr = mxcsr;                                                  \
-+     mxcsr = ((mxcsr | 0x1f80) & ~0x603f) | ((r) << 3);                             \
-+     asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr));                         \
-+  } while (0)
-+#undef libc_feholdexcept_setroundf
-+#define libc_feholdexcept_setroundf(e, r) libc_feholdexcept_setround (e, r)
-+// #define libc_feholdexcept_setroundl(e, r) ...
-+
-+#undef libc_fetestexcept
-+#define libc_fetestexcept(e) \
-+  ({ unsigned int mxcsr; asm volatile ("stmxcsr %0" : "=m" (*&mxcsr)); \
-+     mxcsr & (e) & FE_ALL_EXCEPT; })
-+#undef libc_fetestexceptf
-+#define libc_fetestexceptf(e) libc_fetestexcept (e)
-+// #define libc_fetestexceptl(e) fetestexcept (e)
-+
-+#undef libc_fesetenv
-+#define libc_fesetenv(e) \
-+  asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr))
-+#undef libc_fesetenvf
-+#define libc_fesetenvf(e) libc_fesetenv (e)
-+// #define libc_fesetenvl(e) (void) fesetenv (e)
-+
-+#undef libc_feupdateenv
-+#define libc_feupdateenv(e) \
-+  do {                                                                              \
-+    unsigned int mxcsr;                                                             \
-+    asm volatile ("stmxcsr %0" : "=m" (*&mxcsr));                           \
-+    asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr));                             \
-+    feraiseexcept (mxcsr & FE_ALL_EXCEPT);                                  \
-+  } while (0)
-+#undef libc_feupdateenvf
-+#define libc_feupdateenvf(e) libc_feupdateenv (e)
-+// #define libc_feupdateenvl(e) (void) feupdateenv (e)
diff --git a/src/patches/glibc/glibc-rh841787.patch b/src/patches/glibc/glibc-rh841787.patch
deleted file mode 100644 (file)
index 3cec783..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -rup a/resolv/res_init.c b/resolv/res_init.c
---- a/resolv/res_init.c        2012-07-26 15:10:45.655638776 -0600
-+++ b/resolv/res_init.c        2012-07-26 15:11:27.731423002 -0600
-@@ -314,9 +314,9 @@ __res_vinit(res_state statp, int preinit
-                       cp++;
-                   if ((*cp != '\0') && (*cp != '\n')
-                       && __inet_aton(cp, &a)) {
--                      statp->nsaddr_list[nservall].sin_addr = a;
--                      statp->nsaddr_list[nservall].sin_family = AF_INET;
--                      statp->nsaddr_list[nservall].sin_port =
-+                      statp->nsaddr_list[nserv].sin_addr = a;
-+                      statp->nsaddr_list[nserv].sin_family = AF_INET;
-+                      statp->nsaddr_list[nserv].sin_port =
-                               htons(NAMESERVER_PORT);
-                       nserv++;
- #ifdef _LIBC
-diff -rup a/resolv/res_send.c b/resolv/res_send.c
---- a/resolv/res_send.c        2010-05-04 05:27:23.000000000 -0600
-+++ b/resolv/res_send.c        2012-07-26 15:34:58.398261659 -0600
-@@ -421,10 +421,10 @@ __libc_res_nsend(res_state statp, const
-                               EXT(statp).nsmap[n] = MAXNS;
-                       }
-               }
--              n = statp->nscount;
--              if (statp->nscount > EXT(statp).nscount)
-+              n = statp->nscount - EXT(statp).nscount6;
-+              if (n > EXT(statp).nscount)
-                       for (n = EXT(statp).nscount, ns = 0;
--                           n < statp->nscount; n++) {
-+                           n < statp->nscount - EXT(statp).nscount6; n++) {
-                               while (ns < MAXNS
-                                      && EXT(statp).nsmap[ns] != MAXNS)
-                                       ns++;
-@@ -441,7 +441,7 @@ __libc_res_nsend(res_state statp, const
-                                   malloc(sizeof (struct sockaddr_in6));
-                       if (EXT(statp).nsaddrs[n] != NULL) {
-                               memset (mempcpy(EXT(statp).nsaddrs[n],
--                                              &statp->nsaddr_list[n],
-+                                              &statp->nsaddr_list[ns],
-                                               sizeof (struct sockaddr_in)),
-                                       '\0',
-                                       sizeof (struct sockaddr_in6)
diff --git a/src/patches/glibc/glibc-rh843673.patch b/src/patches/glibc/glibc-rh843673.patch
deleted file mode 100644 (file)
index a2ff262..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -Brup a/stdlib/msort.c b/stdlib/msort.c
---- a/stdlib/msort.c   2010-05-04 07:27:23.000000000 -0400
-+++ b/stdlib/msort.c   2012-08-07 13:30:14.131765346 -0400
-@@ -25,6 +25,8 @@
- #include <unistd.h>
- #include <memcopy.h>
- #include <errno.h>
-+#include <atomic.h>
-+
- struct msort_param
- {
-@@ -182,7 +184,7 @@ qsort_r (void *b, size_t n, size_t s, __
-       static long int phys_pages;
-       static int pagesize;
--      if (phys_pages == 0)
-+      if (pagesize == 0)
-       {
-         phys_pages = __sysconf (_SC_PHYS_PAGES);
-@@ -197,6 +199,9 @@ qsort_r (void *b, size_t n, size_t s, __
-            a quarter of the physical memory.  */
-         phys_pages /= 4;
-+          /* Make sure phys_pages is written to memory.  */
-+          atomic_write_barrier ();
-+
-         pagesize = __sysconf (_SC_PAGESIZE);
-       }
diff --git a/src/patches/glibc/glibc-rh845218.patch b/src/patches/glibc/glibc-rh845218.patch
deleted file mode 100644 (file)
index 47f909c..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-commit 16b293a7a6f65d8ff348a603d19e8fd4372fa3a9
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Wed Apr 30 11:48:43 2014 +0530
-
-    Do not fail if one of the two responses to AF_UNSPEC fails (BZ #14308)
-    
-    [Fixes BZ #14308, #12994, #13651]
-    
-    AF_UNSPEC results in sending two queries in parallel, one for the A
-    record and the other for the AAAA record.  If one of these is a
-    referral, then the query fails, which is wrong.  It should return at
-    least the one successful response.
-    
-    The fix has two parts.  The first part makes the referral fall back to
-    the SERVFAIL path, which results in using the successful response.
-    There is a bug in that path however, due to which the second part is
-    necessary.  The bug here is that if the first response is a failure
-    and the second succeeds, __libc_res_nsearch does not detect that and
-    assumes a failure.  The case where the first response is a success and
-    the second fails, works correctly.
-    
-    This condition is produced by buggy routers, so here's a crude
-    interposable library that can simulate such a condition.  The library
-    overrides the recvfrom syscall and modifies the header of the packet
-    received to reproduce this scenario.  It has two key variables:
-    mod_packet and first_error.
-    
-    The mod_packet variable when set to 0, results in odd packets being
-    modified to be a referral.  When set to 1, even packets are modified
-    to be a referral.
-    
-    The first_error causes the first response to be a failure so that a
-    domain-appended search is performed to test the second part of the
-    __libc_nsearch fix.
-    
-    The driver for this fix is a simple getaddrinfo program that does an
-    AF_UNSPEC query.  I have omitted this since it should be easy to
-    implement.
-    
-    I have tested this on x86_64.
-    
-    The interceptor library source:
-    
-    /* Override recvfrom and modify the header of the first DNS response to make it
-       a referral and reproduce bz #845218.  We have to resort to this ugly hack
-       because we cannot make bind return the buggy response of a referral for the
-       AAAA record and an authoritative response for the A record.  */
-     #define _GNU_SOURCE
-     #include <sys/types.h>
-     #include <sys/socket.h>
-     #include <netinet/in.h>
-     #include <arpa/inet.h>
-     #include <stdio.h>
-     #include <stdbool.h>
-     #include <endian.h>
-     #include <dlfcn.h>
-     #include <stdlib.h>
-    
-    /* Lifted from resolv/arpa/nameser_compat.h.  */
-    typedef struct {
-        unsigned        id :16;         /*%< query identification number */
-     #if BYTE_ORDER == BIG_ENDIAN
-        /* fields in third byte */
-        unsigned        qr: 1;          /*%< response flag */
-        unsigned        opcode: 4;      /*%< purpose of message */
-        unsigned        aa: 1;          /*%< authoritive answer */
-        unsigned        tc: 1;          /*%< truncated message */
-        unsigned        rd: 1;          /*%< recursion desired */
-        /* fields
-         * in
-         * fourth
-         * byte
-         * */
-        unsigned        ra: 1;          /*%< recursion available */
-        unsigned        unused :1;      /*%< unused bits (MBZ as of 4.9.3a3) */
-        unsigned        ad: 1;          /*%< authentic data from named */
-        unsigned        cd: 1;          /*%< checking disabled by resolver */
-        unsigned        rcode :4;       /*%< response code */
-     #endif
-     #if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
-        /* fields
-         * in
-         * third
-         * byte
-         * */
-        unsigned        rd :1;          /*%< recursion desired */
-        unsigned        tc :1;          /*%< truncated message */
-        unsigned        aa :1;          /*%< authoritive answer */
-        unsigned        opcode :4;      /*%< purpose of message */
-        unsigned        qr :1;          /*%< response flag */
-        /* fields
-         * in
-         * fourth
-         * byte
-         * */
-        unsigned        rcode :4;       /*%< response code */
-        unsigned        cd: 1;          /*%< checking disabled by resolver */
-        unsigned        ad: 1;          /*%< authentic data from named */
-        unsigned        unused :1;      /*%< unused bits (MBZ as of 4.9.3a3) */
-        unsigned        ra :1;          /*%< recursion available */
-     #endif
-        /* remaining
-         * bytes
-         * */
-        unsigned        qdcount :16;    /*%< number of question entries */
-        unsigned        ancount :16;    /*%< number of answer entries */
-        unsigned        nscount :16;    /*%< number of authority entries */
-        unsigned        arcount :16;    /*%< number of resource entries */
-    } HEADER;
-    
-    static int done = 0;
-    
-    /* Packets to modify.  0 for the odd packets and 1 for even packets.  */
-    static const int mod_packet = 0;
-    
-    /* Set to true if the first request should result in an error, resulting in a
-       search query.  */
-    static bool first_error = true;
-    
-    static ssize_t (*real_recvfrom) (int sockfd, void *buf, size_t len, int flags,
-                         struct sockaddr *src_addr, socklen_t *addrlen);
-    
-    void
-    __attribute__ ((constructor))
-    init (void)
-    {
-      real_recvfrom = dlsym (RTLD_NEXT, "recvfrom");
-    
-      if (real_recvfrom == NULL)
-        {
-          printf ("Failed to get reference to recvfrom: %s\n", dlerror ());
-          printf ("Cannot simulate test\n");
-          abort ();
-        }
-    }
-    
-    /* Modify the second packet that we receive to set the header in a manner as to
-       reproduce BZ #845218.  */
-    static void
-    mod_buf (HEADER *h, int port)
-    {
-      if (done % 2 == mod_packet || (first_error && done == 1))
-        {
-          printf ("(Modifying header)");
-    
-          if (first_error && done == 1)
-       h->rcode = 3;
-          else
-       h->rcode = 0;   /* NOERROR == 0.  */
-          h->ancount = 0;
-          h->aa = 0;
-          h->ra = 0;
-          h->arcount = 0;
-        }
-      done++;
-    }
-    
-    ssize_t
-    recvfrom (int sockfd, void *buf, size_t len, int flags,
-         struct sockaddr *src_addr, socklen_t *addrlen)
-    {
-      ssize_t ret = real_recvfrom (sockfd, buf, len, flags, src_addr, addrlen);
-      int port = htons (((struct sockaddr_in *) src_addr)->sin_port);
-      struct in_addr addr = ((struct sockaddr_in *) src_addr)->sin_addr;
-      const char *host = inet_ntoa (addr);
-      printf ("\n*** From %s:%d: ", host, port);
-    
-      mod_buf (buf, port);
-    
-      printf ("returned %zd\n", ret);
-      return ret;
-    }
-
-diff --git a/resolv/res_query.c b/resolv/res_query.c
-index a9db837..4e6612c 100644
---- a/resolv/res_query.c
-+++ b/resolv/res_query.c
-@@ -382,7 +382,9 @@ __libc_res_nsearch(res_state statp,
-               ret = __libc_res_nquerydomain(statp, name, NULL, class, type,
-                                             answer, anslen, answerp,
-                                             answerp2, nanswerp2, resplen2);
--              if (ret > 0 || trailing_dot)
-+              if (ret > 0 || trailing_dot
-+                  /* If the second response is valid then we use that.  */
-+                  || (ret == 0 && answerp2 != NULL && resplen2 > 0))
-                       return (ret);
-               saved_herrno = h_errno;
-               tried_as_is++;
-@@ -422,7 +424,8 @@ __libc_res_nsearch(res_state statp,
-                                                     answer, anslen, answerp,
-                                                     answerp2, nanswerp2,
-                                                     resplen2);
--                      if (ret > 0)
-+                      if (ret > 0 || (ret == 0 && answerp2 != NULL
-+                                      && resplen2 > 0))
-                               return (ret);
-                       if (answerp && *answerp != answer) {
-diff --git a/resolv/res_send.c b/resolv/res_send.c
-index 60743df..3273d55 100644
---- a/resolv/res_send.c
-+++ b/resolv/res_send.c
-@@ -1351,6 +1351,7 @@ send_dg(res_state statp,
-                               (*thisresplenp > *thisanssizp)
-                               ? *thisanssizp : *thisresplenp);
-+              next_ns:
-                       if (recvresp1 || (buf2 != NULL && recvresp2)) {
-                         *resplen2 = 0;
-                         return resplen;
-@@ -1368,7 +1369,6 @@ send_dg(res_state statp,
-                           goto wait;
-                         }
--              next_ns:
-                       __res_iclose(statp, false);
-                       /* don't retry if called from dig */
-                       if (!statp->pfcode)
diff --git a/src/patches/glibc/glibc-rh846342.patch b/src/patches/glibc/glibc-rh846342.patch
deleted file mode 100644 (file)
index 8cfca05..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-This is a workaround for broken code which issues memcpy requests with
-overlapping arguments.  With this patch installed, if the file
-/etc/sysconfig/32bit_ssse3_memcpy_via_32bit_ssse3_memmove exists then a
-32bit memcpy call which normally would be handled by the SSSE3 memcpy
-implementation would instead be handled by the 32bit SSSE3 memmove
-implementation which is more tolerant of overlaps.
-
-diff -Nrup a/sysdeps/i386/i686/multiarch/memcpy.S b/sysdeps/i386/i686/multiarch/memcpy.S
---- a/sysdeps/i386/i686/multiarch/memcpy.S     2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/i386/i686/multiarch/memcpy.S     2012-11-20 14:19:52.890780415 -0700
-@@ -21,6 +21,10 @@
- #include <sysdep.h>
- #include <init-arch.h>
-+        .section .rodata
-+L(magicfile):
-+      .ascii "/etc/sysconfig/32bit_ssse3_memcpy_via_32bit_ssse3_memmove"
-+
- /* Define multiple versions only for the definition in lib and for
-    DSO.  In static binaries we need memcpy before the initialization
-    happened.  */
-@@ -48,6 +52,26 @@ ENTRY(memcpy)
- 1:    leal    __memcpy_ia32@GOTOFF(%ebx), %eax
-       testl   $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features@GOTOFF(%ebx)
-       jz      2f
-+
-+      /* This is an inlined access (magicfile, 0) syscall.  
-+
-+         Note that it clobbers %ebx, so we have to save/restore
-+         it around the syscall.  */
-+      mov     %ebx, %edx
-+      leal    L(magicfile)@GOTOFF(%ebx), %ebx
-+      xor     %ecx, %ecx
-+      movl    $33, %eax
-+      int     $0x80
-+      mov     %edx, %ebx
-+
-+      /* If the file did not exist, then %eax will be -1..-4095 and we
-+         do nothing special.  */
-+      cmpl    $-4095, %eax
-+      jae     4f
-+
-+      leal    __memmove_ssse3@GOTOFF(%ebx), %eax
-+      jmp     2f
-+4:
-       leal    __memcpy_ssse3@GOTOFF(%ebx), %eax
-       testl   $bit_Fast_Rep_String, FEATURE_OFFSET+index_Fast_Rep_String+__cpu_features@GOTOFF(%ebx)
-       jz      2f
diff --git a/src/patches/glibc/glibc-rh847932.patch b/src/patches/glibc/glibc-rh847932.patch
deleted file mode 100644 (file)
index 33ea851..0000000
+++ /dev/null
@@ -1,364 +0,0 @@
-diff -Nrup a/stdlib/Makefile b/stdlib/Makefile
---- a/stdlib/Makefile  2010-05-04 05:27:23.000000000 -0600
-+++ b/stdlib/Makefile  2012-08-15 09:25:37.812443006 -0600
-@@ -71,7 +71,7 @@ tests                := tst-strtol tst-strtod testmb t
-                  tst-atof1 tst-atof2 tst-strtod2 tst-strtod3 tst-rand48-2 \
-                  tst-makecontext tst-strtod4 tst-strtod5 tst-qsort2       \
-                  tst-makecontext2 tst-strtod6 tst-unsetenv1               \
--                 tst-makecontext3
-+                 tst-makecontext3 tst-strtod-overflow
- include ../Makeconfig
-diff -Nrup a/stdlib/strtod_l.c b/stdlib/strtod_l.c
---- a/stdlib/strtod_l.c        2010-05-04 05:27:23.000000000 -0600
-+++ b/stdlib/strtod_l.c        2012-08-15 09:34:29.550281346 -0600
-@@ -62,6 +62,7 @@ extern unsigned long long int ____strtou
- #include <math.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <stdint.h>
- /* The gmp headers need some configuration frobs.  */
- #define HAVE_ALLOCA 1
-@@ -176,19 +177,19 @@ extern const mp_limb_t _tens_in_limb[MAX
- /* Return a floating point number of the needed type according to the given
-    multi-precision number after possible rounding.  */
- static FLOAT
--round_and_return (mp_limb_t *retval, int exponent, int negative,
-+round_and_return (mp_limb_t *retval, intmax_t exponent, int negative,
-                 mp_limb_t round_limb, mp_size_t round_bit, int more_bits)
- {
-   if (exponent < MIN_EXP - 1)
-     {
--      mp_size_t shift = MIN_EXP - 1 - exponent;
--
--      if (shift > MANT_DIG)
-+      if (exponent < MIN_EXP - 1 - MANT_DIG)
-       {
-         __set_errno (EDOM);
-         return 0.0;
-       }
-+      mp_size_t shift = MIN_EXP - 1 - exponent;
-+
-       more_bits |= (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0;
-       if (shift == MANT_DIG)
-       /* This is a special case to handle the very seldom case where
-@@ -235,6 +236,9 @@ round_and_return (mp_limb_t *retval, int
-       __set_errno (ERANGE);
-     }
-+  if (exponent > MAX_EXP)
-+    goto overflow;
-+
-   if ((round_limb & (((mp_limb_t) 1) << round_bit)) != 0
-       && (more_bits || (retval[0] & 1) != 0
-         || (round_limb & ((((mp_limb_t) 1) << round_bit) - 1)) != 0))
-@@ -260,6 +264,7 @@ round_and_return (mp_limb_t *retval, int
-     }
-   if (exponent > MAX_EXP)
-+  overflow:
-     return negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL;
-   return MPN2FLOAT (retval, exponent, negative);
-@@ -273,7 +278,7 @@ round_and_return (mp_limb_t *retval, int
-    factor for the resulting number (see code) multiply by it.  */
- static const STRING_TYPE *
- str_to_mpn (const STRING_TYPE *str, int digcnt, mp_limb_t *n, mp_size_t *nsize,
--          int *exponent
-+          intmax_t *exponent
- #ifndef USE_WIDE_CHAR
-           , const char *decimal, size_t decimal_len, const char *thousands
- #endif
-@@ -337,7 +342,7 @@ str_to_mpn (const STRING_TYPE *str, int
-     }
-   while (--digcnt > 0);
--  if (*exponent > 0 && cnt + *exponent <= MAX_DIG_PER_LIMB)
-+  if (*exponent > 0 && *exponent <= MAX_DIG_PER_LIMB - cnt)
-     {
-       low *= _tens_in_limb[*exponent];
-       start = _tens_in_limb[cnt + *exponent];
-@@ -415,7 +420,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group
- {
-   int negative;                       /* The sign of the number.  */
-   MPN_VAR (num);              /* MP representation of the number.  */
--  int exponent;                       /* Exponent of the number.  */
-+  intmax_t exponent;          /* Exponent of the number.  */
-   /* Numbers starting `0X' or `0x' have to be processed with base 16.  */
-   int base = 10;
-@@ -437,7 +442,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-   /* Points at the character following the integer and fractional digits.  */
-   const STRING_TYPE *expp;
-   /* Total number of digit and number of digits in integer part.  */
--  int dig_no, int_no, lead_zero;
-+  size_t dig_no, int_no, lead_zero;
-   /* Contains the last character read.  */
-   CHAR_TYPE c;
-@@ -769,7 +774,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-      are all or any is really a fractional digit will be decided
-      later.  */
-   int_no = dig_no;
--  lead_zero = int_no == 0 ? -1 : 0;
-+  lead_zero = int_no == 0 ? (size_t) -1 : 0;
-   /* Read the fractional digits.  A special case are the 'american
-      style' numbers like `16.' i.e. with decimal point but without
-@@ -791,12 +796,13 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-            (base == 16 && ({ CHAR_TYPE lo = TOLOWER (c);
-                              lo >= L_('a') && lo <= L_('f'); })))
-       {
--        if (c != L_('0') && lead_zero == -1)
-+        if (c != L_('0') && lead_zero == (size_t) -1)
-           lead_zero = dig_no - int_no;
-         ++dig_no;
-         c = *++cp;
-       }
-     }
-+  assert (dig_no <= (uintmax_t) INTMAX_MAX);
-   /* Remember start of exponent (if any).  */
-   expp = cp;
-@@ -819,24 +825,80 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-       if (c >= L_('0') && c <= L_('9'))
-       {
--        int exp_limit;
-+        intmax_t exp_limit;
-         /* Get the exponent limit. */
-         if (base == 16)
--          exp_limit = (exp_negative ?
--                       -MIN_EXP + MANT_DIG + 4 * int_no :
--                       MAX_EXP - 4 * int_no + 4 * lead_zero + 3);
-+          {
-+            if (exp_negative)
-+              {
-+                assert (int_no <= (uintmax_t) (INTMAX_MAX
-+                                               + MIN_EXP - MANT_DIG) / 4);
-+                exp_limit = -MIN_EXP + MANT_DIG + 4 * (intmax_t) int_no;
-+              }
-+            else
-+              {
-+                if (int_no)
-+                  {
-+                    assert (lead_zero == 0
-+                            && int_no <= (uintmax_t) INTMAX_MAX / 4);
-+                    exp_limit = MAX_EXP - 4 * (intmax_t) int_no + 3;
-+                  }
-+                else if (lead_zero == (size_t) -1)
-+                  {
-+                    /* The number is zero and this limit is
-+                       arbitrary.  */
-+                    exp_limit = MAX_EXP + 3;
-+                  }
-+                else
-+                  {
-+                    assert (lead_zero
-+                            <= (uintmax_t) (INTMAX_MAX - MAX_EXP - 3) / 4);
-+                    exp_limit = (MAX_EXP
-+                                 + 4 * (intmax_t) lead_zero
-+                                 + 3);
-+                  }
-+              }
-+          }
-         else
--          exp_limit = (exp_negative ?
--                       -MIN_10_EXP + MANT_DIG + int_no :
--                       MAX_10_EXP - int_no + lead_zero + 1);
-+          {
-+            if (exp_negative)
-+              {
-+                assert (int_no
-+                        <= (uintmax_t) (INTMAX_MAX + MIN_10_EXP - MANT_DIG));
-+                exp_limit = -MIN_10_EXP + MANT_DIG + (intmax_t) int_no;
-+              }
-+            else
-+              {
-+                if (int_no)
-+                  {
-+                    assert (lead_zero == 0
-+                            && int_no <= (uintmax_t) INTMAX_MAX);
-+                    exp_limit = MAX_10_EXP - (intmax_t) int_no + 1;
-+                  }
-+                else if (lead_zero == (size_t) -1)
-+                  {
-+                    /* The number is zero and this limit is
-+                       arbitrary.  */
-+                    exp_limit = MAX_10_EXP + 1;
-+                  }
-+                else
-+                  {
-+                    assert (lead_zero
-+                            <= (uintmax_t) (INTMAX_MAX - MAX_10_EXP - 1));
-+                    exp_limit = MAX_10_EXP + (intmax_t) lead_zero + 1;
-+                  }
-+              }
-+          }
-+
-+        if (exp_limit < 0)
-+          exp_limit = 0;
-         do
-           {
--            exponent *= 10;
--            exponent += c - L_('0');
--
--            if (__builtin_expect (exponent > exp_limit, 0))
-+            if (__builtin_expect ((exponent > exp_limit / 10
-+                                  || (exponent == exp_limit / 10
-+                                      && c - L_('0') > exp_limit % 10)), 0))
-               /* The exponent is too large/small to represent a valid
-                  number.  */
-               {
-@@ -845,7 +907,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-                 /* We have to take care for special situation: a joker
-                    might have written "0.0e100000" which is in fact
-                    zero.  */
--                if (lead_zero == -1)
-+                if (lead_zero == (size_t) -1)
-                   result = negative ? -0.0 : 0.0;
-                 else
-                   {
-@@ -864,6 +926,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-                 /* NOTREACHED */
-               }
-+            exponent *= 10;
-+            exponent += c - L_('0');
-+
-             c = *++cp;
-           }
-         while (c >= L_('0') && c <= L_('9'));
-@@ -932,7 +997,14 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-       }
- #endif
-       startp += lead_zero + decimal_len;
--      exponent -= base == 16 ? 4 * lead_zero : lead_zero;
-+      assert (lead_zero <= (base == 16
-+                          ? (uintmax_t) INTMAX_MAX / 4
-+                          : (uintmax_t) INTMAX_MAX));
-+      assert (lead_zero <= (base == 16
-+                          ? ((uintmax_t) exponent
-+                             - (uintmax_t) INTMAX_MIN) / 4
-+                          : ((uintmax_t) exponent - (uintmax_t) INTMAX_MIN)));
-+      exponent -= base == 16 ? 4 * (intmax_t) lead_zero : (intmax_t) lead_zero;
-       dig_no -= lead_zero;
-     }
-@@ -974,7 +1046,10 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-       }
-       /* Adjust the exponent for the bits we are shifting in.  */
--      exponent += bits - 1 + (int_no - 1) * 4;
-+      assert (int_no <= (uintmax_t) (exponent < 0
-+                                   ? (INTMAX_MAX - bits + 1) / 4
-+                                   : (INTMAX_MAX - exponent - bits + 1) / 4));
-+      exponent += bits - 1 + ((intmax_t) int_no - 1) * 4;
-       while (--dig_no > 0 && idx >= 0)
-       {
-@@ -1014,13 +1089,15 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-      really integer digits or belong to the fractional part; i.e. we normalize
-      123e-2 to 1.23.  */
-   {
--    register int incr = (exponent < 0 ? MAX (-int_no, exponent)
--                       : MIN (dig_no - int_no, exponent));
-+    register intmax_t incr = (exponent < 0
-+                            ? MAX (-(intmax_t) int_no, exponent)
-+                            : MIN ((intmax_t) dig_no - (intmax_t) int_no,
-+                                   exponent));
-     int_no += incr;
-     exponent -= incr;
-   }
--  if (__builtin_expect (int_no + exponent > MAX_10_EXP + 1, 0))
-+  if (__builtin_expect (exponent > MAX_10_EXP + 1 - (intmax_t) int_no, 0))
-     {
-       __set_errno (ERANGE);
-       return negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL;
-@@ -1205,7 +1282,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-        digits we should have enough bits for the result.  The remaining
-        decimal digits give us the information that more bits are following.
-        This can be used while rounding.  (Two added as a safety margin.)  */
--    if (dig_no - int_no > (MANT_DIG - bits + 2) / 3 + 2)
-+    if ((intmax_t) dig_no > (intmax_t) int_no + (MANT_DIG - bits + 2) / 3 + 2)
-       {
-       dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 2;
-       more_bits = 1;
-@@ -1213,7 +1290,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-     else
-       more_bits = 0;
--    neg_exp = dig_no - int_no - exponent;
-+    neg_exp = (intmax_t) dig_no - (intmax_t) int_no - exponent;
-     /* Construct the denominator.  */
-     densize = 0;
-@@ -1491,7 +1568,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group
-                         register int i;
-                         (void) __mpn_lshift (&retval[used
-                                                      / BITS_PER_MP_LIMB],
--                                             retval, RETURN_LIMB_SIZE,
-+                                             retval,
-+                                             (RETURN_LIMB_SIZE
-+                                              - used / BITS_PER_MP_LIMB),
-                                              used % BITS_PER_MP_LIMB);
-                         for (i = used / BITS_PER_MP_LIMB - 1; i >= 0; --i)
-                           retval[i] = 0;
-diff -Nrup a/stdlib/tst-strtod-overflow.c b/stdlib/tst-strtod-overflow.c
---- a/stdlib/tst-strtod-overflow.c     1969-12-31 17:00:00.000000000 -0700
-+++ b/stdlib/tst-strtod-overflow.c     2012-08-15 09:25:01.098592764 -0600
-@@ -0,0 +1,48 @@
-+/* Test for integer/buffer overflow in strtod.
-+   Copyright (C) 2012 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#define EXPONENT "e-2147483649"
-+#define SIZE 214748364
-+
-+static int
-+do_test (void)
-+{
-+  char *p = malloc (1 + SIZE + sizeof (EXPONENT));
-+  if (p == NULL)
-+    {
-+      puts ("malloc failed, cannot test for overflow");
-+      return 0;
-+    }
-+  p[0] = '1';
-+  memset (p + 1, '0', SIZE);
-+  memcpy (p + 1 + SIZE, EXPONENT, sizeof (EXPONENT));
-+  double d = strtod (p, NULL);
-+  if (d != 0)
-+    {
-+      printf ("strtod returned wrong value: %a\n", d);
-+      return 1;
-+    }
-+  return 0;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
diff --git a/src/patches/glibc/glibc-rh848082.patch b/src/patches/glibc/glibc-rh848082.patch
deleted file mode 100644 (file)
index dfb96bf..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-commit 4f031072a5055abd83717820b59efdaa463d5853
-Author: Ulrich Drepper <drepper@gmail.com>
-Date:   Sat May 28 16:59:30 2011 -0400
-
-    Handle failure of _nl_explode_name in all cases
-
- 2011-05-28  Ulrich Drepper  <drepper@gmail.com>
-       * locale/findlocale.c (_nl_find_locale): Return right away if
-       _nl_explode_name failed.
-       * locale/programs/locarchive.c (add_locale_to_archive): Likewise.
-
-diff --git a/locale/findlocale.c b/locale/findlocale.c
-index 6b88c96..2fec9a7 100644
---- a/locale/findlocale.c
-+++ b/locale/findlocale.c
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1996-2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc.
-+/* Copyright (C) 1996-2003, 2006, 2010, 2011 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
-@@ -140,6 +140,9 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
-    */
-   mask = _nl_explode_name (loc_name, &language, &modifier, &territory,
-                          &codeset, &normalized_codeset);
-+  if (mask == -1)
-+    /* Memory allocate problem.  */
-+    return NULL;
-   /* If exactly this locale was already asked for we have an entry with
-      the complete name.  */
-diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
-index 85ba77d..e95bcf1 100644
---- a/locale/programs/locarchive.c
-+++ b/locale/programs/locarchive.c
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2002, 2003, 2005, 2007, 2009 Free Software Foundation, Inc.
-+/* Copyright (C) 2002,2003,2005,2007,2009,2011 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-@@ -1079,6 +1079,8 @@ add_locale_to_archive (ah, name, data, replace)
-   int mask = _nl_explode_name (strdupa (name),
-                              &language, &modifier, &territory,
-                              &codeset, &normalized_codeset);
-+  if (mask == -1)
-+    return -1;
-   if (mask & XPG_NORM_CODESET)
-     /* This name contains a codeset in unnormalized form.
-@@ -1128,6 +1130,7 @@ add_locale_to_archive (ah, name, data, replace)
-   /* Now read the locale.alias files looking for lines whose
-      right hand side matches our name after normalization.  */
-+  int result = 0;
-   if (alias_file != NULL)
-     {
-       FILE *fp;
-@@ -1207,6 +1210,11 @@ add_locale_to_archive (ah, name, data, replace)
-                                                    &rhs_territory,
-                                                    &rhs_codeset,
-                                                    &rhs_normalized_codeset);
-+                  if (rhs_mask == 1)
-+                    {
-+                      result = -1;
-+                      goto out;
-+                    }
-                   if (!strcmp (language, rhs_language)
-                       && ((rhs_mask & XPG_CODESET)
-                           /* He has a codeset, it must match normalized.  */
-@@ -1240,6 +1248,7 @@ add_locale_to_archive (ah, name, data, replace)
-           }
-       }
-+    out:
-       fclose (fp);
-     }
-@@ -1248,7 +1257,7 @@ add_locale_to_archive (ah, name, data, replace)
-   if (mask & XPG_NORM_CODESET)
-     free ((char *) normalized_codeset);
--  return 0;
-+  return result;
- }
diff --git a/src/patches/glibc/glibc-rh848748.patch b/src/patches/glibc/glibc-rh848748.patch
deleted file mode 100644 (file)
index b75a368..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-2013-04-30  Patsy Franklin <pfrankli@redhat.com>
-
-        * nis/yp_xdr.c: Defined XDRMAXNAME and XDRMAXRECORD.
-        (xdr_domainname): Use XDRMAXNAME as maxsize.
-        (xdr_mapname): Use XDRMAXNAME as maxsize.
-        (xdr_peername): Use XDRMAXNAME as maxsize.
-        (xdr_keydat): Use XDRMAXRECORD as maxsize.
-        (xdr_valdat): Use XDRMAXRECORD as maxsize.
-
-diff -Nrup a/nis/yp_xdr.c b/nis/yp_xdr.c
---- a/nis/yp_xdr.c     2012-06-30 15:12:34.000000000 -0400
-+++ b/nis/yp_xdr.c     2013-04-30 05:36:02.492835503 -0400
-@@ -32,6 +32,14 @@
- #include <rpcsvc/yp.h>
- #include <rpcsvc/ypclnt.h>
-+/* The specification suggests 1024 as a maximum length of all fields,
-+   but current linux systems usually don't use any limits. So, to stay
-+   as much compatible as possible with recent linux systems we choose
-+   limits large enough to avoid problems. */
-+
-+#define XDRMAXNAME 1024
-+#define XDRMAXRECORD 16 * 1024 * 1024
-+
- bool_t
- xdr_ypstat (XDR *xdrs, ypstat *objp)
- {
-@@ -49,21 +57,21 @@ libnsl_hidden_def (xdr_ypxfrstat)
- bool_t
- xdr_domainname (XDR *xdrs, domainname *objp)
- {
--  return xdr_string (xdrs, objp, ~0);
-+  return xdr_string (xdrs, objp, XDRMAXNAME);
- }
- libnsl_hidden_def (xdr_domainname)
- bool_t
- xdr_mapname (XDR *xdrs, mapname *objp)
- {
--  return xdr_string (xdrs, objp, ~0);
-+  return xdr_string (xdrs, objp, XDRMAXNAME);
- }
- libnsl_hidden_def (xdr_mapname)
- bool_t
- xdr_peername (XDR *xdrs, peername *objp)
- {
--  return xdr_string (xdrs, objp, ~0);
-+  return xdr_string (xdrs, objp, XDRMAXNAME);
- }
- libnsl_hidden_def (xdr_peername)
-@@ -71,7 +79,7 @@ bool_t
- xdr_keydat (XDR *xdrs, keydat *objp)
- {
-   return xdr_bytes (xdrs, (char **) &objp->keydat_val,
--                  (u_int *) &objp->keydat_len, ~0);
-+                  (u_int *) &objp->keydat_len, XDRMAXRECORD);
- }
- libnsl_hidden_def (xdr_keydat)
-@@ -79,7 +87,7 @@ bool_t
- xdr_valdat (XDR *xdrs, valdat *objp)
- {
-   return xdr_bytes (xdrs, (char **) &objp->valdat_val,
--                  (u_int *) &objp->valdat_len, ~0);
-+                  (u_int *) &objp->valdat_len, XDRMAXRECORD);
- }
- libnsl_hidden_def (xdr_valdat)
diff --git a/src/patches/glibc/glibc-rh849203.patch b/src/patches/glibc/glibc-rh849203.patch
deleted file mode 100644 (file)
index ea50593..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-diff -Nrup a/intl/Makefile b/intl/Makefile
---- a/intl/Makefile    2010-05-04 05:27:23.000000000 -0600
-+++ b/intl/Makefile    2012-08-17 14:40:00.457226629 -0600
-@@ -74,6 +74,16 @@ ifneq (no,$(PERL))
- tests: $(objpfx)mtrace-tst-gettext
- endif
- endif
-+
-+# Multiple tests use this data.  Create it once to avoid racing and
-+# spurious test failures.
-+codeset_mo = $(objpfx)domaindir/de_DE/LC_MESSAGES/codeset.mo
-+
-+$(codeset_mo):
-+      $(make-target-directory)
-+      msgfmt -o $@T tstcodeset.po
-+      mv -f $@T $@
-+
- $(objpfx)mtrace-tst-gettext: $(objpfx)tst-gettext.out
-       $(common-objpfx)malloc/mtrace $(objpfx)tst-gettext.mtrace > $@
- $(objpfx)tst-gettext.out: tst-gettext.sh $(objpfx)tst-gettext
-@@ -83,16 +93,14 @@ $(objpfx)tst-translit.out: tst-translit.
-       $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
- $(objpfx)tst-gettext2.out: tst-gettext2.sh $(objpfx)tst-gettext2
-       $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
--$(objpfx)tst-codeset.out: tst-codeset.sh $(objpfx)tst-codeset
--      $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
--$(objpfx)tst-gettext3.out: tst-gettext3.sh $(objpfx)tst-gettext3
--      $(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
- $(objpfx)tst-gettext4.out: tst-gettext4.sh $(objpfx)tst-gettext4
-       $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/
--$(objpfx)tst-gettext5.out: tst-gettext5.sh $(objpfx)tst-gettext5
--      $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/
- $(objpfx)tst-gettext6.out: tst-gettext6.sh $(objpfx)tst-gettext6
-       $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/
-+
-+$(objpfx)tst-codeset.out: $(codeset_mo)
-+$(objpfx)tst-gettext3.out: $(codeset_mo)
-+$(objpfx)tst-gettext5.out: $(codeset_mo)
- endif
- endif
-@@ -109,6 +117,11 @@ CFLAGS-tst-gettext4.c = -DOBJPFX=\"$(obj
- CFLAGS-tst-gettext5.c = -DOBJPFX=\"$(objpfx)\"
- CFLAGS-tst-gettext6.c = -DOBJPFX=\"$(objpfx)\"
-+LOCPATH-ENV = LOCPATH=$(common-objpfx)localedata
-+tst-codeset-ENV = $(LOCPATH-ENV)
-+tst-gettext3-ENV = $(LOCPATH-ENV)
-+tst-gettext5-ENV = $(LOCPATH-ENV)
-+
- ifeq ($(have-thread-library),yes)
- ifeq (yes,$(build-shared))
- $(addprefix $(objpfx),$(multithread-test-srcs)): $(shared-thread-library)
-diff -Nrup a/intl/tst-codeset.sh b/intl/tst-codeset.sh
---- a/intl/tst-codeset.sh      2010-05-04 05:27:23.000000000 -0600
-+++ b/intl/tst-codeset.sh      1969-12-31 17:00:00.000000000 -0700
-@@ -1,43 +0,0 @@
--#! /bin/sh
--# Test of bind_textdomain_codeset.
--# Copyright (C) 2001, 2002, 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.
--
--common_objpfx=$1
--objpfx=$2
--
--LC_ALL=C
--export LC_ALL
--
--# Generate the test data.
--msgfmt -o ${objpfx}codeset.mo.$$ tstcodeset.po || exit
--# Create the domain directories.
--mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES
--# Populate them.
--mv -f ${objpfx}codeset.mo.$$ ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo
--
--GCONV_PATH=${common_objpfx}iconvdata
--export GCONV_PATH
--LOCPATH=${common_objpfx}localedata
--export LOCPATH
--
--${common_objpfx}elf/ld.so --library-path $common_objpfx \
--${objpfx}tst-codeset > ${objpfx}tst-codeset.out
--
--exit $?
-diff -Nrup a/intl/tst-gettext3.sh b/intl/tst-gettext3.sh
---- a/intl/tst-gettext3.sh     2010-05-04 05:27:23.000000000 -0600
-+++ b/intl/tst-gettext3.sh     1969-12-31 17:00:00.000000000 -0700
-@@ -1,44 +0,0 @@
--#! /bin/sh
--# Test that the gettext() results come out in the correct encoding for
--# locales that differ only in their encoding.
--# Copyright (C) 2001, 2002, 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.
--
--common_objpfx=$1
--objpfx=$2
--
--LC_ALL=C
--export LC_ALL
--
--# Generate the test data.
--msgfmt -o ${objpfx}codeset.mo.$$ tstcodeset.po || exit
--# Create the domain directories.
--mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES
--# Populate them.
--mv -f ${objpfx}codeset.mo.$$ ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo
--
--GCONV_PATH=${common_objpfx}iconvdata
--export GCONV_PATH
--LOCPATH=${common_objpfx}localedata
--export LOCPATH
--
--${common_objpfx}elf/ld.so --library-path $common_objpfx \
--${objpfx}tst-gettext3 > ${objpfx}tst-gettext3.out
--
--exit $?
-diff -Nrup a/intl/tst-gettext5.sh b/intl/tst-gettext5.sh
---- a/intl/tst-gettext5.sh     2010-05-04 05:27:23.000000000 -0600
-+++ b/intl/tst-gettext5.sh     1969-12-31 17:00:00.000000000 -0700
-@@ -1,43 +0,0 @@
--#! /bin/sh
--# Test that gettext() in multithreaded applications works correctly if
--# different threads operate in different locales referring to the same
--# catalog file but with different encodings.
--# Copyright (C) 2001, 2002, 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.
--
--common_objpfx=$1
--run_program_prefix=$2
--objpfx=$3
--
--LC_ALL=C
--export LC_ALL
--
--# Create the domain directories.
--mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES
--# Populate them.
--msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo tstcodeset.po
--
--GCONV_PATH=${common_objpfx}iconvdata
--export GCONV_PATH
--LOCPATH=${common_objpfx}localedata
--export LOCPATH
--
--${run_program_prefix} ${objpfx}tst-gettext5 > ${objpfx}tst-gettext5.out
--
--exit $?
diff --git a/src/patches/glibc/glibc-rh849651.patch b/src/patches/glibc/glibc-rh849651.patch
deleted file mode 100644 (file)
index 97a5144..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-diff -Nrup a/sysdeps/x86_64/fpu/e_expf.S b/sysdeps/x86_64/fpu/e_expf.S
---- a/sysdeps/x86_64/fpu/e_expf.S      1969-12-31 17:00:00.000000000 -0700
-+++ b/sysdeps/x86_64/fpu/e_expf.S      2012-08-20 09:47:15.551971545 -0600
-@@ -0,0 +1,339 @@
-+/* Optimized __ieee754_expf function.
-+   Copyright (C) 2012 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <sysdep.h>
-+
-+/* Short algorithm description:
-+ *
-+ *  Let K = 64 (table size).
-+ *       e^x  = 2^(x/log(2)) = 2^n * T[j] * (1 + P(y))
-+ *  where
-+ *       x = m*log(2)/K + y,    y in [0.0..log(2)/K]
-+ *       m = n*K + j,           m,n,j - signed integer, j in [0..K-1]
-+ *       values of 2^(j/K) are tabulated as T[j].
-+ *
-+ *       P(y) is a minimax polynomial approximation of expf(x)-1
-+ *       on small interval [0.0..log(2)/K].
-+ *
-+ *       P(y) = P3*y*y*y*y + P2*y*y*y + P1*y*y + P0*y, calculated as
-+ *       z = y*y;    P(y) = (P3*z + P1)*z + (P2*z + P0)*y
-+ *
-+ * Special cases:
-+ *  expf(NaN) = NaN
-+ *  expf(+INF) = +INF
-+ *  expf(-INF) = 0
-+ *  expf(x) = 1 for subnormals
-+ *  for finite argument, only expf(0)=1 is exact
-+ *  expf(x) overflows if x>88.7228317260742190
-+ *  expf(x) underflows if x<-103.972076416015620
-+ */
-+
-+      .text
-+ENTRY(__ieee754_expf)
-+      /* Input: single precision x in %xmm0 */
-+      cvtss2sd        %xmm0, %xmm1    /* Convert x to double precision */
-+      movd    %xmm0, %ecx             /* Copy x */
-+      movsd   L(DP_KLN2)(%rip), %xmm2 /* DP K/log(2) */
-+      movsd   L(DP_P2)(%rip), %xmm3   /* DP P2 */
-+      movl    %ecx, %eax              /* x */
-+      mulsd   %xmm1, %xmm2            /* DP x*K/log(2) */
-+      andl    $0x7fffffff, %ecx       /* |x| */
-+      lea     L(DP_T)(%rip), %rsi     /* address of table T[j] */
-+      cmpl    $0x42ad496b, %ecx       /* |x|<125*log(2) ? */
-+      movsd   L(DP_P3)(%rip), %xmm4   /* DP P3 */
-+      addsd   L(DP_RS)(%rip), %xmm2   /* DP x*K/log(2)+RS */
-+      jae     L(special_paths)
-+
-+      /* Here if |x|<125*log(2) */
-+      cmpl    $0x31800000, %ecx       /* |x|<2^(-28) ? */
-+      jb      L(small_arg)
-+
-+      /* Main path: here if 2^(-28)<=|x|<125*log(2) */
-+      cvtsd2ss        %xmm2, %xmm2    /* SP x*K/log(2)+RS */
-+      movd    %xmm2, %eax             /* bits of n*K+j with trash */
-+      subss   L(SP_RS)(%rip), %xmm2   /* SP t=round(x*K/log(2)) */
-+      movl    %eax, %edx              /* n*K+j with trash */
-+      cvtss2sd        %xmm2, %xmm2    /* DP t */
-+      andl    $0x3f, %eax             /* bits of j */
-+      mulsd   L(DP_NLN2K)(%rip), %xmm2/* DP -t*log(2)/K */
-+      andl    $0xffffffc0, %edx       /* bits of n */
-+#ifdef __AVX__
-+      vaddsd  %xmm1, %xmm2, %xmm0     /* DP y=x-t*log(2)/K */
-+      vmulsd  %xmm0, %xmm0, %xmm2     /* DP z=y*y */
-+#else
-+      addsd   %xmm1, %xmm2            /* DP y=x-t*log(2)/K */
-+      movaps  %xmm2, %xmm0            /* DP y */
-+      mulsd   %xmm2, %xmm2            /* DP z=y*y */
-+#endif
-+      mulsd   %xmm2, %xmm4            /* DP P3*z */
-+      addl    $0x1fc0, %edx           /* bits of n + SP exponent bias */
-+      mulsd   %xmm2, %xmm3            /* DP P2*z */
-+      shll    $17, %edx               /* SP 2^n */
-+      addsd   L(DP_P1)(%rip), %xmm4   /* DP P3*z+P1 */
-+      addsd   L(DP_P0)(%rip), %xmm3   /* DP P2*z+P0 */
-+      movd    %edx, %xmm1             /* SP 2^n */
-+      mulsd   %xmm2, %xmm4            /* DP (P3*z+P1)*z */
-+      mulsd   %xmm3, %xmm0            /* DP (P2*z+P0)*y */
-+      addsd   %xmm4, %xmm0            /* DP P(y) */
-+      mulsd   (%rsi,%rax,8), %xmm0    /* DP P(y)*T[j] */
-+      addsd   (%rsi,%rax,8), %xmm0    /* DP T[j]*(P(y)+1) */
-+      cvtsd2ss        %xmm0, %xmm0    /* SP T[j]*(P(y)+1) */
-+      mulss   %xmm1, %xmm0            /* SP result=2^n*(T[j]*(P(y)+1)) */
-+      ret
-+
-+      .p2align        4
-+L(small_arg):
-+      /* Here if 0<=|x|<2^(-28) */
-+      addss   L(SP_ONE)(%rip), %xmm0  /* 1.0 + x */
-+      /* Return 1.0 with inexact raised, except for x==0 */
-+      ret
-+
-+      .p2align        4
-+L(special_paths):
-+      /* Here if 125*log(2)<=|x| */
-+      shrl    $31, %eax               /* Get sign bit of x, and depending on it: */
-+      lea     L(SP_RANGE)(%rip), %rdx /* load over/underflow bound */
-+      cmpl    (%rdx,%rax,4), %ecx     /* |x|<under/overflow bound ? */
-+      jbe     L(near_under_or_overflow)
-+
-+      /* Here if |x|>under/overflow bound */
-+      cmpl    $0x7f800000, %ecx       /* |x| is finite ? */
-+      jae     L(arg_inf_or_nan)
-+
-+      /* Here if |x|>under/overflow bound, and x is finite */
-+      testq   %rax, %rax              /* sign of x nonzero ? */
-+      je      L(res_overflow)
-+
-+      /* Here if -inf<x<underflow bound (x<0) */
-+      movss   L(SP_SMALL)(%rip), %xmm0/* load small value 2^(-100) */
-+      mulss   %xmm0, %xmm0            /* Return underflowed result (zero or subnormal) */
-+      ret
-+
-+      .p2align        4
-+L(res_overflow):
-+      /* Here if overflow bound<x<inf (x>0) */
-+      movss   L(SP_LARGE)(%rip), %xmm0/* load large value 2^100 */
-+      mulss   %xmm0, %xmm0            /* Return overflowed result (Inf or max normal) */
-+      ret
-+
-+      .p2align        4
-+L(arg_inf_or_nan):
-+      /* Here if |x| is Inf or NAN */
-+      jne     L(arg_nan)      /* |x| is Inf ? */
-+
-+      /* Here if |x| is Inf */
-+      lea     L(SP_INF_0)(%rip), %rdx /* depending on sign of x: */
-+      movss   (%rdx,%rax,4), %xmm0    /* return zero or Inf */
-+      ret
-+
-+      .p2align        4
-+L(arg_nan):
-+      /* Here if |x| is NaN */
-+      addss   %xmm0, %xmm0            /* Return x+x (raise invalid) */
-+      ret
-+
-+      .p2align        4
-+L(near_under_or_overflow):
-+      /* Here if 125*log(2)<=|x|<under/overflow bound */
-+      cvtsd2ss        %xmm2, %xmm2    /* SP x*K/log(2)+RS */
-+      movd    %xmm2, %eax             /* bits of n*K+j with trash */
-+      subss   L(SP_RS)(%rip), %xmm2   /* SP t=round(x*K/log(2)) */
-+      movl    %eax, %edx              /* n*K+j with trash */
-+      cvtss2sd        %xmm2, %xmm2    /* DP t */
-+      andl    $0x3f, %eax             /* bits of j */
-+      mulsd   L(DP_NLN2K)(%rip), %xmm2/* DP -t*log(2)/K */
-+      andl    $0xffffffc0, %edx       /* bits of n */
-+#ifdef __AVX__
-+      vaddsd  %xmm1, %xmm2, %xmm0     /* DP y=x-t*log(2)/K */
-+      vmulsd  %xmm0, %xmm0, %xmm2     /* DP z=y*y */
-+#else
-+      addsd   %xmm1, %xmm2            /* DP y=x-t*log(2)/K */
-+      movaps  %xmm2, %xmm0            /* DP y */
-+      mulsd   %xmm2, %xmm2            /* DP z=y*y */
-+#endif
-+      mulsd   %xmm2, %xmm4            /* DP P3*z */
-+      addl    $0xffc0, %edx           /* bits of n + DP exponent bias */
-+      mulsd   %xmm2, %xmm3            /* DP P2*z */
-+      shlq    $46, %rdx               /* DP 2^n */
-+      addsd   L(DP_P1)(%rip), %xmm4   /* DP P3*z+P1 */
-+      addsd   L(DP_P0)(%rip), %xmm3   /* DP P2*z+P0 */
-+      movd    %rdx, %xmm1             /* DP 2^n */
-+      mulsd   %xmm2, %xmm4            /* DP (P3*z+P1)*z */
-+      mulsd   %xmm3, %xmm0            /* DP (P2*z+P0)*y */
-+      addsd   %xmm4, %xmm0            /* DP P(y) */
-+      mulsd   (%rsi,%rax,8), %xmm0    /* DP P(y)*T[j] */
-+      addsd   (%rsi,%rax,8), %xmm0    /* DP T[j]*(P(y)+1) */
-+      mulsd   %xmm1, %xmm0            /* DP result=2^n*(T[j]*(P(y)+1)) */
-+      cvtsd2ss        %xmm0, %xmm0    /* convert result to single precision */
-+      ret
-+END(__ieee754_expf)
-+
-+      .section .rodata, "a"
-+      .p2align 3
-+L(DP_T): /* table of double precision values 2^(j/K) for j=[0..K-1] */
-+      .long   0x00000000, 0x3ff00000
-+      .long   0x3e778061, 0x3ff02c9a
-+      .long   0xd3158574, 0x3ff059b0
-+      .long   0x18759bc8, 0x3ff08745
-+      .long   0x6cf9890f, 0x3ff0b558
-+      .long   0x32d3d1a2, 0x3ff0e3ec
-+      .long   0xd0125b51, 0x3ff11301
-+      .long   0xaea92de0, 0x3ff1429a
-+      .long   0x3c7d517b, 0x3ff172b8
-+      .long   0xeb6fcb75, 0x3ff1a35b
-+      .long   0x3168b9aa, 0x3ff1d487
-+      .long   0x88628cd6, 0x3ff2063b
-+      .long   0x6e756238, 0x3ff2387a
-+      .long   0x65e27cdd, 0x3ff26b45
-+      .long   0xf51fdee1, 0x3ff29e9d
-+      .long   0xa6e4030b, 0x3ff2d285
-+      .long   0x0a31b715, 0x3ff306fe
-+      .long   0xb26416ff, 0x3ff33c08
-+      .long   0x373aa9cb, 0x3ff371a7
-+      .long   0x34e59ff7, 0x3ff3a7db
-+      .long   0x4c123422, 0x3ff3dea6
-+      .long   0x21f72e2a, 0x3ff4160a
-+      .long   0x6061892d, 0x3ff44e08
-+      .long   0xb5c13cd0, 0x3ff486a2
-+      .long   0xd5362a27, 0x3ff4bfda
-+      .long   0x769d2ca7, 0x3ff4f9b2
-+      .long   0x569d4f82, 0x3ff5342b
-+      .long   0x36b527da, 0x3ff56f47
-+      .long   0xdd485429, 0x3ff5ab07
-+      .long   0x15ad2148, 0x3ff5e76f
-+      .long   0xb03a5585, 0x3ff6247e
-+      .long   0x82552225, 0x3ff66238
-+      .long   0x667f3bcd, 0x3ff6a09e
-+      .long   0x3c651a2f, 0x3ff6dfb2
-+      .long   0xe8ec5f74, 0x3ff71f75
-+      .long   0x564267c9, 0x3ff75feb
-+      .long   0x73eb0187, 0x3ff7a114
-+      .long   0x36cf4e62, 0x3ff7e2f3
-+      .long   0x994cce13, 0x3ff82589
-+      .long   0x9b4492ed, 0x3ff868d9
-+      .long   0x422aa0db, 0x3ff8ace5
-+      .long   0x99157736, 0x3ff8f1ae
-+      .long   0xb0cdc5e5, 0x3ff93737
-+      .long   0x9fde4e50, 0x3ff97d82
-+      .long   0x82a3f090, 0x3ff9c491
-+      .long   0x7b5de565, 0x3ffa0c66
-+      .long   0xb23e255d, 0x3ffa5503
-+      .long   0x5579fdbf, 0x3ffa9e6b
-+      .long   0x995ad3ad, 0x3ffae89f
-+      .long   0xb84f15fb, 0x3ffb33a2
-+      .long   0xf2fb5e47, 0x3ffb7f76
-+      .long   0x904bc1d2, 0x3ffbcc1e
-+      .long   0xdd85529c, 0x3ffc199b
-+      .long   0x2e57d14b, 0x3ffc67f1
-+      .long   0xdcef9069, 0x3ffcb720
-+      .long   0x4a07897c, 0x3ffd072d
-+      .long   0xdcfba487, 0x3ffd5818
-+      .long   0x03db3285, 0x3ffda9e6
-+      .long   0x337b9b5f, 0x3ffdfc97
-+      .long   0xe78b3ff6, 0x3ffe502e
-+      .long   0xa2a490da, 0x3ffea4af
-+      .long   0xee615a27, 0x3ffefa1b
-+      .long   0x5b6e4540, 0x3fff5076
-+      .long   0x819e90d8, 0x3fffa7c1
-+      .type L(DP_T), @object
-+      ASM_SIZE_DIRECTIVE(L(DP_T))
-+
-+      .section .rodata.cst8,"aM",@progbits,8
-+      .p2align 3
-+L(DP_KLN2): /* double precision K/log(2) */
-+      .long   0x652b82fe, 0x40571547
-+      .type L(DP_KLN2), @object
-+      ASM_SIZE_DIRECTIVE(L(DP_KLN2))
-+
-+      .p2align 3
-+L(DP_NLN2K): /* double precision -log(2)/K */
-+      .long   0xfefa39ef, 0xbf862e42
-+      .type L(DP_NLN2K), @object
-+      ASM_SIZE_DIRECTIVE(L(DP_NLN2K))
-+
-+      .p2align 3
-+L(DP_RS): /* double precision 2^23+2^22 */
-+      .long   0x00000000, 0x41680000
-+      .type L(DP_RS), @object
-+      ASM_SIZE_DIRECTIVE(L(DP_RS))
-+
-+      .p2align 3
-+L(DP_P3): /* double precision polynomial coefficient P3 */
-+      .long   0xeb78fa85, 0x3fa56420
-+      .type L(DP_P3), @object
-+      ASM_SIZE_DIRECTIVE(L(DP_P3))
-+
-+      .p2align 3
-+L(DP_P1): /* double precision polynomial coefficient P1 */
-+      .long   0x008d6118, 0x3fe00000
-+      .type L(DP_P1), @object
-+      ASM_SIZE_DIRECTIVE(L(DP_P1))
-+
-+      .p2align 3
-+L(DP_P2): /* double precision polynomial coefficient P2 */
-+      .long   0xda752d4f, 0x3fc55550
-+      .type L(DP_P2), @object
-+      ASM_SIZE_DIRECTIVE(L(DP_P2))
-+
-+      .p2align 3
-+L(DP_P0): /* double precision polynomial coefficient P0 */
-+      .long   0xffffe7c6, 0x3fefffff
-+      .type L(DP_P0), @object
-+      ASM_SIZE_DIRECTIVE(L(DP_P0))
-+
-+      .p2align 2
-+L(SP_RANGE): /* single precision overflow/underflow bounds */
-+      .long   0x42b17217      /* if x>this bound, then result overflows */
-+      .long   0x42cff1b4      /* if x<this bound, then result underflows */
-+      .type L(SP_RANGE), @object
-+      ASM_SIZE_DIRECTIVE(L(SP_RANGE))
-+
-+      .p2align 2
-+L(SP_INF_0):
-+      .long   0x7f800000      /* single precision Inf */
-+      .long   0               /* single precision zero */
-+      .type L(SP_INF_0), @object
-+      ASM_SIZE_DIRECTIVE(L(SP_INF_0))
-+
-+      .section .rodata.cst4,"aM",@progbits,4
-+      .p2align 2
-+L(SP_RS): /* single precision 2^23+2^22 */
-+      .long   0x4b400000
-+      .type L(SP_RS), @object
-+      ASM_SIZE_DIRECTIVE(L(SP_RS))
-+
-+      .p2align 2
-+L(SP_SMALL): /* single precision small value 2^(-100) */
-+      .long   0x0d800000
-+      .type L(SP_SMALL), @object
-+      ASM_SIZE_DIRECTIVE(L(SP_SMALL))
-+
-+      .p2align 2
-+L(SP_LARGE): /* single precision large value 2^100 */
-+      .long   0x71800000
-+      .type L(SP_LARGE), @object
-+      ASM_SIZE_DIRECTIVE(L(SP_LARGE))
-+
-+      .p2align 2
-+L(SP_ONE): /* single precision 1.0 */
-+      .long   0x3f800000
-+      .type L(SP_ONE), @object
-+      ASM_SIZE_DIRECTIVE(L(SP_ONE))
-+
-+strong_alias (__ieee754_expf, __expf_finite)
diff --git a/src/patches/glibc/glibc-rh851470.patch b/src/patches/glibc/glibc-rh851470.patch
deleted file mode 100644 (file)
index 94915da..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-commit 050af9c4e86eeecd484ed44b7765e750523276eb
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Wed Aug 29 10:03:39 2012 +0530
-
-    Don't make ttyname* fail if proc filesystem is not available
-    
-    The ttyname and ttyname_r functions on Linux now fall back to
-    searching for the tty file descriptor in /dev/pts or /dev if /proc is
-    not available.  This allows creation of chroots without the procfs
-    mounted on /proc.
-    
-    Fixes BZ #14516.
-
- 2012-08-29  Siddhesh Poyarekar  <siddhesh@redhat.com>
-       [BZ #14516]
-       * sysdeps/unix/sysv/linux/ttyname.c (ttyname): Don't return
-       failure if reading from procfs failed.
-       * sysdeps/unix/sysv/linux/ttyname_r.c (ttyname_r): Likewise.
-diff -rup a/sysdeps/unix/sysv/linux/ttyname.c b/sysdeps/unix/sysv/linux/ttyname.c
---- a/sysdeps/unix/sysv/linux/ttyname.c        2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/unix/sysv/linux/ttyname.c        2012-08-27 10:53:29.326671475 -0600
-@@ -146,12 +146,6 @@ ttyname (int fd)
-     }
-   ssize_t len = __readlink (procname, ttyname_buf, buflen);
--  if (__builtin_expect (len == -1 && errno == ENOENT, 0))
--    {
--      __set_errno (EBADF);
--      return NULL;
--    }
--
-   if (__builtin_expect (len != -1
- #ifndef __ASSUME_PROC_SELF_FD_SYMLINK
-                       /* This is for Linux 2.0.  */
-diff -rup a/sysdeps/unix/sysv/linux/ttyname_r.c b/sysdeps/unix/sysv/linux/ttyname_r.c
---- a/sysdeps/unix/sysv/linux/ttyname_r.c      2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/unix/sysv/linux/ttyname_r.c      2012-08-27 10:54:05.406528501 -0600
-@@ -126,12 +126,6 @@ __ttyname_r (int fd, char *buf, size_t b
-   *_fitoa_word (fd, __stpcpy (procname, "/proc/self/fd/"), 10, 0) = '\0';
-   ssize_t ret = __readlink (procname, buf, buflen - 1);
--  if (__builtin_expect (ret == -1 && errno == ENOENT, 0))
--    {
--      __set_errno (EBADF);
--      return EBADF;
--    }
--
-   if (__builtin_expect (ret == -1 && errno == ENAMETOOLONG, 0))
-     {
-       __set_errno (ERANGE);
diff --git a/src/patches/glibc/glibc-rh852445.patch b/src/patches/glibc/glibc-rh852445.patch
deleted file mode 100644 (file)
index 3c4e13f..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-From libc-alpha-return-31329-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Wed Jul 11 11:36:39 2012
-Return-Path: <libc-alpha-return-31329-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 15677 invoked by alias); 11 Jul 2012 11:36:39 -0000
-Received: (qmail 15654 invoked by uid 22791); 11 Jul 2012 11:36:37 -0000
-X-SWARE-Spam-Status: No, hits=-4.3 required=5.0
-       tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE
-X-Spam-Check-By: sourceware.org
-Date: Wed, 11 Jul 2012 21:06:06 +0930
-From: Alan Modra <amodra at gmail dot com>
-To: libc-alpha at sourceware dot org
-Cc: rsa at linux dot vnet dot ibm dot com
-Subject: powerpc pthread_once bug fix
-Message-ID: <20120711113606.GM3117@bubble.grove.modra.org>
-MIME-Version: 1.0
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: inline
-User-Agent: Mutt/1.5.21 (2010-09-15)
-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
-
-This fixes some bugs in the powerpc pthread_once code.  Ref
-gcc.gnu.org/bugzilla/show_bug.cgi?id=52839#c10
-
-Release barriers are needed to ensure any memory written by
-init_routine is seen by other threads before *once_control changes.
-In the case of clear_once_control we need to flush any partially
-written state.
-
-2012-06-28  Alan Modra  <amodra@gmail.com>
-
-       * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
-       Add release barrier before setting once_control to say
-       initialisation is done.  Add hints on lwarx.  Use macro in
-       place of isync.
-       (clear_once_control): Add release barrier.
-
-[ This was slightly edited -- the constraint for operand 0 in the last asm was changed
-  from "=&r" to "=&b" as using r0 in that context results in a load immediate 1 into
-  the target rather than incrementing the target. ]
-
-diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c b/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c
-index 4e3d7bd..bb1ebf2 100644
---- a/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c
-+++ b/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c
-@@ -28,6 +28,7 @@ clear_once_control (void *arg)
- {
-   pthread_once_t *once_control = (pthread_once_t *) arg;
-+  __asm __volatile (__lll_rel_instr);
-   *once_control = 0;
-   lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
- }
-@@ -47,15 +48,15 @@ __pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
-        oldval = *once_control;
-        if ((oldval & 2) == 0)
-          *once_control = newval;
--       Do this atomically.
-+       Do this atomically with an acquire barrier.
-       */
-       newval = __fork_generation | 1;
--      __asm __volatile ("1:   lwarx   %0,0,%3\n"
-+      __asm __volatile ("1:   lwarx   %0,0,%3" MUTEX_HINT_ACQ "\n"
-                       "       andi.   %1,%0,2\n"
-                       "       bne     2f\n"
-                       "       stwcx.  %4,0,%3\n"
-                       "       bne     1b\n"
--                      "2:     isync"
-+                      "2:     " __lll_acq_instr
-                       : "=&r" (oldval), "=&r" (tmp), "=m" (*once_control)
-                       : "r" (once_control), "r" (newval), "m" (*once_control)
-                       : "cr0");
-@@ -87,8 +88,18 @@ __pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
-   pthread_cleanup_pop (0);
--  /* Add one to *once_control to take the bottom 2 bits from 01 to 10.  */
--  atomic_increment (once_control);
-+  /* Add one to *once_control to take the bottom 2 bits from 01 to 10.
-+     A release barrier is needed to ensure memory written by init_routine
-+     is seen in other threads before *once_control changes.  */
-+  int tmp;
-+  __asm __volatile (__lll_rel_instr "\n"
-+                  "1: lwarx   %0,0,%2" MUTEX_HINT_REL "\n"
-+                  "   addi    %0,%0,1\n"
-+                  "   stwcx.  %0,0,%2\n"
-+                  "   bne-    1b"
-+                  : "=&b" (tmp), "=m" (*once_control)
-+                  : "r" (once_control), "m" (*once_control)
-+                  : "cr0");
-   /* Wake up all other threads.  */
-   lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
-
--- 
-Alan Modra
-Australia Development Lab, IBM
-
diff --git a/src/patches/glibc/glibc-rh859965.patch b/src/patches/glibc/glibc-rh859965.patch
deleted file mode 100644 (file)
index 8fcbcd4..0000000
+++ /dev/null
@@ -1,854 +0,0 @@
-#
-# Based on the following patch:
-#
-# Upstream bug: https://sourceware.org/bugzilla/show_bug.cgi?id=14906
-# URL: https://sourceware.org/ml/libc-alpha/2015-02/msg00504.html
-#
-# 2015-02-17  Carlos O'Donell  <carlos@redhat.com>
-#  
-#      [BZ #14906]
-#      * nscd/cache.c (prune_cache): Use TRACED_FILE. Compare and update
-#      traced file mtime. Use consistent log message.
-#      * nscd/connections.c [HAVE_INOTIFY] (install_watches): New function.
-#      (register_traced_file): Call install_watches. Always set mtime.
-#      (invalidate_cache): Iterate over all trace files. Call install_watches.
-#      (inotify_check_files): Don't inline. Handle watching parent
-#      directories and configuration file movement in and out.
-#      (handle_inotify_events): New function.
-#      (main_loop_poll): Call handle_inotify_events.
-#      (main_loop_epoll): Likewise.
-#      * nscd/nscd.h: Define TRACED_FILE, TRACED_DIR, and PATH_MAX.
-#      (struct traced_file): Use array of inotify fds. Add parent directory,
-#      and basename.
-#      (struct database_dyn): Remove unused file_mtime.
-#      (init_traced_file): New inline function.
-#      (define_traced_file): New macro.
-#      * nss/nss_db/db-init.c: Use define_traced_file.
-#      (_nss_db_init): Use init_traced_file.
-#      * nss/nss_files/files-init.c: Use define_traced_file.
-#      (_nss_files_init): Use init_traced_file.
-# 
-diff -urN glibc-2.12-2-gc4ccff1.orig/misc/sys/cdefs.h glibc-2.12-2-gc4ccff1.mod1/misc/sys/cdefs.h
---- glibc-2.12-2-gc4ccff1.orig/misc/sys/cdefs.h        2015-02-18 04:42:12.115187116 -0500
-+++ glibc-2.12-2-gc4ccff1.mod1/misc/sys/cdefs.h        2015-02-18 04:02:03.635159090 -0500
-@@ -362,6 +362,14 @@
- # endif
- #endif
-+#if __GNUC__ >= 3
-+# define __glibc_unlikely(cond) __builtin_expect ((cond), 0)
-+# define __glibc_likely(cond)   __builtin_expect ((cond), 1)
-+#else
-+# define __glibc_unlikely(cond) (cond)
-+# define __glibc_likely(cond)   (cond)
-+#endif
-+
- #include <bits/wordsize.h>
- #if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH
-diff -urN glibc-2.12-2-gc4ccff1.orig/nscd/cache.c glibc-2.12-2-gc4ccff1.mod1/nscd/cache.c
---- glibc-2.12-2-gc4ccff1.orig/nscd/cache.c    2015-02-18 04:42:12.329180362 -0500
-+++ glibc-2.12-2-gc4ccff1.mod1/nscd/cache.c    2015-02-18 04:02:03.635159090 -0500
-@@ -266,29 +266,52 @@
-   /* If we check for the modification of the underlying file we invalidate
-      the entries also in this case.  */
--  if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX)
-+  if (table->check_file && now != LONG_MAX)
-     {
--      struct stat64 st;
-+      struct traced_file *runp = table->traced_files;
--      if (stat64 (table->filename, &st) < 0)
-+      while (runp != NULL)
-       {
--        char buf[128];
--        /* We cannot stat() the file, disable file checking if the
--             file does not exist.  */
--        dbg_log (_("cannot stat() file `%s': %s"),
--                 table->filename, strerror_r (errno, buf, sizeof (buf)));
--        if (errno == ENOENT)
--          table->check_file = 0;
--      }
--      else
--      {
--        if (st.st_mtime != table->file_mtime)
-+#ifdef HAVE_INOTIFY
-+        if (runp->inotify_descr[TRACED_FILE] == -1)
-+#endif
-           {
--            /* The file changed.  Invalidate all entries.  */
--            now = LONG_MAX;
--            table->file_mtime = st.st_mtime;
-+            struct stat64 st;
-+
-+            if (stat64 (runp->fname, &st) < 0)
-+              {
-+                /* Print a diagnostic that the traced file was missing.
-+                   We must not disable tracing since the file might return
-+                   shortly and we want to reload it at the next pruning.
-+                   Disabling tracing here would go against the configuration
-+                   as specified by the user via check-files.  */
-+                char buf[128];
-+                dbg_log (_("checking for monitored file `%s': %s"),
-+                         runp->fname, strerror_r (errno, buf, sizeof (buf)));
-+              }
-+            else
-+              {
-+                /* This must be `!=` to catch cases where users turn the
-+                   clocks back and we still want to detect any time difference
-+                   in mtime.  */
-+                if (st.st_mtime != runp->mtime)
-+                  {
-+                    dbg_log (_("monitored file `%s` changed (mtime)"),
-+                             runp->fname);
-+                    /* The file changed. Invalidate all entries.  */
-+                    now = LONG_MAX;
-+                    runp->mtime = st.st_mtime;
-+#ifdef HAVE_INOTIFY
-+                    /* Attempt to install a watch on the file.  */
-+                    install_watches (runp);
-+#endif
-+                  }
-+              }
-           }
-+
-+        runp = runp->next;
-       }
-+
-     }
-   /* We run through the table and find values which are not valid anymore.
-diff -urN glibc-2.12-2-gc4ccff1.orig/nscd/connections.c glibc-2.12-2-gc4ccff1.mod1/nscd/connections.c
---- glibc-2.12-2-gc4ccff1.orig/nscd/connections.c      2015-02-18 04:42:12.333180236 -0500
-+++ glibc-2.12-2-gc4ccff1.mod1/nscd/connections.c      2015-02-18 04:40:51.674726008 -0500
-@@ -74,6 +74,25 @@
- static void begin_drop_privileges (void);
- static void finish_drop_privileges (void);
-+/* Define the traced files.  */
-+#define PWD_FILENAME "/etc/passwd"
-+define_traced_file (pwd, PWD_FILENAME);
-+
-+#define GRP_FILENAME "/etc/group"
-+define_traced_file (grp, GRP_FILENAME);
-+
-+#define HST_FILENAME "/etc/hosts"
-+define_traced_file (hst, HST_FILENAME);
-+
-+#define RESOLV_FILENAME "/etc/resolv.conf"
-+define_traced_file (resolv, RESOLV_FILENAME);
-+
-+#define SERV_FILENAME "/etc/services"
-+define_traced_file (serv, SERV_FILENAME);
-+
-+#define NETGR_FILENAME "/etc/netgroup"
-+define_traced_file (netgr, NETGR_FILENAME);
-+
- /* Map request type to a string.  */
- const char *const serv2str[LASTREQ] =
- {
-@@ -115,8 +134,6 @@
-     .shared = 0,
-     .max_db_size = DEFAULT_MAX_DB_SIZE,
-     .suggested_module = DEFAULT_SUGGESTED_MODULE,
--   .reset_res = 0,
--    .filename = "/etc/passwd",
-     .db_filename = _PATH_NSCD_PASSWD_DB,
-     .disabled_iov = &pwd_iov_disabled,
-     .postimeout = 3600,
-@@ -136,8 +153,6 @@
-     .shared = 0,
-     .max_db_size = DEFAULT_MAX_DB_SIZE,
-     .suggested_module = DEFAULT_SUGGESTED_MODULE,
--    .reset_res = 0,
--    .filename = "/etc/group",
-     .db_filename = _PATH_NSCD_GROUP_DB,
-     .disabled_iov = &grp_iov_disabled,
-     .postimeout = 3600,
-@@ -157,8 +172,6 @@
-     .shared = 0,
-     .max_db_size = DEFAULT_MAX_DB_SIZE,
-     .suggested_module = DEFAULT_SUGGESTED_MODULE,
--    .reset_res = 1,
--    .filename = "/etc/hosts",
-     .db_filename = _PATH_NSCD_HOSTS_DB,
-     .disabled_iov = &hst_iov_disabled,
-     .postimeout = 3600,
-@@ -178,8 +191,6 @@
-     .shared = 0,
-     .max_db_size = DEFAULT_MAX_DB_SIZE,
-     .suggested_module = DEFAULT_SUGGESTED_MODULE,
--    .reset_res = 0,
--    .filename = "/etc/services",
-     .db_filename = _PATH_NSCD_SERVICES_DB,
-     .disabled_iov = &serv_iov_disabled,
-     .postimeout = 28800,
-@@ -199,8 +210,6 @@
-     .shared = 0,
-     .max_db_size = DEFAULT_MAX_DB_SIZE,
-     .suggested_module = DEFAULT_SUGGESTED_MODULE,
--    .reset_res = 0,
--    .filename = "/etc/netgroup",
-     .db_filename = _PATH_NSCD_NETGROUP_DB,
-     .disabled_iov = &netgroup_iov_disabled,
-     .postimeout = 28800,
-@@ -863,41 +872,26 @@
-           dbs[cnt].shared = 0;
-           assert (dbs[cnt].ro_fd == -1);
-         }
-+      }
--      dbs[cnt].inotify_descr = -1;
--      if (dbs[cnt].check_file)
--        {
--#ifdef HAVE_INOTIFY
--          if (inotify_fd < 0
--              || (dbs[cnt].inotify_descr
--                  = inotify_add_watch (inotify_fd, dbs[cnt].filename,
--                                       IN_DELETE_SELF | IN_MODIFY)) < 0)
--            /* We cannot notice changes in the main thread.  */
--#endif
--            {
--              /* We need the modification date of the file.  */
--              struct stat64 st;
-+  /* Initialize and register the traced files.  */
-+  init_traced_file (&pwd_traced_file.file, PWD_FILENAME, 0);
-+  register_traced_file (pwddb, &pwd_traced_file.file);
--              if (stat64 (dbs[cnt].filename, &st) < 0)
--                {
--                  /* We cannot stat() the file, disable file checking.  */
--                  dbg_log (_("cannot stat() file `%s': %s"),
--                           dbs[cnt].filename, strerror (errno));
--                  dbs[cnt].check_file = 0;
--                }
--              else
--                dbs[cnt].file_mtime = st.st_mtime;
--            }
--        }
-+  init_traced_file (&grp_traced_file.file, GRP_FILENAME, 0);
-+  register_traced_file (grpdb, &grp_traced_file.file);
--#ifdef HAVE_INOTIFY
--      if (cnt == hstdb && inotify_fd >= -1)
--        /* We also monitor the resolver configuration file.  */
--        resolv_conf_descr = inotify_add_watch (inotify_fd,
--                                               _PATH_RESCONF,
--                                               IN_DELETE_SELF | IN_MODIFY);
--#endif
--      }
-+  init_traced_file (&hst_traced_file.file, HST_FILENAME, 0);
-+  register_traced_file (hstdb, &hst_traced_file.file);
-+
-+  init_traced_file (&resolv_traced_file.file, RESOLV_FILENAME, 1);
-+  register_traced_file (hstdb, &resolv_traced_file.file);
-+
-+  init_traced_file (&serv_traced_file.file, SERV_FILENAME, 0);
-+  register_traced_file (servdb, &serv_traced_file.file);
-+
-+  init_traced_file (&netgr_traced_file.file, NETGR_FILENAME, 0);
-+  register_traced_file (netgrdb, &netgr_traced_file.file);
-   /* Create the socket.  */
- #ifndef __ASSUME_SOCK_CLOEXEC
-@@ -968,6 +962,92 @@
-     finish_drop_privileges ();
- }
-+#ifdef HAVE_INOTIFY
-+#define TRACED_FILE_MASK (IN_DELETE_SELF | IN_CLOSE_WRITE | IN_MOVE_SELF)
-+#define TRACED_DIR_MASK (IN_DELETE_SELF | IN_CREATE | IN_MOVED_TO | IN_MOVE_SELF)
-+void
-+install_watches (struct traced_file *finfo)
-+{
-+  /* If we have inotify support use it exclusively with no fallback
-+     to stat.  This is a design decision to make the implementation
-+     sipmler.  Either we use fstat for the file name or we use inotify
-+     for both the file and parent directory.  */
-+  if (finfo->inotify_descr[TRACED_FILE] < 0)
-+    finfo->inotify_descr[TRACED_FILE] = inotify_add_watch (inotify_fd,
-+                                                         finfo->fname,
-+                                                         TRACED_FILE_MASK);
-+  if (finfo->inotify_descr[TRACED_FILE] < 0)
-+    {
-+      dbg_log (_("disabled inotify-based monitoring for file `%s': %s"),
-+               finfo->fname, strerror (errno));
-+      return;
-+    }
-+  dbg_log (_("monitoring file `%s` (%d)"),
-+         finfo->fname, finfo->inotify_descr[TRACED_FILE]);
-+  /* Additionally listen for IN_CREATE events in the files parent
-+     directory.  We do this because the file to be watched might be
-+     deleted and then added back again.  When it is added back again
-+     we must re-add the watch.  We must also cover IN_MOVED_TO to
-+     detect a file being moved into the directory.  */
-+  if (finfo->inotify_descr[TRACED_DIR] < 0)
-+    finfo->inotify_descr[TRACED_DIR] = inotify_add_watch (inotify_fd,
-+                                                        finfo->dname,
-+                                                        TRACED_DIR_MASK);
-+  if (finfo->inotify_descr[TRACED_DIR] < 0)
-+    {
-+      dbg_log (_("disabled inotify-based monitoring for directory `%s': %s"),
-+               finfo->fname, strerror (errno));
-+      return;
-+    }
-+  dbg_log (_("monitoring directory `%s` (%d)"),
-+         finfo->dname, finfo->inotify_descr[TRACED_DIR]);
-+}
-+#endif
-+
-+/* Register the file in FINFO as a traced file for the database DBS[DBIX].
-+
-+   We support registering multiple files per database. Each call to
-+   register_traced_file adds to the list of registered files.
-+
-+   When we prune the database, either through timeout or a request to
-+   invalidate, we will check to see if any of the registered files has changed.
-+   When we accept new connections to handle a cache request we will also
-+   check to see if any of the registered files has changed.
-+
-+   If we have inotify support then we install an inotify fd to notify us of
-+   file deletion or modification, both of which will require we invalidate
-+   the cache for the database.  Without inotify support we stat the file and
-+   store st_mtime to determine if the file has been modified.  */
-+void
-+register_traced_file (size_t dbidx, struct traced_file *finfo)
-+{
-+  /* If the database is disabled or file checking is disabled
-+     then ignore the registration.  */
-+  if (! dbs[dbidx].enabled || ! dbs[dbidx].check_file)
-+    return;
-+
-+  if (__glibc_unlikely (debug_level > 0))
-+    dbg_log (_("monitoring file %s for database %s"),
-+           finfo->fname, dbnames[dbidx]);
-+
-+#ifdef HAVE_INOTIFY
-+  install_watches (finfo);
-+#endif
-+  struct stat64 st;
-+  if (stat64 (finfo->fname, &st) < 0)
-+    {
-+      /* We cannot stat() the file, disable file checking.  */
-+      dbg_log (_("disabled monitoring for file `%s': %s"),
-+             finfo->fname, strerror (errno));
-+      finfo->mtime = 0;
-+    }
-+  else
-+    finfo->mtime = st.st_mtime;
-+
-+  /* Queue up the file name.  */
-+  finfo->next = dbs[dbidx].traced_files;
-+  dbs[dbidx].traced_files = finfo;
-+}
- /* Close the connections.  */
- void
-@@ -986,9 +1066,25 @@
-   for (number = pwddb; number < lastdb; ++number)
-     if (strcmp (key, dbnames[number]) == 0)
-       {
--      if (dbs[number].reset_res)
--        res_init ();
--
-+      struct traced_file *runp = dbs[number].traced_files;
-+      while (runp != NULL)
-+        {
-+          /* Make sure we reload from file when checking mtime.  */
-+          runp->mtime = 0;
-+#ifdef HAVE_INOTIFY
-+          /* During an invalidation we try to reload the traced
-+             file watches.  This allows the user to re-sync if
-+             inotify events were lost.  Similar to what we do during
-+             pruning.  */
-+          install_watches (runp);
-+#endif
-+          if (runp->call_res_init)
-+            {
-+              res_init ();
-+              break;
-+            }
-+          runp = runp->next;
-+        }
-       break;
-       }
-@@ -1817,6 +1913,231 @@
- /* Array for times a connection was accepted.  */
- static time_t *starttime;
-+#ifdef HAVE_INOTIFY
-+/* Inotify event for changed file.  */
-+union __inev
-+{
-+  struct inotify_event i;
-+# ifndef PATH_MAX
-+#  define PATH_MAX 1024
-+# endif
-+  char buf[sizeof (struct inotify_event) + PATH_MAX];
-+};
-+
-+/* Returns 0 if the file is there and matches the last mtime
-+   on record, otherwise -1.  */
-+int
-+check_file (struct traced_file *finfo)
-+{
-+  struct stat64 st;
-+  if (stat64 (finfo->fname, &st) < 0)
-+    return -1;
-+  return 0;
-+}
-+
-+/* Process the inotify event in INEV. If the event matches any of the files
-+   registered with a database then mark that database as requiring its cache
-+   to be cleared. We indicate the cache needs clearing by setting
-+   TO_CLEAR[DBCNT] to true for the matching database.  */
-+static void
-+inotify_check_files (bool *to_clear, union __inev *inev)
-+{
-+  /* Check which of the files changed.  */
-+  for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt)
-+    {
-+      struct traced_file *finfo = dbs[dbcnt].traced_files;
-+
-+      while (finfo != NULL)
-+      {
-+        /* The configuration file was moved or deleted.
-+           We stop watching it at that point, and reinitialize.  */
-+        if (finfo->inotify_descr[TRACED_FILE] == inev->i.wd
-+            && ((inev->i.mask & IN_MOVE_SELF)
-+                || (inev->i.mask & IN_DELETE_SELF)
-+                || (inev->i.mask & IN_IGNORED)))
-+          {
-+            int ret;
-+            bool moved = (inev->i.mask & IN_MOVE_SELF) != 0;
-+
-+            if (check_file (finfo) == 0)
-+              {
-+                dbg_log (_("ignored out of order inotify event for `%s`"),
-+                         finfo->fname);
-+                return;
-+              }
-+
-+            dbg_log (_("monitored file `%s` was %s, removing watch"),
-+                     finfo->fname, moved ? "moved" : "deleted");
-+            /* File was moved out, remove the watch.  Watches are
-+               automatically removed when the file is deleted.  */
-+            if (moved)
-+              {
-+                ret = inotify_rm_watch (inotify_fd, inev->i.wd);
-+                if (ret < 0)
-+                  dbg_log (_("failed to remove file watch `%s`: %s"),
-+                           finfo->fname, strerror (errno));
-+              }
-+            finfo->inotify_descr[TRACED_FILE] = -1;
-+            to_clear[dbcnt] = true;
-+            if (finfo->call_res_init)
-+              res_init ();
-+            return;
-+          }
-+        /* The configuration file was open for writing and has just closed.
-+           We reset the cache and reinitialize.  */
-+        if (finfo->inotify_descr[TRACED_FILE] == inev->i.wd
-+            && inev->i.mask & IN_CLOSE_WRITE)
-+          {
-+            /* Mark cache as needing to be cleared and reinitialize.  */
-+            dbg_log (_("monitored file `%s` was written to"), finfo->fname);
-+            to_clear[dbcnt] = true;
-+            if (finfo->call_res_init)
-+              res_init ();
-+            return;
-+          }
-+        /* The parent directory was moved or deleted.  There is no coming
-+           back from this.  We do not track the parent of the parent, and
-+           once this happens we trigger one last invalidation.  You must
-+           restart nscd to track subsequent changes.   We track this to
-+           do one last robust re-initialization and then we're done.  */
-+        if (finfo->inotify_descr[TRACED_DIR] == inev->i.wd
-+            && ((inev->i.mask & IN_DELETE_SELF)
-+                || (inev->i.mask & IN_MOVE_SELF)
-+                || (inev->i.mask & IN_IGNORED)))
-+          {
-+            bool moved = (inev->i.mask & IN_MOVE_SELF) != 0;
-+            /* The directory watch may have already been removed
-+               but we don't know so we just remove it again and
-+               ignore the error.  Then we remove the file watch.
-+               Note: watches are automatically removed for deleted
-+               files.  */
-+            if (moved)
-+              inotify_rm_watch (inotify_fd, inev->i.wd);
-+            if (finfo->inotify_descr[TRACED_FILE] != -1)
-+              {
-+                dbg_log (_("monitored parent directory `%s` was %s, removing watch on `%s`"),
-+                         finfo->dname, moved ? "moved" : "deleted", finfo->fname);
-+                if (inotify_rm_watch (inotify_fd, finfo->inotify_descr[TRACED_FILE]) < 0)
-+                  dbg_log (_("failed to remove file watch `%s`: %s"),
-+                           finfo->dname, strerror (errno));
-+              }
-+            finfo->inotify_descr[TRACED_FILE] = -1;
-+            finfo->inotify_descr[TRACED_DIR] = -1;
-+            to_clear[dbcnt] = true;
-+            if (finfo->call_res_init)
-+              res_init ();
-+            /* Continue to the next entry since this might be the
-+               parent directory for multiple registered files and
-+               we want to remove watches for all registered files.  */
-+            continue;
-+          }
-+        /* The parent directory had a create or moved to event.  */
-+        if (finfo->inotify_descr[TRACED_DIR] == inev->i.wd
-+            && ((inev->i.mask & IN_MOVED_TO)
-+                || (inev->i.mask & IN_CREATE))
-+            && strcmp (inev->i.name, finfo->sfname) == 0)
-+          {
-+            /* We detected a directory change.  We look for the creation
-+               of the file we are tracking or the move of the same file
-+               into the directory.  */
-+            int ret;
-+            dbg_log (_("monitored file `%s` was %s, adding watch"),
-+                     finfo->fname,
-+                     inev->i.mask & IN_CREATE ? "created" : "moved into place");
-+            /* File was moved in or created.  Regenerate the watch.  */
-+            if (finfo->inotify_descr[TRACED_FILE] != -1)
-+              inotify_rm_watch (inotify_fd,
-+                                finfo->inotify_descr[TRACED_FILE]);
-+
-+            ret = inotify_add_watch (inotify_fd,
-+                                     finfo->fname,
-+                                     TRACED_FILE_MASK);
-+            if (ret < 0)
-+              dbg_log (_("failed to add file watch `%s`: %s"),
-+                       finfo->fname, strerror (errno));
-+
-+            finfo->inotify_descr[TRACED_FILE] = ret;
-+
-+            /* The file is new or moved so mark cache as needing to
-+               be cleared and reinitialize.  */
-+            to_clear[dbcnt] = true;
-+            if (finfo->call_res_init)
-+              res_init ();
-+
-+            /* Done re-adding the watch.  Don't return, we may still
-+               have other files in this same directory, same watch
-+               descriptor, and need to process them.  */
-+          }
-+        /* Other events are ignored, and we move on to the next file.  */
-+        finfo = finfo->next;
-+        }
-+    }
-+}
-+
-+/* If an entry in the array of booleans TO_CLEAR is TRUE then clear the cache
-+   for the associated database, otherwise do nothing. The TO_CLEAR array must
-+   have LASTDB entries.  */
-+static inline void
-+clear_db_cache (bool *to_clear)
-+{
-+  for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt)
-+    if (to_clear[dbcnt])
-+      {
-+      pthread_mutex_lock (&dbs[dbcnt].prune_lock);
-+      dbs[dbcnt].clear_cache = 1;
-+      pthread_mutex_unlock (&dbs[dbcnt].prune_lock);
-+      pthread_cond_signal (&dbs[dbcnt].prune_cond);
-+      }
-+}
-+
-+int
-+handle_inotify_events (void)
-+{
-+  bool to_clear[lastdb] = { false, };
-+  union __inev inev;
-+
-+  /* Read all inotify events for files registered via
-+     register_traced_file().  */
-+  while (1)
-+    {
-+      /* Potentially read multiple events into buf.  */
-+      ssize_t nb = TEMP_FAILURE_RETRY (read (inotify_fd,
-+                                           &inev.buf,
-+                                           sizeof (inev)));
-+      if (nb < (ssize_t) sizeof (struct inotify_event))
-+      {
-+        /* Not even 1 event.  */
-+        if (__glibc_unlikely (nb == -1 && errno != EAGAIN))
-+          return -1;
-+        /* Done reading events that are ready.  */
-+        break;
-+      }
-+      /* Process all events.  The normal inotify interface delivers
-+       complete events on a read and never a partial event.  */
-+      char *eptr = &inev.buf[0];
-+      ssize_t count;
-+      while (1)
-+      {
-+        /* Check which of the files changed.  */
-+        inotify_check_files (to_clear, &inev);
-+        count = sizeof (struct inotify_event) + inev.i.len;
-+        eptr += count;
-+        nb -= count;
-+        if (nb >= (ssize_t) sizeof (struct inotify_event))
-+          memcpy (&inev, eptr, nb);
-+        else
-+          break;
-+      }
-+      continue;
-+    }
-+  /* Actually perform the cache clearing.  */
-+  clear_db_cache (to_clear);
-+  return 0;
-+}
-+
-+
-+#endif
-+
- static void
- __attribute__ ((__noreturn__))
-@@ -1910,66 +2231,21 @@
-           {
-             if (conns[1].revents != 0)
-               {
--                bool to_clear[lastdb] = { false, };
--                union
--                {
--# ifndef PATH_MAX
--#  define PATH_MAX 1024
--# endif
--                  struct inotify_event i;
--                  char buf[sizeof (struct inotify_event) + PATH_MAX];
--                } inev;
-+                int ret;
-+                ret = handle_inotify_events ();
--                while (1)
-+                if (ret == -1)
-                   {
--                    ssize_t nb = TEMP_FAILURE_RETRY (read (inotify_fd, &inev,
--                                                           sizeof (inev)));
--                    if (nb < (ssize_t) sizeof (struct inotify_event))
--                      {
--                        if (__builtin_expect (nb == -1 && errno != EAGAIN,
--                                              0))
--                          {
--                            /* Something went wrong when reading the inotify
--                               data.  Better disable inotify.  */
--                            dbg_log (_("\
--disabled inotify after read error %d"),
--                                     errno);
--                            conns[1].fd = -1;
--                            firstfree = 1;
--                            if (nused == 2)
--                              nused = 1;
--                            close (inotify_fd);
--                            inotify_fd = -1;
--                          }
--                        break;
--                      }
--
--                    /* Check which of the files changed.  */
--                    for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt)
--                      if (inev.i.wd == dbs[dbcnt].inotify_descr)
--                        {
--                          to_clear[dbcnt] = true;
--                          goto next;
--                        }
--
--                    if (inev.i.wd == resolv_conf_descr)
--                      {
--                        res_init ();
--                        to_clear[hstdb] = true;
--                      }
--                  next:;
-+                    /* Something went wrong when reading the inotify
-+                       data.  Better disable inotify.  */
-+                    dbg_log (_("disabled inotify-based monitoring after read error %d"), errno);
-+                    conns[1].fd = -1;
-+                    firstfree = 1;
-+                    if (nused == 2)
-+                      nused = 1;
-+                    close (inotify_fd);
-+                    inotify_fd = -1;
-                   }
--
--                /* Actually perform the cache clearing.  */
--                for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt)
--                  if (to_clear[dbcnt])
--                    {
--                      pthread_mutex_lock (&dbs[dbcnt].prune_lock);
--                      dbs[dbcnt].clear_cache = 1;
--                      pthread_mutex_unlock (&dbs[dbcnt].prune_lock);
--                      pthread_cond_signal (&dbs[dbcnt].prune_cond);
--                    }
--
-                 --n;
-               }
-@@ -2112,58 +2388,18 @@
- # ifdef HAVE_INOTIFY
-       else if (revs[cnt].data.fd == inotify_fd)
-         {
--          bool to_clear[lastdb] = { false, };
--          union
--          {
--            struct inotify_event i;
--            char buf[sizeof (struct inotify_event) + PATH_MAX];
--          } inev;
--
--          while (1)
-+          int ret;
-+          ret = handle_inotify_events ();
-+          if (ret == -1)
-             {
--              ssize_t nb = TEMP_FAILURE_RETRY (read (inotify_fd, &inev,
--                                               sizeof (inev)));
--              if (nb < (ssize_t) sizeof (struct inotify_event))
--                {
--                  if (__builtin_expect (nb == -1 && errno != EAGAIN, 0))
--                    {
--                      /* Something went wrong when reading the inotify
--                         data.  Better disable inotify.  */
--                      dbg_log (_("disabled inotify after read error %d"),
--                               errno);
--                      (void) epoll_ctl (efd, EPOLL_CTL_DEL, inotify_fd,
--                                        NULL);
--                      close (inotify_fd);
--                      inotify_fd = -1;
--                    }
--                  break;
--                }
--
--              /* Check which of the files changed.  */
--              for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt)
--                if (inev.i.wd == dbs[dbcnt].inotify_descr)
--                  {
--                    to_clear[dbcnt] = true;
--                    goto next;
--                  }
--
--              if (inev.i.wd == resolv_conf_descr)
--                {
--                  res_init ();
--                  to_clear[hstdb] = true;
--                }
--            next:;
-+              /* Something went wrong when reading the inotify
-+                 data.  Better disable inotify.  */
-+              dbg_log (_("disabled inotify-based monitoring after read error %d"), errno);
-+              (void) epoll_ctl (efd, EPOLL_CTL_DEL, inotify_fd, NULL);
-+              close (inotify_fd);
-+              inotify_fd = -1;
-+              break;
-             }
--
--          /* Actually perform the cache clearing.  */
--          for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt)
--            if (to_clear[dbcnt])
--              {
--                pthread_mutex_lock (&dbs[dbcnt].prune_lock);
--                dbs[dbcnt].clear_cache = 1;
--                pthread_mutex_unlock (&dbs[dbcnt].prune_lock);
--                pthread_cond_signal (&dbs[dbcnt].prune_cond);
--              }
-         }
- # endif
-       else
-diff -urN glibc-2.12-2-gc4ccff1.orig/nscd/nscd.h glibc-2.12-2-gc4ccff1.mod1/nscd/nscd.h
---- glibc-2.12-2-gc4ccff1.orig/nscd/nscd.h     2015-02-18 04:42:12.329180362 -0500
-+++ glibc-2.12-2-gc4ccff1.mod1/nscd/nscd.h     2015-02-18 04:02:03.636159059 -0500
-@@ -62,6 +62,67 @@
-    80% of the thread stack size.  */
- #define MAX_STACK_USE ((8 * NSCD_THREAD_STACKSIZE) / 10)
-+/* Records the file registered per database that when changed
-+   or modified requires invalidating the database.  */
-+struct traced_file
-+{
-+  /* Tracks the last modified time of the traced file.  */
-+  time_t mtime;
-+  /* Support multiple registered files per database.  */
-+  struct traced_file *next;
-+  int call_res_init;
-+  /* Requires Inotify support to do anything useful.  */
-+#define TRACED_FILE   0
-+#define TRACED_DIR    1
-+  int inotify_descr[2];
-+# ifndef PATH_MAX
-+#  define PATH_MAX 1024
-+# endif
-+  /* The parent directory is used to scan for creation/deletion.  */
-+  char dname[PATH_MAX];
-+  /* Just the name of the file with no directory component.  */
-+  char *sfname;
-+  /* The full-path name of the registered file.  */
-+  char fname[];
-+};
-+
-+/* Initialize a `struct traced_file`.  As input we need the name
-+   of the file, and if invalidation requires calling res_init.
-+   If CRINIT is 1 then res_init will be called after invalidation
-+   or if the traced file is changed in any way, otherwise it will
-+   not.  */
-+static inline void
-+init_traced_file(struct traced_file *file, const char *fname, int crinit)
-+{
-+   char *dname;
-+   file->mtime = 0;
-+   file->inotify_descr[TRACED_FILE] = -1;
-+   file->inotify_descr[TRACED_DIR] = -1;
-+   strcpy (file->fname, fname);
-+   /* Compute the parent directory name and store a copy.  The copy makes
-+      it much faster to add/remove watches while nscd is running instead
-+      of computing this over and over again in a temp buffer.  */
-+   file->dname[0] = '\0';
-+   dname = strrchr (fname, '/');
-+   if (dname != NULL)
-+     {
-+       size_t len = (size_t)(dname - fname);
-+       if (len > sizeof (file->dname))
-+       abort ();
-+       strncpy (file->dname, file->fname, len);
-+       file->dname[len] = '\0';
-+     }
-+   /* The basename is the name just after the last forward slash.  */
-+   file->sfname = &dname[1];
-+   file->call_res_init = crinit;
-+}
-+
-+#define define_traced_file(id, filename)                      \
-+static union                                                  \
-+{                                                             \
-+  struct traced_file file;                                    \
-+  char buf[sizeof (struct traced_file) + sizeof (filename)];  \
-+} id##_traced_file;
- /* Structure describing dynamic part of one database.  */
- struct database_dyn
-@@ -74,15 +135,12 @@
-   int enabled;
-   int check_file;
--  int inotify_descr;
-   int clear_cache;
-   int persistent;
-   int shared;
-   int propagate;
--  int reset_res;
--  const char filename[16];
-+  struct traced_file *traced_files;
-   const char *db_filename;
--  time_t file_mtime;
-   size_t suggested_module;
-   size_t max_db_size;
-@@ -199,6 +257,10 @@
- /* connections.c */
- extern void nscd_init (void);
-+extern void register_traced_file (size_t dbidx, struct traced_file *finfo);
-+#ifdef HAVE_INOTIFY
-+extern void install_watches (struct traced_file *finfo);
-+#endif
- extern void close_sockets (void);
- extern void start_threads (void) __attribute__ ((__noreturn__));
diff --git a/src/patches/glibc/glibc-rh861167.patch b/src/patches/glibc/glibc-rh861167.patch
deleted file mode 100644 (file)
index d7e982f..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-commit be08eda54c7cf833ccfa4b8d1f1b1d668c26af66
-Author: Andreas Jaeger <aj@suse.de>
-Date:   Wed May 23 09:27:39 2012 +0200
-
-    Update from Linux 3.4
-
-[ Partial, unrelated bits not included. ]
-
-2012-05-23  Andreas Jaeger  <aj@suse.de>
-
-       * sysdeps/unix/sysv/linux/powerpc/bits/mman.h
-       (MADV_DONTDUMP,MADV_DODUMP): New macros from Linux 3.4.
-       macro.
-       * sysdeps/unix/sysv/linux/s390/bits/mman.h
-       (MADV_DONTDUMP,MADV_DODUMP): Likewise.
-       * sysdeps/unix/sysv/linux/i386/bits/mman.h
-       (MADV_DONTDUMP,MADV_DODUMP): Likewise.
-       * sysdeps/unix/sysv/linux/x86_64/bits/mman.h
-       (MADV_DONTDUMP,MADV_DODUMP): Likewise.
-
-diff -Nrup a/sysdeps/unix/sysv/linux/i386/bits/mman.h b/sysdeps/unix/sysv/linux/i386/bits/mman.h
---- a/sysdeps/unix/sysv/linux/i386/bits/mman.h 2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/unix/sysv/linux/i386/bits/mman.h 2012-09-27 11:44:26.985150148 -0600
-@@ -1,5 +1,5 @@
- /* Definitions for POSIX memory map interface.  Linux/i386 version.
--   Copyright (C) 1997,2000,2003,2005,2006,2009 Free Software Foundation, Inc.
-+   Copyright (C) 1997-2012 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
-@@ -94,6 +94,9 @@
- # define MADV_DOFORK    11    /* Do inherit across fork.  */
- # define MADV_MERGEABLE         12    /* KSM may merge identical pages.  */
- # define MADV_UNMERGEABLE 13  /* KSM may not merge identical pages.  */
-+# define MADV_DONTDUMP          16    /* Explicity exclude from the core dump,
-+                                   overrides the coredump filter bits.  */
-+# define MADV_DODUMP    17    /* Clear the MADV_DONTDUMP flag.  */
- # define MADV_HWPOISON          100   /* Poison a page for testing.  */
- #endif
-diff -Nrup a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
---- a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h      2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h      2012-09-27 11:43:37.161351259 -0600
-@@ -96,6 +96,9 @@
- # define MADV_DOFORK    11    /* Do inherit across fork.  */
- # define MADV_MERGEABLE         12    /* KSM may merge identical pages.  */
- # define MADV_UNMERGEABLE 13  /* KSM may not merge identical pages.  */
-+# define MADV_DONTDUMP          16    /* Explicity exclude from the core dump,
-+                                   overrides the coredump filter bits.  */
-+# define MADV_DODUMP    17    /* Clear the MADV_DONTDUMP flag.  */
- # define MADV_HWPOISON          100   /* Poison a page for testing.  */
- #endif
-diff -Nrup a/sysdeps/unix/sysv/linux/s390/bits/mman.h b/sysdeps/unix/sysv/linux/s390/bits/mman.h
---- a/sysdeps/unix/sysv/linux/s390/bits/mman.h 2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/unix/sysv/linux/s390/bits/mman.h 2012-09-27 11:44:49.745059646 -0600
-@@ -94,6 +94,9 @@
- # define MADV_DOFORK    11    /* Do inherit across fork.  */
- # define MADV_MERGEABLE         12    /* KSM may merge identical pages.  */
- # define MADV_UNMERGEABLE 13  /* KSM may not merge identical pages.  */
-+# define MADV_DONTDUMP          16    /* Explicity exclude from the core dump,
-+                                   overrides the coredump filter bits.  */
-+# define MADV_DODUMP    17    /* Clear the MADV_DONTDUMP flag.  */
- # define MADV_HWPOISON          100   /* Poison a page for testing.  */
- #endif
-diff -Nrup a/sysdeps/unix/sysv/linux/x86_64/bits/mman.h b/sysdeps/unix/sysv/linux/x86_64/bits/mman.h
---- a/sysdeps/unix/sysv/linux/x86_64/bits/mman.h       2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/unix/sysv/linux/x86_64/bits/mman.h       2012-09-27 11:42:08.314725733 -0600
-@@ -1,5 +1,5 @@
- /* Definitions for POSIX memory map interface.  Linux/x86_64 version.
--   Copyright (C) 2001, 2003, 2005, 2006, 2009 Free Software Foundation, Inc.
-+   Copyright (C) 2001-2012 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
-@@ -95,6 +95,9 @@
- # define MADV_DOFORK    11    /* Do inherit across fork.  */
- # define MADV_MERGEABLE         12    /* KSM may merge identical pages.  */
- # define MADV_UNMERGEABLE 13  /* KSM may not merge identical pages.  */
-+# define MADV_DONTDUMP          16    /* Explicity exclude from the core dump,
-+                                   overrides the coredump filter bits.  */
-+# define MADV_DODUMP    17    /* Clear the MADV_DONTDUMP flag.  */
- # define MADV_HWPOISON          100   /* Poison a page for testing.  */
- #endif
diff --git a/src/patches/glibc/glibc-rh862094.patch b/src/patches/glibc/glibc-rh862094.patch
deleted file mode 100644 (file)
index 6e7fe0a..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-From bc5fb0374c3ce6eca92f44d13a55b066e707c4a0 Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab@redhat.com>
-Date: Wed, 15 Sep 2010 07:20:57 -0700
-Subject: [PATCH] Don't try to free rpath strings allocated during startup
-
----
- ChangeLog        |   10 ++++++++++
- elf/dl-load.c    |    3 ---
- elf/dl-support.c |    3 +++
- elf/rtld.c       |    4 ++++
- 4 files changed, 17 insertions(+), 3 deletions(-)
-
- 2010-09-13  Andreas Schwab  <schwab@redhat.com>
-           Ulrich Drepper  <drepper@redhat.com>
-
-       * elf/rtld.c (dl_main): Set GLRO(dl_init_all_dirs) just before
-       re-relocationg ld.so.
-       * elf/dl-support.c (_dl_non_dynamic_init): And here after the
-       _dl_init_paths call.
-       * elf/dl-load.c (_dl_init_paths).  Don't set GLRO(dl_init_all_dirs)
-       here anymore.
-diff --git a/elf/dl-load.c b/elf/dl-load.c
-index 0adddf5..a7162eb 100644
---- a/elf/dl-load.c
-+++ b/elf/dl-load.c
-@@ -787,9 +787,6 @@ _dl_init_paths (const char *llp)
-     }
-   else
-     env_path_list.dirs = (void *) -1;
--
--  /* Remember the last search directory added at startup.  */
--  GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
- }
-diff --git a/elf/dl-support.c b/elf/dl-support.c
-index f94d2c4..5897b32 100644
---- a/elf/dl-support.c
-+++ b/elf/dl-support.c
-@@ -264,6 +264,9 @@ _dl_non_dynamic_init (void)
-      objects.  */
-   _dl_init_paths (getenv ("LD_LIBRARY_PATH"));
-+  /* Remember the last search directory added at startup.  */
-+  _dl_init_all_dirs = GL(dl_all_dirs);
-+
-   _dl_lazy = *(getenv ("LD_BIND_NOW") ?: "") == '\0';
-   _dl_bind_not = *(getenv ("LD_BIND_NOT") ?: "") != '\0';
-diff --git a/elf/rtld.c b/elf/rtld.c
-index 90f3ff1..5ecc4fe 100644
---- a/elf/rtld.c
-+++ b/elf/rtld.c
-@@ -2291,6 +2291,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
-                         lossage);
-     }
-+  /* Remember the last search directory added at startup, now that
-+     malloc will no longer be the one from dl-minimal.c.  */
-+  GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
-+
-   if (! prelinked && rtld_multiple_ref)
-     {
-       /* There was an explicit ref to the dynamic linker as a shared lib.
--- 
-1.7.1
-
diff --git a/src/patches/glibc/glibc-rh863384.patch b/src/patches/glibc/glibc-rh863384.patch
deleted file mode 100644 (file)
index 7644a4e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c glibc-2.12-2-gc4ccff1.fixed/sysdeps/posix/getaddrinfo.c
---- glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c  2013-07-23 15:23:42.011941780 +0530
-+++ glibc-2.12-2-gc4ccff1.fixed/sysdeps/posix/getaddrinfo.c    2013-07-23 15:24:54.032938976 +0530
-@@ -562,8 +562,8 @@ gaih_inet (const char *name, const struc
-         /* 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)
-+           IPv6 scope ids, nor retrieving the canonical name. */
-+        if (req->ai_family == AF_INET && (req->ai_flags & AI_CANONNAME) == 0)
-           {
-               /* Add room for struct host_data in resolv/nss_dns/dns-host.c */
-               size_t tmpbuflen = 512 + (MAX_NR_ALIASES+MAX_NR_ADDRS+1)*sizeof(char*)
diff --git a/src/patches/glibc/glibc-rh863453.patch b/src/patches/glibc/glibc-rh863453.patch
deleted file mode 100644 (file)
index 96fb769..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
---- glibc-2.12-2-gc4ccff1/nscd/grpcache.c.lrgrpissue   2002-03-19 01:06:04.905969517 +0530
-+++ glibc-2.12-2-gc4ccff1/nscd/grpcache.c      2002-03-19 01:09:46.495970850 +0530
-@@ -207,10 +207,11 @@ cache_addgr (struct database_dyn *db, in
-        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;
-+      bool dataset_temporary = false;
-+      bool dataset_malloced = false; 
-       dataset = NULL;
--      if (he == NULL || ! __libc_use_alloca (alloca_used + total + n))
-+      if (he == NULL)
-       dataset = (struct dataset *) mempool_alloc (db, total + n, 1);
-       if (dataset == NULL)
-@@ -218,10 +219,16 @@ cache_addgr (struct database_dyn *db, in
-         /* 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);
--
-+        if (! __libc_use_alloca (alloca_used + total + n))
-+        {
-+              /* XXX What to do if malloc fails?  */
-+              dataset = (struct dataset *) malloc (total + n);
-+              dataset_malloced = true;
-+        }
-+        else
-+              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_temporary = true; 
-       }
-       dataset->head.allocsize = total + n;
-@@ -276,13 +283,10 @@ cache_addgr (struct database_dyn *db, in
-             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;
--              }
-+            /* If the new record was allocated via malloc, then we
-+               must free it here.  */
-+            if (dataset_malloced)
-+                free (dataset); 
-           }
-         else
-           {
-@@ -298,7 +302,7 @@ cache_addgr (struct database_dyn *db, in
-                 key_copy = (char *) newp + (key_copy - (char *) dataset);
-                 dataset = memcpy (newp, dataset, total + n);
--                dataset_in_stack_or_freed = false;
-+                dataset_temporary = false;
-               }
-             /* Mark the old record as obsolete.  */
-@@ -313,7 +317,7 @@ cache_addgr (struct database_dyn *db, in
-         assert (fd != -1);
- #ifdef HAVE_SENDFILE
--        if (__builtin_expect (db->mmap_used, 1) && !dataset_in_stack_or_freed)
-+        if (__builtin_expect (db->mmap_used, 1) && ! dataset_temporary) 
-           {
-             assert (db->wr_fd != -1);
-             assert ((char *) &dataset->resp > (char *) db->data);
-@@ -340,7 +344,7 @@ cache_addgr (struct database_dyn *db, in
-       /* Add the record to the database.  But only if it has not been
-        stored on the stack.  */
--      if (! dataset_in_stack_or_freed)
-+       if (! dataset_temporary) 
-       {
-         /* If necessary, we also propagate the data to disk.  */
-         if (db->persistent)
diff --git a/src/patches/glibc/glibc-rh864322.patch b/src/patches/glibc/glibc-rh864322.patch
deleted file mode 100644 (file)
index 565a146..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -rup a/sysdeps/generic/netinet/ip.h b/sysdeps/generic/netinet/ip.h
---- a/sysdeps/generic/netinet/ip.h     2010-05-04 05:27:23.000000000 -0600
-+++ b/sysdeps/generic/netinet/ip.h     2012-10-11 09:22:12.620160387 -0600
-@@ -194,7 +194,7 @@ struct ip_timestamp
-  */
- #define       IPTOS_CLASS_MASK                0xe0
--#define       IPTOS_CLASS(class)              ((tos) & IPTOS_CLASS_MASK)
-+#define       IPTOS_CLASS(class)              ((class) & IPTOS_CLASS_MASK)
- #define       IPTOS_CLASS_CS0                 0x00
- #define       IPTOS_CLASS_CS1                 0x20
- #define       IPTOS_CLASS_CS2                 0x40
diff --git a/src/patches/glibc/glibc-rh867679.patch b/src/patches/glibc/glibc-rh867679.patch
deleted file mode 100644 (file)
index 3e823c8..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-commit 9fab36eb583c0e585e83a01253299afed9ea9a11
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Tue Sep 25 14:10:29 2012 +0530
-
-    Shrink heap on linux when overcommit_memory == 2
-    
-    Using madvise with MADV_DONTNEED to release memory back to the kernel
-    is not sufficient to change the commit charge accounted against the
-    process on Linux.  It is OK however, when overcommit is enabled or is
-    heuristic.  However, when overcommit is restricted to a percentage of
-    memory setting the contents of /proc/sys/vm/overcommit_memory as 2, it
-    makes a difference since memory requests will fail.  Hence, we do what
-    we do with secure exec binaries, which is to call mmap on the region
-    to be dropped with MAP_FIXED. This internally unmaps the pages in
-    question and reduces the amount of memory accounted against the
-    process.
-
-diff --git a/malloc/arena.c b/malloc/arena.c
-index f24e76c..b209e3b 100644
---- a/malloc/arena.c
-+++ b/malloc/arena.c
-@@ -19,6 +19,9 @@
- #include <stdbool.h>
-+/* Get the implementation for check_may_shrink_heap.  */
-+#include <malloc-sysdep.h>
-+
- /* Compile-time constants.  */
- #define HEAP_MIN_SIZE (32*1024)
-@@ -621,10 +624,10 @@ shrink_heap(heap_info *h, long diff)
-   new_size = (long)h->size - diff;
-   if(new_size < (long)sizeof(*h))
-     return -1;
--  /* Try to re-map the extra heap space freshly to save memory, and
--     make it inaccessible. */
- #ifdef _LIBC
--  if (__builtin_expect (__libc_enable_secure, 0))
-+  /* Try to re-map the extra heap space freshly to save memory, and make it
-+     inaccessible.  See malloc-sysdep.h to know when this is true.  */
-+  if (__builtin_expect (check_may_shrink_heap (), 0))
- #else
-   if (1)
- #endif
-diff --git a/sysdeps/generic/malloc-sysdep.h b/sysdeps/generic/malloc-sysdep.h
-new file mode 100644
-index 0000000..bbc48c0
---- /dev/null
-+++ b/sysdeps/generic/malloc-sysdep.h
-@@ -0,0 +1,25 @@
-+/* System-specific malloc support functions.  Generic version.
-+   Copyright (C) 2012 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+/* Force an unmap when the heap shrinks in a secure exec.  This ensures that
-+   the old data pages immediately cease to be accessible.  */
-+static inline bool
-+check_may_shrink_heap (void)
-+{
-+  return __libc_enable_secure;
-+}
-diff --git a/sysdeps/unix/sysv/linux/malloc-sysdep.h b/sysdeps/unix/sysv/linux/malloc-sysdep.h
-new file mode 100644
-index 0000000..f926aea
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/malloc-sysdep.h
-@@ -0,0 +1,57 @@
-+/* System-specific malloc support functions.  Linux version.
-+   Copyright (C) 2012 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <fcntl.h>
-+#include <not-cancel.h>
-+
-+/* The Linux kernel overcommits address space by default and if there is not
-+   enough memory available, it uses various parameters to decide the process to
-+   kill.  It is however possible to disable or curb this overcommit behavior
-+   by setting the proc sysctl vm.overcommit_memory to the value '2' and with
-+   that, a process is only allowed to use the maximum of a pre-determined
-+   fraction of the total address space.  In such a case, we want to make sure
-+   that we are judicious with our heap usage as well, and explicitly give away
-+   the freed top of the heap to reduce our commit charge.  See the proc(5) man
-+   page to know more about overcommit behavior.
-+
-+   Other than that, we also force an unmap in a secure exec.  */
-+static inline bool
-+check_may_shrink_heap (void)
-+{
-+  static int may_shrink_heap = -1;
-+
-+  if (__builtin_expect (may_shrink_heap >= 0, 1))
-+    return may_shrink_heap;
-+
-+  may_shrink_heap = __libc_enable_secure;
-+
-+  if (__builtin_expect (may_shrink_heap == 0, 1))
-+    {
-+      int fd = open_not_cancel_2 ("/proc/sys/vm/overcommit_memory",
-+                                O_RDONLY | O_CLOEXEC);
-+      if (fd >= 0)
-+      {
-+        char val;
-+        ssize_t n = read_not_cancel (fd, &val, 1);
-+        may_shrink_heap = n > 0 && val == '2';
-+        close_not_cancel_no_status (fd);
-+      }
-+    }
-+
-+  return may_shrink_heap;
-+}
diff --git a/src/patches/glibc/glibc-rh868808.patch b/src/patches/glibc/glibc-rh868808.patch
deleted file mode 100644 (file)
index 27a10b2..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-From d6f67f7d833b4e2039f832355fb0edd65522c9f4 Mon Sep 17 00:00:00 2001
-From: Ulrich Drepper <drepper@gmail.com>
-Date: Sat, 14 May 2011 10:46:17 -0400
-Subject: [PATCH] Handle recursive calls in backtrace better
-
----
- ChangeLog                |    7 +++++++
- NEWS                     |   12 ++++++------
- sysdeps/ia64/backtrace.c |   27 +++++++++++++++++++++++----
- 3 files changed, 36 insertions(+), 10 deletions(-)
-
- 2011-05-14  Ulrich Drepper  <drepper@gmail.com>
-       [BZ #12432]
-       * sysdeps/ia64/backtrace.c (struct trace_reg): Add cfa element.
-       (dummy_getcfa): New function.
-       (init): Get _Unwind_GetCFA address, use dummy if not found.
-       (backtrace_helper): In recursion check, also check whether CFA changes.
-       (__backtrace): Completely initialize arg.
-diff --git a/sysdeps/ia64/backtrace.c b/sysdeps/ia64/backtrace.c
-index 5cefb86..d4ff291 100644
---- a/sysdeps/ia64/backtrace.c
-+++ b/sysdeps/ia64/backtrace.c
-@@ -1,5 +1,5 @@
- /* Return backtrace of current program state.
--   Copyright (C) 2003, 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-+   Copyright (C) 2003-2005, 2007, 2009, 2011 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-@@ -27,14 +27,26 @@
- struct trace_arg
- {
-   void **array;
--  int cnt, size;
-+  _Unwind_Word cfa;
-+  int cnt;
-+  int size;
- };
- #ifdef SHARED
- static _Unwind_Reason_Code (*unwind_backtrace) (_Unwind_Trace_Fn, void *);
- static _Unwind_Ptr (*unwind_getip) (struct _Unwind_Context *);
-+static _Unwind_Word (*unwind_getcfa) (struct _Unwind_Context *);
- static void *libgcc_handle;
-+
-+/* Dummy version in case libgcc_s does not contain the real code.  */
-+static _Unwind_Word
-+dummy_getcfa (struct _Unwind_Context *ctx __attribute__ ((unused)))
-+{
-+  return 0;
-+}
-+
-+
- static void
- init (void)
- {
-@@ -47,10 +59,13 @@ init (void)
-   unwind_getip = __libc_dlsym (libgcc_handle, "_Unwind_GetIP");
-   if (unwind_getip == NULL)
-     unwind_backtrace = NULL;
-+  unwind_getcfa = (__libc_dlsym (libgcc_handle, "_Unwind_GetCFA")
-+                 ?: dummy_getcfa);
- }
- #else
- # define unwind_backtrace _Unwind_Backtrace
- # define unwind_getip _Unwind_GetIP
-+# define unwind_getcfa _Unwind_GetCFA
- #endif
- static _Unwind_Reason_Code
-@@ -65,8 +80,12 @@ backtrace_helper (struct _Unwind_Context *ctx, void *a)
-       arg->array[arg->cnt] = (void *) unwind_getip (ctx);
-       /* Check whether we make any progress.  */
--      if (arg->cnt > 0 && arg->array[arg->cnt - 1] == arg->array[arg->cnt])
-+      _Unwind_Word cfa = unwind_getcfa (ctx);
-+
-+      if (arg->cnt > 0 && arg->array[arg->cnt - 1] == arg->array[arg->cnt]
-+        && cfa == arg->cfa)
-       return _URC_END_OF_STACK;
-+      arg->cfa = cfa;
-     }
-   if (++arg->cnt == arg->size)
-     return _URC_END_OF_STACK;
-@@ -78,7 +97,7 @@ __backtrace (array, size)
-      void **array;
-      int size;
- {
--  struct trace_arg arg = { .array = array, .size = size, .cnt = -1 };
-+  struct trace_arg arg = { .array = array, .cfa = 0, .size = size, .cnt = -1 };
- #ifdef SHARED
-   __libc_once_define (static, once);
--- 
-1.7.1
-
diff --git a/src/patches/glibc/glibc-rh886968.patch b/src/patches/glibc/glibc-rh886968.patch
deleted file mode 100644 (file)
index 4872a91..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -Nrup a/elf/dl-load.c b/elf/dl-load.c
---- a/elf/dl-load.c    2013-01-10 08:57:20.098898830 -0500
-+++ b/elf/dl-load.c    2013-01-10 12:04:48.155962895 -0500
-@@ -819,7 +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);
-+      LIBC_PROBE (rtld_map_complete, 3, nsid, r, NULL);
-     }
-   _dl_signal_error (code, name, NULL, msg);
-diff -Nrup a/elf/dl-open.c b/elf/dl-open.c
---- a/elf/dl-open.c    2013-01-10 08:57:19.917897417 -0500
-+++ b/elf/dl-open.c    2013-01-10 12:06:04.644775710 -0500
-@@ -298,7 +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);
-+  LIBC_PROBE (rtld_map_complete, 3, args->nsid, r, new);
-   /* Only do lazy relocation if `LD_BIND_NOW' is not set.  */
-   int reloc_mode = mode & __RTLD_AUDIT;
-@@ -472,7 +472,7 @@ TLS generation counter wrapped!  Please 
-   /* Notify the debugger all new objects have been relocated.  */
-   if (relocation_in_progress)
--    LIBC_PROBE (rtld_reloc_complete, 2, args->nsid, r);
-+    LIBC_PROBE (rtld_reloc_complete, 3, args->nsid, r, new);
-   /* Run the initializer functions of new objects.  */
-   _dl_init (new, args->argc, args->argv, args->env);
diff --git a/src/patches/glibc/glibc-rh905575.patch b/src/patches/glibc/glibc-rh905575.patch
deleted file mode 100644 (file)
index 70baa89..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -rup a/sysdeps/ieee754/dbl-64/slowexp.c b/sysdeps/ieee754/dbl-64/slowexp.c
---- a/sysdeps/ieee754/dbl-64/slowexp.c 2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/ieee754/dbl-64/slowexp.c 2012-03-13 11:57:51.225330782 -0600
-@@ -31,6 +31,8 @@
- #include "mpa.h"
- #include "math_private.h"
-+#include <stap-probe.h>
-+
- void __mpexp(mp_no *x, mp_no *y, int p);
- /*Converting from double precision to Multi-precision and calculating  e^x */
-@@ -61,12 +63,21 @@ __slowexp(double x) {
-   __sub(&mpy,&mpcor,&mpz,p);
-   __mp_dbl(&mpw, &w, p);
-   __mp_dbl(&mpz, &z, p);
--  if (w == z) return w;
-+  if (w == z) {
-+    /* Track how often we get to the slow exp code plus
-+       its input/output values.  */
-+    LIBC_PROBE (slowexp_p6, 2, &x, &w);
-+    return w;
-+  }
-   else  {                   /* if calculating is not exactly   */
-     p = 32;
-     __dbl_mp(x,&mpx,p);
-     __mpexp(&mpx, &mpy, p);
-     __mp_dbl(&mpy, &res, p);
-+ 
-+    /* Track how often we get to the uber-slow exp code plus
-+       its input/output values.  */
-+    LIBC_PROBE (slowexp_p32, 2, &x, &res);
-     return res;
-   }
- }
-diff -rup a/sysdeps/ieee754/dbl-64/slowpow.c b/sysdeps/ieee754/dbl-64/slowpow.c
---- a/sysdeps/ieee754/dbl-64/slowpow.c 2012-01-01 05:16:32.000000000 -0700
-+++ b/sysdeps/ieee754/dbl-64/slowpow.c 2012-03-13 11:57:59.865284437 -0600
-@@ -35,6 +35,8 @@
- #include "mpa.h"
- #include "math_private.h"
-+#include <stap-probe.h>
-+
- void __mpexp(mp_no *x, mp_no *y, int p);
- void __mplog(mp_no *x, mp_no *y, int p);
- double ulog(double);
-@@ -66,7 +68,12 @@ __slowpow(double x, double y, double z)
-   __mp_dbl(&mpr, &res, p);
-   __sub(&mpp,&eps,&mpr1,p);   /*  pp -eps =r1 */
-   __mp_dbl(&mpr1, &res1, p);  /*  converting into double precision */
--  if (res == res1) return res;
-+  if (res == res1) {
-+    /* Track how often we get to the slow pow code plus
-+       its input/output values.  */
-+    LIBC_PROBE (slowpow_p10, 4, &x, &y, &z, &res);
-+    return res;
-+  }
-   p = 32;     /* if we get here result wasn't calculated exactly, continue */
-   __dbl_mp(x,&mpx,p);                          /* for more exact calculation */
-@@ -76,5 +83,10 @@ __slowpow(double x, double y, double z)
-   __mul(&mpy,&mpz,&mpw,p);  /* y*z =w    */
-   __mpexp(&mpw, &mpp, p);   /* e^w=pp    */
-   __mp_dbl(&mpp, &res, p);  /* converting into double precision */
-+
-+  /* Track how often we get to the uber-slow pow code plus
-+     its input/output values.  */
-+    LIBC_PROBE (slowpow_p32, 4, &x, &y, &z, &res);
-+
-   return res;
- }
diff --git a/src/patches/glibc/glibc-rh905874.patch b/src/patches/glibc/glibc-rh905874.patch
deleted file mode 100644 (file)
index 1d9ea10..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-#
-# Backported from upstream.
-#
-# - Add en_US.UTF-8 as pre-requisite for regression test:
-#
-# commit 62c4a69dc2aea24776cbf0e951d41709a7408cc6
-# Author: Joseph Myers <joseph@codesourcery.com>
-# Date:   Thu Nov 1 00:22:04 2012 +0000
-#
-#    Build en_US.UTF-8 locale for testing.
-#
-# - Fix buffer overrun:
-#
-# commit a445af0bc722d620afed7683cd320c0e4c7c6059
-# Author: Andreas Schwab <schwab@suse.de>
-# Date:   Tue Jan 29 14:45:15 2013 +0100
-#
-#    Fix buffer overrun in regexp matcher
-#
-# ChangeLog/
-# 2013-02-12  Andreas Schwab  <schwab@suse.de>
-# 
-#      [BZ #15078]
-#      * posix/regexec.c (extend_buffers): Add parameter min_len.
-#      (check_matching): Pass minimum needed length.
-#      (clean_state_log_if_needed): Likewise.
-#      (get_subexp): Likewise.
-#      * posix/Makefile (tests): Add bug-regex34.
-#      (bug-regex34-ENV): Define.
-#      * posix/bug-regex34.c: New file.
-#
-diff -urN glibc-2.12-2-gc4ccff1.orig/localedata/Makefile glibc-2.12-2-gc4ccff1/localedata/Makefile
---- glibc-2.12-2-gc4ccff1.orig/localedata/Makefile     2013-07-24 20:40:37.364888120 -0400
-+++ glibc-2.12-2-gc4ccff1/localedata/Makefile  2013-07-24 20:59:54.713289753 -0400
-@@ -133,7 +133,7 @@
- ifeq (no,$(cross-compiling))
- # We have to generate locales
- LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \
--         en_US.ISO-8859-1 ja_JP.EUC-JP da_DK.ISO-8859-1 \
-+         en_US.ISO-8859-1 en_US.UTF-8 ja_JP.EUC-JP da_DK.ISO-8859-1 \
-          hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \
-          vi_VN.TCVN5712-1 nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 \
-          tr_TR.UTF-8 cs_CZ.UTF-8 zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 \
-diff -urN glibc-2.12-2-gc4ccff1.orig/posix/bug-regex34.c glibc-2.12-2-gc4ccff1/posix/bug-regex34.c
---- glibc-2.12-2-gc4ccff1.orig/posix/bug-regex34.c     1969-12-31 19:00:00.000000000 -0500
-+++ glibc-2.12-2-gc4ccff1/posix/bug-regex34.c  2013-07-24 20:59:54.713289753 -0400
-@@ -0,0 +1,46 @@
-+/* Test re_search with multi-byte characters in UTF-8.
-+   Copyright (C) 2013 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#define _GNU_SOURCE 1
-+#include <stdio.h>
-+#include <string.h>
-+#include <locale.h>
-+#include <regex.h>
-+
-+static int
-+do_test (void)
-+{
-+  struct re_pattern_buffer r;
-+  /* ကျွန်ုပ်x */
-+  const char *s = "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax";
-+
-+  if (setlocale (LC_ALL, "en_US.UTF-8") == NULL)
-+    {
-+      puts ("setlocale failed");
-+      return 1;
-+    }
-+  memset (&r, 0, sizeof (r));
-+
-+  re_compile_pattern ("[^x]x", 5, &r);
-+  /* This was triggering a buffer overflow.  */
-+  re_search (&r, s, strlen (s), 0, strlen (s), 0);
-+  return 0;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff -urN glibc-2.12-2-gc4ccff1.orig/posix/Makefile glibc-2.12-2-gc4ccff1/posix/Makefile
---- glibc-2.12-2-gc4ccff1.orig/posix/Makefile  2013-07-24 20:40:37.399888098 -0400
-+++ glibc-2.12-2-gc4ccff1/posix/Makefile       2013-07-24 21:00:43.267265979 -0400
-@@ -94,7 +94,7 @@
-                  tst-rfc3484-3 \
-                  tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \
-                  bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \
--                 bug-getopt5
-+                 bug-getopt5 bug-regex34
- xtests                := bug-ga2
- ifeq (yes,$(build-shared))
- test-srcs     := globtest
-@@ -199,6 +199,7 @@
- bug-regex25-ENV = LOCPATH=$(common-objpfx)localedata
- bug-regex26-ENV = LOCPATH=$(common-objpfx)localedata
- bug-regex30-ENV = LOCPATH=$(common-objpfx)localedata
-+bug-regex34-ENV = LOCPATH=$(common-objpfx)localedata
- tst-rxspencer-ARGS = --utf8 rxspencer/tests
- tst-rxspencer-ENV = LOCPATH=$(common-objpfx)localedata
- tst-pcre-ARGS = PCRE.tests
-diff -urN glibc-2.12-2-gc4ccff1.orig/posix/regexec.c glibc-2.12-2-gc4ccff1/posix/regexec.c
---- glibc-2.12-2-gc4ccff1.orig/posix/regexec.c 2013-07-24 20:40:37.396888100 -0400
-+++ glibc-2.12-2-gc4ccff1/posix/regexec.c      2013-07-24 21:02:53.005156187 -0400
-@@ -198,7 +198,7 @@
- static int check_node_accept (const re_match_context_t *mctx,
-                             const re_token_t *node, int idx)
-      internal_function;
--static reg_errcode_t extend_buffers (re_match_context_t *mctx)
-+static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len)
-      internal_function;
\f
- /* Entry point for POSIX code.  */
-@@ -1160,7 +1160,7 @@
-         || (BE (next_char_idx >= mctx->input.valid_len, 0)
-             && mctx->input.valid_len < mctx->input.len))
-       {
--        err = extend_buffers (mctx);
-+        err = extend_buffers (mctx, next_char_idx + 1);
-         if (BE (err != REG_NOERROR, 0))
-           {
-             assert (err == REG_ESPACE);
-@@ -1737,7 +1737,7 @@
-         && mctx->input.valid_len < mctx->input.len))
-     {
-       reg_errcode_t err;
--      err = extend_buffers (mctx);
-+      err = extend_buffers (mctx, next_state_log_idx + 1);
-       if (BE (err != REG_NOERROR, 0))
-       return err;
-     }
-@@ -2791,7 +2791,7 @@
-                 if (bkref_str_off >= mctx->input.len)
-                   break;
--                err = extend_buffers (mctx);
-+                err = extend_buffers (mctx, bkref_str_off + 1);
-                 if (BE (err != REG_NOERROR, 0))
-                   return err;
-@@ -4099,7 +4099,7 @@
- static reg_errcode_t
- internal_function __attribute_warn_unused_result__
--extend_buffers (re_match_context_t *mctx)
-+extend_buffers (re_match_context_t *mctx, int min_len)
- {
-   reg_errcode_t ret;
-   re_string_t *pstr = &mctx->input;
-@@ -4108,8 +4108,10 @@
-   if (BE (INT_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0))
-     return REG_ESPACE;
--  /* Double the lengthes of the buffers.  */
--  ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
-+  /* Double the lengthes of the buffers, but allocate at least MIN_LEN.  */
-+  ret = re_string_realloc_buffers (pstr,
-+                                 MAX (min_len,
-+                                      MIN (pstr->len, pstr->bufs_len * 2)));
-   if (BE (ret != REG_NOERROR, 0))
-     return ret;
diff --git a/src/patches/glibc/glibc-rh905941.patch b/src/patches/glibc/glibc-rh905941.patch
deleted file mode 100644 (file)
index d5d50f2..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-diff -pruN a/nptl/sysdeps/pthread/unwind-forcedunwind.c b/nptl/sysdeps/pthread/unwind-forcedunwind.c
---- a/nptl/sysdeps/pthread/unwind-forcedunwind.c       2010-05-04 16:57:23.000000000 +0530
-+++ b/nptl/sysdeps/pthread/unwind-forcedunwind.c       2014-06-02 23:00:02.901013275 +0530
-@@ -45,8 +45,10 @@ pthread_cancel_init (void)
-   if (__builtin_expect (libgcc_s_handle != NULL, 1))
-     {
--      /* Force gcc to reload all values.  */
--      asm volatile ("" ::: "memory");
-+      /* Order reads so as to prevent speculation of loads
-+       of libgcc_s_{resume,personality,forcedunwind,getcfa}
-+       to points prior to the write barrier.  */
-+      atomic_read_barrier ();
-       return;
-     }
-@@ -72,9 +74,14 @@ pthread_cancel_init (void)
-   libgcc_s_forcedunwind = forcedunwind;
-   PTR_MANGLE (getcfa);
-   libgcc_s_getcfa = getcfa;
--  /* Make sure libgcc_s_handle is written last.  Otherwise,
--     pthread_cancel_init might return early even when the pointer the
--     caller is interested in is not initialized yet.  */
-+  /* At the point at which any thread writes the handle
-+     to libgcc_s_handle, the initialization is complete.
-+     The writing of libgcc_s_handle is atomic. All other
-+     threads reading libgcc_s_handle do so atomically. Any
-+     thread that does not execute this function must issue
-+     a read barrier to ensure that all of the above has
-+     actually completed and that the values of the
-+     function pointers are correct.   */
-   atomic_write_barrier ();
-   libgcc_s_handle = handle;
- }
-@@ -91,11 +98,19 @@ __unwind_freeres (void)
-     }
- }
--void
--_Unwind_Resume (struct _Unwind_Exception *exc)
-+static __always_inline void
-+_maybe_pthread_cancel_init (void)
- {
-   if (__builtin_expect (libgcc_s_handle == NULL, 0))
-     pthread_cancel_init ();
-+  else
-+    atomic_read_barrier ();
-+}
-+
-+void
-+_Unwind_Resume (struct _Unwind_Exception *exc)
-+{
-+  _maybe_pthread_cancel_init ();
-   void (*resume) (struct _Unwind_Exception *exc) = libgcc_s_resume;
-   PTR_DEMANGLE (resume);
-@@ -108,8 +123,7 @@ __gcc_personality_v0 (int version, _Unwi
-                       struct _Unwind_Exception *ue_header,
-                       struct _Unwind_Context *context)
- {
--  if (__builtin_expect (libgcc_s_handle == NULL, 0))
--    pthread_cancel_init ();
-+  _maybe_pthread_cancel_init ();
-   _Unwind_Reason_Code (*personality)
-     (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
-@@ -122,8 +136,7 @@ _Unwind_Reason_Code
- _Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop,
-                     void *stop_argument)
- {
--  if (__builtin_expect (libgcc_s_handle == NULL, 0))
--    pthread_cancel_init ();
-+  _maybe_pthread_cancel_init ();
-   _Unwind_Reason_Code (*forcedunwind)
-     (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *)
-@@ -135,8 +148,7 @@ _Unwind_ForcedUnwind (struct _Unwind_Exc
- _Unwind_Word
- _Unwind_GetCFA (struct _Unwind_Context *context)
- {
--  if (__builtin_expect (libgcc_s_handle == NULL, 0))
--    pthread_cancel_init ();
-+  _maybe_pthread_cancel_init ();
-   _Unwind_Word (*getcfa) (struct _Unwind_Context *) = libgcc_s_getcfa;
-   PTR_DEMANGLE (getcfa);
-diff -pruN a/sysdeps/gnu/unwind-resume.c b/sysdeps/gnu/unwind-resume.c
---- a/sysdeps/gnu/unwind-resume.c      2010-05-04 16:57:23.000000000 +0530
-+++ b/sysdeps/gnu/unwind-resume.c      2014-06-02 23:02:26.812007078 +0530
-@@ -20,8 +20,11 @@
- #include <dlfcn.h>
- #include <stdio.h>
- #include <unwind.h>
-+#include <pthreadP.h>
-+#include <sysdep.h>
- #include <libgcc_s.h>
-+static void *libgcc_s_handle;
- static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
- static _Unwind_Reason_Code (*libgcc_s_personality)
-   (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
-@@ -42,13 +45,32 @@ init (void)
-   libgcc_s_resume = resume;
-   libgcc_s_personality = personality;
-+  atomic_write_barrier ();
-+  /* At the point at which any thread writes the handle
-+     to libgcc_s_handle, the initialization is complete.
-+     The writing of libgcc_s_handle is atomic. All other
-+     threads reading libgcc_s_handle do so atomically. Any
-+     thread that does not execute this function must issue
-+     a read barrier to ensure that all of the above has
-+     actually completed and that the values of the
-+     function pointers are correct.   */
-+  libgcc_s_handle = handle;
- }
-+static __always_inline void
-+_maybe_init (void)
-+{
-+  if (__builtin_expect (libgcc_s_handle == NULL, 0))
-+    init ();
-+  else
-+    atomic_read_barrier ();
-+}
-+
-+
- void
- _Unwind_Resume (struct _Unwind_Exception *exc)
- {
--  if (__builtin_expect (libgcc_s_resume == NULL, 0))
--    init ();
-+  _maybe_init ();
-   libgcc_s_resume (exc);
- }
-@@ -58,8 +80,7 @@ __gcc_personality_v0 (int version, _Unwi
-                       struct _Unwind_Exception *ue_header,
-                       struct _Unwind_Context *context)
- {
--  if (__builtin_expect (libgcc_s_personality == NULL, 0))
--    init ();
-+  _maybe_init ();
-   return libgcc_s_personality (version, actions, exception_class,
-                              ue_header, context);
- }
diff --git a/src/patches/glibc/glibc-rh916986.patch b/src/patches/glibc/glibc-rh916986.patch
deleted file mode 100644 (file)
index 9bed61f..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-commit cf7c9078a5acdbb435498ace92cd81009637a971
-Author: Ulrich Drepper <drepper@redhat.com>
-Date:   Fri Nov 19 09:35:39 2010 -0500
-
-    Define MAP_HUGETLB.
-
-       * sysdeps/unix/sysv/linux/i386/bits/mman.h: Define MAP_HUGETLB.
-       * sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Likewise.
-
-commit dd62fda6cc83b3afa150a4be7d273ab118bf9825
-Author: Anton Blanchard <anton@samba.org>
-Date:   Tue Mar 27 18:37:16 2012 -0700
-
-    Define MAP_STACK and MAP_HUGETLB on powerpc, s390, sh and sparc.
-    
-        * sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Define MAP_STACK and
-        MAP_HUGETLB.
-        * sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise.
-        * sysdeps/unix/sysv/linux/sh/bits/mman.h: Likewise.
-        * sysdeps/unix/sysv/linux/sparc/bits/mman.h: Likewise.
-
-commit 7e4fc5890e07549e5ad98b4244e3e0ed5c709e6a
-Author: Mike Frysinger <vapier@gentoo.org>
-Date:   Mon Apr 16 22:44:23 2012 -0400
-
-    ia64: add MAP_{STACK,HUGETLB} to bits/mman.h
-
-    Just adding new bit flags that newer kernels define.
-
-    Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-
-       * sysdeps/unix/sysv/linux/ia64/bits/mman.h (MAP_STACK): Define.
-       (MAP_HUGETLB): Likewise.
-
-Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/powerpc/bits/mman.h     2013-07-23 04:01:42.440052942 -0300
-+++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/powerpc/bits/mman.h  2013-07-23 22:26:42.317789260 -0300
-@@ -65,6 +65,8 @@
- # define MAP_NORESERVE        0x00040         /* Don't check for reservations.  */
- # define MAP_POPULATE 0x08000         /* Populate (prefault) pagetables.  */
- # define MAP_NONBLOCK 0x10000         /* Do not block on IO.  */
-+# define MAP_STACK    0x20000         /* Allocation is for a stack.  */
-+# define MAP_HUGETLB  0x40000         /* Create huge page mapping.  */
- #endif
- /* Flags to `msync'.  */
-Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/mman.h
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/s390/bits/mman.h        2013-07-23 04:01:42.447052393 -0300
-+++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/mman.h     2013-07-23 22:26:42.335787833 -0300
-@@ -64,6 +64,8 @@
- # define MAP_NORESERVE        0x04000         /* Don't check for reservations.  */
- # define MAP_POPULATE 0x08000         /* Populate (prefault) pagetables.  */
- # define MAP_NONBLOCK 0x10000         /* Do not block on IO.  */
-+# define MAP_STACK    0x20000         /* Allocation is for a stack.  */
-+# define MAP_HUGETLB  0x40000         /* Create huge page mapping.  */
- #endif
- /* Flags to `msync'.  */
-Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sh/bits/mman.h
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/sh/bits/mman.h  2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sh/bits/mman.h       2013-07-23 22:26:42.336787753 -0300
-@@ -64,6 +64,8 @@
- # define MAP_NORESERVE        0x4000          /* Don't check for reservations.  */
- # define MAP_POPULATE 0x8000          /* Populate (prefault) pagetables.  */
- # define MAP_NONBLOCK 0x10000         /* Do not block on IO.  */
-+# define MAP_STACK    0x20000         /* Allocation is for a stack.  */
-+# define MAP_HUGETLB  0x40000         /* Create huge page mapping.  */
- #endif
- /* Flags to `msync'.  */
-Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sparc/bits/mman.h
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/sparc/bits/mman.h       2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sparc/bits/mman.h    2013-07-23 22:26:42.337787674 -0300
-@@ -66,6 +66,8 @@
- # define _MAP_NEW     0x80000000      /* Binary compatibility with SunOS.  */
- # define MAP_POPULATE 0x8000          /* Populate (prefault) pagetables.  */
- # define MAP_NONBLOCK 0x10000         /* Do not block on IO.  */
-+# define MAP_STACK    0x20000         /* Allocation is for a stack.  */
-+# define MAP_HUGETLB  0x40000         /* Create huge page mapping.  */
- #endif
- /* Flags to `msync'.  */
-Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/bits/mman.h
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/i386/bits/mman.h        2013-07-23 04:01:42.406055607 -0300
-+++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/bits/mman.h     2013-07-23 22:32:37.407630135 -0300
-@@ -64,6 +64,7 @@
- # define MAP_POPULATE 0x08000         /* Populate (prefault) pagetables.  */
- # define MAP_NONBLOCK 0x10000         /* Do not block on IO.  */
- # define MAP_STACK    0x20000         /* Allocation is for a stack.  */
-+# define MAP_HUGETLB  0x40000         /* Create huge page mapping.  */
- #endif
- /* Flags to `msync'.  */
-Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/x86_64/bits/mman.h
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/x86_64/bits/mman.h      2013-07-23 04:01:42.493048788 -0300
-+++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/x86_64/bits/mman.h   2013-07-23 22:32:37.433628073 -0300
-@@ -65,6 +65,7 @@
- # define MAP_POPULATE 0x08000         /* Populate (prefault) pagetables.  */
- # define MAP_NONBLOCK 0x10000         /* Do not block on IO.  */
- # define MAP_STACK    0x20000         /* Allocation is for a stack.  */
-+# define MAP_HUGETLB  0x40000         /* Create huge page mapping.  */
- #endif
- /* Flags to `msync'.  */
-Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/bits/mman.h
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/ia64/bits/mman.h        2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/bits/mman.h     2013-07-23 22:37:28.643530951 -0300
-@@ -65,6 +65,8 @@
- # define MAP_NORESERVE          0x04000       /* Don't check for reservations.  */
- # define MAP_POPULATE   0x08000       /* Populate (prefault) pagetables.  */
- # define MAP_NONBLOCK   0x10000       /* Do not block on IO.  */
-+# define MAP_STACK      0x20000       /* Allocation is for a stack.  */
-+# define MAP_HUGETLB    0x40000       /* Create huge page mapping.  */
- #endif
- /* Flags to `msync'.  */
diff --git a/src/patches/glibc/glibc-rh919562.patch b/src/patches/glibc/glibc-rh919562.patch
deleted file mode 100644 (file)
index 42aa819..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-#
-# Patch provided by Ulrich Drepper in BZ#919562.
-#
-# Patch has not been sent upstream.
-#
-# 2013-03-08  Ulrich Drepper  <drepper@gmail.com>
-#
-#      * elf/rtld.c (dl_main): Correctly determine when the application
-#      required DSOs with TLS and bump the generation counter in that
-#      case.  The current condition does not account for an audit
-#      module using TLS.
-#      * elf/dl-tls.c (_dl_count_modids): New function.
-#      (_dl_allocate_tls_init): Add assertion to check TLS
-#      generation.
-#      * sysdeps/generic/ldsodefs.h: Declare _dl_count_modids.
-#      * elf/Makefile: Add rules to build and run tst-audit9.
-#      * elf/tst-audit9.c: New file.
-#      * elf/tst-auditmod9a.c: New file.
-#      * elf/tst-auditmod9b.c: New file.
-#
-diff -urN glibc-2.12-2-gc4ccff1.orig/elf/dl-tls.c glibc-2.12-2-gc4ccff1/elf/dl-tls.c
---- glibc-2.12-2-gc4ccff1.orig/elf/dl-tls.c    2013-04-24 16:06:10.410756438 -0400
-+++ glibc-2.12-2-gc4ccff1/elf/dl-tls.c 2013-04-24 16:06:49.092604707 -0400
-@@ -109,6 +109,28 @@
- }
-+size_t
-+internal_function
-+_dl_count_modids (void)
-+{
-+  if (! __builtin_expect (GL(dl_tls_dtv_gaps), true))
-+    return GL(dl_tls_max_dtv_idx);
-+
-+  size_t n = 0;
-+  struct dtv_slotinfo_list *runp = GL(dl_tls_dtv_slotinfo_list);
-+  while (runp != NULL)
-+    {
-+      for (size_t i = 0; i < runp->len; ++i)
-+      if (runp->slotinfo[i].map != NULL)
-+        ++n;
-+
-+      runp = runp->next;
-+    }
-+
-+  return n;
-+}
-+
-+
- #ifdef SHARED
- void
- internal_function
-@@ -411,6 +433,7 @@
-         /* Keep track of the maximum generation number.  This might
-            not be the generation counter.  */
-+        assert (listp->slotinfo[cnt].gen <= GL(dl_tls_generation));
-         maxgen = MAX (maxgen, listp->slotinfo[cnt].gen);
-         if (map->l_tls_offset == NO_TLS_OFFSET
-diff -urN glibc-2.12-2-gc4ccff1.orig/elf/Makefile glibc-2.12-2-gc4ccff1/elf/Makefile
---- glibc-2.12-2-gc4ccff1.orig/elf/Makefile    2013-04-24 16:06:10.408756448 -0400
-+++ glibc-2.12-2-gc4ccff1/elf/Makefile 2013-04-24 16:07:29.475457962 -0400
-@@ -97,6 +97,8 @@
-                  tst-audit6.c tst-auditmod6a.c tst-auditmod6b.c \
-                  tst-auditmod6c.c \
-                  tst-audit7.c tst-auditmod7a.c tst-auditmod7b.c \
-+                 tst-audit9.c \
-+                 tst-auditmod9a.c tst-auditmod9b.c \
-                  order2mod1.c order2mod2.c order2mod3.c order2mod4.c \
-                  tst-stackguard1.c tst-stackguard1-static.c \
-                  tst-array5.c tst-array5-static.c tst-array5dep.c \
-@@ -198,7 +200,7 @@
-        tst-dlmodcount tst-dlopenrpath tst-deep1 \
-        tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
-        unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \
--       tst-audit1 tst-audit2 \
-+       tst-audit1 tst-audit2 tst-audit9 \
-        tst-stackguard1 tst-addr1 tst-thrlock \
-        tst-unique1 tst-unique2
- #      reldep9
-@@ -251,7 +253,8 @@
-               unload8mod1 unload8mod1x unload8mod2 unload8mod3 \
-               order2mod1 order2mod2 order2mod3 order2mod4 \
-               tst-unique1mod1 tst-unique1mod2 \
--              tst-unique2mod1 tst-unique2mod2
-+              tst-unique2mod1 tst-unique2mod2 \
-+              tst-auditmod9a tst-auditmod9b
- ifeq (yes,$(have-initfini-array))
- modules-names += tst-array2dep tst-array5dep
- endif
-@@ -574,6 +577,8 @@
- ifuncmod1.so-no-z-defs = yes
- ifuncmod5.so-no-z-defs = yes
- ifuncmod6.so-no-z-defs = yes
-+tst-auditmod9a.so-no-z-defs = yes
-+tst-auditmod9b.so-no-z-defs = yes
- ifeq ($(build-shared),yes)
- # Build all the modules even when not actually running test programs.
-@@ -1015,6 +1020,10 @@
- $(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so
- tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so
-+$(objpfx)tst-audit9: $(libdl)
-+$(objpfx)tst-audit9.out: $(objpfx)tst-auditmod9a.so $(objpfx)tst-auditmod9b.so
-+tst-audit9-ENV = LD_AUDIT=$(objpfx)tst-auditmod9a.so
-+
- $(objpfx)tst-global1: $(libdl)
- $(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so
-diff -urN glibc-2.12-2-gc4ccff1.orig/elf/rtld.c glibc-2.12-2-gc4ccff1/elf/rtld.c
---- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c      2013-04-24 16:06:10.410756438 -0400
-+++ glibc-2.12-2-gc4ccff1/elf/rtld.c   2013-04-24 16:06:49.096604693 -0400
-@@ -1637,6 +1637,10 @@
-       }
-     }
-+  /* Keep track of the currently loaded modules to count how many
-+     non-audit modules which use TLS are loaded.  */
-+  size_t count_modids = _dl_count_modids ();
-+
-   /* Set up debugging before the debugger is notified for the first time.  */
- #ifdef ELF_MACHINE_DEBUG_SETUP
-   /* Some machines (e.g. MIPS) don't use DT_DEBUG in this way.  */
-@@ -2281,7 +2285,8 @@
- # define NONTLS_INIT_TP do { } while (0)
- #endif
--  if (!was_tls_init_tp_called && GL(dl_tls_max_dtv_idx) > 0)
-+  if ((!was_tls_init_tp_called && GL(dl_tls_max_dtv_idx) > 0)
-+      || count_modids != _dl_count_modids ())
-     ++GL(dl_tls_generation);
-   /* Now that we have completed relocation, the initializer data
-diff -urN glibc-2.12-2-gc4ccff1.orig/elf/tst-audit9.c glibc-2.12-2-gc4ccff1/elf/tst-audit9.c
---- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit9.c        1969-12-31 19:00:00.000000000 -0500
-+++ glibc-2.12-2-gc4ccff1/elf/tst-audit9.c     2013-04-24 16:06:49.096604693 -0400
-@@ -0,0 +1,8 @@
-+#include <dlfcn.h>
-+
-+int main(void)
-+{
-+  void *h = dlopen("$ORIGIN/tst-auditmod9b.so", RTLD_LAZY);
-+  int (*fp)(void) = dlsym(h, "f");
-+  return fp() - 1;
-+}
-diff -urN glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9a.c glibc-2.12-2-gc4ccff1/elf/tst-auditmod9a.c
---- glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9a.c    1969-12-31 19:00:00.000000000 -0500
-+++ glibc-2.12-2-gc4ccff1/elf/tst-auditmod9a.c 2013-04-24 16:06:49.097604689 -0400
-@@ -0,0 +1,16 @@
-+#include <stdint.h>
-+
-+__thread int var;
-+
-+unsigned int
-+la_version (unsigned int v)
-+{
-+  return v;
-+}
-+
-+void
-+la_activity (uintptr_t *cookie, unsigned int flag)
-+{
-+  ++var;
-+}
-+
-diff -urN glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9b.c glibc-2.12-2-gc4ccff1/elf/tst-auditmod9b.c
---- glibc-2.12-2-gc4ccff1.orig/elf/tst-auditmod9b.c    1969-12-31 19:00:00.000000000 -0500
-+++ glibc-2.12-2-gc4ccff1/elf/tst-auditmod9b.c 2013-04-24 16:06:49.097604689 -0400
-@@ -0,0 +1,6 @@
-+__thread int a;
-+
-+int f(void)
-+{
-+  return ++a;
-+}
-diff -urN glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h
---- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h      2013-04-24 16:06:10.545755798 -0400
-+++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h   2013-04-24 16:06:49.098604686 -0400
-@@ -1031,6 +1031,9 @@
- /* Determine next available module ID.  */
- extern size_t _dl_next_tls_modid (void) internal_function attribute_hidden;
-+/* Count the modules with TLS segments.  */
-+extern size_t _dl_count_modids (void) internal_function attribute_hidden;
-+
- /* Calculate offset of the TLS blocks in the static TLS block.  */
- extern void _dl_determine_tlsoffset (void) internal_function attribute_hidden;
diff --git a/src/patches/glibc/glibc-rh928318.patch b/src/patches/glibc/glibc-rh928318.patch
deleted file mode 100644 (file)
index 36aa19a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/resolv/res_init.c b/resolv/res_init.c
-index 40dbe7d..202569d 100644
---- a/resolv/res_init.c
-+++ b/resolv/res_init.c
-@@ -176,13 +176,6 @@ __res_vinit(res_state statp, int preinit) {
-               statp->id = res_randomid();
-       }
--#ifdef USELOOPBACK
--      statp->nsaddr.sin_addr = inet_makeaddr(IN_LOOPBACKNET, 1);
--#else
--      statp->nsaddr.sin_addr.s_addr = INADDR_ANY;
--#endif
--      statp->nsaddr.sin_family = AF_INET;
--      statp->nsaddr.sin_port = htons(NAMESERVER_PORT);
-       statp->nscount = 0;
-       statp->ndots = 1;
-       statp->pfcode = 0;
-@@ -433,6 +426,12 @@ __res_vinit(res_state statp, int preinit) {
- #endif
-           (void) fclose(fp);
-       }
-+      if (__builtin_expect(statp->nscount == 0, 0)) {
-+          statp->nsaddr.sin_addr = inet_makeaddr(IN_LOOPBACKNET, 1);
-+          statp->nsaddr.sin_family = AF_INET;
-+          statp->nsaddr.sin_port = htons(NAMESERVER_PORT);
-+          statp->nscount = 1;
-+      }
-       if (statp->defdname[0] == 0 &&
-           __gethostname(buf, sizeof(statp->defdname) - 1) == 0 &&
-           (cp = strchr(buf, '.')) != NULL)
diff --git a/src/patches/glibc/glibc-rh929302.patch b/src/patches/glibc/glibc-rh929302.patch
deleted file mode 100644 (file)
index 305b339..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-From decadad73858bc108828eed5540c7955dc2a977b Mon Sep 17 00:00:00 2001
-From: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
-Date: Fri, 7 Jun 2013 14:44:58 -0500
-Subject: [PATCH 1/2] PowerPC: Change sched_getcpu to use vDSO getcpu instead of syscall.
-
-Backport of d5e0b9bd6e296f3ec5263fa296d39f3fed9b8fa2 from master.
----
- sysdeps/unix/sysv/linux/powerpc/Versions         |    1 +
- sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h |    2 +
- sysdeps/unix/sysv/linux/powerpc/init-first.c     |    3 ++
- sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c   |   30 ++++++++++++++++++++++
- 4 files changed, 36 insertions(+), 0 deletions(-)
- create mode 100644 sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c
-
-diff --git a/sysdeps/unix/sysv/linux/powerpc/Versions b/sysdeps/unix/sysv/linux/powerpc/Versions
-index 1ef53b9..396a423 100644
---- a/sysdeps/unix/sysv/linux/powerpc/Versions
-+++ b/sysdeps/unix/sysv/linux/powerpc/Versions
-@@ -3,5 +3,6 @@ libc {
-     __vdso_get_tbfreq;
-     __vdso_clock_gettime;
-     __vdso_clock_getres;
-+    __vdso_getcpu;
-   }
- }
-diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
-index 746d9ce..c3026d5 100644
---- a/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
-+++ b/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
-@@ -31,6 +31,8 @@ extern void *__vdso_clock_getres;
- extern void *__vdso_get_tbfreq;
-+extern void *__vdso_getcpu;
-+
- #endif
- #endif /* _LIBC_VDSO_H */
-diff --git a/sysdeps/unix/sysv/linux/powerpc/init-first.c b/sysdeps/unix/sysv/linux/powerpc/init-first.c
-index 92dacc7..cfed655 100644
---- a/sysdeps/unix/sysv/linux/powerpc/init-first.c
-+++ b/sysdeps/unix/sysv/linux/powerpc/init-first.c
-@@ -27,6 +27,7 @@ void *__vdso_gettimeofday attribute_hidden;
- void *__vdso_clock_gettime;
- void *__vdso_clock_getres;
- void *__vdso_get_tbfreq;
-+void *__vdso_getcpu;
- static inline void
-@@ -41,6 +42,8 @@ _libc_vdso_platform_setup (void)
-   __vdso_clock_getres = _dl_vdso_vsym ("__kernel_clock_getres", &linux2615);
-   __vdso_get_tbfreq = _dl_vdso_vsym ("__kernel_vdso_get_tbfreq", &linux2615);
-+
-+  __vdso_getcpu = _dl_vdso_vsym ("__kernel_getcpu", &linux2615);
- }
- # define VDSO_SETUP _libc_vdso_platform_setup
-diff --git a/sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c b/sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c
-new file mode 100644
-index 0000000..617e6f1
---- /dev/null
-+++ b/sysdeps/unix/sysv/linux/powerpc/sched_getcpu.c
-@@ -0,0 +1,30 @@
-+/* Copyright (C) 2013 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, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <sched.h>
-+#include <sysdep.h>
-+#include <bits/libc-vdso.h>
-+
-+
-+int
-+sched_getcpu (void)
-+{
-+  unsigned int cpu;
-+  int r = INLINE_VSYSCALL (getcpu, 3, &cpu, NULL, NULL);
-+
-+  return r == -1 ? r : cpu;
-+}
--- 
-1.7.1
-
diff --git a/src/patches/glibc/glibc-rh929388.patch b/src/patches/glibc/glibc-rh929388.patch
deleted file mode 100644 (file)
index 44ddd17..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -pruN glibc-2.5-20061008T1257/sysdeps/x86_64/fpu/math_private.h glibc-2.5-20061008T1257.patched/sysdeps/x86_64/fpu/math_private.h
---- glibc-2.5-20061008T1257/sysdeps/x86_64/fpu/math_private.h  2013-02-12 07:05:08.000000000 -0500
-+++ glibc-2.5-20061008T1257.patched/sysdeps/x86_64/fpu/math_private.h  2013-02-12 06:59:08.000000000 -0500
-@@ -90,10 +90,14 @@ while (0)
- #undef libc_feupdateenv
- #define libc_feupdateenv(e) \
-   do {                                                                              \
--    unsigned int mxcsr;                                                             \
-+    unsigned int mxcsr, new_mxcsr;                                          \
-     asm volatile ("stmxcsr %0" : "=m" (*&mxcsr));                           \
--    asm volatile ("ldmxcsr %0" : : "m" ((e)->__mxcsr));                             \
--    feraiseexcept (mxcsr & FE_ALL_EXCEPT);                                  \
-+    /* Merge in the old exceptions.  */                                             \
-+    new_mxcsr = mxcsr & FE_ALL_EXCEPT | (e)->__mxcsr;                       \
-+    asm volatile ("ldmxcsr %0" : : "m" (*&new_mxcsr));                              \
-+    /* Only raise exception if there are any that are not masked.  */       \
-+    if (~(mxcsr >> 7) & mxcsr & FE_ALL_EXCEPT)                                      \
-+      feraiseexcept (mxcsr & FE_ALL_EXCEPT);                                \
-   } while (0)
- #undef libc_feupdateenvf
- #define libc_feupdateenvf(e) libc_feupdateenv (e)
diff --git a/src/patches/glibc/glibc-rh947882.patch b/src/patches/glibc/glibc-rh947882.patch
deleted file mode 100644 (file)
index 6d10982..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# Backport from upstream:
-#
-# From 1cef1b19089528db11f221e938f60b9b048945d7 Mon Sep 17 00:00:00 2001
-# From: Andreas Schwab <schwab@suse.de>
-# Date: Thu, 21 Mar 2013 15:50:27 +0100
-# Subject: [PATCH] Fix stack overflow in getaddrinfo with many results
-#
-# ---
-# ChangeLog                   |    6 ++++++
-# NEWS                        |    5 ++++-
-# sysdeps/posix/getaddrinfo.c |   23 +++++++++++++++++++++--
-# 3 files changed, 31 insertions(+), 3 deletions(-)
-#
-# 2013-04-03  Andreas Schwab  <schwab@suse.de>
-#
-#      [BZ #15330]
-#      * sysdeps/posix/getaddrinfo.c (getaddrinfo): Allocate results and
-#      order arrays from heap if bigger than alloca cutoff.
-#
-diff -urN glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/getaddrinfo.c glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c
---- glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/getaddrinfo.c     2013-07-24 20:40:37.601887975 -0400
-+++ glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c  2013-07-24 20:54:32.722447705 -0400
-@@ -2386,11 +2386,27 @@
-       __typeof (once) old_once = once;
-       __libc_once (once, gaiconf_init);
-       /* Sort results according to RFC 3484.  */
--      struct sort_result results[nresults];
--      size_t order[nresults];
-+      struct sort_result *results;
-+      size_t *order;
-       struct addrinfo *q;
-       struct addrinfo *last = NULL;
-       char *canonname = NULL;
-+      bool malloc_results;
-+
-+      malloc_results
-+      = !__libc_use_alloca (nresults * (sizeof (*results) + sizeof (*order)));
-+      if (malloc_results)
-+      {
-+        results = malloc (nresults * (sizeof (*results) + sizeof (*order)));
-+        if (results == NULL)
-+          {
-+            free (in6ai);
-+            return EAI_MEMORY;
-+          }
-+      }
-+      else
-+      results = alloca (nresults * (sizeof (*results) + sizeof (*order)));
-+      order = (size_t *) (results + nresults);
-       /* If we have information about deprecated and temporary addresses
-        sort the array now.  */
-@@ -2557,6 +2573,9 @@
-       /* Fill in the canonical name into the new first entry.  */
-       p->ai_canonname = canonname;
-+
-+      if (malloc_results)
-+      free (results);
-     }
-   free (in6ai);
diff --git a/src/patches/glibc/glibc-rh952422.patch b/src/patches/glibc/glibc-rh952422.patch
deleted file mode 100644 (file)
index c73bf52..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c
-index af454b6..249bd19 100644
---- a/sysdeps/unix/sysv/linux/getsysstats.c
-+++ b/sysdeps/unix/sysv/linux/getsysstats.c
-@@ -35,6 +34,7 @@
- #include <atomic.h>
- #include <not-cancel.h>
-+#include <kernel-features.h>
- /* How we can determine the number of available processors depends on
-@@ -49,8 +49,6 @@
-    But not all systems have support for the /proc filesystem.  If it
-    is not available we simply return 1 since there is no way.  */
--#include <not-cancel.h>
--
- /* Other architectures use different formats for /proc/cpuinfo.  This
-    provides a hook for alternative parsers.  */
-@@ -128,6 +126,15 @@ next_line (int fd, char *const buffer, char **cp, char **re,
- int
- __get_nprocs ()
- {
-+  static int cached_result;
-+  static time_t timestamp;
-+
-+  time_t now = time (NULL);
-+  time_t prev = timestamp;
-+  atomic_read_barrier ();
-+  if (now == prev)
-+    return cached_result;
-+
-   /* XXX Here will come a test for the new system call.  */
-   const size_t buffer_size = __libc_use_alloca (8192) ? 8192 : 512;
-@@ -135,20 +142,65 @@ __get_nprocs ()
-   char *buffer_end = buffer + buffer_size;
-   char *cp = buffer_end;
-   char *re = buffer_end;
--  int result = 1;
- #ifdef O_CLOEXEC
-   const int flags = O_RDONLY | O_CLOEXEC;
- #else
-   const int flags = O_RDONLY;
- #endif
-+  int fd = open_not_cancel_2 ("/sys/devices/system/cpu/online", flags);
-+  char *l;
-+  int result = 0;
-+  if (fd != -1)
-+    {
-+      l = next_line (fd, buffer, &cp, &re, buffer_end);
-+      if (l != NULL)
-+      do
-+        {
-+          char *endp;
-+          unsigned long int n = strtoul (l, &endp, 10);
-+          if (l == endp)
-+            {
-+              result = 0;
-+              break;
-+            }
-+
-+          unsigned long int m = n;
-+          if (*endp == '-')
-+            {
-+              l = endp + 1;
-+              m = strtoul (l, &endp, 10);
-+              if (l == endp)
-+                {
-+                  result = 0;
-+                  break;
-+                }
-+            }
-+
-+          result += m - n + 1;
-+
-+          l = endp;
-+          while (l < re && isspace (*l))
-+            ++l;
-+        }
-+      while (l < re);
-+
-+      close_not_cancel_no_status (fd);
-+
-+      if (result > 0)
-+      goto out;
-+    }
-+
-+  cp = buffer_end;
-+  re = buffer_end;
-+  result = 1;
-+
-   /* The /proc/stat format is more uniform, use it by default.  */
--  int fd = open_not_cancel_2 ("/proc/stat", flags);
-+  fd = open_not_cancel_2 ("/proc/stat", flags);
-   if (fd != -1)
-     {
-       result = 0;
--      char *l;
-       while ((l = next_line (fd, buffer, &cp, &re, buffer_end)) != NULL)
-       /* The current format of /proc/stat has all the cpu* entries
-          at the front.  We assume here that stays this way.  */
-@@ -169,6 +221,11 @@ __get_nprocs ()
-       }
-     }
-+ out:
-+  cached_result = result;
-+  atomic_write_barrier ();
-+  timestamp = now;
-+
-   return result;
- }
- weak_alias (__get_nprocs, get_nprocs)
-@@ -236,7 +293,7 @@ phys_pages_info (const char *format)
-   long int result = -1;
-   /* If we haven't found an appropriate entry return 1.  */
--  FILE *fp = fopen ("/proc/meminfo", "rc");
-+  FILE *fp = fopen ("/proc/meminfo", "rce");
-   if (fp != NULL)
-     {
-       /* No threads use this stream.  */
diff --git a/src/patches/glibc/glibc-rh966775.patch b/src/patches/glibc/glibc-rh966775.patch
deleted file mode 100644 (file)
index 32a0f21..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-diff -pruN glibc-2.12-2-gc4ccff1/math/math_private.h glibc-2.12-2-gc4ccff1.new/math/math_private.h
---- glibc-2.12-2-gc4ccff1/math/math_private.h  2013-06-07 08:35:52.785442441 -0400
-+++ glibc-2.12-2-gc4ccff1.new/math/math_private.h      2013-06-07 08:29:35.621042340 -0400
-@@ -394,4 +394,31 @@ extern void __docos (double __x, double 
- #define libc_feupdateenvf(e) (void) feupdateenv (e)
- #define libc_feupdateenvl(e) (void) feupdateenv (e)
-+/* Save and set the rounding mode.  The use of fenv_t to store the old mode
-+   allows a target-specific version of this function to avoid converting the
-+   rounding mode from the fpu format.  By default we have no choice but to
-+   manipulate the entire env.  */
-+
-+#ifndef libc_feholdsetround
-+# define libc_feholdsetround(e, r, c)  libc_feholdexcept_setround(e, r)
-+#endif
-+#ifndef libc_feholdsetroundf
-+# define libc_feholdsetroundf(e, r, c) libc_feholdexcept_setroundf(e, r)
-+#endif
-+#ifndef libc_feholdsetroundl
-+# define libc_feholdsetroundl(e, r, c) libc_feholdexcept_setroundl(e, r)
-+#endif
-+
-+/* ... and the reverse.  */
-+
-+#ifndef libc_feresetround
-+# define libc_feresetround(e, c)  libc_feupdateenv(e)
-+#endif
-+#ifndef libc_feresetroundf
-+# define libc_feresetroundf(e, c) libc_feupdateenvf(e)
-+#endif
-+#ifndef libc_feresetroundl
-+# define libc_feresetroundl(e, c) libc_feupdateenvl(e)
-+#endif
-+
- #endif /* _MATH_PRIVATE_H_ */
-diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/e_exp.c glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/e_exp.c
---- glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/e_exp.c       2013-06-07 08:35:52.785442441 -0400
-+++ glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/e_exp.c   2013-06-07 08:30:21.976222459 -0400
-@@ -57,7 +57,8 @@ double __ieee754_exp(double x) {
-   fenv_t env;
-   double retval;
--  libc_feholdexcept_setround (&env, FE_TONEAREST);
-+  int changed;
-+  libc_feholdsetround (&env, FE_TONEAREST, changed);
-   junk1.x = x;
-   m = junk1.i[HIGH_HALF];
-@@ -152,7 +153,7 @@ double __ieee754_exp(double x) {
-     else { retval = __slowexp(x); goto ret; }
-   }
-  ret:
--  libc_feupdateenv (&env);
-+  libc_feresetround (&env, changed);
-   return retval;
- }
-diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/e_pow.c glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/e_pow.c
---- glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/e_pow.c       2013-06-07 08:35:52.785442441 -0400
-+++ glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/e_pow.c   2013-06-07 08:31:00.294939087 -0400
-@@ -83,7 +83,8 @@ double __ieee754_pow(double x, double y)
-     fenv_t env;
-     double retval;
--    libc_feholdexcept_setround (&env, FE_TONEAREST);
-+    int changed;
-+    libc_feholdsetround (&env, FE_TONEAREST, changed);
-     z = log1(x,&aa,&error);                                 /* x^y  =e^(y log (X)) */
-     t = y*134217729.0;
-@@ -100,7 +101,7 @@ double __ieee754_pow(double x, double y)
-     t = __exp1(a1,a2,1.9e16*error);     /* return -10 or 0 if wasn't computed exactly */
-     retval = (t>0)?t:power1(x,y);
--    libc_feupdateenv (&env);
-+    libc_feresetround (&env, changed);
-     return retval;
-   }
-diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/s_sin.c glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/s_sin.c
---- glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/s_sin.c       2013-06-07 08:35:52.786442462 -0400
-+++ glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/s_sin.c   2013-06-07 08:32:08.254822633 -0400
-@@ -101,7 +101,8 @@ double __sin(double x){
-       fenv_t env;
-       double retval = 0;
--      libc_feholdexcept_setround (&env, FE_TONEAREST);
-+      int changed;
-+      libc_feholdsetround (&env, FE_TONEAREST, changed);
-       u.x = x;
-       m = u.i[HIGH_HALF];
-@@ -355,7 +356,7 @@ double __sin(double x){
-       }
-  ret:
--      libc_feupdateenv (&env);
-+      libc_feresetround (&env, changed);
-       return retval;
- }
-@@ -374,7 +375,8 @@ double __cos(double x)
-   fenv_t env;
-   double retval = 0;
--  libc_feholdexcept_setround (&env, FE_TONEAREST);
-+  int changed;
-+  libc_feholdsetround (&env, FE_TONEAREST, changed);
-   u.x = x;
-   m = u.i[HIGH_HALF];
-@@ -623,7 +625,7 @@ double __cos(double x)
-   }
-  ret:
--  libc_feupdateenv (&env);
-+  libc_feresetround (&env, changed);
-   return retval;
- }
-diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/s_tan.c glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/s_tan.c
---- glibc-2.12-2-gc4ccff1/sysdeps/ieee754/dbl-64/s_tan.c       2013-06-07 08:35:52.786442462 -0400
-+++ glibc-2.12-2-gc4ccff1.new/sysdeps/ieee754/dbl-64/s_tan.c   2013-06-07 08:32:39.736162619 -0400
-@@ -66,7 +66,8 @@ double tan(double x) {
-   int __branred(double, double *, double *);
-   int __mpranred(double, mp_no *, int);
--  libc_feholdexcept_setround (&env, FE_TONEAREST);
-+  int changed;
-+  libc_feholdsetround (&env, FE_TONEAREST, changed);
-   /* x=+-INF, x=NaN */
-   num.d = x;  ux = num.i[HIGH_HALF];
-@@ -495,7 +496,7 @@ double tan(double x) {
-   goto ret;
-  ret:
--  libc_feupdateenv (&env);
-+  libc_feresetround (&env, changed);
-   return retval;
- }
-diff -pruN glibc-2.12-2-gc4ccff1/sysdeps/x86_64/fpu/math_private.h glibc-2.12-2-gc4ccff1.new/sysdeps/x86_64/fpu/math_private.h
---- glibc-2.12-2-gc4ccff1/sysdeps/x86_64/fpu/math_private.h    2013-06-07 08:35:52.787442488 -0400
-+++ glibc-2.12-2-gc4ccff1.new/sysdeps/x86_64/fpu/math_private.h        2013-06-07 08:34:35.370109759 -0400
-@@ -139,3 +139,31 @@ do {                                                              \
- #undef libc_feupdateenvf
- #define libc_feupdateenvf(e) libc_feupdateenv (e)
- // #define libc_feupdateenvl(e) (void) feupdateenv (e)
-+
-+#undef libc_feholdsetround
-+#define libc_feholdsetround(e, r, c) \
-+({ \
-+  unsigned int mxcsr, new_mxcsr; \
-+  asm ("stmxcsr %0" : "=m" (*&mxcsr)); \
-+  new_mxcsr = (mxcsr & ~0x6000) | ((r) << 3); \
-+  if (__builtin_expect (new_mxcsr != mxcsr, 0)) \
-+    { \
-+      (e)->__mxcsr = mxcsr; \
-+      asm volatile ("ldmxcsr %0" : : "m" (*&new_mxcsr)); \
-+      c = 1; \
-+    } \
-+  else \
-+    c = 0; \
-+})
-+
-+#undef libc_feresetround
-+#define libc_feresetround(e, c) \
-+({ \
-+  if (__builtin_expect (c, 0)) \
-+    { \
-+      unsigned int mxcsr; \
-+      asm ("stmxcsr %0" : "=m" (*&mxcsr)); \
-+      mxcsr = (mxcsr & ~0x6000) | ((e)->__mxcsr & 0x6000); \
-+      asm volatile ("ldmxcsr %0" : : "m" (*&mxcsr)); \
-+    } \
-+})
diff --git a/src/patches/glibc/glibc-rh966778.patch b/src/patches/glibc/glibc-rh966778.patch
deleted file mode 100644 (file)
index d8fd3fa..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-commit 3056dcdb783a177158a5617657d1a33f872358d6
-Author: Ulrich Drepper <drepper@redhat.com>
-Date:   Mon Nov 22 11:11:24 2010 -0500
-
-    Fix multiple nss_compat initgroups() bugs
-    
-    Compat initgroups() is completely broken; the code will always set
-    skip_initgroups_dyn to true, so initgroups() will never be actually
-    called, but due to the nature of the code, setgrent() won't be called
-    either - thus, subsequent invocations of initgroups() will not return
-    the NIS group list anymore.
-    
-    This is a simple patch that makes sure skip_initgroups_dyn is set only
-    in case initgroups is not available; it also attempts to handle the
-    unavailability of other NSS interfaces better.
-    
-    Conflicts:
-    
-       ChangeLog
-
-diff --git a/nis/nss_compat/compat-initgroups.c b/nis/nss_compat/compat-initgroups.c
-index 07a3b92..de8d95c 100644
---- a/nis/nss_compat/compat-initgroups.c
-+++ b/nis/nss_compat/compat-initgroups.c
-@@ -474,18 +474,21 @@ internal_getgrent_r (ent_t *ent, char *buffer, size_t buflen, const char *user,
-         /* If the selected module does not support getgrent_r or
-            initgroups_dyn, abort. We cannot find the needed group
-            entries.  */
--        if (nss_getgrent_r == NULL && nss_initgroups_dyn == NULL)
-+        if (nss_initgroups_dyn == NULL || nss_getgrgid_r == NULL)
-+          {
-+            if (nss_setgrent != NULL)
-+              {
-+                nss_setgrent (1);
-+                ent->need_endgrent = true;
-+              }
-+            ent->skip_initgroups_dyn = true;
-+          }
-+
-+        if (ent->skip_initgroups_dyn && nss_getgrent_r == NULL)
-           return NSS_STATUS_UNAVAIL;
-         ent->files = false;
--        if (nss_initgroups_dyn == NULL && nss_setgrent != NULL)
--          {
--            nss_setgrent (1);
--            ent->need_endgrent = true;
--          }
--        ent->skip_initgroups_dyn = true;
--
-         return getgrent_next_nss (ent, buffer, buflen, user, group,
-                                   start, size, groupsp, limit, errnop);
-       }
diff --git a/src/patches/glibc/glibc-rh970090.patch b/src/patches/glibc/glibc-rh970090.patch
deleted file mode 100644 (file)
index 6010624..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -pruN glibc-2.18/nscd/aicache.c glibc-2.18.new/nscd/aicache.c
---- glibc-2.18/nscd/aicache.c  2013-08-11 04:22:55.000000000 +0530
-+++ glibc-2.18.new/nscd/aicache.c      2013-08-26 11:10:25.843470413 +0530
-@@ -25,6 +25,7 @@
- #include <time.h>
- #include <unistd.h>
- #include <sys/mman.h>
-+#include <resolv/res_hconf.h>
- #include "dbg_log.h"
- #include "nscd.h"
-@@ -100,8 +101,11 @@ addhstaiX (struct database_dyn *db, int
-     no_more = __nss_database_lookup ("hosts", NULL,
-                                    "dns [!UNAVAIL=return] files", &nip);
-+  /* Initialize configurations.  */
-+  if (__builtin_expect (!_res_hconf.initialized, 0))
-+    _res_hconf_init ();
-   if (__res_maybe_init (&_res, 0) == -1)
--          no_more = 1;
-+    no_more = 1;
-   /* If we are looking for both IPv4 and IPv6 address we don't want
-      the lookup functions to automatically promote IPv4 addresses to
diff --git a/src/patches/glibc/glibc-rh970776.patch b/src/patches/glibc/glibc-rh970776.patch
deleted file mode 100644 (file)
index ec2f2a6..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-Patch attached to bugzilla by Ankit Patel, from Red Hat translation team.
-
-Index: glibc-2.12-2-gc4ccff1/po/de.po
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/de.po        2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/po/de.po     2013-07-23 20:35:03.213177408 -0300
-@@ -2396,14 +2396,14 @@ msgstr "Zu viele Benutzer"
- msgid "Disk quota exceeded"
- msgstr "Der zugewiesene Plattenplatz (Quota) ist überschritten"
--#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--#. TRANS system which is due to file system rearrangements on the server host.
--#. TRANS Repairing this condition usually requires unmounting and remounting
--#. TRANS the NFS file system on the local host.
--#: stdio-common/../sysdeps/gnu/errlist.c:779
--#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:181
--msgid "Stale NFS file handle"
--msgstr "Veraltete NFS-Dateizugriffsnummer"
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
-+#: sysdeps/gnu/errlist.c:787
-+msgid "Stale file handle"
-+msgstr "Veraltetes Datei-Handle"
- #. TRANS An attempt was made to NFS-mount a remote file system with a file name that
- #. TRANS already specifies an NFS-mounted file.
-Index: glibc-2.12-2-gc4ccff1/po/es.po
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/es.po        2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/po/es.po     2013-07-23 20:35:03.243175029 -0300
-@@ -2533,14 +2533,14 @@ msgstr "Se ha excedido la cuota de disco
- # Muy bien, he buscado "stale" y por lo que parece es algo que "caduca"
- # o que "vence", como las letras comerciales. Me he decidido por "en desuso".
- #
--#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--#. TRANS system which is due to file system rearrangements on the server host.
--#. TRANS Repairing this condition usually requires unmounting and remounting
--#. TRANS the NFS file system on the local host.
--#: stdio-common/../sysdeps/gnu/errlist.c:779
--#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:181
--msgid "Stale NFS file handle"
--msgstr "`handle' de fichero NFS en desuso"
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
-+#: sysdeps/gnu/errlist.c:787
-+msgid "Stale file handle"
-+msgstr "Identificador de archivos obsoletos"
- #. TRANS An attempt was made to NFS-mount a remote file system with a file name that
- #. TRANS already specifies an NFS-mounted file.
-Index: glibc-2.12-2-gc4ccff1/po/fr.po
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/fr.po        2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/po/fr.po     2013-07-23 20:35:03.250174474 -0300
-@@ -5802,13 +5802,14 @@ msgstr "Trop d'usagers"
- msgid "Disk quota exceeded"
- msgstr "Débordement du quota d'espace disque"
--#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--#. TRANS system which is due to file system rearrangements on the server host.
--#. TRANS Repairing this condition usually requires unmounting and remounting
--#. TRANS the NFS file system on the local host.
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
- #: sysdeps/gnu/errlist.c:787
--msgid "Stale NFS file handle"
--msgstr "Panne d'accès au fichier NFS"
-+msgid "Stale file handle"
-+msgstr "Gestionnaire de fichiers périmés"
- #. TRANS An attempt was made to NFS-mount a remote file system with a file name that
- #. TRANS already specifies an NFS-mounted file.
-Index: glibc-2.12-2-gc4ccff1/po/it.po
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/it.po        2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/po/it.po     2013-07-23 20:35:03.253174237 -0300
-@@ -1662,6 +1662,15 @@ msgstr "Superata la quota di disco"
- msgid "Disk quota exceeded"
- msgstr "Superata la quota di disco"
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
-+#: sysdeps/gnu/errlist.c:787
-+msgid "Stale file handle"
-+msgstr "Gestione file obsoleti"
-+
- #: nscd/nscd.c:86
- msgid "Do not fork and display messages on the current tty"
- msgstr "Non fa fork e stampa i messaggi sul tty corrente"
-Index: glibc-2.12-2-gc4ccff1/po/ja.po
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/ja.po        2013-07-23 04:01:34.628665260 -0300
-+++ glibc-2.12-2-gc4ccff1/po/ja.po     2013-07-23 20:35:03.304170193 -0300
-@@ -2333,14 +2333,14 @@ msgstr "¥æ¡¼¥¶¤¬Â¿¤¹¤®¤Þ¤¹"
- msgid "Disk quota exceeded"
- msgstr "¥Ç¥£¥¹¥¯»ÈÍÑÎÌÀ©¸Â¤òĶ²á¤·¤Þ¤·¤¿"
--#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--#. TRANS system which is due to file system rearrangements on the server host.
--#. TRANS Repairing this condition usually requires unmounting and remounting
--#. TRANS the NFS file system on the local host.
--#: stdio-common/../sysdeps/gnu/errlist.c:779
--#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:181
--msgid "Stale NFS file handle"
--msgstr "¼Â¸úÀ­¤Î¤Ê¤¤NFS¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ç¤¹"
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
-+#: sysdeps/gnu/errlist.c:787
-+msgid "Stale file handle"
-+msgstr "¸Å¤¤¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤Ç¤¹"
- #. TRANS An attempt was made to NFS-mount a remote file system with a file name that
- #. TRANS already specifies an NFS-mounted file.
-Index: glibc-2.12-2-gc4ccff1/po/ko.po
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/ko.po        2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/po/ko.po     2013-07-23 20:35:03.311169638 -0300
-@@ -5803,13 +5803,14 @@ msgstr "사용자가 너무 많음"
- msgid "Disk quota exceeded"
- msgstr "디스크 할당량이 초과됨"
--#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--#. TRANS system which is due to file system rearrangements on the server host.
--#. TRANS Repairing this condition usually requires unmounting and remounting
--#. TRANS the NFS file system on the local host.
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
- #: sysdeps/gnu/errlist.c:787
--msgid "Stale NFS file handle"
--msgstr "끊어진 NFS 파일 핸들"
-+msgid "Stale file handle"
-+msgstr "오래된 파일 처리"
- #. TRANS An attempt was made to NFS-mount a remote file system with a file name that
- #. TRANS already specifies an NFS-mounted file.
-Index: glibc-2.12-2-gc4ccff1/po/libc.pot
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/libc.pot     2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/po/libc.pot  2013-07-23 20:35:03.326168449 -0300
-@@ -5696,12 +5696,13 @@ msgstr ""
- msgid "Disk quota exceeded"
- msgstr ""
--#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--#. TRANS system which is due to file system rearrangements on the server host.
--#. TRANS Repairing this condition usually requires unmounting and remounting
--#. TRANS the NFS file system on the local host.
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
- #: sysdeps/gnu/errlist.c:787
--msgid "Stale NFS file handle"
-+msgid "Stale file handle"
- msgstr ""
- #. TRANS An attempt was made to NFS-mount a remote file system with a file name that
-Index: glibc-2.12-2-gc4ccff1/po/pt_BR.po
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/pt_BR.po     2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/po/pt_BR.po  2013-07-23 20:35:03.331168053 -0300
-@@ -2287,13 +2287,14 @@ msgstr "Erro de Srmount"
- msgid "Stack fault"
- msgstr "Falha de pilha"
--#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--#. TRANS system which is due to file system rearrangements on the server host.
--#. TRANS Repairing this condition usually requires unmounting and remounting
--#. TRANS the NFS file system on the local host.
--#: stdio-common/../sysdeps/gnu/errlist.c:506
--msgid "Stale NFS file handle"
--msgstr "Manipulador de arquivo NFS corrompido"
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
-+#: sysdeps/gnu/errlist.c:787
-+msgid "Stale file handle"
-+msgstr "Manipulador de arquivo obsoleto"
- #: nscd/nscd.c:81
- msgid "Start NUMBER threads"
-Index: glibc-2.12-2-gc4ccff1/po/ru.po
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/ru.po        2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/po/ru.po     2013-07-23 20:35:03.338167498 -0300
-@@ -5798,13 +5798,14 @@ msgstr "Слишком много пол
- msgid "Disk quota exceeded"
- msgstr "Превышена дисковая квота"
--#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--#. TRANS system which is due to file system rearrangements on the server host.
--#. TRANS Repairing this condition usually requires unmounting and remounting
--#. TRANS the NFS file system on the local host.
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
- #: sysdeps/gnu/errlist.c:787
--msgid "Stale NFS file handle"
--msgstr "Устаревший хэндл файла NFS"
-+msgid "Stale file handle"
-+msgstr "Устаревший дескриптор файла"
- #. TRANS An attempt was made to NFS-mount a remote file system with a file name that
- #. TRANS already specifies an NFS-mounted file.
-Index: glibc-2.12-2-gc4ccff1/po/zh_CN.po
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/zh_CN.po     2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/po/zh_CN.po  2013-07-23 20:35:03.344167022 -0300
-@@ -5519,13 +5519,14 @@ msgstr "用户过多"
- msgid "Disk quota exceeded"
- msgstr "超出磁盘限额"
--#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--#. TRANS system which is due to file system rearrangements on the server host.
--#. TRANS Repairing this condition usually requires unmounting and remounting
--#. TRANS the NFS file system on the local host.
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
- #: sysdeps/gnu/errlist.c:787
--msgid "Stale NFS file handle"
--msgstr ""
-+msgid "Stale file handle"
-+msgstr "失效文件句柄"
- #. TRANS An attempt was made to NFS-mount a remote file system with a file name that
- #. TRANS already specifies an NFS-mounted file.
-Index: glibc-2.12-2-gc4ccff1/po/zh_TW.po
-===================================================================
---- glibc-2.12-2-gc4ccff1.orig/po/zh_TW.po     2010-05-04 08:27:23.000000000 -0300
-+++ glibc-2.12-2-gc4ccff1/po/zh_TW.po  2013-07-23 20:35:03.349166626 -0300
-@@ -2333,14 +2333,14 @@ msgstr "太多使用者"
- msgid "Disk quota exceeded"
- msgstr "硬碟 quota 滿了"
--#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
--#. TRANS system which is due to file system rearrangements on the server host.
--#. TRANS Repairing this condition usually requires unmounting and remounting
--#. TRANS the NFS file system on the local host.
--#: stdio-common/../sysdeps/gnu/errlist.c:779
--#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:181
--msgid "Stale NFS file handle"
--msgstr "過舊的 NFS 檔案控制碼"
-+#. TRANS Stale file handle.  This indicates an internal confusion in the
-+#. TRANS file system which is due to file system rearrangements on the server host
-+#. TRANS for NFS filesystems or corruption in other filesystems.
-+#. TRANS Repairing this condition usually requires unmounting, possibly
-+#. TRANS repairing and remounting the file system.
-+#: sysdeps/gnu/errlist.c:787
-+msgid "Stale file handle"
-+msgstr "過舊的檔案處理"
- #. TRANS An attempt was made to NFS-mount a remote file system with a file name that
- #. TRANS already specifies an NFS-mounted file.
diff --git a/src/patches/glibc/glibc-rh978098.patch b/src/patches/glibc/glibc-rh978098.patch
deleted file mode 100644 (file)
index 0b53dcc..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-#
-# Based on commit e6c61494125126d2ba77e5d99f83887a2ed49783.
-#
-# 2011-04-10  Ulrich Drepper  <drepper@gmail.com>
-# 
-#      [BZ #12650]
-#      * sysdeps/i386/dl-tls.h: Define TLS_DTV_UNALLOCATED.
-#      * sysdeps/ia64/dl-tls.h: Likewise.
-#      * sysdeps/powerpc/dl-tls.h: Likewise.
-#      * sysdeps/s390/dl-tls.h: Likewise.
-#      * sysdeps/sh/dl-tls.h: Likewise.
-#      * sysdeps/sparc/dl-tls.h: Likewise.
-#      * sysdeps/x86_64/dl-tls.h: Likewise.
-#      * elf/dl-tls.c: Don't define TLS_DTV_UNALLOCATED here.
-#
-diff -urN glibc-2.12-2-gc4ccff1/elf/dl-tls.c glibc-2.12-2-gc4ccff1.mod/elf/dl-tls.c
---- glibc-2.12-2-gc4ccff1/elf/dl-tls.c 2015-02-18 05:16:56.087096028 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/elf/dl-tls.c     2015-02-18 05:21:04.018424445 -0500
-@@ -33,9 +33,6 @@
-    to allow dynamic loading of modules defining IE-model TLS data.  */
- #define TLS_STATIC_SURPLUS    64 + DL_NNS * 100
--/* Value used for dtv entries for which the allocation is delayed.  */
--#define TLS_DTV_UNALLOCATED   ((void *) -1l)
--
- /* Out-of-memory handler.  */
- #ifdef SHARED
-diff -urN glibc-2.12-2-gc4ccff1/nptl/allocatestack.c glibc-2.12-2-gc4ccff1.mod/nptl/allocatestack.c
---- glibc-2.12-2-gc4ccff1/nptl/allocatestack.c 2015-02-18 05:16:56.101095594 -0500
-+++ glibc-2.12-2-gc4ccff1.mod/nptl/allocatestack.c     2015-02-18 05:21:04.019424414 -0500
-@@ -26,6 +26,7 @@
- #include <sys/mman.h>
- #include <sys/param.h>
- #include <dl-sysdep.h>
-+#include <dl-tls.h>
- #include <tls.h>
- #include <list.h>
- #include <lowlevellock.h>
-@@ -242,6 +243,10 @@
-   /* Clear the DTV.  */
-   dtv_t *dtv = GET_DTV (TLS_TPADJ (result));
-+  for (size_t cnt = 0; cnt < dtv[-1].counter; ++cnt)
-+    if (! dtv[1 + cnt].pointer.is_static
-+      && dtv[1 + cnt].pointer.val != TLS_DTV_UNALLOCATED)
-+      free (dtv[1 + cnt].pointer.val);
-   memset (dtv, '\0', (dtv[-1].counter + 1) * sizeof (dtv_t));
-   /* Re-initialize the TLS.  */
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/i386/dl-tls.h glibc-2.12-2-gc4ccff1.mod/sysdeps/i386/dl-tls.h
---- glibc-2.12-2-gc4ccff1/sysdeps/i386/dl-tls.h        2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/i386/dl-tls.h    2015-02-18 05:21:04.019424414 -0500
-@@ -58,3 +58,6 @@
- # endif
- #endif
-+
-+/* Value used for dtv entries for which the allocation is delayed.  */
-+#define TLS_DTV_UNALLOCATED   ((void *) -1l)
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/ia64/dl-tls.h glibc-2.12-2-gc4ccff1.mod/sysdeps/ia64/dl-tls.h
---- glibc-2.12-2-gc4ccff1/sysdeps/ia64/dl-tls.h        2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/ia64/dl-tls.h    2015-02-18 05:21:04.019424414 -0500
-@@ -28,3 +28,6 @@
- #define DONT_USE_TLS_INDEX    1
- extern void *__tls_get_addr (size_t m, size_t offset);
-+
-+/* Value used for dtv entries for which the allocation is delayed.  */
-+#define TLS_DTV_UNALLOCATED   ((void *) -1l)
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/powerpc/dl-tls.h glibc-2.12-2-gc4ccff1.mod/sysdeps/powerpc/dl-tls.h
---- glibc-2.12-2-gc4ccff1/sysdeps/powerpc/dl-tls.h     2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/powerpc/dl-tls.h 2015-02-18 05:21:04.019424414 -0500
-@@ -47,3 +47,6 @@
- # define GET_ADDR_OFFSET      (ti->ti_offset + TLS_DTV_OFFSET)
- # define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
- #endif
-+
-+/* Value used for dtv entries for which the allocation is delayed.  */
-+#define TLS_DTV_UNALLOCATED   ((void *) -1l)
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/s390/dl-tls.h glibc-2.12-2-gc4ccff1.mod/sysdeps/s390/dl-tls.h
---- glibc-2.12-2-gc4ccff1/sysdeps/s390/dl-tls.h        2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/s390/dl-tls.h    2015-02-18 05:21:04.019424414 -0500
-@@ -72,6 +72,9 @@
- # define __TLS_GET_ADDR(__ti) \
-   ({ extern char _GLOBAL_OFFSET_TABLE_[] attribute_hidden;              \
-      (void *) __tls_get_offset ((char *) (__ti) - _GLOBAL_OFFSET_TABLE_)  \
--     + (unsigned long) __builtin_thread_pointer (); }) 
-+     + (unsigned long) __builtin_thread_pointer (); })
- #endif
-+
-+/* Value used for dtv entries for which the allocation is delayed.  */
-+#define TLS_DTV_UNALLOCATED   ((void *) -1l)
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/sh/dl-tls.h glibc-2.12-2-gc4ccff1.mod/sysdeps/sh/dl-tls.h
---- glibc-2.12-2-gc4ccff1/sysdeps/sh/dl-tls.h  2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/sh/dl-tls.h      2015-02-18 05:21:04.019424414 -0500
-@@ -27,3 +27,6 @@
- extern void *__tls_get_addr (tls_index *ti);
-+
-+/* Value used for dtv entries for which the allocation is delayed.  */
-+#define TLS_DTV_UNALLOCATED   ((void *) -1l)
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/sparc/dl-tls.h glibc-2.12-2-gc4ccff1.mod/sysdeps/sparc/dl-tls.h
---- glibc-2.12-2-gc4ccff1/sysdeps/sparc/dl-tls.h       2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/sparc/dl-tls.h   2015-02-18 05:21:04.019424414 -0500
-@@ -27,3 +27,6 @@
- extern void *__tls_get_addr (tls_index *ti);
-+
-+/* Value used for dtv entries for which the allocation is delayed.  */
-+#define TLS_DTV_UNALLOCATED   ((void *) -1l)
-diff -urN glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-tls.h glibc-2.12-2-gc4ccff1.mod/sysdeps/x86_64/dl-tls.h
---- glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-tls.h      2010-05-04 07:27:23.000000000 -0400
-+++ glibc-2.12-2-gc4ccff1.mod/sysdeps/x86_64/dl-tls.h  2015-02-18 05:21:04.019424414 -0500
-@@ -27,3 +27,6 @@
- extern void *__tls_get_addr (tls_index *ti);
-+
-+/* Value used for dtv entries for which the allocation is delayed.  */
-+#define TLS_DTV_UNALLOCATED   ((void *) -1l)
diff --git a/src/patches/glibc/glibc-rh981942.patch b/src/patches/glibc/glibc-rh981942.patch
deleted file mode 100644 (file)
index cbe1ab8..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-commit 2e96f1c73b06e81da59ef7fffa426dc201875f31
-Author: Andreas Schwab <schwab@redhat.com>
-Date:   Thu Aug 4 15:42:10 2011 -0400
-
-    Fix encoding name for IDN in getaddrinfo
-
-diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
-index 6d574c5..a5aafe9 100644
---- a/sysdeps/posix/getaddrinfo.c
-+++ b/sysdeps/posix/getaddrinfo.c
-@@ -432,7 +432,10 @@ gaih_inet (const char *name, const struct gaih_service *service,
-         /* In case the output string is the same as the input string
-            no new string has been allocated.  */
-         if (p != name)
--          malloc_name = true;
-+          {
-+            name = p;
-+            malloc_name = true;
-+          }
-       }
- #endif
diff --git a/src/patches/glibc/glibc-rh988931.patch b/src/patches/glibc/glibc-rh988931.patch
deleted file mode 100644 (file)
index 38594a4..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-commit e23fe25b33324a9ea992276c1a4f04127bf9ba4b
-Author: Andreas Schwab <schwab@redhat.com>
-Date:   Sun Feb 20 07:24:56 2011 -0500
-
-    Move setting variable in relro data earlier in ld.so.
-
-diff --git a/elf/rtld.c b/elf/rtld.c
-index 8510380..174954b 100644
---- a/elf/rtld.c
-+++ b/elf/rtld.c
-@@ -2179,6 +2179,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
-      we need it in the memory handling later.  */
-   GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist;
-+  /* Remember the last search directory added at startup, now that
-+     malloc will no longer be the one from dl-minimal.c.  */
-+  GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
-+
-   if (prelinked)
-     {
-       if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL)
-@@ -2298,9 +2302,8 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
-                         lossage);
-     }
--  /* Remember the last search directory added at startup, now that
--     malloc will no longer be the one from dl-minimal.c.  */
--  GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
-+  /* Make sure no new search directories have been added.  */
-+  assert (GLRO(dl_init_all_dirs) == GL(dl_all_dirs));
-   if (! prelinked && rtld_multiple_ref)
-     {
diff --git a/src/patches/glibc/glibc-rh995972.patch b/src/patches/glibc/glibc-rh995972.patch
deleted file mode 100644 (file)
index 0178bca..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-commit d26dfc60edc8c6dd160eefff16a734152a835ca0
-Author: Martin von Gagern <Martin.vGagern@gmx.net>
-Date:   Sat May 14 21:25:43 2011 -0400
-
-    Fix handling of static TLS in dlopen'ed objects
-    
-    When dynamically loading a library along with several dependencies, calls to
-    _dl_add_to_slotinfo and _dl_update_slotinfo can become intermixed. As a
-    consequence, _dl_update_slotinfo will update the generation counter of the dtv
-    although not all of the slots belonging to that generation have been added.
-    Subsequent calls to _dl_add_to_slotinfo will add more slots to the same
-    generation, for which no storage will be allocated, as the dtv generation
-    checks will claim no work is necessary. This will lead to uninitialized dtv
-    entries and will likely cause a SIGSEGV when thread local variables are
-    accessed.
-
-diff --git a/elf/Makefile b/elf/Makefile
-index 8d9657d..6efb86c 100644
---- a/elf/Makefile
-+++ b/elf/Makefile
-@@ -76,6 +76,7 @@ distribute   := rtld-Rules \
-                  tst-tlsmod12.c tst-tls10.h tst-alignmod.c tst-alignmod2.c \
-                  circlemod1.c circlemod1a.c circlemod2.c circlemod2a.c \
-                  circlemod3.c circlemod3a.c nodlopenmod2.c \
-+                 tst-tls19mod1.c tst-tls19mod2.c tst-tls19mod3.c \
-                  tls-macros.h \
-                  reldep8mod1.c reldep8mod2.c reldep8mod3.c \
-                  nodel2mod1.c nodel2mod2.c nodel2mod3.c \
-@@ -194,7 +195,7 @@ tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
-        restest2 next dblload dblunload reldep5 reldep6 reldep7 reldep8 \
-        circleload1 tst-tls3 tst-tls4 tst-tls5 tst-tls6 tst-tls7 tst-tls8 \
-        tst-tls10 tst-tls11 tst-tls12 tst-tls13 tst-tls14 tst-tls15 \
--       tst-tls16 tst-tls17 tst-tls18 tst-tls-dlinfo \
-+       tst-tls16 tst-tls17 tst-tls18 tst-tls19 tst-tls-dlinfo \
-        tst-align tst-align2 $(tests-execstack-$(have-z-execstack)) \
-        tst-dlmodcount tst-dlopenrpath tst-deep1 \
-        tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
-@@ -240,6 +241,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
-               $(patsubst %,tst-tlsmod17a%,$(tlsmod17a-suffixes)) \
-               tst-tlsmod17b \
-               $(patsubst %,tst-tlsmod18a%,$(tlsmod18a-suffixes)) \
-+              tst-tls19mod1 tst-tls19mod2 tst-tls19mod3 \
-               circlemod1 circlemod1a circlemod2 circlemod2a \
-               circlemod3 circlemod3a \
-               reldep8mod1 reldep8mod2 reldep8mod3 \
-@@ -525,6 +527,8 @@ $(objpfx)tst-tlsmod13a.so: $(objpfx)tst-tlsmod13.so
- # For tst-tls9-static, make sure the modules it dlopens have libc.so in DT_NEEDED
- $(objpfx)tst-tlsmod5.so: $(common-objpfx)libc.so
- $(objpfx)tst-tlsmod6.so: $(common-objpfx)libc.so
-+$(objpfx)tst-tls19mod1.so: $(objpfx)tst-tls19mod2.so $(objpfx)tst-tls19mod3.so
-+$(objpfx)tst-tls19mod3.so: $(objpfx)ld.so
- $(objpfx)reldep8mod3.so: $(objpfx)reldep8mod1.so $(objpfx)reldep8mod2.so
- $(objpfx)nodel2mod3.so: $(objpfx)nodel2mod1.so $(objpfx)nodel2mod2.so
- $(objpfx)reldep9mod2.so: $(objpfx)reldep9mod1.so
-@@ -822,6 +826,9 @@ $(patsubst %,$(objpfx)%.os,$(tlsmod18a-modules)): $(objpfx)tst-tlsmod18a%.os : t
-       $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ -DN=$* -DNOT_IN_libc=1 $<
- $(patsubst %,$(objpfx)tst-tlsmod18a%.so,$(tlsmod18a-suffixes)): $(objpfx)tst-tlsmod18a%.so: $(objpfx)ld.so
-+$(objpfx)tst-tls19: $(libdl)
-+$(objpfx)tst-tls19.out: $(objpfx)tst-tls19mod1.so
-+
- CFLAGS-tst-align.c = $(stack-align-test-flags)
- CFLAGS-tst-align2.c = $(stack-align-test-flags)
- CFLAGS-tst-alignmod.c = $(stack-align-test-flags)
-diff --git a/elf/dl-open.c b/elf/dl-open.c
-index cf8e8cc..8d90b56 100644
---- a/elf/dl-open.c
-+++ b/elf/dl-open.c
-@@ -347,6 +347,7 @@ dl_open_worker (void *a)
-   /* If the file is not loaded now as a dependency, add the search
-      list of the newly loaded object to the scope.  */
-   bool any_tls = false;
-+  unsigned int first_static_tls = new->l_searchlist.r_nlist;
-   for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i)
-     {
-       struct link_map *imap = new->l_searchlist.r_list[i];
-@@ -425,30 +426,9 @@ dl_open_worker (void *a)
-            might have to increase its size.  */
-         _dl_add_to_slotinfo (imap);
--        if (imap->l_need_tls_init)
--          {
--            /* For static TLS we have to allocate the memory here
--               and now.  This includes allocating memory in the DTV.
--               But we cannot change any DTV other than our own. So,
--               if we cannot guarantee that there is room in the DTV
--               we don't even try it and fail the load.
--
--               XXX We could track the minimum DTV slots allocated in
--               all threads.  */
--            if (! RTLD_SINGLE_THREAD_P && imap->l_tls_modid > DTV_SURPLUS)
--              _dl_signal_error (0, "dlopen", NULL, N_("\
--cannot load any more object with static TLS"));
--
--            imap->l_need_tls_init = 0;
--#ifdef SHARED
--            /* Update the slot information data for at least the
--               generation of the DSO we are allocating data for.  */
--            _dl_update_slotinfo (imap->l_tls_modid);
--#endif
--
--            GL(dl_init_static_tls) (imap);
--            assert (imap->l_need_tls_init == 0);
--          }
-+        if (imap->l_need_tls_init
-+            && first_static_tls == new->l_searchlist.r_nlist)
-+          first_static_tls = i;
-         /* We have to bump the generation counter.  */
-         any_tls = true;
-@@ -460,6 +440,40 @@ cannot load any more object with static TLS"));
-     _dl_fatal_printf (N_("\
- TLS generation counter wrapped!  Please report this."));
-+  /* We need a second pass for static tls data, because _dl_update_slotinfo
-+     must not be run while calls to _dl_add_to_slotinfo are still pending. */
-+  for (unsigned int i = first_static_tls; i < new->l_searchlist.r_nlist; ++i)
-+    {
-+      struct link_map *imap = new->l_searchlist.r_list[i];
-+
-+      if (imap->l_need_tls_init
-+        && ! imap->l_init_called
-+        && imap->l_tls_blocksize > 0)
-+      {
-+        /* For static TLS we have to allocate the memory here and
-+           now.  This includes allocating memory in the DTV.  But we
-+           cannot change any DTV other than our own. So, if we
-+           cannot guarantee that there is room in the DTV we don't
-+           even try it and fail the load.
-+
-+           XXX We could track the minimum DTV slots allocated in
-+           all threads.  */
-+        if (! RTLD_SINGLE_THREAD_P && imap->l_tls_modid > DTV_SURPLUS)
-+          _dl_signal_error (0, "dlopen", NULL, N_("\
-+cannot load any more object with static TLS"));
-+
-+        imap->l_need_tls_init = 0;
-+#ifdef SHARED
-+        /* Update the slot information data for at least the
-+           generation of the DSO we are allocating data for.  */
-+        _dl_update_slotinfo (imap->l_tls_modid);
-+#endif
-+
-+        GL(dl_init_static_tls) (imap);
-+        assert (imap->l_need_tls_init == 0);
-+      }
-+    }
-+
-   /* Notify the debugger all new objects have been relocated.  */
-   if (relocation_in_progress)
-     LIBC_PROBE (rtld_reloc_complete, 3, args->nsid, r, new);
-diff --git a/elf/tst-tls19.c b/elf/tst-tls19.c
-new file mode 100644
-index 0000000..acbc1d6
---- /dev/null
-+++ b/elf/tst-tls19.c
-@@ -0,0 +1,27 @@
-+// BZ 12453
-+#include <stdio.h>
-+#include <dlfcn.h>
-+
-+
-+static int
-+do_test (void)
-+{
-+  void* dl = dlopen ("tst-tls19mod1.so", RTLD_LAZY | RTLD_GLOBAL);
-+  if (dl == NULL)
-+    {
-+      printf ("Error loading tst-tls19mod1.so: %s\n", dlerror ());
-+      return 1;
-+    }
-+
-+  int (*fn) (void) = dlsym (dl, "foo");
-+  if (fn == NULL)
-+    {
-+      printf("Error obtaining symbol foo\n");
-+      return 1;
-+    }
-+
-+  return fn ();
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff --git a/elf/tst-tls19mod1.c b/elf/tst-tls19mod1.c
-new file mode 100644
-index 0000000..2790097
---- /dev/null
-+++ b/elf/tst-tls19mod1.c
-@@ -0,0 +1,15 @@
-+#include <stdio.h>
-+
-+extern int bar (void);
-+extern int baz (void);
-+
-+int
-+foo (void)
-+{
-+  int v1 = bar ();
-+  int v2 = baz ();
-+
-+  printf ("bar=%d, baz=%d\n", v1, v2);
-+
-+  return v1 != 666 || v2 != 42;
-+}
-diff --git a/elf/tst-tls19mod2.c b/elf/tst-tls19mod2.c
-new file mode 100644
-index 0000000..cae702f
---- /dev/null
-+++ b/elf/tst-tls19mod2.c
-@@ -0,0 +1,13 @@
-+static int __thread tbar __attribute__ ((tls_model ("initial-exec"))) = 666;
-+
-+void
-+setter (int a)
-+{
-+  tbar = a;
-+}
-+
-+int
-+bar (void)
-+{
-+  return tbar;
-+}
-diff --git a/elf/tst-tls19mod3.c b/elf/tst-tls19mod3.c
-new file mode 100644
-index 0000000..e7b2801
---- /dev/null
-+++ b/elf/tst-tls19mod3.c
-@@ -0,0 +1,16 @@
-+#include <stdio.h>
-+
-+static int __thread tbaz __attribute__ ((tls_model ("local-dynamic"))) = 42;
-+
-+void
-+setter2 (int a)
-+{
-+  tbaz = a;
-+}
-+
-+int
-+baz (void)
-+{
-+  printf ("&tbaz=%p\n", &tbaz);
-+  return tbaz;
-+}
diff --git a/src/patches/grub-2.00_ignore_missing_symtab.patch b/src/patches/grub-2.00_ignore_missing_symtab.patch
new file mode 100644 (file)
index 0000000..fbaa26e
--- /dev/null
@@ -0,0 +1,40 @@
+diff -Naur grub-2.00.org/grub-core/kern/dl.c grub-2.00/grub-core/kern/dl.c
+--- grub-2.00.org/grub-core/kern/dl.c  2012-06-22 17:26:38.000000000 +0200
++++ grub-2.00/grub-core/kern/dl.c      2017-07-05 10:45:25.501645684 +0200
+@@ -354,8 +354,11 @@
+     if (s->sh_type == SHT_SYMTAB)
+       break;
++  /* Module without symbol table may still be used to pull in dependencies.
++     We verify at build time that such modules do not contain any relocations
++     that may reference symbol table. */
+   if (i == e->e_shnum)
+-    return grub_error (GRUB_ERR_BAD_MODULE, N_("no symbol table"));
++     return GRUB_ERR_NONE;
+ #ifdef GRUB_MODULES_MACHINE_READONLY
+   mod->symtab = grub_malloc (s->sh_size);
+diff -Naur grub-2.00.org/grub-core/kern/i386/dl.c grub-2.00/grub-core/kern/i386/dl.c
+--- grub-2.00.org/grub-core/kern/i386/dl.c     2012-02-26 12:14:21.000000000 +0100
++++ grub-2.00/grub-core/kern/i386/dl.c 2017-07-05 17:01:43.333955065 +0200
+@@ -55,7 +55,7 @@
+       break;
+   if (i == e->e_shnum)
+-    return grub_error (GRUB_ERR_BAD_MODULE, N_("no symbol table"));
++    return GRUB_ERR_NONE;
+   entsize = s->sh_entsize;
+diff -Naur grub-2.00.org/grub-core/kern/x86_64/dl.c grub-2.00/grub-core/kern/x86_64/dl.c
+--- grub-2.00.org/grub-core/kern/x86_64/dl.c   2012-02-26 12:14:56.000000000 +0100
++++ grub-2.00/grub-core/kern/x86_64/dl.c       2017-07-05 17:02:23.374574458 +0200
+@@ -55,7 +55,7 @@
+       break;
+   if (i == e->e_shnum)
+-    return grub_error (GRUB_ERR_BAD_MODULE, N_("no symbol table"));
++    return GRUB_ERR_NONE;
+   entsize = s->sh_entsize;
diff --git a/src/patches/grub2-remove-gets.patch b/src/patches/grub2-remove-gets.patch
new file mode 100644 (file)
index 0000000..0da71b3
--- /dev/null
@@ -0,0 +1,21 @@
+ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Upstream-Status: Pending
+Index: grub-1.99/grub-core/gnulib/stdio.in.h
+===================================================================
+--- grub-1.99.orig/grub-core/gnulib/stdio.in.h 2010-12-01 06:45:43.000000000 -0800
++++ grub-1.99/grub-core/gnulib/stdio.in.h      2012-07-04 12:25:02.057099107 -0700
+@@ -140,8 +140,10 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
++#if defined gets
+ #undef gets
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
+ #if @GNULIB_FOPEN@
+ # if @REPLACE_FOPEN@
diff --git a/src/patches/gzip-1.3.5-security_fixes-1.patch b/src/patches/gzip-1.3.5-security_fixes-1.patch
deleted file mode 100644 (file)
index 7350899..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-Submitted By: Matthew Burgess (matthew at linuxfromscratch dot org)
-Origin: http://security.ubuntu.com/ubuntu/pool/main/g/gzip/gzip_1.3.5-9ubuntu3.1.diff.gz
-Date: 2005-05-12
-Initial package version: 1.3.5
-Description: Fix two security vulnerabilities in gzip: A path traversal
-bug when using the -N option (CAN-2005-1228) and a race condition in the
-file permission restore code (CAN-2005-0998).
-
-diff -Naur gzip-1.3.5.orig/gzip.c gzip-1.3.5/gzip.c
---- gzip-1.3.5.orig/gzip.c     2002-09-28 07:38:43.000000000 +0000
-+++ gzip-1.3.5/gzip.c  2005-05-12 19:15:14.796031360 +0000
-@@ -875,8 +875,11 @@
-     }
-     close(ifd);
--    if (!to_stdout && close(ofd)) {
--      write_error();
-+    if (!to_stdout) {
-+         /* Copy modes, times, ownership, and remove the input file */
-+         copy_stat(&istat);
-+         if (close(ofd))
-+            write_error();
-     }
-     if (method == -1) {
-       if (!to_stdout) xunlink (ofname);
-@@ -896,10 +899,6 @@
-       }
-       fprintf(stderr, "\n");
-     }
--    /* Copy modes, times, ownership, and remove the input file */
--    if (!to_stdout) {
--      copy_stat(&istat);
--    }
- }
- /* ========================================================================
-@@ -1324,6 +1323,8 @@
-                       error("corrupted input -- file name too large");
-                   }
-               }
-+              char *base2 = base_name (base);
-+              strcpy(base, base2);
-                 /* If necessary, adapt the name to local OS conventions: */
-                 if (!list) {
-                    MAKE_LEGAL_NAME(base);
-@@ -1725,7 +1726,7 @@
-     reset_times(ofname, ifstat);
- #endif
-     /* Copy the protection modes */
--    if (chmod(ofname, ifstat->st_mode & 07777)) {
-+    if (fchmod(ofd, ifstat->st_mode & 07777)) {
-       int e = errno;
-       WARN((stderr, "%s: ", progname));
-       if (!quiet) {
-@@ -1734,7 +1735,7 @@
-       }
-     }
- #ifndef NO_CHOWN
--    chown(ofname, ifstat->st_uid, ifstat->st_gid);  /* Copy ownership */
-+    fchown(ofd, ifstat->st_uid, ifstat->st_gid);  /* Copy ownership */
- #endif
-     remove_ofname = 0;
-     /* It's now safe to remove the input file: */
diff --git a/src/patches/imspector-20101008-ssl.patch b/src/patches/imspector-20101008-ssl.patch
deleted file mode 100644 (file)
index 32ac766..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- imspector/sslstate.h       2010-02-23 18:21:56.000000000 +0100
-+++ imspector/sslstate.h       2013-12-14 15:40:04.796370688 +0100
-@@ -52,7 +52,7 @@
-               int sslverify;            //!< Our VERIFY_ choice.
-               
-               bool localdebugmode;      //!< Saves us from passing this around.
--              SSL_METHOD *method;       //!< openssl method handle.
-+              const SSL_METHOD *method;       //!< openssl method handle.
-               SSL_CTX *connectctx;      //!< Our IM server-sde CTX.
-               SSL_CTX *ctx;             //!< Our IM client-side CTX.
-
diff --git a/src/patches/linux/linux-3.14.79-amba-fix.patch b/src/patches/linux/linux-3.14.79-amba-fix.patch
new file mode 100644 (file)
index 0000000..a2cb732
--- /dev/null
@@ -0,0 +1,11 @@
+diff -Naur linux-3.14.79.ORG/include/linux/mod_devicetable.h linux-3.14.79/include/linux/mod_devicetable.h
+--- linux-3.14.79.ORG/include/linux/mod_devicetable.h  2017-06-16 19:58:41.000000000 +0200
++++ linux-3.14.79/include/linux/mod_devicetable.h      2017-06-19 19:40:59.374205140 +0200
+@@ -538,6 +538,7 @@
+  *    == id.
+  * @data: Private data used by the driver.
+  */
++#define amba_device_id amba_id
+ struct amba_id {
+       unsigned int            id;
+       unsigned int            mask;
diff --git a/src/patches/linux/linux-3.14.79-rpi-suspend-not-inline.patch b/src/patches/linux/linux-3.14.79-rpi-suspend-not-inline.patch
new file mode 100644 (file)
index 0000000..da7cf80
--- /dev/null
@@ -0,0 +1,12 @@
+diff -Naur linux-3.14.79.ORG/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c linux-3.14.79/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
+--- linux-3.14.79.ORG/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c       2017-06-16 19:58:56.000000000 +0200
++++ linux-3.14.79/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c   2017-06-17 09:32:51.645096482 +0200
+@@ -1776,7 +1776,7 @@
+ ** VC_RESUME_FAILED - Currently unused - no mechanism to fail resume exists.
+ */
+-inline void
++void
+ set_suspend_state(VCHIQ_ARM_STATE_T *arm_state,
+       enum vc_suspend_status new_state)
+ {
diff --git a/src/patches/mpfr-3.1.3-upstream_fixes-1.patch b/src/patches/mpfr-3.1.3-upstream_fixes-1.patch
deleted file mode 100644 (file)
index 949ff73..0000000
+++ /dev/null
@@ -1,1707 +0,0 @@
-Submitted By:            Bruce Dubbs <bdubbs_at_linuxfromscratch_dot_org>
-Date:                    2015-08-25
-Initial Package Version: 3.3.3
-Upstream Status:         Already in upstream patch repo
-Origin:                  Upstream http://www.mpfr.org/mpfr-current/allpatches
-                         as of 2015-08-25.
-Description:             This patch contains bug fixes identified upstream.
-
-diff -Naurd mpfr-3.1.3-a/PATCHES mpfr-3.1.3-b/PATCHES
---- mpfr-3.1.3-a/PATCHES       2015-07-02 10:49:23.950112879 +0000
-+++ mpfr-3.1.3-b/PATCHES       2015-07-02 10:49:24.042113845 +0000
-@@ -0,0 +1 @@
-+lngamma-and-doc
-diff -Naurd mpfr-3.1.3-a/VERSION mpfr-3.1.3-b/VERSION
---- mpfr-3.1.3-a/VERSION       2015-06-19 19:55:09.000000000 +0000
-+++ mpfr-3.1.3-b/VERSION       2015-07-02 10:49:24.042113845 +0000
-@@ -1 +1 @@
--3.1.3
-+3.1.3-p1
-diff -Naurd mpfr-3.1.3-a/doc/mpfr.texi mpfr-3.1.3-b/doc/mpfr.texi
---- mpfr-3.1.3-a/doc/mpfr.texi 2015-06-19 19:55:11.000000000 +0000
-+++ mpfr-3.1.3-b/doc/mpfr.texi 2015-07-02 10:49:24.018113593 +0000
-@@ -810,13 +810,17 @@
- When the input point is in the closure of the domain of the mathematical
- function and an input argument is +0 (resp.@: @minus{}0), one considers
- the limit when the corresponding argument approaches 0 from above
--(resp.@: below). If the limit is not defined (e.g., @code{mpfr_log} on
--@minus{}0), the behavior is specified in the description of the MPFR function.
-+(resp.@: below), if possible. If the limit is not defined (e.g.,
-+@code{mpfr_sqrt} and @code{mpfr_log} on @minus{}0), the behavior is
-+specified in the description of the MPFR function, but must be consistent
-+with the rule from the above paragraph (e.g., @code{mpfr_log} on @pom{}0
-+gives @minus{}Inf).
- When the result is equal to 0, its sign is determined by considering the
- limit as if the input point were not in the domain: If one approaches 0
- from above (resp.@: below), the result is +0 (resp.@: @minus{}0);
--for example, @code{mpfr_sin} on +0 gives +0.
-+for example, @code{mpfr_sin} on @minus{}0 gives @minus{}0 and
-+@code{mpfr_acos} on 1 gives +0 (in all rounding modes).
- In the other cases, the sign is specified in the description of the MPFR
- function; for example @code{mpfr_max} on @minus{}0 and +0 gives +0.
-@@ -832,8 +836,8 @@
- @c that advantages in practice), like for any bug fix.
- Example: @code{mpfr_hypot} on (NaN,0) gives NaN, but @code{mpfr_hypot}
- on (NaN,+Inf) gives +Inf (as specified in @ref{Special Functions}),
--since for any finite input @var{x}, @code{mpfr_hypot} on (@var{x},+Inf)
--gives +Inf.
-+since for any finite or infinite input @var{x}, @code{mpfr_hypot} on
-+(@var{x},+Inf) gives +Inf.
- @node Exceptions, Memory Handling, Floating-Point Values on Special Numbers, MPFR Basics
- @comment  node-name,  next,  previous,  up
-@@ -1581,7 +1585,8 @@
- @deftypefunx int mpfr_add_z (mpfr_t @var{rop}, mpfr_t @var{op1}, mpz_t @var{op2}, mpfr_rnd_t @var{rnd})
- @deftypefunx int mpfr_add_q (mpfr_t @var{rop}, mpfr_t @var{op1}, mpq_t @var{op2}, mpfr_rnd_t @var{rnd})
- Set @var{rop} to @math{@var{op1} + @var{op2}} rounded in the direction
--@var{rnd}. For types having no signed zero, it is considered unsigned
-+@var{rnd}.  The IEEE-754 rules are used, in particular for signed zeros.
-+But for types having no signed zeros, 0 is considered unsigned
- (i.e., (+0) + 0 = (+0) and (@minus{}0) + 0 = (@minus{}0)).
- The @code{mpfr_add_d} function assumes that the radix of the @code{double} type
- is a power of 2, with a precision at most that declared by the C implementation
-@@ -1599,7 +1604,8 @@
- @deftypefunx int mpfr_sub_z (mpfr_t @var{rop}, mpfr_t @var{op1}, mpz_t @var{op2}, mpfr_rnd_t @var{rnd})
- @deftypefunx int mpfr_sub_q (mpfr_t @var{rop}, mpfr_t @var{op1}, mpq_t @var{op2}, mpfr_rnd_t @var{rnd})
- Set @var{rop} to @math{@var{op1} - @var{op2}} rounded in the direction
--@var{rnd}. For types having no signed zero, it is considered unsigned
-+@var{rnd}.  The IEEE-754 rules are used, in particular for signed zeros.
-+But for types having no signed zeros, 0 is considered unsigned
- (i.e., (+0) @minus{} 0 = (+0), (@minus{}0) @minus{} 0 = (@minus{}0),
- 0 @minus{} (+0) = (@minus{}0) and 0 @minus{} (@minus{}0) = (+0)).
- The same restrictions than for @code{mpfr_add_d} apply to @code{mpfr_d_sub}
-@@ -1615,7 +1621,7 @@
- Set @var{rop} to @math{@var{op1} @GMPtimes{} @var{op2}} rounded in the
- direction @var{rnd}.
- When a result is zero, its sign is the product of the signs of the operands
--(for types having no signed zero, it is considered positive).
-+(for types having no signed zeros, 0 is considered positive).
- The same restrictions than for @code{mpfr_add_d} apply to @code{mpfr_mul_d}.
- @end deftypefun
-@@ -1635,7 +1641,7 @@
- @deftypefunx int mpfr_div_q (mpfr_t @var{rop}, mpfr_t @var{op1}, mpq_t @var{op2}, mpfr_rnd_t @var{rnd})
- Set @var{rop} to @math{@var{op1}/@var{op2}} rounded in the direction @var{rnd}.
- When a result is zero, its sign is the product of the signs of the operands
--(for types having no signed zero, it is considered positive).
-+(for types having no signed zeros, 0 is considered positive).
- The same restrictions than for @code{mpfr_add_d} apply to @code{mpfr_d_div}
- and @code{mpfr_div_d}.
- @end deftypefun
-@@ -1643,15 +1649,18 @@
- @deftypefun int mpfr_sqrt (mpfr_t @var{rop}, mpfr_t @var{op}, mpfr_rnd_t @var{rnd})
- @deftypefunx int mpfr_sqrt_ui (mpfr_t @var{rop}, unsigned long int @var{op}, mpfr_rnd_t @var{rnd})
- Set @var{rop} to @m{\sqrt{@var{op}}, the square root of @var{op}}
--rounded in the direction @var{rnd} (set @var{rop} to @minus{}0 if @var{op} is
--@minus{}0, to be consistent with the IEEE 754 standard).
-+rounded in the direction @var{rnd}.  Set @var{rop} to @minus{}0 if
-+@var{op} is @minus{}0, to be consistent with the IEEE 754 standard.
- Set @var{rop} to NaN if @var{op} is negative.
- @end deftypefun
- @deftypefun int mpfr_rec_sqrt (mpfr_t @var{rop}, mpfr_t @var{op}, mpfr_rnd_t @var{rnd})
- Set @var{rop} to @m{1/\sqrt{@var{op}}, the reciprocal square root of @var{op}}
--rounded in the direction @var{rnd}. Set @var{rop} to +Inf if @var{op} is
--@pom{}0, +0 if @var{op} is +Inf, and NaN if @var{op} is negative.
-+rounded in the direction @var{rnd}.  Set @var{rop} to +Inf if @var{op} is
-+@pom{}0, +0 if @var{op} is +Inf, and NaN if @var{op} is negative.  Warning!
-+Therefore the result on @minus{}0 is different from the one of the rSqrt
-+function recommended by the IEEE 754-2008 standard (Section 9.2.1), which
-+is @minus{}Inf instead of +Inf.
- @end deftypefun
- @deftypefun int mpfr_cbrt (mpfr_t @var{rop}, mpfr_t @var{op}, mpfr_rnd_t @var{rnd})
-@@ -1832,7 +1841,9 @@
- @m{\log_2 @var{op}, log2(@var{op})} or
- @m{\log_{10} @var{op}, log10(@var{op})}, respectively,
- rounded in the direction @var{rnd}.
--Set @var{rop} to @minus{}Inf if @var{op} is @minus{}0
-+Set @var{rop} to +0 if @var{op} is 1 (in all rounding modes),
-+for consistency with the ISO C99 and IEEE 754-2008 standards.
-+Set @var{rop} to @minus{}Inf if @var{op} is @pom{}0
- (i.e., the sign of the zero has no influence on the result).
- @end deftypefun
-@@ -2003,8 +2014,11 @@
- @deftypefun int mpfr_lngamma (mpfr_t @var{rop}, mpfr_t @var{op}, mpfr_rnd_t @var{rnd})
- Set @var{rop} to the value of the logarithm of the Gamma function on @var{op},
- rounded in the direction @var{rnd}.
--When @math{@minus{}2@var{k}@minus{}1 @le{} @var{op} @le{} @minus{}2@var{k}},
--@var{k} being a non-negative integer, @var{rop} is set to NaN.
-+When @var{op} is 1 or 2, set @var{rop} to +0 (in all rounding modes).
-+When @var{op} is an infinity or a nonpositive integer, set @var{rop} to +Inf,
-+following the general rules on special values.
-+When @math{@minus{}2@var{k}@minus{}1 < @var{op} < @minus{}2@var{k}},
-+@var{k} being a nonnegative integer, set @var{rop} to NaN@.
- See also @code{mpfr_lgamma}.
- @end deftypefun
-@@ -2012,10 +2026,11 @@
- Set @var{rop} to the value of the logarithm of the absolute value of the
- Gamma function on @var{op}, rounded in the direction @var{rnd}. The sign
- (1 or @minus{}1) of Gamma(@var{op}) is returned in the object pointed to
--by @var{signp}. When @var{op} is an infinity or a non-positive integer, set
--@var{rop} to +Inf. When @var{op} is NaN, @minus{}Inf or a negative integer,
--*@var{signp} is undefined, and when @var{op} is @pom{}0, *@var{signp} is
--the sign of the zero.
-+by @var{signp}.
-+When @var{op} is 1 or 2, set @var{rop} to +0 (in all rounding modes).
-+When @var{op} is an infinity or a nonpositive integer, set @var{rop} to +Inf.
-+When @var{op} is NaN, @minus{}Inf or a negative integer, *@var{signp} is
-+undefined, and when @var{op} is @pom{}0, *@var{signp} is the sign of the zero.
- @end deftypefun
- @deftypefun int mpfr_digamma (mpfr_t @var{rop}, mpfr_t @var{op}, mpfr_rnd_t @var{rnd})
-@@ -2064,7 +2079,10 @@
- @deftypefunx int mpfr_fms (mpfr_t @var{rop}, mpfr_t @var{op1}, mpfr_t @var{op2}, mpfr_t @var{op3}, mpfr_rnd_t @var{rnd})
- Set @var{rop} to @math{(@var{op1} @GMPtimes{} @var{op2}) + @var{op3}}
- (resp.@: @math{(@var{op1} @GMPtimes{} @var{op2}) - @var{op3}})
--rounded in the direction @var{rnd}.
-+rounded in the direction @var{rnd}.  Concerning special values (signed zeros,
-+infinities, NaN), these functions behave like a multiplication followed by a
-+separate addition or subtraction.  That is, the fused operation matters only
-+for rounding.
- @end deftypefun
- @deftypefun int mpfr_agm (mpfr_t @var{rop}, mpfr_t @var{op1}, mpfr_t @var{op2}, mpfr_rnd_t @var{rnd})
-@@ -2089,8 +2107,8 @@
- i.e., $\sqrt{x^2+y^2}$,
- @end tex
- rounded in the direction @var{rnd}.
--Special values are handled as described in Section F.9.4.3 of
--the ISO C99 and IEEE 754-2008 standards:
-+Special values are handled as described in the ISO C99 (Section F.9.4.3)
-+and IEEE 754-2008 (Section 9.2.1) standards:
- If @var{x} or @var{y} is an infinity, then +Inf is returned in @var{rop},
- even if the other number is NaN.
- @end deftypefun
-diff -Naurd mpfr-3.1.3-a/doc/mpfr.info mpfr-3.1.3-b/doc/mpfr.info
---- mpfr-3.1.3-a/doc/mpfr.info 2015-06-19 19:55:53.000000000 +0000
-+++ mpfr-3.1.3-b/doc/mpfr.info 2015-07-02 10:49:38.718267817 +0000
-@@ -1,4 +1,4 @@
--This is mpfr.info, produced by makeinfo version 5.2 from mpfr.texi.
-+This is mpfr.info, produced by makeinfo version 6.0 from mpfr.texi.
- This manual documents how to install and use the Multiple Precision
- Floating-Point Reliable Library, version 3.1.3.
-@@ -55,7 +55,7 @@
- MPFR Copying Conditions
- ***********************
--The GNU MPFR library (or MPFR for short) is "free"; this means that
-+The GNU MPFR library (or MPFR for short) is “free”; this means that
- everyone is free to use it and free to redistribute it on a free basis.
- The library is not in the public domain; it is copyrighted and there are
- restrictions on its distribution, but these restrictions are designed to
-@@ -418,7 +418,7 @@
- 4.2 Nomenclature and Types
- ==========================
--A "floating-point number", or "float" for short, is an arbitrary
-+A “floating-point number”, or “float” for short, is an arbitrary
- precision significand (also called mantissa) with a limited precision
- exponent.  The C data type for such objects is ‘mpfr_t’ (internally
- defined as a one-element array of a structure, and ‘mpfr_ptr’ is the C
-@@ -432,7 +432,7 @@
- to the other functions supported by MPFR. Unless documented otherwise,
- the sign bit of a NaN is unspecified.
--The "precision" is the number of bits used to represent the significand
-+The “precision” is the number of bits used to represent the significand
- of a floating-point number; the corresponding C data type is
- ‘mpfr_prec_t’.  The precision can be any integer between ‘MPFR_PREC_MIN’
- and ‘MPFR_PREC_MAX’.  In the current implementation, ‘MPFR_PREC_MIN’ is
-@@ -446,7 +446,7 @@
- may abort, crash or have undefined behavior (depending on your C
- implementation).
--The "rounding mode" specifies the way to round the result of a
-+The “rounding mode” specifies the way to round the result of a
- floating-point operation, in case the exact result can not be
- represented exactly in the destination significand; the corresponding C
- data type is ‘mpfr_rnd_t’.
-@@ -499,14 +499,14 @@
- representable numbers, it is rounded to the one with the least
- significant bit set to zero.  For example, the number 2.5, which is
- represented by (10.1) in binary, is rounded to (10.0)=2 with a precision
--of two bits, and not to (11.0)=3.  This rule avoids the "drift"
-+of two bits, and not to (11.0)=3.  This rule avoids the “drift”
- phenomenon mentioned by Knuth in volume 2 of The Art of Computer
- Programming (Section 4.2.2).
-    Most MPFR functions take as first argument the destination variable,
- as second and following arguments the input variables, as last argument
- a rounding mode, and have a return value of type ‘int’, called the
--"ternary value".  The value stored in the destination variable is
-+“ternary value”.  The value stored in the destination variable is
- correctly rounded, i.e., MPFR behaves as if it computed the result with
- an infinite precision, then rounded it to the precision of this
- variable.  The input variables are regarded as exact (in particular,
-@@ -572,15 +572,18 @@
-    When the input point is in the closure of the domain of the
- mathematical function and an input argument is +0 (resp. −0), one
- considers the limit when the corresponding argument approaches 0 from
--above (resp. below).  If the limit is not defined (e.g., ‘mpfr_log’ on
--−0), the behavior is specified in the description of the MPFR function.
-+above (resp. below), if possible.  If the limit is not defined (e.g.,
-+‘mpfr_sqrt’ and ‘mpfr_log’ on −0), the behavior is specified in the
-+description of the MPFR function, but must be consistent with the rule
-+from the above paragraph (e.g., ‘mpfr_log’ on ±0 gives −Inf).
-    When the result is equal to 0, its sign is determined by considering
- the limit as if the input point were not in the domain: If one
- approaches 0 from above (resp. below), the result is +0 (resp. −0); for
--example, ‘mpfr_sin’ on +0 gives +0.  In the other cases, the sign is
--specified in the description of the MPFR function; for example
--‘mpfr_max’ on −0 and +0 gives +0.
-+example, ‘mpfr_sin’ on −0 gives −0 and ‘mpfr_acos’ on 1 gives +0 (in all
-+rounding modes).  In the other cases, the sign is specified in the
-+description of the MPFR function; for example ‘mpfr_max’ on −0 and +0
-+gives +0.
-    When the input point is not in the closure of the domain of the
- function, the result is NaN. Example: ‘mpfr_sqrt’ on −17 gives NaN.
-@@ -590,8 +593,8 @@
- numbers; such a case is always explicitly specified in *note MPFR
- Interface::.  Example: ‘mpfr_hypot’ on (NaN,0) gives NaN, but
- ‘mpfr_hypot’ on (NaN,+Inf) gives +Inf (as specified in *note Special
--Functions::), since for any finite input X, ‘mpfr_hypot’ on (X,+Inf)
--gives +Inf.
-+Functions::), since for any finite or infinite input X, ‘mpfr_hypot’ on
-+(X,+Inf) gives +Inf.
\1f
- File: mpfr.info,  Node: Exceptions,  Next: Memory Handling,  Prev: Floating-Point Values on Special Numbers,  Up: MPFR Basics
-@@ -1253,8 +1256,9 @@
-           mpfr_rnd_t RND)
-  -- Function: int mpfr_add_q (mpfr_t ROP, mpfr_t OP1, mpq_t OP2,
-           mpfr_rnd_t RND)
--     Set ROP to OP1 + OP2 rounded in the direction RND.  For types
--     having no signed zero, it is considered unsigned (i.e., (+0) + 0 =
-+     Set ROP to OP1 + OP2 rounded in the direction RND.  The IEEE-754
-+     rules are used, in particular for signed zeros.  But for types
-+     having no signed zeros, 0 is considered unsigned (i.e., (+0) + 0 =
-      (+0) and (−0) + 0 = (−0)).  The ‘mpfr_add_d’ function assumes that
-      the radix of the ‘double’ type is a power of 2, with a precision at
-      most that declared by the C implementation (macro
-@@ -1280,8 +1284,9 @@
-           mpfr_rnd_t RND)
-  -- Function: int mpfr_sub_q (mpfr_t ROP, mpfr_t OP1, mpq_t OP2,
-           mpfr_rnd_t RND)
--     Set ROP to OP1 - OP2 rounded in the direction RND.  For types
--     having no signed zero, it is considered unsigned (i.e., (+0) − 0 =
-+     Set ROP to OP1 - OP2 rounded in the direction RND.  The IEEE-754
-+     rules are used, in particular for signed zeros.  But for types
-+     having no signed zeros, 0 is considered unsigned (i.e., (+0) − 0 =
-      (+0), (−0) − 0 = (−0), 0 − (+0) = (−0) and 0 − (−0) = (+0)).  The
-      same restrictions than for ‘mpfr_add_d’ apply to ‘mpfr_d_sub’ and
-      ‘mpfr_sub_d’.
-@@ -1300,7 +1305,7 @@
-           mpfr_rnd_t RND)
-      Set ROP to OP1 times OP2 rounded in the direction RND.  When a
-      result is zero, its sign is the product of the signs of the
--     operands (for types having no signed zero, it is considered
-+     operands (for types having no signed zeros, 0 is considered
-      positive).  The same restrictions than for ‘mpfr_add_d’ apply to
-      ‘mpfr_mul_d’.
-@@ -1327,21 +1332,24 @@
-           mpfr_rnd_t RND)
-      Set ROP to OP1/OP2 rounded in the direction RND.  When a result is
-      zero, its sign is the product of the signs of the operands (for
--     types having no signed zero, it is considered positive).  The same
-+     types having no signed zeros, 0 is considered positive).  The same
-      restrictions than for ‘mpfr_add_d’ apply to ‘mpfr_d_div’ and
-      ‘mpfr_div_d’.
-  -- Function: int mpfr_sqrt (mpfr_t ROP, mpfr_t OP, mpfr_rnd_t RND)
-  -- Function: int mpfr_sqrt_ui (mpfr_t ROP, unsigned long int OP,
-           mpfr_rnd_t RND)
--     Set ROP to the square root of OP rounded in the direction RND (set
--     ROP to −0 if OP is −0, to be consistent with the IEEE 754
--     standard).  Set ROP to NaN if OP is negative.
-+     Set ROP to the square root of OP rounded in the direction RND.  Set
-+     ROP to −0 if OP is −0, to be consistent with the IEEE 754 standard.
-+     Set ROP to NaN if OP is negative.
-  -- Function: int mpfr_rec_sqrt (mpfr_t ROP, mpfr_t OP, mpfr_rnd_t RND)
-      Set ROP to the reciprocal square root of OP rounded in the
-      direction RND.  Set ROP to +Inf if OP is ±0, +0 if OP is +Inf, and
--     NaN if OP is negative.
-+     NaN if OP is negative.  Warning!  Therefore the result on −0 is
-+     different from the one of the rSqrt function recommended by the
-+     IEEE 754-2008 standard (Section 9.2.1), which is −Inf instead of
-+     +Inf.
-  -- Function: int mpfr_cbrt (mpfr_t ROP, mpfr_t OP, mpfr_rnd_t RND)
-  -- Function: int mpfr_root (mpfr_t ROP, mpfr_t OP, unsigned long int K,
-@@ -1515,8 +1523,10 @@
-  -- Function: int mpfr_log2 (mpfr_t ROP, mpfr_t OP, mpfr_rnd_t RND)
-  -- Function: int mpfr_log10 (mpfr_t ROP, mpfr_t OP, mpfr_rnd_t RND)
-      Set ROP to the natural logarithm of OP, log2(OP) or log10(OP),
--     respectively, rounded in the direction RND.  Set ROP to −Inf if OP
--     is −0 (i.e., the sign of the zero has no influence on the result).
-+     respectively, rounded in the direction RND.  Set ROP to +0 if OP is
-+     1 (in all rounding modes), for consistency with the ISO C99 and
-+     IEEE 754-2008 standards.  Set ROP to −Inf if OP is ±0 (i.e., the
-+     sign of the zero has no influence on the result).
-  -- Function: int mpfr_exp (mpfr_t ROP, mpfr_t OP, mpfr_rnd_t RND)
-  -- Function: int mpfr_exp2 (mpfr_t ROP, mpfr_t OP, mpfr_rnd_t RND)
-@@ -1649,17 +1659,21 @@
-  -- Function: int mpfr_lngamma (mpfr_t ROP, mpfr_t OP, mpfr_rnd_t RND)
-      Set ROP to the value of the logarithm of the Gamma function on OP,
--     rounded in the direction RND.  When −2K−1 <= OP <= −2K, K being a
--     non-negative integer, ROP is set to NaN. See also ‘mpfr_lgamma’.
-+     rounded in the direction RND.  When OP is 1 or 2, set ROP to +0 (in
-+     all rounding modes).  When OP is an infinity or a nonpositive
-+     integer, set ROP to +Inf, following the general rules on special
-+     values.  When −2K−1 < OP < −2K, K being a nonnegative integer, set
-+     ROP to NaN.  See also ‘mpfr_lgamma’.
-  -- Function: int mpfr_lgamma (mpfr_t ROP, int *SIGNP, mpfr_t OP,
-           mpfr_rnd_t RND)
-      Set ROP to the value of the logarithm of the absolute value of the
-      Gamma function on OP, rounded in the direction RND.  The sign (1 or
-      −1) of Gamma(OP) is returned in the object pointed to by SIGNP.
--     When OP is an infinity or a non-positive integer, set ROP to +Inf.
--     When OP is NaN, −Inf or a negative integer, *SIGNP is undefined,
--     and when OP is ±0, *SIGNP is the sign of the zero.
-+     When OP is 1 or 2, set ROP to +0 (in all rounding modes).  When OP
-+     is an infinity or a nonpositive integer, set ROP to +Inf.  When OP
-+     is NaN, −Inf or a negative integer, *SIGNP is undefined, and when
-+     OP is ±0, *SIGNP is the sign of the zero.
-  -- Function: int mpfr_digamma (mpfr_t ROP, mpfr_t OP, mpfr_rnd_t RND)
-      Set ROP to the value of the Digamma (sometimes also called Psi)
-@@ -1703,7 +1717,10 @@
-  -- Function: int mpfr_fms (mpfr_t ROP, mpfr_t OP1, mpfr_t OP2, mpfr_t
-           OP3, mpfr_rnd_t RND)
-      Set ROP to (OP1 times OP2) + OP3 (resp. (OP1 times OP2) - OP3)
--     rounded in the direction RND.
-+     rounded in the direction RND.  Concerning special values (signed
-+     zeros, infinities, NaN), these functions behave like a
-+     multiplication followed by a separate addition or subtraction.
-+     That is, the fused operation matters only for rounding.
-  -- Function: int mpfr_agm (mpfr_t ROP, mpfr_t OP1, mpfr_t OP2,
-           mpfr_rnd_t RND)
-@@ -1717,9 +1734,10 @@
-           RND)
-      Set ROP to the Euclidean norm of X and Y, i.e., the square root of
-      the sum of the squares of X and Y, rounded in the direction RND.
--     Special values are handled as described in Section F.9.4.3 of the
--     ISO C99 and IEEE 754-2008 standards: If X or Y is an infinity, then
--     +Inf is returned in ROP, even if the other number is NaN.
-+     Special values are handled as described in the ISO C99 (Section
-+     F.9.4.3) and IEEE 754-2008 (Section 9.2.1) standards: If X or Y is
-+     an infinity, then +Inf is returned in ROP, even if the other number
-+     is NaN.
-  -- Function: int mpfr_ai (mpfr_t ROP, mpfr_t X, mpfr_rnd_t RND)
-      Set ROP to the value of the Airy function Ai on X, rounded in the
-@@ -2670,7 +2688,7 @@
- 5.16 Internals
- ==============
--A "limb" means the part of a multi-precision number that fits in a
-+A “limb” means the part of a multi-precision number that fits in a
- single word.  Usually a limb contains 32 or 64 bits.  The C data type
- for a limb is ‘mp_limb_t’.
-@@ -3140,7 +3158,7 @@
-   0. PREAMBLE
-      The purpose of this License is to make a manual, textbook, or other
--     functional and useful document "free" in the sense of freedom: to
-+     functional and useful document “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
-@@ -3655,9 +3673,9 @@
- * Menu:
- * mpfr_abs:                              Basic Arithmetic Functions.
--                                                              (line 160)
--* mpfr_acos:                             Special Functions.   (line  51)
--* mpfr_acosh:                            Special Functions.   (line 115)
-+                                                              (line 165)
-+* mpfr_acos:                             Special Functions.   (line  53)
-+* mpfr_acosh:                            Special Functions.   (line 117)
- * mpfr_add:                              Basic Arithmetic Functions.
-                                                               (line   6)
- * mpfr_add_d:                            Basic Arithmetic Functions.
-@@ -3670,15 +3688,15 @@
-                                                               (line   8)
- * mpfr_add_z:                            Basic Arithmetic Functions.
-                                                               (line  14)
--* mpfr_agm:                              Special Functions.   (line 210)
--* mpfr_ai:                               Special Functions.   (line 226)
--* mpfr_asin:                             Special Functions.   (line  52)
--* mpfr_asinh:                            Special Functions.   (line 116)
-+* mpfr_agm:                              Special Functions.   (line 219)
-+* mpfr_ai:                               Special Functions.   (line 236)
-+* mpfr_asin:                             Special Functions.   (line  54)
-+* mpfr_asinh:                            Special Functions.   (line 118)
- * mpfr_asprintf:                         Formatted Output Functions.
-                                                               (line 193)
--* mpfr_atan:                             Special Functions.   (line  53)
--* mpfr_atan2:                            Special Functions.   (line  63)
--* mpfr_atanh:                            Special Functions.   (line 117)
-+* mpfr_atan:                             Special Functions.   (line  55)
-+* mpfr_atan2:                            Special Functions.   (line  65)
-+* mpfr_atanh:                            Special Functions.   (line 119)
- * mpfr_buildopt_decimal_p:               Miscellaneous Functions.
-                                                               (line 162)
- * mpfr_buildopt_gmpinternals_p:          Miscellaneous Functions.
-@@ -3690,7 +3708,7 @@
- * mpfr_can_round:                        Rounding Related Functions.
-                                                               (line  39)
- * mpfr_cbrt:                             Basic Arithmetic Functions.
--                                                              (line 108)
-+                                                              (line 113)
- * mpfr_ceil:                             Integer Related Functions.
-                                                               (line   7)
- * mpfr_check_range:                      Exception Related Functions.
-@@ -3735,18 +3753,18 @@
-                                                               (line  27)
- * mpfr_cmp_z:                            Comparison Functions.
-                                                               (line  11)
--* mpfr_const_catalan:                    Special Functions.   (line 237)
--* mpfr_const_euler:                      Special Functions.   (line 236)
--* mpfr_const_log2:                       Special Functions.   (line 234)
--* mpfr_const_pi:                         Special Functions.   (line 235)
-+* mpfr_const_catalan:                    Special Functions.   (line 247)
-+* mpfr_const_euler:                      Special Functions.   (line 246)
-+* mpfr_const_log2:                       Special Functions.   (line 244)
-+* mpfr_const_pi:                         Special Functions.   (line 245)
- * mpfr_copysign:                         Miscellaneous Functions.
-                                                               (line 109)
--* mpfr_cos:                              Special Functions.   (line  29)
--* mpfr_cosh:                             Special Functions.   (line  95)
--* mpfr_cot:                              Special Functions.   (line  47)
--* mpfr_coth:                             Special Functions.   (line 111)
--* mpfr_csc:                              Special Functions.   (line  46)
--* mpfr_csch:                             Special Functions.   (line 110)
-+* mpfr_cos:                              Special Functions.   (line  31)
-+* mpfr_cosh:                             Special Functions.   (line  97)
-+* mpfr_cot:                              Special Functions.   (line  49)
-+* mpfr_coth:                             Special Functions.   (line 113)
-+* mpfr_csc:                              Special Functions.   (line  48)
-+* mpfr_csch:                             Special Functions.   (line 112)
- * mpfr_custom_get_exp:                   Custom Interface.    (line  75)
- * mpfr_custom_get_kind:                  Custom Interface.    (line  65)
- * mpfr_custom_get_significand:           Custom Interface.    (line  70)
-@@ -3756,47 +3774,47 @@
- * mpfr_custom_move:                      Custom Interface.    (line  82)
- * MPFR_DECL_INIT:                        Initialization Functions.
-                                                               (line  74)
--* mpfr_digamma:                          Special Functions.   (line 166)
-+* mpfr_digamma:                          Special Functions.   (line 172)
- * mpfr_dim:                              Basic Arithmetic Functions.
--                                                              (line 166)
-+                                                              (line 171)
- * mpfr_div:                              Basic Arithmetic Functions.
--                                                              (line  72)
-+                                                              (line  74)
- * mpfr_divby0_p:                         Exception Related Functions.
-                                                               (line 134)
- * mpfr_div_2exp:                         Compatibility with MPF.
-                                                               (line  49)
- * mpfr_div_2si:                          Basic Arithmetic Functions.
--                                                              (line 181)
-+                                                              (line 186)
- * mpfr_div_2ui:                          Basic Arithmetic Functions.
--                                                              (line 179)
-+                                                              (line 184)
- * mpfr_div_d:                            Basic Arithmetic Functions.
--                                                              (line  84)
-+                                                              (line  86)
- * mpfr_div_q:                            Basic Arithmetic Functions.
--                                                              (line  88)
-+                                                              (line  90)
- * mpfr_div_si:                           Basic Arithmetic Functions.
--                                                              (line  80)
-+                                                              (line  82)
- * mpfr_div_ui:                           Basic Arithmetic Functions.
--                                                              (line  76)
-+                                                              (line  78)
- * mpfr_div_z:                            Basic Arithmetic Functions.
--                                                              (line  86)
-+                                                              (line  88)
- * mpfr_d_div:                            Basic Arithmetic Functions.
--                                                              (line  82)
-+                                                              (line  84)
- * mpfr_d_sub:                            Basic Arithmetic Functions.
--                                                              (line  35)
--* mpfr_eint:                             Special Functions.   (line 133)
-+                                                              (line  36)
-+* mpfr_eint:                             Special Functions.   (line 135)
- * mpfr_eq:                               Compatibility with MPF.
-                                                               (line  28)
- * mpfr_equal_p:                          Comparison Functions.
-                                                               (line  59)
- * mpfr_erangeflag_p:                     Exception Related Functions.
-                                                               (line 137)
--* mpfr_erf:                              Special Functions.   (line 177)
--* mpfr_erfc:                             Special Functions.   (line 178)
--* mpfr_exp:                              Special Functions.   (line  23)
--* mpfr_exp10:                            Special Functions.   (line  25)
--* mpfr_exp2:                             Special Functions.   (line  24)
--* mpfr_expm1:                            Special Functions.   (line 129)
--* mpfr_fac_ui:                           Special Functions.   (line 121)
-+* mpfr_erf:                              Special Functions.   (line 183)
-+* mpfr_erfc:                             Special Functions.   (line 184)
-+* mpfr_exp:                              Special Functions.   (line  25)
-+* mpfr_exp10:                            Special Functions.   (line  27)
-+* mpfr_exp2:                             Special Functions.   (line  26)
-+* mpfr_expm1:                            Special Functions.   (line 131)
-+* mpfr_fac_ui:                           Special Functions.   (line 123)
- * mpfr_fits_intmax_p:                    Conversion Functions.
-                                                               (line 150)
- * mpfr_fits_sint_p:                      Conversion Functions.
-@@ -3815,20 +3833,20 @@
-                                                               (line 147)
- * mpfr_floor:                            Integer Related Functions.
-                                                               (line   8)
--* mpfr_fma:                              Special Functions.   (line 203)
-+* mpfr_fma:                              Special Functions.   (line 209)
- * mpfr_fmod:                             Integer Related Functions.
-                                                               (line  92)
--* mpfr_fms:                              Special Functions.   (line 205)
-+* mpfr_fms:                              Special Functions.   (line 211)
- * mpfr_fprintf:                          Formatted Output Functions.
-                                                               (line 157)
- * mpfr_frac:                             Integer Related Functions.
-                                                               (line  76)
--* mpfr_free_cache:                       Special Functions.   (line 244)
-+* mpfr_free_cache:                       Special Functions.   (line 254)
- * mpfr_free_str:                         Conversion Functions.
-                                                               (line 137)
- * mpfr_frexp:                            Conversion Functions.
-                                                               (line  45)
--* mpfr_gamma:                            Special Functions.   (line 148)
-+* mpfr_gamma:                            Special Functions.   (line 150)
- * mpfr_get_d:                            Conversion Functions.
-                                                               (line   7)
- * mpfr_get_decimal64:                    Conversion Functions.
-@@ -3887,7 +3905,7 @@
-                                                               (line  56)
- * mpfr_greater_p:                        Comparison Functions.
-                                                               (line  55)
--* mpfr_hypot:                            Special Functions.   (line 218)
-+* mpfr_hypot:                            Special Functions.   (line 227)
- * mpfr_inexflag_p:                       Exception Related Functions.
-                                                               (line 136)
- * mpfr_inf_p:                            Comparison Functions.
-@@ -3922,21 +3940,21 @@
-                                                               (line  31)
- * mpfr_integer_p:                        Integer Related Functions.
-                                                               (line 119)
--* mpfr_j0:                               Special Functions.   (line 182)
--* mpfr_j1:                               Special Functions.   (line 183)
--* mpfr_jn:                               Special Functions.   (line 184)
-+* mpfr_j0:                               Special Functions.   (line 188)
-+* mpfr_j1:                               Special Functions.   (line 189)
-+* mpfr_jn:                               Special Functions.   (line 190)
- * mpfr_lessequal_p:                      Comparison Functions.
-                                                               (line  58)
- * mpfr_lessgreater_p:                    Comparison Functions.
-                                                               (line  64)
- * mpfr_less_p:                           Comparison Functions.
-                                                               (line  57)
--* mpfr_lgamma:                           Special Functions.   (line 157)
--* mpfr_li2:                              Special Functions.   (line 143)
--* mpfr_lngamma:                          Special Functions.   (line 152)
-+* mpfr_lgamma:                           Special Functions.   (line 162)
-+* mpfr_li2:                              Special Functions.   (line 145)
-+* mpfr_lngamma:                          Special Functions.   (line 154)
- * mpfr_log:                              Special Functions.   (line  16)
- * mpfr_log10:                            Special Functions.   (line  18)
--* mpfr_log1p:                            Special Functions.   (line 125)
-+* mpfr_log1p:                            Special Functions.   (line 127)
- * mpfr_log2:                             Special Functions.   (line  17)
- * mpfr_max:                              Miscellaneous Functions.
-                                                               (line  22)
-@@ -3947,29 +3965,29 @@
- * mpfr_modf:                             Integer Related Functions.
-                                                               (line  82)
- * mpfr_mul:                              Basic Arithmetic Functions.
--                                                              (line  51)
-+                                                              (line  53)
- * mpfr_mul_2exp:                         Compatibility with MPF.
-                                                               (line  47)
- * mpfr_mul_2si:                          Basic Arithmetic Functions.
--                                                              (line 174)
-+                                                              (line 179)
- * mpfr_mul_2ui:                          Basic Arithmetic Functions.
--                                                              (line 172)
-+                                                              (line 177)
- * mpfr_mul_d:                            Basic Arithmetic Functions.
--                                                              (line  57)
-+                                                              (line  59)
- * mpfr_mul_q:                            Basic Arithmetic Functions.
--                                                              (line  61)
-+                                                              (line  63)
- * mpfr_mul_si:                           Basic Arithmetic Functions.
--                                                              (line  55)
-+                                                              (line  57)
- * mpfr_mul_ui:                           Basic Arithmetic Functions.
--                                                              (line  53)
-+                                                              (line  55)
- * mpfr_mul_z:                            Basic Arithmetic Functions.
--                                                              (line  59)
-+                                                              (line  61)
- * mpfr_nanflag_p:                        Exception Related Functions.
-                                                               (line 135)
- * mpfr_nan_p:                            Comparison Functions.
-                                                               (line  39)
- * mpfr_neg:                              Basic Arithmetic Functions.
--                                                              (line 159)
-+                                                              (line 164)
- * mpfr_nextabove:                        Miscellaneous Functions.
-                                                               (line  15)
- * mpfr_nextbelow:                        Miscellaneous Functions.
-@@ -3983,13 +4001,13 @@
- * mpfr_overflow_p:                       Exception Related Functions.
-                                                               (line 133)
- * mpfr_pow:                              Basic Arithmetic Functions.
--                                                              (line 116)
-+                                                              (line 121)
- * mpfr_pow_si:                           Basic Arithmetic Functions.
--                                                              (line 120)
-+                                                              (line 125)
- * mpfr_pow_ui:                           Basic Arithmetic Functions.
--                                                              (line 118)
-+                                                              (line 123)
- * mpfr_pow_z:                            Basic Arithmetic Functions.
--                                                              (line 122)
-+                                                              (line 127)
- * mpfr_prec_round:                       Rounding Related Functions.
-                                                               (line  13)
- * ‘mpfr_prec_t’:                         Nomenclature and Types.
-@@ -3999,7 +4017,7 @@
- * mpfr_print_rnd_mode:                   Rounding Related Functions.
-                                                               (line  71)
- * mpfr_rec_sqrt:                         Basic Arithmetic Functions.
--                                                              (line 103)
-+                                                              (line 105)
- * mpfr_regular_p:                        Comparison Functions.
-                                                               (line  43)
- * mpfr_reldiff:                          Compatibility with MPF.
-@@ -4021,11 +4039,11 @@
- * ‘mpfr_rnd_t’:                          Nomenclature and Types.
-                                                               (line  34)
- * mpfr_root:                             Basic Arithmetic Functions.
--                                                              (line 109)
-+                                                              (line 114)
- * mpfr_round:                            Integer Related Functions.
-                                                               (line   9)
--* mpfr_sec:                              Special Functions.   (line  45)
--* mpfr_sech:                             Special Functions.   (line 109)
-+* mpfr_sec:                              Special Functions.   (line  47)
-+* mpfr_sech:                             Special Functions.   (line 111)
- * mpfr_set:                              Assignment Functions.
-                                                               (line   9)
- * mpfr_setsign:                          Miscellaneous Functions.
-@@ -4100,57 +4118,57 @@
-                                                               (line  49)
- * mpfr_signbit:                          Miscellaneous Functions.
-                                                               (line  99)
--* mpfr_sin:                              Special Functions.   (line  30)
--* mpfr_sinh:                             Special Functions.   (line  96)
--* mpfr_sinh_cosh:                        Special Functions.   (line 101)
--* mpfr_sin_cos:                          Special Functions.   (line  35)
-+* mpfr_sin:                              Special Functions.   (line  32)
-+* mpfr_sinh:                             Special Functions.   (line  98)
-+* mpfr_sinh_cosh:                        Special Functions.   (line 103)
-+* mpfr_sin_cos:                          Special Functions.   (line  37)
- * mpfr_si_div:                           Basic Arithmetic Functions.
--                                                              (line  78)
-+                                                              (line  80)
- * mpfr_si_sub:                           Basic Arithmetic Functions.
--                                                              (line  31)
-+                                                              (line  32)
- * mpfr_snprintf:                         Formatted Output Functions.
-                                                               (line 180)
- * mpfr_sprintf:                          Formatted Output Functions.
-                                                               (line 170)
- * mpfr_sqr:                              Basic Arithmetic Functions.
--                                                              (line  69)
-+                                                              (line  71)
- * mpfr_sqrt:                             Basic Arithmetic Functions.
--                                                              (line  96)
-+                                                              (line  98)
- * mpfr_sqrt_ui:                          Basic Arithmetic Functions.
--                                                              (line  97)
-+                                                              (line  99)
- * mpfr_strtofr:                          Assignment Functions.
-                                                               (line  80)
- * mpfr_sub:                              Basic Arithmetic Functions.
--                                                              (line  25)
-+                                                              (line  26)
- * mpfr_subnormalize:                     Exception Related Functions.
-                                                               (line  60)
- * mpfr_sub_d:                            Basic Arithmetic Functions.
--                                                              (line  37)
-+                                                              (line  38)
- * mpfr_sub_q:                            Basic Arithmetic Functions.
--                                                              (line  43)
-+                                                              (line  44)
- * mpfr_sub_si:                           Basic Arithmetic Functions.
--                                                              (line  33)
-+                                                              (line  34)
- * mpfr_sub_ui:                           Basic Arithmetic Functions.
--                                                              (line  29)
-+                                                              (line  30)
- * mpfr_sub_z:                            Basic Arithmetic Functions.
--                                                              (line  41)
--* mpfr_sum:                              Special Functions.   (line 252)
-+                                                              (line  42)
-+* mpfr_sum:                              Special Functions.   (line 262)
- * mpfr_swap:                             Assignment Functions.
-                                                               (line 150)
- * ‘mpfr_t’:                              Nomenclature and Types.
-                                                               (line   6)
--* mpfr_tan:                              Special Functions.   (line  31)
--* mpfr_tanh:                             Special Functions.   (line  97)
-+* mpfr_tan:                              Special Functions.   (line  33)
-+* mpfr_tanh:                             Special Functions.   (line  99)
- * mpfr_trunc:                            Integer Related Functions.
-                                                               (line  10)
- * mpfr_ui_div:                           Basic Arithmetic Functions.
--                                                              (line  74)
-+                                                              (line  76)
- * mpfr_ui_pow:                           Basic Arithmetic Functions.
--                                                              (line 126)
-+                                                              (line 131)
- * mpfr_ui_pow_ui:                        Basic Arithmetic Functions.
--                                                              (line 124)
-+                                                              (line 129)
- * mpfr_ui_sub:                           Basic Arithmetic Functions.
--                                                              (line  27)
-+                                                              (line  28)
- * mpfr_underflow_p:                      Exception Related Functions.
-                                                               (line 132)
- * mpfr_unordered_p:                      Comparison Functions.
-@@ -4181,61 +4199,61 @@
-                                                               (line 182)
- * mpfr_vsprintf:                         Formatted Output Functions.
-                                                               (line 171)
--* mpfr_y0:                               Special Functions.   (line 193)
--* mpfr_y1:                               Special Functions.   (line 194)
--* mpfr_yn:                               Special Functions.   (line 195)
-+* mpfr_y0:                               Special Functions.   (line 199)
-+* mpfr_y1:                               Special Functions.   (line 200)
-+* mpfr_yn:                               Special Functions.   (line 201)
- * mpfr_zero_p:                           Comparison Functions.
-                                                               (line  42)
--* mpfr_zeta:                             Special Functions.   (line 171)
--* mpfr_zeta_ui:                          Special Functions.   (line 172)
-+* mpfr_zeta:                             Special Functions.   (line 177)
-+* mpfr_zeta_ui:                          Special Functions.   (line 178)
- * mpfr_z_sub:                            Basic Arithmetic Functions.
--                                                              (line  39)
-+                                                              (line  40)
\1f
- Tag Table:
- Node: Top\7f775
- Node: Copying\7f2007
--Node: Introduction to MPFR\7f3766
--Node: Installing MPFR\7f5880
--Node: Reporting Bugs\7f11323
--Node: MPFR Basics\7f13353
--Node: Headers and Libraries\7f13669
--Node: Nomenclature and Types\7f16828
--Node: MPFR Variable Conventions\7f18874
--Node: Rounding Modes\7f20418
--Ref: ternary value\7f21544
--Node: Floating-Point Values on Special Numbers\7f23526
--Node: Exceptions\7f26572
--Node: Memory Handling\7f29749
--Node: MPFR Interface\7f30894
--Node: Initialization Functions\7f33008
--Node: Assignment Functions\7f40318
--Node: Combined Initialization and Assignment Functions\7f49673
--Node: Conversion Functions\7f50974
--Node: Basic Arithmetic Functions\7f60035
--Node: Comparison Functions\7f69200
--Node: Special Functions\7f72687
--Node: Input and Output Functions\7f86672
--Node: Formatted Output Functions\7f88644
--Node: Integer Related Functions\7f98431
--Node: Rounding Related Functions\7f105051
--Node: Miscellaneous Functions\7f108888
--Node: Exception Related Functions\7f117568
--Node: Compatibility with MPF\7f124386
--Node: Custom Interface\7f127127
--Node: Internals\7f131526
--Node: API Compatibility\7f133066
--Node: Type and Macro Changes\7f134995
--Node: Added Functions\7f137844
--Node: Changed Functions\7f141132
--Node: Removed Functions\7f145545
--Node: Other Changes\7f145973
--Node: Contributors\7f147576
--Node: References\7f150219
--Node: GNU Free Documentation License\7f151973
--Node: Concept Index\7f174562
--Node: Function and Type Index\7f180659
-+Node: Introduction to MPFR\7f3770
-+Node: Installing MPFR\7f5884
-+Node: Reporting Bugs\7f11327
-+Node: MPFR Basics\7f13357
-+Node: Headers and Libraries\7f13673
-+Node: Nomenclature and Types\7f16832
-+Node: MPFR Variable Conventions\7f18894
-+Node: Rounding Modes\7f20438
-+Ref: ternary value\7f21568
-+Node: Floating-Point Values on Special Numbers\7f23554
-+Node: Exceptions\7f26813
-+Node: Memory Handling\7f29990
-+Node: MPFR Interface\7f31135
-+Node: Initialization Functions\7f33249
-+Node: Assignment Functions\7f40559
-+Node: Combined Initialization and Assignment Functions\7f49914
-+Node: Conversion Functions\7f51215
-+Node: Basic Arithmetic Functions\7f60276
-+Node: Comparison Functions\7f69777
-+Node: Special Functions\7f73264
-+Node: Input and Output Functions\7f87862
-+Node: Formatted Output Functions\7f89834
-+Node: Integer Related Functions\7f99621
-+Node: Rounding Related Functions\7f106241
-+Node: Miscellaneous Functions\7f110078
-+Node: Exception Related Functions\7f118758
-+Node: Compatibility with MPF\7f125576
-+Node: Custom Interface\7f128317
-+Node: Internals\7f132716
-+Node: API Compatibility\7f134260
-+Node: Type and Macro Changes\7f136189
-+Node: Added Functions\7f139038
-+Node: Changed Functions\7f142326
-+Node: Removed Functions\7f146739
-+Node: Other Changes\7f147167
-+Node: Contributors\7f148770
-+Node: References\7f151413
-+Node: GNU Free Documentation License\7f153167
-+Node: Concept Index\7f175760
-+Node: Function and Type Index\7f181857
\1f
- End Tag Table
-diff -Naurd mpfr-3.1.3-a/src/lngamma.c mpfr-3.1.3-b/src/lngamma.c
---- mpfr-3.1.3-a/src/lngamma.c 2015-06-19 19:55:10.000000000 +0000
-+++ mpfr-3.1.3-b/src/lngamma.c 2015-07-02 10:49:24.018113593 +0000
-@@ -603,16 +603,17 @@
-       mpfr_get_prec (y), mpfr_log_prec, y, inex));
-   /* special cases */
--  if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
-+  if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x) ||
-+                     (MPFR_IS_NEG (x) && mpfr_integer_p (x))))
-     {
--      if (MPFR_IS_NAN (x) || MPFR_IS_NEG (x))
-+      if (MPFR_IS_NAN (x))
-         {
-           MPFR_SET_NAN (y);
-           MPFR_RET_NAN;
-         }
--      else /* lngamma(+Inf) = lngamma(+0) = +Inf */
-+      else /* lngamma(+/-Inf) = lngamma(nonpositive integer) = +Inf */
-         {
--          if (MPFR_IS_ZERO (x))
-+          if (!MPFR_IS_INF (x))
-             mpfr_set_divby0 ();
-           MPFR_SET_INF (y);
-           MPFR_SET_POS (y);
-@@ -620,8 +621,8 @@
-         }
-     }
--  /* if x < 0 and -2k-1 <= x <= -2k, then lngamma(x) = NaN */
--  if (MPFR_IS_NEG (x) && (unit_bit (x) == 0 || mpfr_integer_p (x)))
-+  /* if -2k-1 < x < -2k <= 0, then lngamma(x) = NaN */
-+  if (MPFR_IS_NEG (x) && unit_bit (x) == 0)
-     {
-       MPFR_SET_NAN (y);
-       MPFR_RET_NAN;
-diff -Naurd mpfr-3.1.3-a/src/mpfr.h mpfr-3.1.3-b/src/mpfr.h
---- mpfr-3.1.3-a/src/mpfr.h    2015-06-19 19:55:10.000000000 +0000
-+++ mpfr-3.1.3-b/src/mpfr.h    2015-07-02 10:49:24.038113803 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 3
--#define MPFR_VERSION_STRING "3.1.3"
-+#define MPFR_VERSION_STRING "3.1.3-p1"
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.3-a/src/version.c mpfr-3.1.3-b/src/version.c
---- mpfr-3.1.3-a/src/version.c 2015-06-19 19:55:10.000000000 +0000
-+++ mpfr-3.1.3-b/src/version.c 2015-07-02 10:49:24.042113845 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "3.1.3";
-+  return "3.1.3-p1";
- }
-diff -Naurd mpfr-3.1.3-a/tests/tlngamma.c mpfr-3.1.3-b/tests/tlngamma.c
---- mpfr-3.1.3-a/tests/tlngamma.c      2015-06-19 19:55:10.000000000 +0000
-+++ mpfr-3.1.3-b/tests/tlngamma.c      2015-07-02 10:49:24.018113593 +0000
-@@ -33,7 +33,7 @@
- special (void)
- {
-   mpfr_t x, y;
--  int inex;
-+  int i, inex;
-   mpfr_init (x);
-   mpfr_init (y);
-@@ -46,25 +46,29 @@
-       exit (1);
-     }
--  mpfr_set_inf (x, -1);
-+  mpfr_set_inf (x, 1);
-+  mpfr_clear_flags ();
-   mpfr_lngamma (y, x, MPFR_RNDN);
--  if (!mpfr_nan_p (y))
-+  if (!mpfr_inf_p (y) || mpfr_sgn (y) < 0 || __gmpfr_flags != 0)
-     {
--      printf ("Error for lngamma(-Inf)\n");
-+      printf ("Error for lngamma(+Inf)\n");
-       exit (1);
-     }
--  mpfr_set_inf (x, 1);
-+  mpfr_set_inf (x, -1);
-+  mpfr_clear_flags ();
-   mpfr_lngamma (y, x, MPFR_RNDN);
--  if (!mpfr_inf_p (y) || mpfr_sgn (y) < 0)
-+  if (!mpfr_inf_p (y) || mpfr_sgn (y) < 0 || __gmpfr_flags != 0)
-     {
--      printf ("Error for lngamma(+Inf)\n");
-+      printf ("Error for lngamma(-Inf)\n");
-       exit (1);
-     }
-   mpfr_set_ui (x, 0, MPFR_RNDN);
-+  mpfr_clear_flags ();
-   mpfr_lngamma (y, x, MPFR_RNDN);
--  if (!mpfr_inf_p (y) || mpfr_sgn (y) < 0)
-+  if (!mpfr_inf_p (y) || mpfr_sgn (y) < 0 ||
-+      __gmpfr_flags != MPFR_FLAGS_DIVBY0)
-     {
-       printf ("Error for lngamma(+0)\n");
-       exit (1);
-@@ -72,32 +76,58 @@
-   mpfr_set_ui (x, 0, MPFR_RNDN);
-   mpfr_neg (x, x, MPFR_RNDN);
-+  mpfr_clear_flags ();
-   mpfr_lngamma (y, x, MPFR_RNDN);
--  if (!mpfr_nan_p (y))
-+  if (!mpfr_inf_p (y) || mpfr_sgn (y) < 0 ||
-+      __gmpfr_flags != MPFR_FLAGS_DIVBY0)
-     {
-       printf ("Error for lngamma(-0)\n");
-       exit (1);
-     }
-   mpfr_set_ui (x, 1, MPFR_RNDN);
-+  mpfr_clear_flags ();
-   mpfr_lngamma (y, x, MPFR_RNDN);
--  if (MPFR_IS_NAN (y) || mpfr_cmp_ui (y, 0) || MPFR_IS_NEG (y))
-+  if (mpfr_cmp_ui0 (y, 0) || MPFR_IS_NEG (y))
-     {
-       printf ("Error for lngamma(1)\n");
-       exit (1);
-     }
--  mpfr_set_si (x, -1, MPFR_RNDN);
--  mpfr_lngamma (y, x, MPFR_RNDN);
--  if (!mpfr_nan_p (y))
-+  for (i = 1; i <= 5; i++)
-     {
--      printf ("Error for lngamma(-1)\n");
--      exit (1);
-+      int c;
-+
-+      mpfr_set_si (x, -i, MPFR_RNDN);
-+      mpfr_clear_flags ();
-+      mpfr_lngamma (y, x, MPFR_RNDN);
-+      if (!mpfr_inf_p (y) || mpfr_sgn (y) < 0 ||
-+          __gmpfr_flags != MPFR_FLAGS_DIVBY0)
-+        {
-+          printf ("Error for lngamma(-%d)\n", i);
-+          exit (1);
-+        }
-+      if (i & 1)
-+        {
-+          mpfr_nextabove (x);
-+          c = '+';
-+        }
-+      else
-+        {
-+          mpfr_nextbelow (x);
-+          c = '-';
-+        }
-+      mpfr_lngamma (y, x, MPFR_RNDN);
-+      if (!mpfr_nan_p (y))
-+        {
-+          printf ("Error for lngamma(-%d%cepsilon)\n", i, c);
-+          exit (1);
-+        }
-     }
-   mpfr_set_ui (x, 2, MPFR_RNDN);
-   mpfr_lngamma (y, x, MPFR_RNDN);
--  if (MPFR_IS_NAN (y) || mpfr_cmp_ui (y, 0) || MPFR_IS_NEG (y))
-+  if (mpfr_cmp_ui0 (y, 0) || MPFR_IS_NEG (y))
-     {
-       printf ("Error for lngamma(2)\n");
-       exit (1);
-@@ -127,7 +157,7 @@
-   mpfr_set_str (x, CHECK_X2, 10, MPFR_RNDN);
-   mpfr_lngamma (y, x, MPFR_RNDN);
-   mpfr_set_str (x, CHECK_Y2, 10, MPFR_RNDN);
--  if (MPFR_IS_NAN (y) || mpfr_cmp (y, x))
-+  if (mpfr_cmp0 (y, x))
-     {
-       printf ("mpfr_lngamma("CHECK_X2") is wrong:\n"
-               "expected ");
-@@ -143,7 +173,7 @@
-   mpfr_lngamma (y, x, MPFR_RNDU);
-   mpfr_set_prec (x, 175);
-   mpfr_set_str_binary (x, "0.1010001100011101101011001101110010100001000001000001110011000001101100001111001001000101011011100100010101011110100111110101010100010011010010000101010111001100011000101111E7");
--  if (MPFR_IS_NAN (y) || mpfr_cmp (x, y))
-+  if (mpfr_cmp0 (x, y))
-     {
-       printf ("Error in mpfr_lngamma (1)\n");
-       exit (1);
-@@ -155,7 +185,7 @@
-   mpfr_lngamma (x, y, MPFR_RNDZ);
-   mpfr_set_prec (y, 21);
-   mpfr_set_str_binary (y, "0.111000101000001100101E9");
--  if (MPFR_IS_NAN (x) || mpfr_cmp (x, y))
-+  if (mpfr_cmp0 (x, y))
-     {
-       printf ("Error in mpfr_lngamma (120)\n");
-       printf ("Expected "); mpfr_print_binary (y); puts ("");
-@@ -169,7 +199,7 @@
-   inex = mpfr_lngamma (y, x, MPFR_RNDN);
-   mpfr_set_prec (x, 206);
-   mpfr_set_str_binary (x, "0.10000111011000000011100010101001100110001110000111100011000100100110110010001011011110101001111011110110000001010100111011010000000011100110110101100111000111010011110010000100010111101010001101000110101001E13");
--  if (MPFR_IS_NAN (y) || mpfr_cmp (x, y))
-+  if (mpfr_cmp0 (x, y))
-     {
-       printf ("Error in mpfr_lngamma (768)\n");
-       exit (1);
-@@ -185,7 +215,7 @@
-   mpfr_set_str_binary (x, "0.1100E-66");
-   mpfr_lngamma (y, x, MPFR_RNDN);
-   mpfr_set_str_binary (x, "0.1100E6");
--  if (MPFR_IS_NAN (y) || mpfr_cmp (x, y))
-+  if (mpfr_cmp0 (x, y))
-     {
-       printf ("Error for lngamma(0.1100E-66)\n");
-       exit (1);
-@@ -199,7 +229,7 @@
-   mpfr_lngamma (y, x, MPFR_RNDN);
-   mpfr_set_prec (x, 32);
-   mpfr_set_str_binary (x, "-0.10001000111011111011000010100010E207");
--  if (MPFR_IS_NAN (y) || mpfr_cmp (x, y))
-+  if (mpfr_cmp0 (x, y))
-     {
-       printf ("Error for lngamma(-2^199+0.5)\n");
-       printf ("Got        ");
-diff -Naurd mpfr-3.1.3-a/PATCHES mpfr-3.1.3-b/PATCHES
---- mpfr-3.1.3-a/PATCHES       2015-07-02 10:50:08.046573308 +0000
-+++ mpfr-3.1.3-b/PATCHES       2015-07-02 10:50:08.126574142 +0000
-@@ -0,0 +1 @@
-+muldiv-2exp-overflow
-diff -Naurd mpfr-3.1.3-a/VERSION mpfr-3.1.3-b/VERSION
---- mpfr-3.1.3-a/VERSION       2015-07-02 10:49:24.042113845 +0000
-+++ mpfr-3.1.3-b/VERSION       2015-07-02 10:50:08.126574142 +0000
-@@ -1 +1 @@
--3.1.3-p1
-+3.1.3-p2
-diff -Naurd mpfr-3.1.3-a/src/div_2si.c mpfr-3.1.3-b/src/div_2si.c
---- mpfr-3.1.3-a/src/div_2si.c 2015-06-19 19:55:10.000000000 +0000
-+++ mpfr-3.1.3-b/src/div_2si.c 2015-07-02 10:50:08.106573933 +0000
-@@ -49,7 +49,7 @@
-             rnd_mode = MPFR_RNDZ;
-           return mpfr_underflow (y, rnd_mode, MPFR_SIGN(y));
-         }
--      else if (MPFR_UNLIKELY(n < 0 && (__gmpfr_emax < MPFR_EMIN_MIN - n ||
-+      else if (MPFR_UNLIKELY(n <= 0 && (__gmpfr_emax < MPFR_EMIN_MIN - n ||
-                                        exp > __gmpfr_emax + n)) )
-         return mpfr_overflow (y, rnd_mode, MPFR_SIGN(y));
-diff -Naurd mpfr-3.1.3-a/src/div_2ui.c mpfr-3.1.3-b/src/div_2ui.c
---- mpfr-3.1.3-a/src/div_2ui.c 2015-06-19 19:55:10.000000000 +0000
-+++ mpfr-3.1.3-b/src/div_2ui.c 2015-07-02 10:50:08.106573933 +0000
-@@ -32,7 +32,7 @@
-      rnd_mode),
-     ("y[%Pu]=%.*Rg inexact=%d", mpfr_get_prec(y), mpfr_log_prec, y, inexact));
--  if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (x)))
-+  if (MPFR_UNLIKELY (n == 0 || MPFR_IS_SINGULAR (x)))
-     return mpfr_set (y, x, rnd_mode);
-   else
-     {
-diff -Naurd mpfr-3.1.3-a/src/mpfr.h mpfr-3.1.3-b/src/mpfr.h
---- mpfr-3.1.3-a/src/mpfr.h    2015-07-02 10:49:24.038113803 +0000
-+++ mpfr-3.1.3-b/src/mpfr.h    2015-07-02 10:50:08.126574142 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 3
--#define MPFR_VERSION_STRING "3.1.3-p1"
-+#define MPFR_VERSION_STRING "3.1.3-p2"
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.3-a/src/mul_2si.c mpfr-3.1.3-b/src/mul_2si.c
---- mpfr-3.1.3-a/src/mul_2si.c 2015-06-19 19:55:10.000000000 +0000
-+++ mpfr-3.1.3-b/src/mul_2si.c 2015-07-02 10:50:08.106573933 +0000
-@@ -39,7 +39,7 @@
-     {
-       mpfr_exp_t exp = MPFR_GET_EXP (x);
-       MPFR_SETRAW (inexact, y, x, exp, rnd_mode);
--      if (MPFR_UNLIKELY( n > 0 && (__gmpfr_emax < MPFR_EMIN_MIN + n ||
-+      if (MPFR_UNLIKELY(n >= 0 && (__gmpfr_emax < MPFR_EMIN_MIN + n ||
-                                    exp > __gmpfr_emax - n)))
-         return mpfr_overflow (y, rnd_mode, MPFR_SIGN(y));
-       else if (MPFR_UNLIKELY(n < 0 && (__gmpfr_emin > MPFR_EMAX_MAX + n ||
-diff -Naurd mpfr-3.1.3-a/src/version.c mpfr-3.1.3-b/src/version.c
---- mpfr-3.1.3-a/src/version.c 2015-07-02 10:49:24.042113845 +0000
-+++ mpfr-3.1.3-b/src/version.c 2015-07-02 10:50:08.126574142 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "3.1.3-p1";
-+  return "3.1.3-p2";
- }
-diff -Naurd mpfr-3.1.3-a/tests/tmul_2exp.c mpfr-3.1.3-b/tests/tmul_2exp.c
---- mpfr-3.1.3-a/tests/tmul_2exp.c     2015-06-19 19:55:10.000000000 +0000
-+++ mpfr-3.1.3-b/tests/tmul_2exp.c     2015-07-02 10:50:08.106573933 +0000
-@@ -242,6 +242,76 @@
-   large (MPFR_EMAX_MAX);
- }
-+/* Cases where the function overflows on n = 0 when rounding is like
-+   away from zero. */
-+static void
-+overflow0 (mpfr_exp_t emax)
-+{
-+  mpfr_exp_t old_emax;
-+  mpfr_t x, y1, y2;
-+  int neg, r, op;
-+  static char *sop[4] = { "mul_2ui", "mul_2si", "div_2ui", "div_2si" };
-+
-+  old_emax = mpfr_get_emax ();
-+  set_emax (emax);
-+
-+  mpfr_init2 (x, 8);
-+  mpfr_inits2 (6, y1, y2, (mpfr_ptr) 0);
-+
-+  mpfr_set_inf (x, 1);
-+  mpfr_nextbelow (x);
-+
-+  for (neg = 0; neg <= 1; neg++)
-+    {
-+      RND_LOOP (r)
-+        {
-+          int inex1, inex2;
-+          unsigned int flags1, flags2;
-+
-+          /* Even if there isn't an overflow (rounding ~ toward zero),
-+             the result is the same as the one of an overflow. */
-+          inex1 = mpfr_overflow (y1, (mpfr_rnd_t) r, neg ? -1 : 1);
-+          flags1 = MPFR_FLAGS_INEXACT;
-+          if (mpfr_inf_p (y1))
-+            flags1 |= MPFR_FLAGS_OVERFLOW;
-+          for (op = 0; op < 4; op++)
-+            {
-+              mpfr_clear_flags ();
-+              inex2 =
-+                op == 0 ? mpfr_mul_2ui (y2, x, 0, (mpfr_rnd_t) r) :
-+                op == 1 ? mpfr_mul_2si (y2, x, 0, (mpfr_rnd_t) r) :
-+                op == 2 ? mpfr_div_2ui (y2, x, 0, (mpfr_rnd_t) r) :
-+                op == 3 ? mpfr_div_2si (y2, x, 0, (mpfr_rnd_t) r) :
-+                (MPFR_ASSERTN (0), 0);
-+              flags2 = __gmpfr_flags;
-+              if (!(mpfr_equal_p (y1, y2) &&
-+                    SAME_SIGN (inex1, inex2) &&
-+                    flags1 == flags2))
-+                {
-+                  printf ("Error in overflow0 for %s, mpfr_%s, emax = %"
-+                          MPFR_EXP_FSPEC "d,\nx = ",
-+                          mpfr_print_rnd_mode ((mpfr_rnd_t) r), sop[op],
-+                          (mpfr_eexp_t) emax);
-+                  mpfr_dump (x);
-+                  printf ("Expected ");
-+                  mpfr_dump (y1);
-+                  printf ("  with inex = %d, flags =", inex1);
-+                  flags_out (flags1);
-+                  printf ("Got      ");
-+                  mpfr_dump (y2);
-+                  printf ("  with inex = %d, flags =", inex2);
-+                  flags_out (flags2);
-+                  exit (1);
-+                }
-+            }
-+        }
-+      mpfr_neg (x, x, MPFR_RNDN);
-+    }
-+
-+  mpfr_clears (x, y1, y2, (mpfr_ptr) 0);
-+  set_emax (old_emax);
-+}
-+
- int
- main (int argc, char *argv[])
- {
-@@ -334,6 +404,11 @@
-   underflow0 ();
-   large0 ();
-+  if (mpfr_get_emax () != MPFR_EMAX_MAX)
-+    overflow0 (mpfr_get_emax ());
-+  overflow0 (MPFR_EMAX_MAX);
-+  overflow0 (-1);
-+
-   tests_end_mpfr ();
-   return 0;
- }
-diff -Naurd mpfr-3.1.3-a/PATCHES mpfr-3.1.3-b/PATCHES
---- mpfr-3.1.3-a/PATCHES       2015-07-17 08:54:48.592799981 +0000
-+++ mpfr-3.1.3-b/PATCHES       2015-07-17 08:54:48.616811495 +0000
-@@ -0,0 +1 @@
-+muldiv-2exp-underflow
-diff -Naurd mpfr-3.1.3-a/VERSION mpfr-3.1.3-b/VERSION
---- mpfr-3.1.3-a/VERSION       2015-07-02 10:50:08.126574142 +0000
-+++ mpfr-3.1.3-b/VERSION       2015-07-17 08:54:48.616811495 +0000
-@@ -1 +1 @@
--3.1.3-p2
-+3.1.3-p3
-diff -Naurd mpfr-3.1.3-a/src/div_2si.c mpfr-3.1.3-b/src/div_2si.c
---- mpfr-3.1.3-a/src/div_2si.c 2015-07-02 10:50:08.106573933 +0000
-+++ mpfr-3.1.3-b/src/div_2si.c 2015-07-17 08:54:48.608807656 +0000
-@@ -45,7 +45,8 @@
-           if (rnd_mode == MPFR_RNDN &&
-               (__gmpfr_emin > MPFR_EMAX_MAX - (n - 1) ||
-                exp < __gmpfr_emin + (n - 1) ||
--               (inexact >= 0 && mpfr_powerof2_raw (y))))
-+               ((MPFR_IS_NEG (y) ? inexact <= 0 : inexact >= 0) &&
-+                mpfr_powerof2_raw (y))))
-             rnd_mode = MPFR_RNDZ;
-           return mpfr_underflow (y, rnd_mode, MPFR_SIGN(y));
-         }
-diff -Naurd mpfr-3.1.3-a/src/div_2ui.c mpfr-3.1.3-b/src/div_2ui.c
---- mpfr-3.1.3-a/src/div_2ui.c 2015-07-02 10:50:08.106573933 +0000
-+++ mpfr-3.1.3-b/src/div_2ui.c 2015-07-17 08:54:48.608807656 +0000
-@@ -44,7 +44,9 @@
-       if (MPFR_UNLIKELY (n >= diffexp))  /* exp - n <= emin - 1 */
-         {
-           if (rnd_mode == MPFR_RNDN &&
--              (n > diffexp || (inexact >= 0 && mpfr_powerof2_raw (y))))
-+              (n > diffexp ||
-+               ((MPFR_IS_NEG (y) ? inexact <= 0 : inexact >= 0) &&
-+                mpfr_powerof2_raw (y))))
-             rnd_mode = MPFR_RNDZ;
-           return mpfr_underflow (y, rnd_mode, MPFR_SIGN (y));
-         }
-diff -Naurd mpfr-3.1.3-a/src/mpfr.h mpfr-3.1.3-b/src/mpfr.h
---- mpfr-3.1.3-a/src/mpfr.h    2015-07-02 10:50:08.126574142 +0000
-+++ mpfr-3.1.3-b/src/mpfr.h    2015-07-17 08:54:48.616811495 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 3
--#define MPFR_VERSION_STRING "3.1.3-p2"
-+#define MPFR_VERSION_STRING "3.1.3-p3"
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.3-a/src/mul_2si.c mpfr-3.1.3-b/src/mul_2si.c
---- mpfr-3.1.3-a/src/mul_2si.c 2015-07-02 10:50:08.106573933 +0000
-+++ mpfr-3.1.3-b/src/mul_2si.c 2015-07-17 08:54:48.608807656 +0000
-@@ -48,7 +48,8 @@
-           if (rnd_mode == MPFR_RNDN &&
-               (__gmpfr_emin > MPFR_EMAX_MAX + (n + 1) ||
-                exp < __gmpfr_emin - (n + 1) ||
--               (inexact >= 0 && mpfr_powerof2_raw (y))))
-+               ((MPFR_IS_NEG (y) ? inexact <= 0 : inexact >= 0) &&
-+                mpfr_powerof2_raw (y))))
-             rnd_mode = MPFR_RNDZ;
-           return mpfr_underflow (y, rnd_mode, MPFR_SIGN(y));
-         }
-diff -Naurd mpfr-3.1.3-a/src/version.c mpfr-3.1.3-b/src/version.c
---- mpfr-3.1.3-a/src/version.c 2015-07-02 10:50:08.126574142 +0000
-+++ mpfr-3.1.3-b/src/version.c 2015-07-17 08:54:48.616811495 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "3.1.3-p2";
-+  return "3.1.3-p3";
- }
-diff -Naurd mpfr-3.1.3-a/tests/tmul_2exp.c mpfr-3.1.3-b/tests/tmul_2exp.c
---- mpfr-3.1.3-a/tests/tmul_2exp.c     2015-07-02 10:50:08.106573933 +0000
-+++ mpfr-3.1.3-b/tests/tmul_2exp.c     2015-07-17 08:54:48.608807656 +0000
-@@ -50,77 +50,82 @@
- {
-   mpfr_t x, y, z1, z2;
-   mpfr_exp_t emin;
--  int i, k;
-+  int i, k, s;
-   int prec;
-   int rnd;
-   int div;
-   int inex1, inex2;
-   unsigned int flags1, flags2;
--  /* Test mul_2si(x, e - k), div_2si(x, k - e) and div_2ui(x, k - e)
--   * with emin = e, x = 1 + i/16, i in { -1, 0, 1 }, and k = 1 to 4,
--   * by comparing the result with the one of a simple division.
-+  /* Test mul_2si(x, e - k), div_2si(x, k - e) and div_2ui(x, k - e) with
-+   * emin = e, x = s * (1 + i/16), i in { -1, 0, 1 }, s in { -1, 1 }, and
-+   * k = 1 to 4, by comparing the result with the one of a simple division.
-    */
-   emin = mpfr_get_emin ();
-   set_emin (e);
-   mpfr_inits2 (8, x, y, (mpfr_ptr) 0);
-   for (i = 15; i <= 17; i++)
--    {
--      inex1 = mpfr_set_ui_2exp (x, i, -4, MPFR_RNDN);
--      MPFR_ASSERTN (inex1 == 0);
--      for (prec = 6; prec >= 3; prec -= 3)
--        {
--          mpfr_inits2 (prec, z1, z2, (mpfr_ptr) 0);
--          RND_LOOP (rnd)
--            for (k = 1; k <= 4; k++)
--              {
--                /* The following one is assumed to be correct. */
--                inex1 = mpfr_mul_2si (y, x, e, MPFR_RNDN);
--                MPFR_ASSERTN (inex1 == 0);
--                inex1 = mpfr_set_ui (z1, 1 << k, MPFR_RNDN);
--                MPFR_ASSERTN (inex1 == 0);
--                mpfr_clear_flags ();
--                /* Do not use mpfr_div_ui to avoid the optimization
--                   by mpfr_div_2si. */
--                inex1 = mpfr_div (z1, y, z1, (mpfr_rnd_t) rnd);
--                flags1 = __gmpfr_flags;
--
--              for (div = 0; div <= 2; div++)
-+    for (s = 1; s >= -1; s -= 2)
-+      {
-+        inex1 = mpfr_set_si_2exp (x, s * i, -4, MPFR_RNDN);
-+        MPFR_ASSERTN (inex1 == 0);
-+        for (prec = 6; prec >= 3; prec -= 3)
-+          {
-+            mpfr_inits2 (prec, z1, z2, (mpfr_ptr) 0);
-+            RND_LOOP (rnd)
-+              for (k = 1; k <= 4; k++)
-                 {
-+                  /* The following one is assumed to be correct. */
-+                  inex1 = mpfr_mul_2si (y, x, e, MPFR_RNDN);
-+                  MPFR_ASSERTN (inex1 == 0);
-+                  inex1 = mpfr_set_ui (z1, 1 << k, MPFR_RNDN);
-+                  MPFR_ASSERTN (inex1 == 0);
-                   mpfr_clear_flags ();
--                  inex2 = div == 0 ?
--                    mpfr_mul_2si (z2, x, e - k, (mpfr_rnd_t) rnd) : div == 1 ?
--                    mpfr_div_2si (z2, x, k - e, (mpfr_rnd_t) rnd) :
--                    mpfr_div_2ui (z2, x, k - e, (mpfr_rnd_t) rnd);
--                  flags2 = __gmpfr_flags;
--                  if (flags1 == flags2 && SAME_SIGN (inex1, inex2) &&
--                      mpfr_equal_p (z1, z2))
--                    continue;
--                  printf ("Error in underflow(");
--                  if (e == MPFR_EMIN_MIN)
--                    printf ("MPFR_EMIN_MIN");
--                  else if (e == emin)
--                    printf ("default emin");
--                  else if (e >= LONG_MIN)
--                    printf ("%ld", (long) e);
--                  else
--                    printf ("<LONG_MIN");
--                  printf (") with mpfr_%s,\nx = %d/16, prec = %d, k = %d, "
--                          "%s\n", div == 0 ? "mul_2si" : div == 1 ?
--                          "div_2si" : "div_2ui", i, prec, k,
--                          mpfr_print_rnd_mode ((mpfr_rnd_t) rnd));
--                  printf ("Expected ");
--                  mpfr_out_str (stdout, 16, 0, z1, MPFR_RNDN);
--                  printf (", inex = %d, flags = %u\n", SIGN (inex1), flags1);
--                  printf ("Got      ");
--                  mpfr_out_str (stdout, 16, 0, z2, MPFR_RNDN);
--                  printf (", inex = %d, flags = %u\n", SIGN (inex2), flags2);
--                  exit (1);
--                }  /* div */
--              }  /* k */
--          mpfr_clears (z1, z2, (mpfr_ptr) 0);
--        }  /* prec */
--    }  /* i */
-+                  /* Do not use mpfr_div_ui to avoid the optimization
-+                     by mpfr_div_2si. */
-+                  inex1 = mpfr_div (z1, y, z1, (mpfr_rnd_t) rnd);
-+                  flags1 = __gmpfr_flags;
-+
-+                  for (div = 0; div <= 2; div++)
-+                    {
-+                      mpfr_clear_flags ();
-+                      inex2 =
-+                        div == 0 ?
-+                        mpfr_mul_2si (z2, x, e - k, (mpfr_rnd_t) rnd) :
-+                        div == 1 ?
-+                        mpfr_div_2si (z2, x, k - e, (mpfr_rnd_t) rnd) :
-+                        mpfr_div_2ui (z2, x, k - e, (mpfr_rnd_t) rnd);
-+                      flags2 = __gmpfr_flags;
-+                      if (flags1 == flags2 && SAME_SIGN (inex1, inex2) &&
-+                          mpfr_equal_p (z1, z2))
-+                        continue;
-+                      printf ("Error in underflow(");
-+                      if (e == MPFR_EMIN_MIN)
-+                        printf ("MPFR_EMIN_MIN");
-+                      else if (e == emin)
-+                        printf ("default emin");
-+                      else if (e >= LONG_MIN)
-+                        printf ("%ld", (long) e);
-+                      else
-+                        printf ("<LONG_MIN");
-+                      printf (") with mpfr_%s,\nx = %d/16, prec = %d, k = %d,"
-+                              " %s\n", div == 0 ? "mul_2si" : div == 1 ?
-+                              "div_2si" : "div_2ui", s * i, prec, k,
-+                              mpfr_print_rnd_mode ((mpfr_rnd_t) rnd));
-+                      printf ("Expected ");
-+                      mpfr_out_str (stdout, 16, 0, z1, MPFR_RNDN);
-+                      printf (", inex = %d, flags = %u\n",
-+                              SIGN (inex1), flags1);
-+                      printf ("Got      ");
-+                      mpfr_out_str (stdout, 16, 0, z2, MPFR_RNDN);
-+                      printf (", inex = %d, flags = %u\n",
-+                              SIGN (inex2), flags2);
-+                      exit (1);
-+                    }  /* div */
-+                }  /* k */
-+            mpfr_clears (z1, z2, (mpfr_ptr) 0);
-+          }  /* prec */
-+      }  /* i */
-   mpfr_clears (x, y, (mpfr_ptr) 0);
-   set_emin (emin);
- }
-diff -Naurd mpfr-3.1.3-a/PATCHES mpfr-3.1.3-b/PATCHES
---- mpfr-3.1.3-a/PATCHES       2015-07-17 08:58:21.094987384 +0000
-+++ mpfr-3.1.3-b/PATCHES       2015-07-17 08:58:21.118986898 +0000
-@@ -0,0 +1 @@
-+frexp
-diff -Naurd mpfr-3.1.3-a/VERSION mpfr-3.1.3-b/VERSION
---- mpfr-3.1.3-a/VERSION       2015-07-17 08:54:48.616811495 +0000
-+++ mpfr-3.1.3-b/VERSION       2015-07-17 08:58:21.118986898 +0000
-@@ -1 +1 @@
--3.1.3-p3
-+3.1.3-p4
-diff -Naurd mpfr-3.1.3-a/src/frexp.c mpfr-3.1.3-b/src/frexp.c
---- mpfr-3.1.3-a/src/frexp.c   2015-06-19 19:55:09.000000000 +0000
-+++ mpfr-3.1.3-b/src/frexp.c   2015-07-17 08:58:21.106987142 +0000
-@@ -26,6 +26,13 @@
- mpfr_frexp (mpfr_exp_t *exp, mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd)
- {
-   int inex;
-+  unsigned int saved_flags = __gmpfr_flags;
-+  MPFR_BLOCK_DECL (flags);
-+
-+  MPFR_LOG_FUNC
-+    (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (x), mpfr_log_prec, x, rnd),
-+     ("y[%Pu]=%.*Rg exp=%" MPFR_EXP_FSPEC "d inex=%d", mpfr_get_prec (y),
-+      mpfr_log_prec, y, (mpfr_eexp_t) *exp, inex));
-   if (MPFR_UNLIKELY(MPFR_IS_SINGULAR(x)))
-     {
-@@ -49,8 +56,32 @@
-         }
-     }
--  inex = mpfr_set (y, x, rnd);
-+  MPFR_BLOCK (flags, inex = mpfr_set (y, x, rnd));
-+  __gmpfr_flags = saved_flags;
-+
-+  /* Possible overflow due to the rounding, no possible underflow. */
-+
-+  if (MPFR_UNLIKELY (MPFR_OVERFLOW (flags)))
-+    {
-+      int inex2;
-+
-+      /* An overflow here means that the exponent of y would be larger than
-+         the one of x, thus x would be rounded to the next power of 2, and
-+         the returned y should be 1/2 in absolute value, rounded (i.e. with
-+         possible underflow or overflow). This also implies that x and y are
-+         different objects, so that the exponent of x has not been lost. */
-+      MPFR_LOG_MSG (("Internal overflow\n", 0));
-+      MPFR_ASSERTD (x != y);
-+      *exp = MPFR_GET_EXP (x) + 1;
-+      inex2 = mpfr_set_si_2exp (y, MPFR_INT_SIGN (x), -1, rnd);
-+      MPFR_LOG_MSG (("inex=%d inex2=%d\n", inex, inex2));
-+      if (inex2 != 0)
-+        inex = inex2;
-+      MPFR_RET (inex);
-+    }
-+
-   *exp = MPFR_GET_EXP (y);
--  MPFR_SET_EXP (y, 0);
-+  /* Do not use MPFR_SET_EXP because the range has not been checked yet. */
-+  MPFR_EXP (y) = 0;
-   return mpfr_check_range (y, inex, rnd);
- }
-diff -Naurd mpfr-3.1.3-a/src/mpfr.h mpfr-3.1.3-b/src/mpfr.h
---- mpfr-3.1.3-a/src/mpfr.h    2015-07-17 08:54:48.616811495 +0000
-+++ mpfr-3.1.3-b/src/mpfr.h    2015-07-17 08:58:21.114986979 +0000
-@@ -27,7 +27,7 @@
- #define MPFR_VERSION_MAJOR 3
- #define MPFR_VERSION_MINOR 1
- #define MPFR_VERSION_PATCHLEVEL 3
--#define MPFR_VERSION_STRING "3.1.3-p3"
-+#define MPFR_VERSION_STRING "3.1.3-p4"
- /* Macros dealing with MPFR VERSION */
- #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-diff -Naurd mpfr-3.1.3-a/src/version.c mpfr-3.1.3-b/src/version.c
---- mpfr-3.1.3-a/src/version.c 2015-07-17 08:54:48.616811495 +0000
-+++ mpfr-3.1.3-b/src/version.c 2015-07-17 08:58:21.118986898 +0000
-@@ -25,5 +25,5 @@
- const char *
- mpfr_get_version (void)
- {
--  return "3.1.3-p3";
-+  return "3.1.3-p4";
- }
-diff -Naurd mpfr-3.1.3-a/tests/tfrexp.c mpfr-3.1.3-b/tests/tfrexp.c
---- mpfr-3.1.3-a/tests/tfrexp.c        2015-06-19 19:55:10.000000000 +0000
-+++ mpfr-3.1.3-b/tests/tfrexp.c        2015-07-17 08:58:21.106987142 +0000
-@@ -129,12 +129,115 @@
-   mpfr_clear (x);
- }
-+static void check1 (void)
-+{
-+  mpfr_exp_t emin, emax, e;
-+  mpfr_t x, y1, y2;
-+  int r, neg, red;
-+
-+  emin = mpfr_get_emin ();
-+  emax = mpfr_get_emax ();
-+  set_emin (MPFR_EMIN_MIN);
-+  set_emax (MPFR_EMAX_MAX);
-+
-+  mpfr_init2 (x, 7);
-+  mpfr_inits2 (4, y1, y2, (mpfr_ptr) 0);
-+
-+  mpfr_set_ui_2exp (x, 1, -2, MPFR_RNDN);
-+  while (mpfr_regular_p (x))
-+    {
-+      /* Test the exponents up to 3 and with the maximum exponent
-+         (to check potential intermediate overflow). */
-+      if (MPFR_GET_EXP (x) == 4)
-+        mpfr_set_exp (x, MPFR_EMAX_MAX);
-+      e = MPFR_GET_EXP (x);
-+      for (neg = 0; neg < 2; neg++)
-+        {
-+          RND_LOOP (r)
-+            {
-+              int inex1, inex2;
-+              mpfr_exp_t e1, e2;
-+              unsigned int flags1, flags2;
-+
-+              for (red = 0; red < 2; red++)
-+                {
-+                  if (red)
-+                    {
-+                      /* e1: exponent of the rounded value of x. */
-+                      MPFR_ASSERTN (e1 == e || e1 == e + 1);
-+                      set_emin (e);
-+                      set_emax (e);
-+                      mpfr_clear_flags ();
-+                      inex1 = e1 < 0 ?
-+                        mpfr_mul_2ui (y1, x, -e1, (mpfr_rnd_t) r) :
-+                        mpfr_div_2ui (y1, x, e1, (mpfr_rnd_t) r);
-+                      flags1 = __gmpfr_flags;
-+                    }
-+                  else
-+                    {
-+                      inex1 = mpfr_set (y1, x, (mpfr_rnd_t) r);
-+                      e1 = MPFR_IS_INF (y1) ? e + 1 : MPFR_GET_EXP (y1);
-+                      flags1 = inex1 != 0 ? MPFR_FLAGS_INEXACT : 0;
-+                    }
-+                  mpfr_clear_flags ();
-+                  inex2 = mpfr_frexp (&e2, y2, x, (mpfr_rnd_t) r);
-+                  flags2 = __gmpfr_flags;
-+                  set_emin (MPFR_EMIN_MIN);
-+                  set_emax (MPFR_EMAX_MAX);
-+                  if ((!red || e == 0) &&
-+                      (! mpfr_regular_p (y2) || MPFR_GET_EXP (y2) != 0))
-+                    {
-+                      printf ("Error in check1 for %s, red = %d, x = ",
-+                              mpfr_print_rnd_mode ((mpfr_rnd_t) r), red);
-+                      mpfr_dump (x);
-+                      printf ("Expected 1/2 <= |y| < 1, got y = ");
-+                      mpfr_dump (y2);
-+                      exit (1);
-+                    }
-+                  if (!red)
-+                    {
-+                      if (e2 > 0)
-+                        mpfr_mul_2ui (y2, y2, e2, MPFR_RNDN);
-+                      else if (e2 < 0)
-+                        mpfr_div_2ui (y2, y2, -e2, MPFR_RNDN);
-+                    }
-+                  if (! (SAME_SIGN (inex1, inex2) &&
-+                         mpfr_equal_p (y1, y2) &&
-+                         flags1 == flags2))
-+                    {
-+                      printf ("Error in check1 for %s, red = %d, x = ",
-+                              mpfr_print_rnd_mode ((mpfr_rnd_t) r), red);
-+                      mpfr_dump (x);
-+                      printf ("Expected y1 = ");
-+                      mpfr_dump (y1);
-+                      printf ("Got      y2 = ");
-+                      mpfr_dump (y2);
-+                      printf ("Expected inex ~= %d, got %d\n", inex1, inex2);
-+                      printf ("Expected flags:");
-+                      flags_out (flags1);
-+                      printf ("Got flags:     ");
-+                      flags_out (flags2);
-+                      exit (1);
-+                    }
-+                }
-+            }
-+          mpfr_neg (x, x, MPFR_RNDN);
-+        }
-+      mpfr_nextabove (x);
-+    }
-+
-+  mpfr_clears (x, y1, y2, (mpfr_ptr) 0);
-+  set_emin (emin);
-+  set_emax (emax);
-+}
-+
- int
- main (int argc, char *argv[])
- {
-   tests_start_mpfr ();
-   check_special ();
-+  check1 ();
-   tests_end_mpfr ();
-   return 0;
index 2f71f1d4850763af52e9810483490a912208719d..db1460cb7ddb0f118b745723485a144a5cd68fba 100644 (file)
@@ -1,34 +1,78 @@
-diff -Nur openssl-1.0.2d/Configure openssl-1.0.2d.patched/Configure
---- openssl-1.0.2d/Configure   2015-07-09 11:57:15.000000000 +0000
-+++ openssl-1.0.2d.patched/Configure   2015-08-22 20:44:19.487000000 +0000
-@@ -365,7 +365,7 @@
+diff -up openssl-1.0.2e/Configure.rpmbuild openssl-1.0.2e/Configure
+--- openssl-1.0.2e/Configure.rpmbuild  2015-12-03 15:04:23.000000000 +0100
++++ openssl-1.0.2e/Configure   2015-12-04 13:20:22.996835604 +0100
+@@ -365,8 +365,8 @@ my %table=(
  ####
  # *-generic* is endian-neutral target, but ./config is free to
  # throw in -D[BL]_ENDIAN, whichever appropriate...
 -"linux-generic32","gcc:-O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-generic32","gcc:\$(CFLAGS) -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:\$(CFLAGS):.so.\$(SHLIB_SONAMEVER)",
- "linux-ppc",  "gcc:-DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"linux-ppc",  "gcc:-DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-generic32","gcc:-Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
++"linux-ppc",  "gcc:-DB_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
  
  #######################################################################
-@@ -406,7 +406,7 @@
- "linux64-mips64",   "gcc:-mabi=64 -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:64:dlfcn:linux-shared:-fPIC:-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
+ # Note that -march is not among compiler options in below linux-armv4
+@@ -395,31 +395,31 @@ my %table=(
+ #
+ #       ./Configure linux-armv4 -march=armv6 -D__ARM_MAX_ARCH__=8
+ #
+-"linux-armv4",        "gcc: -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"linux-aarch64","gcc: -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-armv4",        "gcc:-Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
++"linux-aarch64","gcc:-DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
+ # Configure script adds minimally required -march for assembly support,
+ # if no -march was specified at command line. mips32 and mips64 below
+ # refer to contemporary MIPS Architecture specifications, MIPS32 and
+ # MIPS64, rather than to kernel bitness.
+-"linux-mips32",       "gcc:-mabi=32 -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips32_asm}:o32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"linux-mips64",   "gcc:-mabi=n32 -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:n32:dlfcn:linux-shared:-fPIC:-mabi=n32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::32",
+-"linux64-mips64",   "gcc:-mabi=64 -O3 -Wall -DBN_DIV3W::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:64:dlfcn:linux-shared:-fPIC:-mabi=64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
++"linux-mips32",       "gcc:-mabi=32 -Wall \$(RPM_OPT_FLAGS) -DBN_DIV3W::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips32_asm}:o32:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
++"linux-mips64",   "gcc:-mabi=n32 -Wall \$(RPM_OPT_FLAGS) -DBN_DIV3W::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:n32:dlfcn:linux-shared:-fPIC:-mabi=n32 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::32",
++"linux64-mips64",   "gcc:-mabi=64 -Wall \$(RPM_OPT_FLAGS) -DBN_DIV3W::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips64_asm}:64:dlfcn:linux-shared:-fPIC:-mabi=64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
  #### IA-32 targets...
  "linux-ia32-icc",     "icc:-DL_ENDIAN -O2::-D_REENTRANT::-ldl -no_cpprt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-KPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 -"linux-elf",  "gcc:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-elf",  "gcc:-DL_ENDIAN \$(CFLAGS) -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_SONAMEVER)",
++"linux-elf",  "gcc:-DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
  "linux-aout", "gcc:-DL_ENDIAN -O3 -fomit-frame-pointer -march=i486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out",
  ####
- "linux-generic64","gcc:-O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-@@ -414,7 +414,7 @@
- "linux-ppc64le","gcc:-m64 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::",
- "linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"linux-generic64","gcc:-O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"linux-ppc64",        "gcc:-m64 -DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
+-"linux-ppc64le","gcc:-m64 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::",
+-"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-generic64","gcc:-Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
++"linux-ppc64",        "gcc:-m64 -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
++"linux-ppc64le","gcc:-m64 -DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
++"linux-ia64", "gcc:-DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
  "linux-ia64-icc","icc:-DL_ENDIAN -O2 -Wall::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 -"linux-x86_64",       "gcc:-m64 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
-+"linux-x86_64",       "gcc:-m64 -DL_ENDIAN \$(CFLAGS) -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_SONAMEVER):::64",
++"linux-x86_64",       "gcc:-m64 -DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
  "linux-x86_64-clang", "clang: -m64 -DL_ENDIAN -O3 -Wall -Wextra $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
+ "debug-linux-x86_64-clang",   "clang: -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -g -Wall -Wextra $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
  "linux-x86_64-icc", "icc:-DL_ENDIAN -O2::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
  "linux-x32",  "gcc:-mx32 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32",
-@@ -1764,7 +1764,7 @@
+-"linux64-s390x",      "gcc:-m64 -DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
++"linux64-s390x",      "gcc:-m64 -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
+ #### So called "highgprs" target for z/Architecture CPUs
+ # "Highgprs" is kernel feature first implemented in Linux 2.6.32, see
+ # /proc/cpuinfo. The idea is to preserve most significant bits of
+@@ -437,12 +437,12 @@ my %table=(
+ #### SPARC Linux setups
+ # Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
+ # assisted with debugging of following two configs.
+-"linux-sparcv8","gcc:-mcpu=v8 -DB_ENDIAN -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-sparcv8","gcc:-mcpu=v8 -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS) -DBN_DIV2W::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
+ # it's a real mess with -mcpu=ultrasparc option under Linux, but
+ # -Wa,-Av8plus should do the trick no matter what.
+-"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS) -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
+ # GCC 3.1 is a requirement
+-"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
++"linux64-sparcv9","gcc:-m64 -mcpu=ultrasparc -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT:ULTRASPARC:-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
+ #### Alpha Linux with GNU C and Compaq C setups
+ # Special notes:
+ # - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
+@@ -1767,7 +1767,7 @@ while (<IN>)
        elsif ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*\.[^\.]*$/)
                {
                my $sotmp = $1;
@@ -37,11 +81,10 @@ diff -Nur openssl-1.0.2d/Configure openssl-1.0.2d.patched/Configure
                }
        elsif ($shared_extension ne "" && $shared_extension =~ /^\.[^\.]*\.[^\.]*\.dylib$/)
                {
-
-diff -Nur openssl-1.0.2d/Makefile.org openssl-1.0.2d.patched/Makefile.org
---- openssl-1.0.2d/Makefile.org        2015-07-09 11:57:15.000000000 +0000
-+++ openssl-1.0.2d.patched/Makefile.org        2015-08-22 20:41:49.921000000 +0000
-@@ -10,6 +10,7 @@
+diff -up openssl-1.0.2e/Makefile.org.rpmbuild openssl-1.0.2e/Makefile.org
+--- openssl-1.0.2e/Makefile.org.rpmbuild       2015-12-03 15:04:23.000000000 +0100
++++ openssl-1.0.2e/Makefile.org        2015-12-04 13:18:44.913538616 +0100
+@@ -10,6 +10,7 @@ SHLIB_VERSION_HISTORY=
  SHLIB_MAJOR=
  SHLIB_MINOR=
  SHLIB_EXT=
@@ -49,7 +92,7 @@ diff -Nur openssl-1.0.2d/Makefile.org openssl-1.0.2d.patched/Makefile.org
  PLATFORM=dist
  OPTIONS=
  CONFIGURE_ARGS=
-@@ -339,10 +340,9 @@
+@@ -341,10 +342,9 @@ clean-shared:
  link-shared:
        @ set -e; for i in $(SHLIBDIRS); do \
                $(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
@@ -61,7 +104,7 @@ diff -Nur openssl-1.0.2d/Makefile.org openssl-1.0.2d.patched/Makefile.org
        done
  
  build-shared: do_$(SHLIB_TARGET) link-shared
-@@ -353,7 +353,7 @@
+@@ -355,7 +355,7 @@ do_$(SHLIB_TARGET):
                        libs="$(LIBKRB5) $$libs"; \
                fi; \
                $(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
@@ -69,3 +112,4 @@ diff -Nur openssl-1.0.2d/Makefile.org openssl-1.0.2d.patched/Makefile.org
 +                      LIBNAME=$$i LIBVERSION=$(SHLIB_SONAMEVER) \
                        LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
                        LIBDEPS="$$libs $(EX_LIBS)" \
+                       link_a.$(SHLIB_TARGET); \
diff --git a/src/patches/p7zip_change_install_folder.patch b/src/patches/p7zip_change_install_folder.patch
new file mode 100644 (file)
index 0000000..4a83343
--- /dev/null
@@ -0,0 +1,10 @@
+--- p7zip_15.14.1/makefile.common
++++ p7zip_15.14.1/makefile.common
+@@ -1,6 +1,6 @@
+ MKDIR = mkdir -p
+-DEST_HOME=/usr/local
++DEST_HOME=/usr
+ DEST_BIN=$(DEST_HOME)/bin
+ DEST_SHARE=$(DEST_HOME)/lib/p7zip
+ DEST_SHARE_DOC=$(DEST_HOME)/share/doc/p7zip
diff --git a/src/patches/pam-0.99.10.0-rlimit-build-fix.patch b/src/patches/pam-0.99.10.0-rlimit-build-fix.patch
new file mode 100644 (file)
index 0000000..5fdee07
--- /dev/null
@@ -0,0 +1,28 @@
+From 8e508f23bf5ed727649c99bbd540f7b1c2c2bd35 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Stevan=20Baji=C4=87?= <stevan@bajic.ch>
+Date: Mon, 9 Jul 2012 09:43:11 +0200
+Subject: [PATCH] RLIMIT_* variables are no longer defined unless you
+ explicitly include sys/resource.h.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+
+modules/pam_unix/pam_unix_acct.c: Include sys/resource.h.
+---
+ modules/pam_unix/pam_unix_acct.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules/pam_unix/pam_unix_acct.c b/modules/pam_unix/pam_unix_acct.c
+index 8e90cc9..4a362f8 100644
+--- a/modules/pam_unix/pam_unix_acct.c
++++ b/modules/pam_unix/pam_unix_acct.c
+@@ -41,6 +41,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <sys/types.h>
++#include <sys/resource.h>
+ #include <syslog.h>
+ #include <pwd.h>
+ #include <shadow.h>
diff --git a/src/patches/perl-Fix-Errno.pm-generation-for-gcc-5.0.patch b/src/patches/perl-Fix-Errno.pm-generation-for-gcc-5.0.patch
new file mode 100644 (file)
index 0000000..1f6e80a
--- /dev/null
@@ -0,0 +1,66 @@
+From 96bcd6ed97ff05f5b421005f23973279dbfcafbf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 11 Feb 2015 15:46:37 +0100
+Subject: [PATCH 1/2] Fix Errno.pm generation for gcc-5.0
+
+gcc-5.0 -E interleaves now line numbers with expended macros, so that
+the generated errno.c will be preprocessed to
+
+EBFONT => [[
+           59
+                ]]
+
+which is hard to parse in in line-based reader.
+
+So use -P option with gcc >= 5.0. Global -P usage would break makedepend,
+global -ftrack-macro-expansion=0 would break lib/h2ph.t.
+
+RT#123784
+---
+ ext/Errno/Errno_pm.PL | 23 +++++++++++++++++------
+ 1 file changed, 17 insertions(+), 6 deletions(-)
+
+diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
+index 3dadfce..c6bfa06 100644
+--- a/ext/Errno/Errno_pm.PL
++++ b/ext/Errno/Errno_pm.PL
+@@ -215,20 +215,31 @@ sub write_errno_pm {
+     { # BeOS (support now removed) did not enter this block
+     # invoke CPP and read the output
++      my $inhibit_linemarkers = '';
++      if ($Config{gccversion} =~ /\A(\d+)\./ and $1 >= 5) {
++          # GCC 5.0 interleaves expanded macros with line numbers breaking
++          # each line into multiple lines. RT#123784
++          $inhibit_linemarkers = ' -P';
++      }
++
+       if ($^O eq 'VMS') {
+-          my $cpp = "$Config{cppstdin} $Config{cppflags} $Config{cppminus}";
++          my $cpp = "$Config{cppstdin} $Config{cppflags}" .
++              $inhibit_linemarkers . " $Config{cppminus}";
+           $cpp =~ s/sys\$input//i;
+           open(CPPO,"$cpp  errno.c |") or
+               die "Cannot exec $Config{cppstdin}";
+       } elsif ($IsMSWin32 || $^O eq 'NetWare') {
+-          open(CPPO,"$Config{cpprun} $Config{cppflags} errno.c |") or
+-              die "Cannot run '$Config{cpprun} $Config{cppflags} errno.c'";
++          my $cpp = "$Config{cpprun} $Config{cppflags}" .
++              $inhibit_linemarkers;
++          open(CPPO,"$cpp errno.c |") or
++              die "Cannot run '$cpp errno.c'";
+       } elsif ($IsSymbian) {
+-            my $cpp = "gcc -E -I$ENV{SDK}\\epoc32\\include\\libc -";
++            my $cpp = "gcc -E -I$ENV{SDK}\\epoc32\\include\\libc" .
++              $inhibit_linemarkers ." -";
+           open(CPPO,"$cpp < errno.c |")
+               or die "Cannot exec $cpp";
+         } else {
+-          my $cpp = default_cpp();
++          my $cpp = default_cpp() . $inhibit_linemarkers;
+           open(CPPO,"$cpp < errno.c |")
+               or die "Cannot exec $cpp";
+       }
+-- 
+2.3.0
+
diff --git a/src/patches/python-2.7.13-getentropy.patch b/src/patches/python-2.7.13-getentropy.patch
new file mode 100644 (file)
index 0000000..7e00061
--- /dev/null
@@ -0,0 +1,22 @@
+diff --git a/Python/random.c b/Python/random.c
+index 2f83b5d..4cae217 100644
+--- a/Python/random.c
++++ b/Python/random.c
+@@ -97,8 +97,15 @@ win32_urandom(unsigned char *buffer, Py_ssize_t size, int raise)
+ }
+ /* Issue #25003: Don't use getentropy() on Solaris (available since
+- * Solaris 11.3), it is blocking whereas os.urandom() should not block. */
+-#elif defined(HAVE_GETENTROPY) && !defined(sun)
++   Solaris 11.3), it is blocking whereas os.urandom() should not block.
++
++   Issue #29188: Don't use getentropy() on Linux since the glibc 2.24
++   implements it with the getrandom() syscall which can fail with ENOSYS,
++   and this error is not supported in py_getentropy() and getrandom() is called
++   with flags=0 which blocks until system urandom is initialized, which is not
++   the desired behaviour to seed the Python hash secret nor for os.urandom():
++   see the PEP 524 which was only implemented in Python 3.6. */
++#elif defined(HAVE_GETENTROPY) && !defined(sun) && !defined(linux)
+ #define PY_GETENTROPY 1
+ /* Fill buffer with size pseudo-random bytes generated by getentropy().
diff --git a/src/patches/samba/CVE-2015-5252-v3-6-bso11395.patch b/src/patches/samba/CVE-2015-5252-v3-6-bso11395.patch
new file mode 100644 (file)
index 0000000..b7580fb
--- /dev/null
@@ -0,0 +1,44 @@
+From 2e94b6ec10f1d15e24867bab3063bb85f173406a Mon Sep 17 00:00:00 2001
+From: Jeremy Allison <jra@samba.org>
+Date: Thu, 9 Jul 2015 10:58:11 -0700
+Subject: [PATCH] CVE-2015-5252: s3: smbd: Fix symlink verification (file
+ access outside the share).
+
+Ensure matching component ends in '/' or '\0'.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11395
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+Reviewed-by: Volker Lendecke <vl@samba.org>
+---
+ source3/smbd/vfs.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c
+index 6c56964..bd93b7f 100644
+--- a/source3/smbd/vfs.c
++++ b/source3/smbd/vfs.c
+@@ -982,6 +982,7 @@ NTSTATUS check_reduced_name(connection_struct *conn, const char *fname)
+       if (!allow_widelinks || !allow_symlinks) {
+               const char *conn_rootdir;
+               size_t rootdir_len;
++              bool matched;
+               conn_rootdir = SMB_VFS_CONNECTPATH(conn, fname);
+               if (conn_rootdir == NULL) {
+@@ -992,8 +993,10 @@ NTSTATUS check_reduced_name(connection_struct *conn, const char *fname)
+               }
+               rootdir_len = strlen(conn_rootdir);
+-              if (strncmp(conn_rootdir, resolved_name,
+-                              rootdir_len) != 0) {
++              matched = (strncmp(conn_rootdir, resolved_name,
++                              rootdir_len) == 0);
++              if (!matched || (resolved_name[rootdir_len] != '/' &&
++                               resolved_name[rootdir_len] != '\0')) {
+                       DEBUG(2, ("check_reduced_name: Bad access "
+                               "attempt: %s is a symlink outside the "
+                               "share path\n", fname));
+-- 
+2.5.0
+
diff --git a/src/patches/samba/CVE-2015-5296-v3-6-bso11536.patch b/src/patches/samba/CVE-2015-5296-v3-6-bso11536.patch
new file mode 100644 (file)
index 0000000..4b722a5
--- /dev/null
@@ -0,0 +1,113 @@
+From 25139116756cc285a3a5534834cc276ef1b7baaa Mon Sep 17 00:00:00 2001
+From: Stefan Metzmacher <metze@samba.org>
+Date: Wed, 30 Sep 2015 21:17:02 +0200
+Subject: [PATCH 1/2] CVE-2015-5296: s3:libsmb: force signing when requiring
+ encryption in do_connect()
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11536
+
+Signed-off-by: Stefan Metzmacher <metze@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+---
+ source3/libsmb/clidfs.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/source3/libsmb/clidfs.c b/source3/libsmb/clidfs.c
+index 23e1471..f153b6b 100644
+--- a/source3/libsmb/clidfs.c
++++ b/source3/libsmb/clidfs.c
+@@ -98,6 +98,11 @@ static struct cli_state *do_connect(TALLOC_CTX *ctx,
+       const char *username;
+       const char *password;
+       NTSTATUS status;
++      int signing_state = get_cmdline_auth_info_signing_state(auth_info);
++
++      if (force_encrypt) {
++              signing_state = Required;
++      }
+       /* make a copy so we don't modify the global string 'service' */
+       servicename = talloc_strdup(ctx,share);
+@@ -132,7 +137,7 @@ static struct cli_state *do_connect(TALLOC_CTX *ctx,
+       zero_sockaddr(&ss);
+       /* have to open a new connection */
+-      c = cli_initialise_ex(get_cmdline_auth_info_signing_state(auth_info));
++      c = cli_initialise_ex(signing_state);
+       if (c == NULL) {
+               d_printf("Connection to %s failed\n", server_n);
+               return NULL;
+-- 
+2.5.0
+
+
+From 060adb0abdeda51b8b622c6020b5dea0c8dde1cf Mon Sep 17 00:00:00 2001
+From: Stefan Metzmacher <metze@samba.org>
+Date: Wed, 30 Sep 2015 21:17:02 +0200
+Subject: [PATCH 2/2] CVE-2015-5296: s3:libsmb: force signing when requiring
+ encryption in SMBC_server_internal()
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11536
+
+Signed-off-by: Stefan Metzmacher <metze@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+---
+ source3/libsmb/libsmb_server.c | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c
+index 45be660..167f2c9 100644
+--- a/source3/libsmb/libsmb_server.c
++++ b/source3/libsmb/libsmb_server.c
+@@ -258,6 +258,7 @@ SMBC_server_internal(TALLOC_CTX *ctx,
+         const char *username_used;
+       NTSTATUS status;
+       char *newserver, *newshare;
++      int signing_state = Undefined;
+       zero_sockaddr(&ss);
+       ZERO_STRUCT(c);
+@@ -404,8 +405,12 @@ again:
+       zero_sockaddr(&ss);
++      if (context->internal->smb_encryption_level != SMBC_ENCRYPTLEVEL_NONE) {
++              signing_state = Required;
++      }
++
+       /* have to open a new connection */
+-      if ((c = cli_initialise()) == NULL) {
++      if ((c = cli_initialise_ex(signing_state)) == NULL) {
+               errno = ENOMEM;
+               return NULL;
+       }
+@@ -750,6 +755,7 @@ SMBC_attr_server(TALLOC_CTX *ctx,
+         ipc_srv = SMBC_find_server(ctx, context, server, "*IPC$",
+                                    pp_workgroup, pp_username, pp_password);
+         if (!ipc_srv) {
++              int signing_state = Undefined;
+                 /* We didn't find a cached connection.  Get the password */
+               if (!*pp_password || (*pp_password)[0] == '\0') {
+@@ -771,6 +777,9 @@ SMBC_attr_server(TALLOC_CTX *ctx,
+                 if (smbc_getOptionUseCCache(context)) {
+                         flags |= CLI_FULL_CONNECTION_USE_CCACHE;
+                 }
++              if (context->internal->smb_encryption_level != SMBC_ENCRYPTLEVEL_NONE) {
++                      signing_state = Required;
++              }
+                 zero_sockaddr(&ss);
+                 nt_status = cli_full_connection(&ipc_cli,
+@@ -780,7 +789,7 @@ SMBC_attr_server(TALLOC_CTX *ctx,
+                                               *pp_workgroup,
+                                               *pp_password,
+                                               flags,
+-                                              Undefined);
++                                              signing_state);
+                 if (! NT_STATUS_IS_OK(nt_status)) {
+                         DEBUG(1,("cli_full_connection failed! (%s)\n",
+                                  nt_errstr(nt_status)));
+-- 
+2.5.0
+
diff --git a/src/patches/samba/CVE-2015-5299-v3-6-bso11529.patch b/src/patches/samba/CVE-2015-5299-v3-6-bso11529.patch
new file mode 100644 (file)
index 0000000..38936bb
--- /dev/null
@@ -0,0 +1,98 @@
+From 8e49de7754f7171a58a1f94dee0f1138dbee3c60 Mon Sep 17 00:00:00 2001
+From: Jeremy Allison <jra@samba.org>
+Date: Fri, 23 Oct 2015 14:54:31 -0700
+Subject: [PATCH] CVE-2015-5299: s3-shadow-copy2: fix missing access check on
+ snapdir
+
+Fix originally from <partha@exablox.com>
+
+https://bugzilla.samba.org/show_bug.cgi?id=11529
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+Reviewed-by: David Disseldorp <ddiss@samba.org>
+---
+ source3/modules/vfs_shadow_copy2.c | 47 ++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 47 insertions(+)
+
+diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c
+index fedfb53..16c1ed7 100644
+--- a/source3/modules/vfs_shadow_copy2.c
++++ b/source3/modules/vfs_shadow_copy2.c
+@@ -21,6 +21,8 @@
+ #include "includes.h"
+ #include "smbd/smbd.h"
++#include "smbd/globals.h"
++#include "../libcli/security/security.h"
+ #include "system/filesys.h"
+ #include "ntioctl.h"
+@@ -764,6 +766,43 @@ static int shadow_copy2_mkdir(vfs_handle_struct *handle,  const char *fname, mod
+         SHADOW2_NEXT(MKDIR, (handle, name, mode), int, -1);
+ }
++static bool check_access_snapdir(struct vfs_handle_struct *handle,
++                              const char *path)
++{
++      struct smb_filename smb_fname;
++      int ret;
++      NTSTATUS status;
++      uint32_t access_granted = 0;
++
++      ZERO_STRUCT(smb_fname);
++      smb_fname.base_name = talloc_asprintf(talloc_tos(),
++                                              "%s",
++                                              path);
++      if (smb_fname.base_name == NULL) {
++              return false;
++      }
++
++      ret = SMB_VFS_NEXT_STAT(handle, &smb_fname);
++      if (ret != 0 || !S_ISDIR(smb_fname.st.st_ex_mode)) {
++              TALLOC_FREE(smb_fname.base_name);
++              return false;
++      }
++
++      status = smbd_check_open_rights(handle->conn,
++                                      &smb_fname,
++                                      SEC_DIR_LIST,
++                                      &access_granted);
++      if (!NT_STATUS_IS_OK(status)) {
++              DEBUG(0,("user does not have list permission "
++                      "on snapdir %s\n",
++                      smb_fname.base_name));
++              TALLOC_FREE(smb_fname.base_name);
++              return false;
++      }
++      TALLOC_FREE(smb_fname.base_name);
++      return true;
++}
++
+ static int shadow_copy2_rmdir(vfs_handle_struct *handle,  const char *fname)
+ {
+         SHADOW2_NEXT(RMDIR, (handle, name), int, -1);
+@@ -877,6 +916,7 @@ static int shadow_copy2_get_shadow_copy2_data(vfs_handle_struct *handle,
+       SMB_STRUCT_DIRENT *d;
+       TALLOC_CTX *tmp_ctx = talloc_new(handle->data);
+       char *snapshot;
++      bool ret;
+       snapdir = shadow_copy2_find_snapdir(tmp_ctx, handle);
+       if (snapdir == NULL) {
+@@ -886,6 +926,13 @@ static int shadow_copy2_get_shadow_copy2_data(vfs_handle_struct *handle,
+               talloc_free(tmp_ctx);
+               return -1;
+       }
++      ret = check_access_snapdir(handle, snapdir);
++      if (!ret) {
++              DEBUG(0,("access denied on listing snapdir %s\n", snapdir));
++              errno = EACCES;
++              talloc_free(tmp_ctx);
++              return -1;
++      }
+       p = SMB_VFS_NEXT_OPENDIR(handle, snapdir, NULL, 0);
+-- 
+2.5.0
+
diff --git a/src/patches/samba/CVE-2015-5330-v3-6-bso11599.patch b/src/patches/samba/CVE-2015-5330-v3-6-bso11599.patch
new file mode 100644 (file)
index 0000000..4ae1473
--- /dev/null
@@ -0,0 +1,214 @@
+From a96c0528c68093d155b674269a9c8bf48315fc01 Mon Sep 17 00:00:00 2001
+From: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
+Date: Tue, 24 Nov 2015 13:47:16 +1300
+Subject: [PATCH 1/3] CVE-2015-5330: Fix handling of unicode near string
+ endings
+
+Until now next_codepoint_ext() and next_codepoint_handle_ext() were
+using strnlen(str, 5) to determine how much string they should try to
+decode. This ended up looking past the end of the string when it was not
+null terminated and the final character looked like a multi-byte encoding.
+The fix is to let the caller say how long the string can be.
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=11599
+
+Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
+Pair-programmed-with: Andrew Bartlett <abartlet@samba.org>
+Reviewed-by: Ralph Boehme <slow@samba.org>
+---
+ lib/util/charset/charset.h     |  9 +++++----
+ lib/util/charset/codepoints.c  | 19 +++++++++++++------
+ lib/util/charset/util_unistr.c |  5 ++++-
+ source3/lib/util_str.c         |  2 +-
+ 4 files changed, 23 insertions(+), 12 deletions(-)
+
+diff --git a/lib/util/charset/charset.h b/lib/util/charset/charset.h
+index 474d77e..b70aa61 100644
+--- a/lib/util/charset/charset.h
++++ b/lib/util/charset/charset.h
+@@ -175,15 +175,16 @@ smb_iconv_t get_conv_handle(struct smb_iconv_convenience *ic,
+                           charset_t from, charset_t to);
+ const char *charset_name(struct smb_iconv_convenience *ic, charset_t ch);
+-codepoint_t next_codepoint_ext(const char *str, charset_t src_charset,
+-                             size_t *size);
++codepoint_t next_codepoint_ext(const char *str, size_t len,
++                             charset_t src_charset, size_t *size);
+ codepoint_t next_codepoint(const char *str, size_t *size);
+ ssize_t push_codepoint(char *str, codepoint_t c);
+ /* codepoints */
+ codepoint_t next_codepoint_convenience_ext(struct smb_iconv_convenience *ic,
+-                          const char *str, charset_t src_charset,
+-                          size_t *size);
++                                         const char *str, size_t len,
++                                         charset_t src_charset,
++                                         size_t *size);
+ codepoint_t next_codepoint_convenience(struct smb_iconv_convenience *ic, 
+                           const char *str, size_t *size);
+ ssize_t push_codepoint_convenience(struct smb_iconv_convenience *ic, 
+diff --git a/lib/util/charset/codepoints.c b/lib/util/charset/codepoints.c
+index 5ee95a8..8dd647e 100644
+--- a/lib/util/charset/codepoints.c
++++ b/lib/util/charset/codepoints.c
+@@ -346,7 +346,8 @@ smb_iconv_t get_conv_handle(struct smb_iconv_convenience *ic,
+  */
+ _PUBLIC_ codepoint_t next_codepoint_convenience_ext(
+                       struct smb_iconv_convenience *ic,
+-                      const char *str, charset_t src_charset,
++                      const char *str, size_t len,
++                      charset_t src_charset,
+                       size_t *bytes_consumed)
+ {
+       /* it cannot occupy more than 4 bytes in UTF16 format */
+@@ -366,7 +367,7 @@ _PUBLIC_ codepoint_t next_codepoint_convenience_ext(
+        * we assume that no multi-byte character can take more than 5 bytes.
+        * This is OK as we only support codepoints up to 1M (U+100000)
+        */
+-      ilen_orig = strnlen(str, 5);
++      ilen_orig = MIN(len, 5);
+       ilen = ilen_orig;
+       descriptor = get_conv_handle(ic, src_charset, CH_UTF16);
+@@ -424,7 +425,13 @@ _PUBLIC_ codepoint_t next_codepoint_convenience_ext(
+ _PUBLIC_ codepoint_t next_codepoint_convenience(struct smb_iconv_convenience *ic,
+                                   const char *str, size_t *size)
+ {
+-      return next_codepoint_convenience_ext(ic, str, CH_UNIX, size);
++      /*
++       * We assume that no multi-byte character can take more than 5 bytes
++       * thus avoiding walking all the way down a long string. This is OK as
++       * Unicode codepoints only go up to (U+10ffff), which can always be
++       * encoded in 4 bytes or less.
++       */
++      return next_codepoint_convenience_ext(ic, str, strnlen(str, 5), CH_UNIX, size);
+ }
+ /*
+@@ -486,10 +493,10 @@ _PUBLIC_ ssize_t push_codepoint_convenience(struct smb_iconv_convenience *ic,
+       return 5 - olen;
+ }
+-_PUBLIC_ codepoint_t next_codepoint_ext(const char *str, charset_t src_charset,
+-                                      size_t *size)
++_PUBLIC_ codepoint_t next_codepoint_ext(const char *str, size_t len,
++                                      charset_t src_charset, size_t *size)
+ {
+-      return next_codepoint_convenience_ext(get_iconv_convenience(), str,
++      return next_codepoint_convenience_ext(get_iconv_convenience(), str, len,
+                                             src_charset, size);
+ }
+diff --git a/lib/util/charset/util_unistr.c b/lib/util/charset/util_unistr.c
+index 760be77..d9e9b34 100644
+--- a/lib/util/charset/util_unistr.c
++++ b/lib/util/charset/util_unistr.c
+@@ -485,7 +485,10 @@ _PUBLIC_ char *strupper_talloc_n(TALLOC_CTX *ctx, const char *src, size_t n)
+       while (n-- && *src) {
+               size_t c_size;
+-              codepoint_t c = next_codepoint_convenience(iconv_convenience, src, &c_size);
++              codepoint_t c = next_codepoint_convenience_ext(iconv_convenience,
++                                                             src,
++                                                             n,
++                                                             &c_size);
+               src += c_size;
+               c = toupper_m(c);
+diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c
+index 4701528..f8a5160 100644
+--- a/source3/lib/util_str.c
++++ b/source3/lib/util_str.c
+@@ -1486,7 +1486,7 @@ size_t strlen_m_ext(const char *s, const charset_t src_charset,
+       while (*s) {
+               size_t c_size;
+-              codepoint_t c = next_codepoint_ext(s, src_charset, &c_size);
++              codepoint_t c = next_codepoint_ext(s, strnlen(s, 5), src_charset, &c_size);
+               s += c_size;
+               switch (dst_charset) {
+-- 
+2.5.0
+
+
+From 8298252a1ba9c014f7ceb76736abb38132181f79 Mon Sep 17 00:00:00 2001
+From: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
+Date: Tue, 24 Nov 2015 13:54:09 +1300
+Subject: [PATCH 2/3] CVE-2015-5330: next_codepoint_handle_ext: don't
+ short-circuit UTF16 low bytes
+
+UTF16 contains zero bytes when it is encoding ASCII (for example), so we
+can't assume the absense of the 0x80 bit means a one byte encoding. No
+current callers use UTF16.
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=11599
+
+Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
+Pair-programmed-with: Andrew Bartlett <abartlet@samba.org>
+Reviewed-by: Ralph Boehme <slow@samba.org>
+---
+ lib/util/charset/codepoints.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/lib/util/charset/codepoints.c b/lib/util/charset/codepoints.c
+index 8dd647e..cf5f3e6 100644
+--- a/lib/util/charset/codepoints.c
++++ b/lib/util/charset/codepoints.c
+@@ -358,7 +358,10 @@ _PUBLIC_ codepoint_t next_codepoint_convenience_ext(
+       size_t olen;
+       char *outbuf;
+-      if ((str[0] & 0x80) == 0) {
++
++      if (((str[0] & 0x80) == 0) && (src_charset == CH_DOS ||
++                                     src_charset == CH_UNIX ||
++                                     src_charset == CH_UTF8)) {
+               *bytes_consumed = 1;
+               return (codepoint_t)str[0];
+       }
+-- 
+2.5.0
+
+
+From 0988b7cb606a7e4cd73fd8db02806abbc9d8f2e0 Mon Sep 17 00:00:00 2001
+From: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
+Date: Tue, 24 Nov 2015 13:49:09 +1300
+Subject: [PATCH 3/3] CVE-2015-5330: strupper_talloc_n_handle(): properly count
+ characters
+
+When a codepoint eats more than one byte we really want to know,
+especially if the string is not NUL terminated.
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=11599
+
+Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
+Pair-programmed-with: Andrew Bartlett <abartlet@samba.org>
+Reviewed-by: Ralph Boehme <slow@samba.org>
+---
+ lib/util/charset/util_unistr.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/lib/util/charset/util_unistr.c b/lib/util/charset/util_unistr.c
+index d9e9b34..6dad43f 100644
+--- a/lib/util/charset/util_unistr.c
++++ b/lib/util/charset/util_unistr.c
+@@ -483,13 +483,14 @@ _PUBLIC_ char *strupper_talloc_n(TALLOC_CTX *ctx, const char *src, size_t n)
+               return NULL;
+       }
+-      while (n-- && *src) {
++      while (n && *src) {
+               size_t c_size;
+               codepoint_t c = next_codepoint_convenience_ext(iconv_convenience,
+                                                              src,
+                                                              n,
+                                                              &c_size);
+               src += c_size;
++              n -= c_size;
+               c = toupper_m(c);
+-- 
+2.5.0
+
diff --git a/src/patches/samba/CVE-2016-2125-v3.6.patch b/src/patches/samba/CVE-2016-2125-v3.6.patch
new file mode 100644 (file)
index 0000000..f67b5d0
--- /dev/null
@@ -0,0 +1,46 @@
+From 7cc3b25f4bf9e89e326d04b83bc7365f3cc29265 Mon Sep 17 00:00:00 2001
+From: Stefan Metzmacher <metze@samba.org>
+Date: Wed, 7 Dec 2016 10:58:35 +0100
+Subject: [PATCH] CVE-2016-2125: s3:gse: avoid using GSS_C_DELEG_FLAG
+
+We should only use GSS_C_DELEG_POLICY_FLAG in order to let
+the KDC decide if we should send delegated credentials to
+a remote server.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=12445
+
+Signed-off-by: Stefan Metzmacher <metze@samba.org>
+Backported-by: Andreas Schneider <asn@samba.org>
+---
+ source3/librpc/crypto/gse.c | 1 -
+ source3/libsmb/clifsinfo.c  | 2 +-
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/source3/librpc/crypto/gse.c b/source3/librpc/crypto/gse.c
+index 02fb0f6141d..211ca7774be 100644
+--- a/source3/librpc/crypto/gse.c
++++ b/source3/librpc/crypto/gse.c
+@@ -162,7 +162,6 @@ static NTSTATUS gse_context_init(TALLOC_CTX *mem_ctx,
+       memcpy(&gse_ctx->gss_mech, gss_mech_krb5, sizeof(gss_OID_desc));
+       gse_ctx->gss_c_flags = GSS_C_MUTUAL_FLAG |
+-                              GSS_C_DELEG_FLAG |
+                               GSS_C_DELEG_POLICY_FLAG |
+                               GSS_C_REPLAY_FLAG |
+                               GSS_C_SEQUENCE_FLAG;
+diff --git a/source3/libsmb/clifsinfo.c b/source3/libsmb/clifsinfo.c
+index 1d66eb4c6b8..34ebc208db0 100644
+--- a/source3/libsmb/clifsinfo.c
++++ b/source3/libsmb/clifsinfo.c
+@@ -726,7 +726,7 @@ static NTSTATUS make_cli_gss_blob(TALLOC_CTX *ctx,
+                               &es->s.gss_state->gss_ctx,
+                               srv_name,
+                               GSS_C_NO_OID, /* default OID. */
+-                              GSS_C_MUTUAL_FLAG | GSS_C_REPLAY_FLAG | GSS_C_SEQUENCE_FLAG | GSS_C_DELEG_FLAG,
++                              GSS_C_MUTUAL_FLAG | GSS_C_REPLAY_FLAG | GSS_C_SEQUENCE_FLAG | GSS_C_DELEG_POLICY_FLAG,
+                               GSS_C_INDEFINITE,       /* requested ticket lifetime. */
+                               NULL,   /* no channel bindings */
+                               p_tok_in,
+-- 
+2.11.0
+
diff --git a/src/patches/samba/CVE-2016-2126-v3.6.patch b/src/patches/samba/CVE-2016-2126-v3.6.patch
new file mode 100644 (file)
index 0000000..8de651e
--- /dev/null
@@ -0,0 +1,80 @@
+From 4e47b5d703c54215804d595980be028f47a87cbf Mon Sep 17 00:00:00 2001
+From: Stefan Metzmacher <metze@samba.org>
+Date: Wed, 7 Dec 2016 11:18:59 +0100
+Subject: [PATCH] CVE-2016-2126: auth/kerberos: only allow known checksum types
+ in check_pac_checksum()
+
+AES based checksums can only be checked with the corresponding AES based
+keytype.
+
+Otherwise we may trigger an undefined code path deep in the kerberos
+libraries, which can leed to segmentation faults.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=12446
+
+Signed-off-by: Stefan Metzmacher <metze@samba.org>
+Backported-by: Andreas Schneider <asn@samba.org>
+---
+ source3/include/smb_krb5.h | 12 ++++++++++++
+ source3/libads/authdata.c  | 22 ++++++++++++++++++++++
+ 2 files changed, 34 insertions(+)
+
+diff --git a/source3/include/smb_krb5.h b/source3/include/smb_krb5.h
+index 5a55d3040d5..2780622f512 100644
+--- a/source3/include/smb_krb5.h
++++ b/source3/include/smb_krb5.h
+@@ -61,6 +61,18 @@
+ #define ENCTYPE_ARCFOUR_HMAC ENCTYPE_ARCFOUR_HMAC_MD5
+ #endif
++#if !defined(CKSUMTYPE_HMAC_MD5_ARCFOUR) && defined(CKSUMTYPE_HMAC_MD5)
++#define CKSUMTYPE_HMAC_MD5_ARCFOUR CKSUMTYPE_HMAC_MD5
++#endif
++
++#if !defined(CKSUMTYPE_HMAC_SHA1_96_AES256) && defined(CKSUMTYPE_HMAC_SHA1_96_AES_256)
++#define CKSUMTYPE_HMAC_SHA1_96_AES256 CKSUMTYPE_HMAC_SHA1_96_AES_256
++#endif
++
++#if !defined(CKSUMTYPE_HMAC_SHA1_96_AES128) && defined(CKSUMTYPE_HMAC_SHA1_96_AES_128)
++#define CKSUMTYPE_HMAC_SHA1_96_AES128 CKSUMTYPE_HMAC_SHA1_96_AES_128
++#endif
++
+ /* The older versions of heimdal that don't have this
+    define don't seem to use it anyway.  I'm told they
+    always use a subkey */
+diff --git a/source3/libads/authdata.c b/source3/libads/authdata.c
+index 0d877ddef89..30622843f1d 100644
+--- a/source3/libads/authdata.c
++++ b/source3/libads/authdata.c
+@@ -42,6 +42,28 @@ static krb5_error_code check_pac_checksum(TALLOC_CTX *mem_ctx,
+       krb5_checksum cksum;
+       krb5_keyusage usage = 0;
++      switch (sig->type) {
++      case CKSUMTYPE_HMAC_MD5_ARCFOUR:
++              /* ignores the key type */
++              break;
++      case CKSUMTYPE_HMAC_SHA1_96_AES256:
++              if (KRB5_KEY_TYPE(keyblock) != ENCTYPE_AES256_CTS_HMAC_SHA1_96) {
++                      return EINVAL;
++              }
++              /* ok */
++              break;
++      case CKSUMTYPE_HMAC_SHA1_96_AES128:
++              if (KRB5_KEY_TYPE(keyblock) != ENCTYPE_AES128_CTS_HMAC_SHA1_96) {
++                      return EINVAL;
++              }
++              /* ok */
++              break;
++      default:
++              DEBUG(2,("check_pac_checksum: Checksum Type %d is not supported\n",
++                      (int)sig->type));
++              return EINVAL;
++      }
++
+       smb_krb5_checksum_from_pac_sig(&cksum, sig);
+ #ifdef HAVE_KRB5_KU_OTHER_CKSUM /* Heimdal */
+-- 
+2.11.0
+
diff --git a/src/patches/samba/CVE-2017-7494-v3-6.patch b/src/patches/samba/CVE-2017-7494-v3-6.patch
new file mode 100644 (file)
index 0000000..3b0d94c
--- /dev/null
@@ -0,0 +1,32 @@
+From b719a4d53fc6d590f4fac340d956344a5246de4e Mon Sep 17 00:00:00 2001
+From: Volker Lendecke <vl@samba.org>
+Date: Mon, 8 May 2017 21:40:40 +0200
+Subject: [PATCH] CVE-2017-7494: Refuse to open pipe names with / inside
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=12780
+
+Signed-off-by: Volker Lendecke <vl@samba.org>
+Reviewed-by: Andreas Schneider <asn@samba.org>
+---
+ source3/rpc_server/srv_pipe.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c
+index ec24fe7..b80e3f5 100644
+--- a/source3/rpc_server/srv_pipe.c
++++ b/source3/rpc_server/srv_pipe.c
+@@ -473,6 +473,11 @@ bool is_known_pipename(const char *cli_filename, struct ndr_syntax_id *syntax)
+               pipename += 1;
+       }
++      if (strchr(pipename, '/')) {
++              DEBUG(1,("Refusing open on pipe %s\n", pipename));
++              return false;
++      }
++
+       if (lp_disable_spoolss() && strequal(pipename, "spoolss")) {
+               DEBUG(10, ("refusing spoolss access\n"));
+               return false;
+-- 
+2.9.4
+
diff --git a/src/patches/samba/doc-update.patch b/src/patches/samba/doc-update.patch
new file mode 100644 (file)
index 0000000..a0323b9
--- /dev/null
@@ -0,0 +1,2538 @@
+Index: samba-3.6.23/docs/manpages/dbwrap_tool.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/dbwrap_tool.1
++++ samba-3.6.23/docs/manpages/dbwrap_tool.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: dbwrap_tool
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "DBWRAP_TOOL" "1" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "DBWRAP_TOOL" "1" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/eventlogadm.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/eventlogadm.8
++++ samba-3.6.23/docs/manpages/eventlogadm.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: eventlogadm
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "EVENTLOGADM" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "EVENTLOGADM" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -105,7 +105,6 @@ The event log record field are:
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ LEN
+ \- This field should be 0, since
+ eventlogadm
+@@ -120,7 +119,6 @@ will calculate this value\&.
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ RS1
+ \- This must be the value 1699505740\&.
+ .RE
+@@ -133,7 +131,6 @@ RS1
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ RCN
+ \- This field should be 0\&.
+ .RE
+@@ -146,7 +143,6 @@ RCN
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ TMG
+ \- The time the eventlog record was generated; format is the number of seconds since 00:00:00 January 1, 1970, UTC\&.
+ .RE
+@@ -159,7 +155,6 @@ TMG
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ TMW
+ \- The time the eventlog record was written; format is the number of seconds since 00:00:00 January 1, 1970, UTC\&.
+ .RE
+@@ -172,7 +167,6 @@ TMW
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ EID
+ \- The eventlog ID\&.
+ .RE
+@@ -185,7 +179,6 @@ EID
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ ETP
+ \- The event type \-\- one of "INFO", "ERROR", "WARNING", "AUDIT SUCCESS" or "AUDIT FAILURE"\&.
+ .RE
+@@ -198,7 +191,6 @@ ETP
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ ECT
+ \- The event category; this depends on the message file\&. It is primarily used as a means of filtering in the eventlog viewer\&.
+ .RE
+@@ -211,7 +203,6 @@ ECT
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ RS2
+ \- This field should be 0\&.
+ .RE
+@@ -224,7 +215,6 @@ RS2
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ CRN
+ \- This field should be 0\&.
+ .RE
+@@ -237,7 +227,6 @@ CRN
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ USL
+ \- This field should be 0\&.
+ .RE
+@@ -250,7 +239,6 @@ USL
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ SRC
+ \- This field contains the source name associated with the event log\&. If a message file is used with an event log, there will be a registry entry for associating this source name with a message file DLL\&.
+ .RE
+@@ -263,7 +251,6 @@ SRC
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ SRN
+ \- The name of the machine on which the eventlog was generated\&. This is typically the host name\&.
+ .RE
+@@ -276,7 +263,6 @@ SRN
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ STR
+ \- The text associated with the eventlog\&. There may be more than one string in a record\&.
+ .RE
+@@ -289,7 +275,6 @@ STR
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ DAT
+ \- This field should be left unset\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/findsmb.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/findsmb.1
++++ samba-3.6.23/docs/manpages/findsmb.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: findsmb
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "FINDSMB" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "FINDSMB" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/idmap_ad.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/idmap_ad.8
++++ samba-3.6.23/docs/manpages/idmap_ad.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: idmap_ad
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "IDMAP_AD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "IDMAP_AD" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/idmap_adex.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/idmap_adex.8
++++ samba-3.6.23/docs/manpages/idmap_adex.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: idmap_adex
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "IDMAP_ADEX" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "IDMAP_ADEX" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/idmap_autorid.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/idmap_autorid.8
++++ samba-3.6.23/docs/manpages/idmap_autorid.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: idmap_autorid
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "IDMAP_AUTORID" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "IDMAP_AUTORID" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/idmap_hash.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/idmap_hash.8
++++ samba-3.6.23/docs/manpages/idmap_hash.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: idmap_hash
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "IDMAP_HASH" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "IDMAP_HASH" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/idmap_ldap.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/idmap_ldap.8
++++ samba-3.6.23/docs/manpages/idmap_ldap.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: idmap_ldap
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "IDMAP_LDAP" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "IDMAP_LDAP" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/idmap_nss.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/idmap_nss.8
++++ samba-3.6.23/docs/manpages/idmap_nss.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: idmap_nss
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "IDMAP_NSS" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "IDMAP_NSS" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/idmap_rid.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/idmap_rid.8
++++ samba-3.6.23/docs/manpages/idmap_rid.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: idmap_rid
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "IDMAP_RID" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "IDMAP_RID" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/idmap_tdb2.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/idmap_tdb2.8
++++ samba-3.6.23/docs/manpages/idmap_tdb2.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: idmap_tdb2
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "IDMAP_TDB2" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "IDMAP_TDB2" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/idmap_tdb.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/idmap_tdb.8
++++ samba-3.6.23/docs/manpages/idmap_tdb.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: idmap_tdb
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "IDMAP_TDB" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "IDMAP_TDB" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/libsmbclient.7
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/libsmbclient.7
++++ samba-3.6.23/docs/manpages/libsmbclient.7
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: libsmbclient
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: 7
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "LIBSMBCLIENT" "7" "09/18/2013" "Samba 3\&.6" "7"
++.TH "LIBSMBCLIENT" "7" "04/11/2016" "Samba 3\&.6" "7"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -40,11 +40,9 @@ This tool is part of the
+ \fBsamba\fR(7)
+ suite\&.
+ .PP
+-
+ libsmbclient
+ is a library toolset that permits applications to manipulate CIFS/SMB network resources using many of the standards POSIX functions available for manipulating local UNIX/Linux files\&. It permits much more than just browsing, files can be opened and read or written, permissions changed, file times modified, attributes and ACL\*(Aqs can be manipulated, and so on\&. Of course, its functionality includes all the capabilities commonly called browsing\&.
+ .PP
+-
+ libsmbclient
+ can not be used directly from the command line, instead it provides an extension of the capabilities of tools such as file managers and browsers\&. This man page describes the configuration options for this tool so that the user may obtain greatest utility of use\&.
+ .SH "OPTIONS"
+@@ -77,7 +75,6 @@ and then append the contents of the
+ ~/\&.smb/smb\&.conf\&.append
+ to it\&.
+ .PP
+-
+ libsmbclient
+ will check the users shell environment for the
+ USER
+Index: samba-3.6.23/docs/manpages/lmhosts.5
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/lmhosts.5
++++ samba-3.6.23/docs/manpages/lmhosts.5
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: lmhosts
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: File Formats and Conventions
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "LMHOSTS" "5" "09/18/2013" "Samba 3\&.6" "File Formats and Conventions"
++.TH "LMHOSTS" "5" "04/11/2016" "Samba 3\&.6" "File Formats and Conventions"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/log2pcap.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/log2pcap.1
++++ samba-3.6.23/docs/manpages/log2pcap.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: log2pcap
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "LOG2PCAP" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "LOG2PCAP" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -74,7 +74,7 @@ pcap_file
+ Name of the output file to write the pcap (or hexdump) data to\&. If this argument is not specified, output data will be written to stdout\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/net.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/net.8
++++ samba-3.6.23/docs/manpages/net.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: net
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "NET" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "NET" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -41,7 +41,7 @@ suite\&.
+ The Samba net utility is meant to work just like the net utility available for windows and DOS\&. The first argument should be used to specify the protocol to use when executing a certain command\&. ADS is used for ActiveDirectory, RAP is using for old (Win9x/NT3) clients and RPC can be used for NT4 and Windows 2000\&. If this argument is omitted, net will try to determine it automatically\&. Not all commands are available on all protocols\&.
+ .SH "OPTIONS"
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+@@ -113,6 +113,11 @@ Make queries to the external server usin
+ Let client requests timeout after 30 seconds the default is 10 seconds\&.
+ .RE
+ .PP
++\-\-no\-dns\-updates
++.RS 4
++Do not perform DNS updates as part of "net ads join"\&.
++.RE
++.PP
+ \-d|\-\-debuglevel=level
+ .RS 4
+ \fIlevel\fR
+@@ -153,7 +158,7 @@ Tries to set the date and time of the lo
+ .SS "TIME ZONE"
+ .PP
+ Displays the timezone in hours from GMT on the remote computer\&.
+-.SS "[RPC|ADS] JOIN [TYPE] [\-U username[%password]] [createupn=UPN] [createcomputer=OU] [options]"
++.SS "[RPC|ADS] JOIN [TYPE] [\-\-no\-dns\-updates] [\-U username[%password]] [createupn=UPN] [createcomputer=OU] [options]"
+ .PP
+ Join a domain\&. If the account already exists on the server, and [TYPE] is MEMBER, the machine will attempt to join automatically\&. (Assuming that the machine has been created in server manager) Otherwise, a password will be prompted for, and a new account may be created\&.
+ .PP
+@@ -509,8 +514,6 @@ net groupmap delete {ntgroup=string|sid=
+ .PP
+ Update en existing group entry\&.
+ .PP
+-
+-.sp
+ .if n \{\
+ .RS 4
+ .\}
+@@ -1208,8 +1211,7 @@ may be one of
+ \fImulti_sz\fR
+ or
+ \fIdword\fR\&. In case of
+-\fImulti_sz\fR
+-\fIvalue\fR
++\fImulti_sz\fR\fIvalue\fR
+ may be given multiple times\&.
+ .SS "REGISTRY INCREMENT key name [inc]"
+ .PP
+Index: samba-3.6.23/docs/manpages/nmbd.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/nmbd.8
++++ samba-3.6.23/docs/manpages/nmbd.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: nmbd
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "NMBD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "NMBD" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -106,7 +106,7 @@ also logs to standard output, as if the
+ parameter had been given\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+@@ -264,7 +264,6 @@ The debug log level of nmbd may be raise
+ This man page is correct for version 3 of the Samba suite\&.
+ .SH "SEE ALSO"
+ .PP
+-
+ \fBinetd\fR(8),
+ \fBsmbd\fR(8),
+ \fBsmb.conf\fR(5),
+Index: samba-3.6.23/docs/manpages/nmblookup.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/nmblookup.1
++++ samba-3.6.23/docs/manpages/nmblookup.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: nmblookup
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "NMBLOOKUP" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "NMBLOOKUP" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -109,7 +109,7 @@ smb\&.conf
+ manual page for the list of valid options\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/ntlm_auth.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/ntlm_auth.1
++++ samba-3.6.23/docs/manpages/ntlm_auth.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: ntlm_auth
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "NTLM_AUTH" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "NTLM_AUTH" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -347,7 +347,7 @@ Base directory name for log/debug files\
+ will be appended (e\&.g\&. log\&.smbclient, log\&.smbd, etc\&.\&.\&.)\&. The log file is never removed by the client\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/pam_winbind.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/pam_winbind.8
++++ samba-3.6.23/docs/manpages/pam_winbind.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: pam_winbind
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: 8
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "PAM_WINBIND" "8" "09/18/2013" "Samba 3\&.6" "8"
++.TH "PAM_WINBIND" "8" "04/11/2016" "Samba 3\&.6" "8"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/pam_winbind.conf.5
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/pam_winbind.conf.5
++++ samba-3.6.23/docs/manpages/pam_winbind.conf.5
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: pam_winbind.conf
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: 5
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "PAM_WINBIND\&.CONF" "5" "09/18/2013" "Samba 3\&.6" "5"
++.TH "PAM_WINBIND\&.CONF" "5" "04/11/2016" "Samba 3\&.6" "5"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/pdbedit.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/pdbedit.8
++++ samba-3.6.23/docs/manpages/pdbedit.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: pdbedit
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "PDBEDIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "PDBEDIT" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -204,8 +204,6 @@ Example:
+ .RS 4
+ This option can be used while adding or modifying a user account\&. It will specify the users\*(Aq account control property\&. Possible flags are listed below\&.
+ .sp
+-
+-.sp
+ .RS 4
+ .ie n \{\
+ \h'-04'\(bu\h'+03'\c
+@@ -555,7 +553,7 @@ Example:
+ This option is currently not being used\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/profiles.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/profiles.1
++++ samba-3.6.23/docs/manpages/profiles.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: profiles
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "PROFILES" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "PROFILES" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -59,7 +59,7 @@ file
+ by SID2\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/rpcclient.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/rpcclient.1
++++ samba-3.6.23/docs/manpages/rpcclient.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: rpcclient
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "RPCCLIENT" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "RPCCLIENT" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -199,7 +199,7 @@ smb\&.conf
+ manual page for the list of valid options\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/samba.7
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/samba.7
++++ samba-3.6.23/docs/manpages/samba.7
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: samba
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: Miscellanea
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SAMBA" "7" "09/18/2013" "Samba 3\&.6" "Miscellanea"
++.TH "SAMBA" "7" "04/11/2016" "Samba 3\&.6" "Miscellanea"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/sharesec.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/sharesec.1
++++ samba-3.6.23/docs/manpages/sharesec.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: sharesec
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SHARESEC" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "SHARESEC" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -82,7 +82,7 @@ Remove ACEs\&.
+ Overwrite an existing share permission ACL\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/smbcacls.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbcacls.1
++++ samba-3.6.23/docs/manpages/smbcacls.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbcacls
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBCACLS" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "SMBCACLS" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -102,7 +102,7 @@ This option displays all ACL information
+ Don\*(Aqt actually do anything, only validate the correctness of the arguments\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/smbclient.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbclient.1
++++ samba-3.6.23/docs/manpages/smbclient.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbclient
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBCLIENT" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "SMBCLIENT" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -205,7 +205,7 @@ This parameter sets the maximum protocol
+ Make queries to the external server using the machine account of the local server\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/smb.conf.5
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smb.conf.5
++++ samba-3.6.23/docs/manpages/smb.conf.5
+@@ -2,12 +2,12 @@
+ .\"     Title: smb.conf
+ .\"    Author: [see the "AUTHOR" section]
+ .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+-.\"      Date: 10/15/2015
++.\"      Date: 04/11/2016
+ .\"    Manual: File Formats and Conventions
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMB\&.CONF" "5" "10/15/2015" "Samba 3\&.6" "File Formats and Conventions"
++.TH "SMB\&.CONF" "5" "04/11/2016" "Samba 3\&.6" "File Formats and Conventions"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -1371,6 +1371,24 @@ Example:
+ \fI\fIallocation roundup size\fR\fR\fI = \fR\fI0 # (to disable roundups)\fR\fI \fR
+ .RE
++allow dcerpc auth level connect (G)
++.\" allow dcerpc auth level connect
++.PP
++.RS 4
++This option controls whether DCERPC services are allowed to be used with DCERPC_AUTH_LEVEL_CONNECT, which provides authentication, but no per message integrity nor privacy protection\&.
++.sp
++The behavior can be controlled per interface name (e\&.g\&. lsarpc, netlogon, samr, srvsvc, winreg, wkssvc \&.\&.\&.) by using \*(Aqallow dcerpc auth level connect:interface = no\*(Aq as option\&.
++.sp
++This option yields precedence to the implentation specific restrictions\&. E\&.g\&. the drsuapi and backupkey protocols require DCERPC_AUTH_LEVEL_PRIVACY\&. While others like samr and lsarpc have a hardcoded default of
++\fBno\fR\&.
++.sp
++Default:
++\fI\fIallow dcerpc auth level connect\fR\fR\fI = \fR\fIno\fR\fI \fR
++.sp
++Example:
++\fI\fIallow dcerpc auth level connect\fR\fR\fI = \fR\fIyes\fR\fI \fR
++.RE
++
+ allow insecure wide links (G)
+ .\" allow insecure wide links
+ .PP
+@@ -1826,6 +1844,24 @@ Example:
+ \fI\fIcheck password script\fR\fR\fI = \fR\fI/usr/local/sbin/crackcheck\fR\fI \fR
+ .RE
++client ipc signing (G)
++.\" client ipc signing
++.PP
++.RS 4
++This controls whether the client is allowed or required to use SMB signing for IPC$ connections as DCERPC transport inside of winbind\&. Possible values are
++\fIauto\fR,
++\fImandatory\fR
++and
++\fIdisabled\fR\&.
++.sp
++When set to auto, SMB signing is offered, but not enforced and if set to disabled, SMB signing is not offered either\&.
++.sp
++Connections from winbindd to Active Directory Domain Controllers always enforce signing\&.
++.sp
++Default:
++\fI\fIclient ipc signing\fR\fR\fI = \fR\fImandatory\fR\fI \fR
++.RE
++
+ client lanman auth (G)
+ .\" client lanman auth
+ .PP
+@@ -1874,14 +1910,11 @@ is just an alias for
+ \fIseal\fR\&.
+ .sp
+ The default value is
+-\fIplain\fR
+-which is not irritable to KRB5 clock skew errors\&. That implies synchronizing the time with the KDC in the case of using
+-\fIsign\fR
+-or
+-\fIseal\fR\&.
++\fIsign\fR\&. That implies synchronizing the time with the KDC in the case of using
++\fIKerberos\fR\&.
+ .sp
+ Default:
+-\fI\fIclient ldap sasl wrapping\fR\fR\fI = \fR\fIplain\fR\fI \fR
++\fI\fIclient ldap sasl wrapping\fR\fR\fI = \fR\fIsign\fR\fI \fR
+ .RE
+ client ntlmv2 auth (G)
+@@ -1905,6 +1938,12 @@ client lanman auth\&.
+ .sp
+ Note that Windows Vista and later versions already use NTLMv2 by default, and some sites (particularly those following \*(Aqbest practice\*(Aq security polices) only allow NTLMv2 responses, and not the weaker LM or NTLM\&.
+ .sp
++When
++\m[blue]\fBclient use spnego\fR\m[]
++is also set to
++\fByes\fR
++extended security (SPNEGO) is required in order to use NTLMv2 only within NTLMSSP\&. This behavior was introduced with the patches for CVE\-2016\-2111\&.
++.sp
+ Default:
+ \fI\fIclient ntlmv2 auth\fR\fR\fI = \fR\fIyes\fR\fI \fR
+ .RE
+@@ -1949,6 +1988,7 @@ and
+ \fIdisabled\fR\&.
+ .sp
+ When set to auto, SMB signing is offered, but not enforced\&. When set to mandatory, SMB signing is required and if set to disabled, SMB signing is not offered either\&.
++IPC$ connections for DCERPC e\&.g\&. in winbindd, are handled by the \m[blue]\fBclient ipc signing\fR\m[] option\&.
+ .sp
+ Default:
+ \fI\fIclient signing\fR\fR\fI = \fR\fIauto\fR\fI \fR
+@@ -1978,6 +2018,12 @@ client use spnego (G)
+ .RS 4
+ This variable controls whether Samba clients will try to use Simple and Protected NEGOciation (as specified by rfc2478) with supporting servers (including WindowsXP, Windows2000 and Samba 3\&.0) to agree upon an authentication mechanism\&. This enables Kerberos authentication in particular\&.
+ .sp
++When
++\m[blue]\fBclient NTLMv2 auth\fR\m[]
++is also set to
++\fByes\fR
++extended security (SPNEGO) is required in order to use NTLMv2 only within NTLMSSP\&. This behavior was introduced with the patches for CVE\-2016\-2111\&.
++.sp
+ Default:
+ \fI\fIclient use spnego\fR\fR\fI = \fR\fIyes\fR\fI \fR
+ .RE
+@@ -8103,6 +8149,24 @@ Example:
+ \fI\fIqueueresume command\fR\fR\fI = \fR\fIenable %p\fR\fI \fR
+ .RE
++raw NTLMv2 auth (G)
++.\" raw NTLMv2 auth
++.PP
++.RS 4
++This parameter determines whether or not
++\fBsmbd\fR(8)
++will allow SMB1 clients without extended security (without SPNEGO) to use NTLMv2 authentication\&.
++.sp
++If this option,
++lanman auth
++and
++ntlm auth
++are all disabled, then only clients with SPNEGO support will be permitted\&. That means NTLMv2 is only supported within NTLMSSP\&.
++.sp
++Default:
++\fI\fIraw NTLMv2 auth\fR\fR\fI = \fR\fIno\fR\fI \fR
++.RE
++
+ read list (S)
+ .\" read list
+ .PP
+@@ -10699,6 +10763,18 @@ Default:
+ \fI\fIwinbind rpc only\fR\fR\fI = \fR\fIno\fR\fI \fR
+ .RE
++winbind sealed pipes (G)
++.\" winbind sealed pipes
++.PP
++.RS 4
++This option controls whether any requests from winbindd to domain controllers pipe will be sealed\&. Disabling sealing can be useful for debugging purposes\&.
++.sp
++The behavior can be controlled per netbios domain by using \*(Aqwinbind sealed pipes:NETBIOSDOMAIN = no\*(Aq as option\&.
++.sp
++Default:
++\fI\fIwinbind sealed pipes\fR\fR\fI = \fR\fIyes\fR\fI \fR
++.RE
++
+ winbind separator (G)
+ .\" winbind separator
+ .PP
+Index: samba-3.6.23/docs/manpages/smbcontrol.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbcontrol.1
++++ samba-3.6.23/docs/manpages/smbcontrol.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbcontrol
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBCONTROL" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "SMBCONTROL" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -48,7 +48,7 @@ is a very small program, which sends mes
+ daemon running on the system\&.
+ .SH "OPTIONS"
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/smbcquotas.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbcquotas.1
++++ samba-3.6.23/docs/manpages/smbcquotas.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbcquotas
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBCQUOTAS" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "SMBCQUOTAS" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -82,7 +82,7 @@ Don\*(Aqt actually do anything, only val
+ Be verbose\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/smbd.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbd.8
++++ samba-3.6.23/docs/manpages/smbd.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbd
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "SMBD" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -130,7 +130,7 @@ Base directory name for log/debug files\
+ will be appended (e\&.g\&. log\&.smbclient, log\&.smbd, etc\&.\&.\&.)\&. The log file is never removed by the client\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+@@ -207,8 +207,7 @@ if this variable is not defined) as the
+ .SH "PAM INTERACTION"
+ .PP
+ Samba uses PAM for authentication (when presented with a plaintext password), for account checking (is this account disabled?) and for session management\&. The degree too which samba supports PAM is restricted by the limitations of the SMB protocol and the
+-\m[blue]\fBobey pam restrictions\fR\m[]
+-\fBsmb.conf\fR(5)
++\m[blue]\fBobey pam restrictions\fR\m[]\fBsmb.conf\fR(5)
+ parameter\&. When this is set, the following restrictions apply:
+ .sp
+ .RS 4
+@@ -359,8 +358,7 @@ configuration file within a short period
+ To shut down a user\*(Aqs
+ smbd
+ process it is recommended that
+-SIGKILL (\-9)
+-\fINOT\fR
++SIGKILL (\-9)\fINOT\fR
+ be used, except as a last resort, as this may leave the shared memory area in an inconsistent state\&. The safe way to terminate an
+ smbd
+ is to send it a SIGTERM (\-15) signal and wait for it to die on its own\&.
+Index: samba-3.6.23/docs/manpages/smbget.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbget.1
++++ samba-3.6.23/docs/manpages/smbget.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbget
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBGET" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "SMBGET" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/smbgetrc.5
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbgetrc.5
++++ samba-3.6.23/docs/manpages/smbgetrc.5
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbgetrc
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: File Formats and Conventions
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBGETRC" "5" "09/18/2013" "Samba 3\&.6" "File Formats and Conventions"
++.TH "SMBGETRC" "5" "04/11/2016" "Samba 3\&.6" "File Formats and Conventions"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/smbpasswd.5
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbpasswd.5
++++ samba-3.6.23/docs/manpages/smbpasswd.5
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbpasswd
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: File Formats and Conventions
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBPASSWD" "5" "09/18/2013" "Samba 3\&.6" "File Formats and Conventions"
++.TH "SMBPASSWD" "5" "04/11/2016" "Samba 3\&.6" "File Formats and Conventions"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/smbpasswd.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbpasswd.8
++++ samba-3.6.23/docs/manpages/smbpasswd.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbpasswd
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBPASSWD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "SMBPASSWD" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/smbspool.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbspool.8
++++ samba-3.6.23/docs/manpages/smbspool.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbspool
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBSPOOL" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "SMBSPOOL" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/smbstatus.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbstatus.1
++++ samba-3.6.23/docs/manpages/smbstatus.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbstatus
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBSTATUS" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "SMBSTATUS" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -114,7 +114,7 @@ processes and exit\&. Useful for scripti
+ causes smbstatus to only list shares\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/smbtar.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbtar.1
++++ samba-3.6.23/docs/manpages/smbtar.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbtar
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBTAR" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "SMBTAR" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/smbta-util.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbta-util.8
++++ samba-3.6.23/docs/manpages/smbta-util.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbta-util
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBTA\-UTIL" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "SMBTA\-UTIL" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/smbtree.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smbtree.1
++++ samba-3.6.23/docs/manpages/smbtree.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smbtree
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMBTREE" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "SMBTREE" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -153,7 +153,7 @@ rpcclient
+ to prompt for a password and type it in directly\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/swat.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/swat.8
++++ samba-3.6.23/docs/manpages/swat.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: swat
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SWAT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "SWAT" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -116,7 +116,7 @@ Base directory name for log/debug files\
+ will be appended (e\&.g\&. log\&.smbclient, log\&.smbd, etc\&.\&.\&.)\&. The log file is never removed by the client\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/tdbbackup.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/tdbbackup.8
++++ samba-3.6.23/docs/manpages/tdbbackup.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: tdbbackup
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "TDBBACKUP" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "TDBBACKUP" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -84,7 +84,6 @@ Samba \&.tdb files are stored in various
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ secrets\&.tdb
+ \- usual location is in the /usr/local/samba/private directory, or on some systems in /etc/samba\&.
+ .RE
+@@ -97,7 +96,6 @@ secrets\&.tdb
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ passdb\&.tdb
+ \- usual location is in the /usr/local/samba/private directory, or on some systems in /etc/samba\&.
+ .RE
+@@ -110,7 +108,6 @@ passdb\&.tdb
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ *\&.tdb
+ located in the /usr/local/samba/var directory or on some systems in the /var/cache or /var/lib/samba directories\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/tdbdump.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/tdbdump.8
++++ samba-3.6.23/docs/manpages/tdbdump.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: tdbdump
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "TDBDUMP" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "TDBDUMP" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/tdbtool.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/tdbtool.8
++++ samba-3.6.23/docs/manpages/tdbtool.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: tdbtool
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "TDBTOOL" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "TDBTOOL" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/testparm.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/testparm.1
++++ samba-3.6.23/docs/manpages/testparm.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: testparm
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "TESTPARM" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "TESTPARM" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -66,7 +66,7 @@ testparm
+ will prompt for a carriage return after printing the service names and before dumping the service definitions\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/vfs_acl_tdb.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_acl_tdb.8
++++ samba-3.6.23/docs/manpages/vfs_acl_tdb.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_acl_tdb
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_ACL_TDB" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_ACL_TDB" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_acl_xattr.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_acl_xattr.8
++++ samba-3.6.23/docs/manpages/vfs_acl_xattr.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_acl_xattr
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_ACL_XATTR" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_ACL_XATTR" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_aio_fork.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_aio_fork.8
++++ samba-3.6.23/docs/manpages/vfs_aio_fork.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_aio_fork
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_AIO_FORK" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_AIO_FORK" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_aio_pthread.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_aio_pthread.8
++++ samba-3.6.23/docs/manpages/vfs_aio_pthread.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_aio_pthread
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_AIO_PTHREAD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_AIO_PTHREAD" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_audit.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_audit.8
++++ samba-3.6.23/docs/manpages/vfs_audit.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_audit
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_AUDIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_AUDIT" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_cacheprime.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_cacheprime.8
++++ samba-3.6.23/docs/manpages/vfs_cacheprime.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_cacheprime
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_CACHEPRIME" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_CACHEPRIME" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_cap.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_cap.8
++++ samba-3.6.23/docs/manpages/vfs_cap.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_cap
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_CAP" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_CAP" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_catia.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_catia.8
++++ samba-3.6.23/docs/manpages/vfs_catia.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_catia
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_CATIA" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_CATIA" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_commit.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_commit.8
++++ samba-3.6.23/docs/manpages/vfs_commit.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_commit
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_COMMIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_COMMIT" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_crossrename.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_crossrename.8
++++ samba-3.6.23/docs/manpages/vfs_crossrename.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_crossrename
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_CROSSRENAME" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_CROSSRENAME" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_default_quota.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_default_quota.8
++++ samba-3.6.23/docs/manpages/vfs_default_quota.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_default_quota
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_DEFAULT_QUOTA" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_DEFAULT_QUOTA" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_dirsort.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_dirsort.8
++++ samba-3.6.23/docs/manpages/vfs_dirsort.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_dirsort
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_DIRSORT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_DIRSORT" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_extd_audit.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_extd_audit.8
++++ samba-3.6.23/docs/manpages/vfs_extd_audit.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_extd_audit
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_EXTD_AUDIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_EXTD_AUDIT" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_fake_perms.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_fake_perms.8
++++ samba-3.6.23/docs/manpages/vfs_fake_perms.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_fake_perms
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_FAKE_PERMS" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_FAKE_PERMS" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_fileid.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_fileid.8
++++ samba-3.6.23/docs/manpages/vfs_fileid.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_fileid
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_FILEID" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_FILEID" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_full_audit.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_full_audit.8
++++ samba-3.6.23/docs/manpages/vfs_full_audit.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_full_audit
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_FULL_AUDIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_FULL_AUDIT" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_gpfs.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_gpfs.8
++++ samba-3.6.23/docs/manpages/vfs_gpfs.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_gpfs
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_GPFS" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_GPFS" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -96,7 +96,6 @@ Enable/Disable cross node sharemode hand
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ yes(default)
+ \- propagate sharemodes across all GPFS nodes\&.
+ .RE
+@@ -109,7 +108,6 @@ yes(default)
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ no
+ \- do not propagate sharemodes across all GPFS nodes\&. This should only be used if the GPFS file system is exclusively exported by Samba\&. Access by local unix application or NFS exports could lead to corrupted files\&.
+ .RE
+@@ -133,7 +131,6 @@ options to the same value\&.
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ yes(default)
+ \- propagate leases across all GPFS nodes\&.
+ .RE
+@@ -146,7 +143,6 @@ yes(default)
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ no
+ \- do not propagate leases across all GPFS nodes\&. This should only be used if the GPFS file system is exclusively exported by Samba\&. Access by local unix application or NFS exports could lead to corrupted files\&.
+ .RE
+@@ -166,7 +162,6 @@ Enable/Disable announcing if this FS has
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ no(default)
+ \- Do not announce HSM\&.
+ .RE
+@@ -179,7 +174,6 @@ no(default)
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ no
+ \- Announce HSM\&.
+ .RE
+@@ -201,7 +195,6 @@ function\&. This improves the casesensit
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ yes(default)
+ \- use
+ gpfs_get_realfilename_path()\&.
+@@ -215,7 +208,6 @@ gpfs_get_realfilename_path()\&.
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ no
+ \- do not use
+ gpfs_get_realfilename_path()\&. It seems that
+@@ -238,7 +230,6 @@ Enable/Disable usage of the windows attr
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ no(default)
+ \- do not use GPFS windows attributes\&.
+ .RE
+@@ -251,7 +242,6 @@ no(default)
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ yes
+ \- use GPFS windows attributes\&.
+ .RE
+@@ -271,7 +261,6 @@ GPFS ACLs doesn\*(Aqt know about the \*(
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ yes(default)
+ \- map \*(AqAPPEND\*(Aq to \*(AqWRITE\*(Aq\&.
+ .RE
+@@ -284,7 +273,6 @@ yes(default)
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ no
+ \- do not map \*(AqAPPEND\*(Aq to \*(AqWRITE\*(Aq\&.
+ .RE
+@@ -308,7 +296,6 @@ to enable an explicit check for this fla
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ no(default)
+ \- ignore the DESC_DACL_PROTECTED flags\&.
+ .RE
+@@ -321,7 +308,6 @@ no(default)
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ yes
+ \- reject ACLs with DESC_DACL_PROTECTED\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/vfs_netatalk.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_netatalk.8
++++ samba-3.6.23/docs/manpages/vfs_netatalk.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_netatalk
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_NETATALK" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_NETATALK" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_notify_fam.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_notify_fam.8
++++ samba-3.6.23/docs/manpages/vfs_notify_fam.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_notify_fam
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_NOTIFY_FAM" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_NOTIFY_FAM" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_prealloc.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_prealloc.8
++++ samba-3.6.23/docs/manpages/vfs_prealloc.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_prealloc
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_PREALLOC" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_PREALLOC" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_preopen.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_preopen.8
++++ samba-3.6.23/docs/manpages/vfs_preopen.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_preopen
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_PREOPEN" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_PREOPEN" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_readahead.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_readahead.8
++++ samba-3.6.23/docs/manpages/vfs_readahead.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_readahead
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_READAHEAD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_READAHEAD" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_readonly.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_readonly.8
++++ samba-3.6.23/docs/manpages/vfs_readonly.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_readonly
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_READONLY" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_READONLY" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_recycle.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_recycle.8
++++ samba-3.6.23/docs/manpages/vfs_recycle.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_recycle
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_RECYCLE" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_RECYCLE" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_scannedonly.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_scannedonly.8
++++ samba-3.6.23/docs/manpages/vfs_scannedonly.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_scannedonly
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_SCANNEDONLY" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_SCANNEDONLY" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_shadow_copy2.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_shadow_copy2.8
++++ samba-3.6.23/docs/manpages/vfs_shadow_copy2.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_shadow_copy2
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_SHADOW_COPY2" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_SHADOW_COPY2" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_shadow_copy.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_shadow_copy.8
++++ samba-3.6.23/docs/manpages/vfs_shadow_copy.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_shadow_copy
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_SHADOW_COPY" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_SHADOW_COPY" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_smb_traffic_analyzer.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_smb_traffic_analyzer.8
++++ samba-3.6.23/docs/manpages/vfs_smb_traffic_analyzer.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smb_traffic_analyzer
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMB_TRAFFIC_ANALYZER" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "SMB_TRAFFIC_ANALYZER" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -185,7 +185,6 @@ Several drawbacks have been seen with pr
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ Problematic parsing \-
+ Protocol version 1 uses hyphen and comma to seperate blocks of data\&. Once there is a filename with a hyphen, you will run into problems because the receiver decodes the data in a wrong way\&.
+ .RE
+@@ -198,7 +197,6 @@ Protocol version 1 uses hyphen and comma
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ Insecure network transfer \-
+ Protocol version 1 sends all it\*(Aqs data as plaintext over the network\&.
+ .RE
+@@ -211,7 +209,6 @@ Protocol version 1 sends all it\*(Aqs da
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ Limited set of supported VFS operations \-
+ Protocol version 1 supports only four VFS operations\&.
+ .RE
+@@ -224,7 +221,6 @@ Protocol version 1 supports only four VF
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ No subreleases of the protocol \-
+ Protocol version 1 is fixed on it\*(Aqs version, making it unable to introduce new features or bugfixes through compatible sub\-releases\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/vfs_streams_depot.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_streams_depot.8
++++ samba-3.6.23/docs/manpages/vfs_streams_depot.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_streams_depot
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_STREAMS_DEPOT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_STREAMS_DEPOT" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_streams_xattr.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_streams_xattr.8
++++ samba-3.6.23/docs/manpages/vfs_streams_xattr.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_streams_xattr
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_STREAMS_XATTR" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_STREAMS_XATTR" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfstest.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfstest.1
++++ samba-3.6.23/docs/manpages/vfstest.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfstest
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFSTEST" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "VFSTEST" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -47,7 +47,7 @@ is a small command line utility that has
+ Execute the specified (colon\-separated) commands\&. See below for the commands that are available\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/vfs_time_audit.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_time_audit.8
++++ samba-3.6.23/docs/manpages/vfs_time_audit.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_time_audit
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_TIME_AUDIT" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_TIME_AUDIT" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/vfs_xattr_tdb.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/vfs_xattr_tdb.8
++++ samba-3.6.23/docs/manpages/vfs_xattr_tdb.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: vfs_xattr_tdb
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "VFS_XATTR_TDB" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "VFS_XATTR_TDB" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+Index: samba-3.6.23/docs/manpages/wbinfo.1
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/wbinfo.1
++++ samba-3.6.23/docs/manpages/wbinfo.1
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: wbinfo
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: User Commands
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "WBINFO" "1" "09/18/2013" "Samba 3\&.6" "User Commands"
++.TH "WBINFO" "1" "04/11/2016" "Samba 3\&.6" "User Commands"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -206,8 +206,7 @@ The
+ option queries
+ \fBwinbindd\fR(8)
+ for the SID associated with the name specified\&. Domain names can be specified before the user name by using the winbind separator character\&. For example CWDOM1/Administrator refers to the Administrator user in the domain CWDOM1\&. If no domain is specified then the domain used is the one specified in the
+-\fBsmb.conf\fR(5)
+-\fIworkgroup \fR
++\fBsmb.conf\fR(5)\fIworkgroup \fR
+ parameter\&.
+ .RE
+ .PP
+@@ -360,7 +359,7 @@ then the operation will fail\&.
+ Prints the program version number\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/winbindd.8
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/winbindd.8
++++ samba-3.6.23/docs/manpages/winbindd.8
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: winbindd
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: System Administration tools
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "WINBINDD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
++.TH "WINBINDD" "8" "04/11/2016" "Samba 3\&.6" "System Administration tools"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -207,7 +207,7 @@ Base directory name for log/debug files\
+ will be appended (e\&.g\&. log\&.smbclient, log\&.smbd, etc\&.\&.\&.)\&. The log file is never removed by the client\&.
+ .RE
+ .PP
+-\-h|\-\-help
++\-?|\-\-help
+ .RS 4
+ Print a summary of command line options\&.
+ .RE
+@@ -254,7 +254,6 @@ file\&. All parameters should be specifi
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \m[blue]\fBwinbind separator\fR\m[]
+ .RE
+ .sp
+@@ -266,7 +265,6 @@ file\&. All parameters should be specifi
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \m[blue]\fBidmap config * : range\fR\m[]
+ .RE
+ .sp
+@@ -278,7 +276,6 @@ file\&. All parameters should be specifi
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \m[blue]\fBidmap config * : backend\fR\m[]
+ .RE
+ .sp
+@@ -290,7 +287,6 @@ file\&. All parameters should be specifi
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \m[blue]\fBwinbind cache time\fR\m[]
+ .RE
+ .sp
+@@ -302,7 +298,6 @@ file\&. All parameters should be specifi
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \m[blue]\fBwinbind enum users\fR\m[]
+ .RE
+ .sp
+@@ -314,7 +309,6 @@ file\&. All parameters should be specifi
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \m[blue]\fBwinbind enum groups\fR\m[]
+ .RE
+ .sp
+@@ -326,7 +320,6 @@ file\&. All parameters should be specifi
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \m[blue]\fBtemplate homedir\fR\m[]
+ .RE
+ .sp
+@@ -338,7 +331,6 @@ file\&. All parameters should be specifi
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \m[blue]\fBtemplate shell\fR\m[]
+ .RE
+ .sp
+@@ -350,7 +342,6 @@ file\&. All parameters should be specifi
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \m[blue]\fBwinbind use default domain\fR\m[]
+ .RE
+ .sp
+@@ -362,7 +353,6 @@ file\&. All parameters should be specifi
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \m[blue]\fBwinbind: rpc only\fR\m[]
+ Setting this parameter forces winbindd to use RPC instead of LDAP to retrieve information from Domain Controllers\&.
+ .RE
+Index: samba-3.6.23/docs/manpages/winbind_krb5_locator.7
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/winbind_krb5_locator.7
++++ samba-3.6.23/docs/manpages/winbind_krb5_locator.7
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: winbind_krb5_locator
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 04/11/2016
+ .\"    Manual: 7
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "WINBIND_KRB5_LOCATOR" "7" "09/18/2013" "Samba 3\&.6" "7"
++.TH "WINBIND_KRB5_LOCATOR" "7" "04/11/2016" "Samba 3\&.6" "7"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -35,7 +35,6 @@ This plugin is part of the
+ \fBsamba\fR(7)
+ suite\&.
+ .PP
+-
+ winbind_krb5_locator
+ is a plugin that permits MIT and Heimdal Kerberos libraries to detect Kerberos Servers (for the KDC and kpasswd service) using the same semantics that other tools of the Samba suite use\&. This include site\-aware DNS service record lookups and caching of closest dc\&. The plugin uses the public locator API provided by most modern Kerberos implementations\&.
+ .SH "PREREQUISITES"
diff --git a/src/patches/samba/samba-3.2.0pre1-grouppwd.patch b/src/patches/samba/samba-3.2.0pre1-grouppwd.patch
new file mode 100644 (file)
index 0000000..b19a020
--- /dev/null
@@ -0,0 +1,13 @@
+Index: samba-3.6.22/source3/winbindd/winbindd_group.c
+===================================================================
+--- samba-3.6.22.orig/source3/winbindd/winbindd_group.c
++++ samba-3.6.22/source3/winbindd/winbindd_group.c
+@@ -69,7 +69,7 @@ bool fill_grent(TALLOC_CTX *mem_ctx, str
+       /* Group name and password */
+       safe_strcpy(gr->gr_name, full_group_name, sizeof(gr->gr_name) - 1);
+-      safe_strcpy(gr->gr_passwd, "x", sizeof(gr->gr_passwd) - 1);
++      safe_strcpy(gr->gr_passwd, "*", sizeof(gr->gr_passwd) - 1);
+       return True;
+ }
diff --git a/src/patches/samba/samba-3.2.0pre1-pipedir.patch b/src/patches/samba/samba-3.2.0pre1-pipedir.patch
new file mode 100644 (file)
index 0000000..a138c70
--- /dev/null
@@ -0,0 +1,13 @@
+Index: samba-3.6.6/nsswitch/winbind_struct_protocol.h
+===================================================================
+--- samba-3.6.6.orig/nsswitch/winbind_struct_protocol.h
++++ samba-3.6.6/nsswitch/winbind_struct_protocol.h
+@@ -29,7 +29,7 @@ typedef char fstring[FSTRING_LEN];
+  * is needed for launchd support -- jpeach.
+  */
+ #ifndef WINBINDD_SOCKET_DIR
+-#define WINBINDD_SOCKET_DIR  "/tmp/.winbindd"  /* Name of PF_UNIX dir */
++#define WINBINDD_SOCKET_DIR  "/var/run/winbindd"  /* Name of PF_UNIX dir */
+ #endif
+ /*
diff --git a/src/patches/samba/samba-3.2.5-inotify.patch b/src/patches/samba/samba-3.2.5-inotify.patch
new file mode 100644 (file)
index 0000000..e215f5b
--- /dev/null
@@ -0,0 +1,49 @@
+Index: samba-3.6.6/source3/smbd/notify_inotify.c
+===================================================================
+--- samba-3.6.6.orig/source3/smbd/notify_inotify.c
++++ samba-3.6.6/source3/smbd/notify_inotify.c
+@@ -77,6 +77,7 @@ struct inotify_private {
+       struct sys_notify_context *ctx;
+       int fd;
+       struct inotify_watch_context *watches;
++      bool broken_inotify;    /* Late stop for broken system */
+ };
+ struct inotify_watch_context {
+@@ -241,8 +242,15 @@ static void inotify_handler(struct event
+         filenames, and thus can't know how much to allocate
+         otherwise
+       */
+-      if (ioctl(in->fd, FIONREAD, &bufsize) != 0 || 
+-          bufsize == 0) {
++      if ((ioctl(in->fd, FIONREAD, &bufsize) != 0) && (errno == EACCES)) {
++              /*
++               * Workaround for broken system (SELinux policy bug fixed since long but it is always better not to loop on EACCES)
++               */
++              TALLOC_FREE(fde);
++              in->broken_inotify = True;
++              return;
++      }
++      if (bufsize == 0) {
+               DEBUG(0,("No data on inotify fd?!\n"));
+               TALLOC_FREE(fde);
+               return;
+@@ -300,6 +308,7 @@ static NTSTATUS inotify_setup(struct sys
+       }
+       in->ctx = ctx;
+       in->watches = NULL;
++      in->broken_inotify = False;
+       ctx->private_data = in;
+       talloc_set_destructor(in, inotify_destructor);
+@@ -394,6 +403,10 @@ NTSTATUS inotify_watch(struct sys_notify
+       in = talloc_get_type(ctx->private_data, struct inotify_private);
++      if (in->broken_inotify) {
++              return NT_STATUS_OK;
++      }
++
+       mask = inotify_map(e);
+       if (mask == 0) {
+               /* this filter can't be handled by inotify */
diff --git a/src/patches/samba/samba-3.5.11-docs.patch b/src/patches/samba/samba-3.5.11-docs.patch
new file mode 100644 (file)
index 0000000..35db3dc
--- /dev/null
@@ -0,0 +1,70 @@
+From 337e286f110f594f02ea6780900e0a95ec6794c2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Fri, 5 Aug 2011 12:25:52 +0200
+Subject: [PATCH] s3-docs: document --user-sidinfo wbinfo option.
+
+Guenther
+---
+ docs-xml/manpages-3/wbinfo.1.xml |    8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+Index: samba-3.6.22/docs-xml/manpages-3/wbinfo.1.xml
+===================================================================
+--- samba-3.6.22.orig/docs-xml/manpages-3/wbinfo.1.xml
++++ samba-3.6.22/docs-xml/manpages-3/wbinfo.1.xml
+@@ -47,7 +47,7 @@
+               <arg choide="opt">--online-status</arg>
+               <arg choice="opt">--own-domain</arg>
+               <arg choice="opt">-p</arg>
+-              <arg choice="opt">-P|--ping-dc</arg>
++              <arg choice="opt">--ping-dc</arg>
+               <arg choice="opt">-r user</arg>
+               <arg choide="opt">-R|--lookup-rids</arg>
+               <arg choice="opt">-s sid</arg>
+@@ -61,6 +61,7 @@
+               <arg choice="opt">--uid-info uid</arg>
+               <arg choide="opt">--usage</arg>
+               <arg choice="opt">--user-domgroups sid</arg>
++              <arg choice="opt">--user-sidinfo sid</arg>
+               <arg choice="opt">--user-sids sid</arg>
+               <arg choice="opt">-U uid</arg>
+               <arg choice="opt">-V</arg>
+@@ -414,6 +415,13 @@
+               </varlistentry>
+               <varlistentry>
++              <term>--user-sidinfo <replaceable>sid</replaceable></term>
++              <listitem><para>Get user info by sid.
++              </para></listitem>
++              </varlistentry>
++
++
++              <varlistentry>
+               <term>--user-sids <replaceable>sid</replaceable></term>
+               <listitem><para>Get user group SIDs for user.
+               </para></listitem>
+Index: samba-3.6.22/docs/manpages/wbinfo.1
+===================================================================
+--- samba-3.6.22.orig/docs/manpages/wbinfo.1
++++ samba-3.6.22/docs/manpages/wbinfo.1
+@@ -31,7 +31,7 @@
+ wbinfo \- Query information from winbind daemon
+ .SH "SYNOPSIS"
+ .HP \w'\ 'u
+-wbinfo [\-a\ user%password] [\-\-all\-domains] [\-\-allocate\-gid] [\-\-allocate\-uid] [\-c] [\-\-ccache\-save] [\-\-change\-user\-password] [\-D\ domain] [\-\-domain\ domain] [\-\-dsgetdcname\ domain] [\-g] [\-\-getdcname\ domain] [\-\-get\-auth\-user] [\-G\ gid] [\-\-gid\-info] [\-\-group\-info] [\-\-help|\-?] [\-i\ user] [\-I\ ip] [\-K\ user%password] [\-\-lanman] [\-m] [\-n\ name] [\-N\ netbios\-name] [\-\-ntlmv2] [\-\-online\-status] [\-\-own\-domain] [\-p] [\-P|\-\-ping\-dc] [\-r\ user] [\-R|\-\-lookup\-rids] [\-s\ sid] [\-\-separator] [\-\-set\-auth\-user\ user%password] [\-S\ sid] [\-\-sid\-aliases] [\-\-sid\-to\-fullname] [\-t] [\-u] [\-\-uid\-info\ uid] [\-\-usage] [\-\-user\-domgroups\ sid] [\-\-user\-sids\ sid] [\-U\ uid] [\-V] [\-\-verbose] [\-Y\ sid]
++wbinfo [\-a\ user%password] [\-\-all\-domains] [\-\-allocate\-gid] [\-\-allocate\-uid] [\-c] [\-\-ccache\-save] [\-\-change\-user\-password] [\-D\ domain] [\-\-domain\ domain] [\-\-dsgetdcname\ domain] [\-g] [\-\-getdcname\ domain] [\-\-get\-auth\-user] [\-G\ gid] [\-\-gid\-info] [\-\-group\-info] [\-\-help|\-?] [\-i\ user] [\-I\ ip] [\-K\ user%password] [\-\-lanman] [\-m] [\-n\ name] [\-N\ netbios\-name] [\-\-ntlmv2] [\-\-online\-status] [\-\-own\-domain] [\-p] [\-\-ping\-dc] [\-r\ user] [\-R|\-\-lookup\-rids] [\-s\ sid] [\-\-separator] [\-\-set\-auth\-user\ user%password] [\-S\ sid] [\-\-sid\-aliases] [\-\-sid\-to\-fullname] [\-t] [\-u] [\-\-uid\-info\ uid] [\-\-usage] [\-\-user\-domgroups\ sid] [\-\-user\-sidinfo\ sid] [\-\-user\-sids\ sid] [\-U\ uid] [\-V] [\-\-verbose] [\-Y\ sid]
+ .SH "DESCRIPTION"
+ .PP
+ This tool is part of the
+@@ -328,6 +328,11 @@ Print brief help overview\&.
+ Get user domain groups\&.
+ .RE
+ .PP
++\-\-user\-sidinfo \fIsid\fR
++.RS 4
++Get user info by sid\&.
++.RE
++.PP
+ \-\-user\-sids \fIsid\fR
+ .RS 4
+ Get user group SIDs for user\&.
diff --git a/src/patches/samba/samba-3.5.11-idmapdebug.patch b/src/patches/samba/samba-3.5.11-idmapdebug.patch
new file mode 100644 (file)
index 0000000..44da0ff
--- /dev/null
@@ -0,0 +1,26 @@
+Index: samba-3.6.6/source3/winbindd/idmap.c
+===================================================================
+--- samba-3.6.6.orig/source3/winbindd/idmap.c
++++ samba-3.6.6/source3/winbindd/idmap.c
+@@ -129,7 +129,7 @@ NTSTATUS smb_register_idmap(int version,
+       for (entry = backends; entry != NULL; entry = entry->next) {
+               if (strequal(entry->name, name)) {
+-                      DEBUG(0,("Idmap module %s already registered!\n",
++                      DEBUG(5,("Idmap module %s already registered!\n",
+                                name));
+                       return NT_STATUS_OBJECT_NAME_COLLISION;
+               }
+Index: samba-3.6.6/source3/winbindd/nss_info.c
+===================================================================
+--- samba-3.6.6.orig/source3/winbindd/nss_info.c
++++ samba-3.6.6/source3/winbindd/nss_info.c
+@@ -66,7 +66,7 @@ static struct nss_function_entry *nss_ge
+       }
+       if ( nss_get_backend(name) ) {
+-              DEBUG(0,("smb_register_idmap_nss: idmap module %s "
++              DEBUG(5,("smb_register_idmap_nss: idmap module %s "
+                        "already registered!\n", name));
+               return NT_STATUS_OBJECT_NAME_COLLISION;
+       }
diff --git a/src/patches/samba/samba-3.5.11-nss_info_doc.patch b/src/patches/samba/samba-3.5.11-nss_info_doc.patch
new file mode 100644 (file)
index 0000000..50051a0
--- /dev/null
@@ -0,0 +1,75 @@
+From 47871b11df083ec6936599e1196a553379c044b3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Wed, 19 Oct 2011 00:19:58 +0200
+Subject: [PATCH 1/2] s3-docs: Document Services for Unix 2.0 (sfu20) nss_info
+ ldap schema support.
+
+Guenther
+---
+ docs-xml/manpages-3/idmap_ad.8.xml             |    4 +++-
+ docs-xml/smbdotconf/winbind/winbindnssinfo.xml |    5 +++--
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+Index: samba-3.6.22/docs-xml/manpages-3/idmap_ad.8.xml
+===================================================================
+--- samba-3.6.22.orig/docs-xml/manpages-3/idmap_ad.8.xml
++++ samba-3.6.22/docs-xml/manpages-3/idmap_ad.8.xml
+@@ -63,12 +63,17 @@
+               </para></listitem>
+               </varlistentry>
+               <varlistentry>
+-              <term>schema_mode = &lt;rfc2307 | sfu &gt;</term>
++              <term>schema_mode = &lt;rfc2307 | sfu | sfu20&gt;</term>
+               <listitem><para>
+                       Defines the schema that idmap_ad should use when querying
+                       Active Directory regarding user and group information.
+                       This can be either the RFC2307 schema support included
+                       in Windows 2003 R2 or the Service for Unix (SFU) schema.
++                      For SFU 3.0 or 3.5 please choose "sfu", for SFU 2.0
++                      please choose "sfu20".
++
++                      Please note that primary group membership is currently always calculated
++                      via the "primaryGroupID" LDAP attribute.
+               </para></listitem>
+               </varlistentry>
+       </variablelist>
+Index: samba-3.6.22/docs-xml/smbdotconf/winbind/winbindnssinfo.xml
+===================================================================
+--- samba-3.6.22.orig/docs-xml/smbdotconf/winbind/winbindnssinfo.xml
++++ samba-3.6.22/docs-xml/smbdotconf/winbind/winbindnssinfo.xml
+@@ -18,14 +18,16 @@
+               </listitem>
+               <listitem>
+-                      <para><parameter moreinfo="none">&lt;sfu | rfc2307 &gt;</parameter>
++                      <para><parameter moreinfo="none">&lt;sfu | sfu20 | rfc2307 &gt;</parameter>
+                       - When Samba is running in security = ads and your Active Directory
+                       Domain Controller does support the Microsoft "Services for Unix" (SFU)
+                       LDAP schema, winbind can retrieve the login shell and the home
+-                      directory attributes directly from your Directory Server. Note that
++                      directory attributes directly from your Directory Server. For SFU 3.0 or 3.5 simply choose
++                      "sfu", if you use SFU 2.0 please choose "sfu20". Note that
+                       retrieving UID and GID from your ADS-Server requires to
+                       use <parameter moreinfo="none">idmap config DOMAIN:backend</parameter> = ad
+-                      as well.
++                      as well. The primary group membership is currently
++                      always calculated via the "primaryGroupID" LDAP attribute.
+                       </para>
+               </listitem>
+       </itemizedlist>
+Index: samba-3.6.22/docs/manpages/idmap_ad.8
+===================================================================
+--- samba-3.6.22.orig/docs/manpages/idmap_ad.8
++++ samba-3.6.22/docs/manpages/idmap_ad.8
+@@ -48,9 +48,9 @@ range = low \- high
+ Defines the available matching UID and GID range for which the backend is authoritative\&. Note that the range acts as a filter\&. If specified any UID or GID stored in AD that fall outside the range is ignored and the corresponding map is discarded\&. It is intended as a way to avoid accidental UID/GID overlaps between local and remotely defined IDs\&.
+ .RE
+ .PP
+-schema_mode = <rfc2307 | sfu >
++schema_mode = <rfc2307 | sfu | sfu20>
+ .RS 4
+-Defines the schema that idmap_ad should use when querying Active Directory regarding user and group information\&. This can be either the RFC2307 schema support included in Windows 2003 R2 or the Service for Unix (SFU) schema\&.
++Defines the schema that idmap_ad should use when querying Active Directory regarding user and group information\&. This can be either the RFC2307 schema support included in Windows 2003 R2 or the Service for Unix (SFU) schema\&. For SFU 3\&.0 or 3\&.5 please choose "sfu", for SFU 2\&.0 please choose "sfu20"\&. Please note that primary group membership is currently always calculated via the "primaryGroupID" LDAP attribute\&.
+ .RE
+ .SH "EXAMPLES"
+ .PP
diff --git a/src/patches/samba/samba-3.5.11-wbinfo_manpage.patch b/src/patches/samba/samba-3.5.11-wbinfo_manpage.patch
new file mode 100644 (file)
index 0000000..6355533
--- /dev/null
@@ -0,0 +1,65 @@
+From 21027216d43c33fac220746c32acff6b355c4e7d Mon Sep 17 00:00:00 2001
+From: Christian Ambach <ambi@samba.org>
+Date: Fri, 30 Sep 2011 17:07:05 +0200
+Subject: [PATCH] s3-docs: some corrections for wbinfo
+
+Parameters for --group-info and --gid-info were not listed
+properly in the SYNOPSIS and the OPTIONS section
+
+Autobuild-User: Christian Ambach <ambi@samba.org>
+Autobuild-Date: Fri Sep 30 18:44:34 CEST 2011 on sn-devel-104
+---
+ docs-xml/manpages-3/wbinfo.1.xml |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+Index: samba-3.6.6/docs-xml/manpages-3/wbinfo.1.xml
+===================================================================
+--- samba-3.6.6.orig/docs-xml/manpages-3/wbinfo.1.xml
++++ samba-3.6.6/docs-xml/manpages-3/wbinfo.1.xml
+@@ -33,8 +33,8 @@
+               <arg choice="opt">--getdcname domain</arg>
+               <arg choice="opt">--get-auth-user</arg>
+               <arg choice="opt">-G gid</arg>
+-              <arg choide="opt">--gid-info</arg>
+-              <arg choide="opt">--group-info</arg>
++              <arg choide="opt">--gid-info gid</arg>
++              <arg choide="opt">--group-info group</arg>
+               <arg choice="opt">--help|-?</arg>
+               <arg choice="opt">-i user</arg>
+               <arg choice="opt">-I ip</arg>
+@@ -171,8 +171,8 @@
+               </varlistentry>
+               <varlistentry>
+-              <term>--group-info <replaceable>user</replaceable></term>
+-              <listitem><para>Get group info for user.
++              <term>--group-info <replaceable>group</replaceable></term>
++              <listitem><para>Get group info from group name.
+               </para></listitem>
+               </varlistentry>
+Index: samba-3.6.6/docs/manpages/wbinfo.1
+===================================================================
+--- samba-3.6.6.orig/docs/manpages/wbinfo.1
++++ samba-3.6.6/docs/manpages/wbinfo.1
+@@ -31,7 +31,7 @@
+ wbinfo \- Query information from winbind daemon
+ .SH "SYNOPSIS"
+ .HP \w'\ 'u
+-wbinfo [\-a\ user%password] [\-\-all\-domains] [\-\-allocate\-gid] [\-\-allocate\-uid] [\-c] [\-\-ccache\-save] [\-\-change\-user\-password] [\-D\ domain] [\-\-domain\ domain] [\-\-dsgetdcname\ domain] [\-g] [\-\-getdcname\ domain] [\-\-get\-auth\-user] [\-G\ gid] [\-\-gid\-info] [\-\-group\-info] [\-\-help|\-?] [\-i\ user] [\-I\ ip] [\-K\ user%password] [\-\-lanman] [\-m] [\-n\ name] [\-N\ netbios\-name] [\-\-ntlmv2] [\-\-online\-status] [\-\-own\-domain] [\-p] [\-\-ping\-dc] [\-r\ user] [\-R|\-\-lookup\-rids] [\-s\ sid] [\-\-separator] [\-\-set\-auth\-user\ user%password] [\-S\ sid] [\-\-sid\-aliases] [\-\-sid\-to\-fullname] [\-t] [\-u] [\-\-uid\-info\ uid] [\-\-usage] [\-\-user\-domgroups\ sid] [\-\-user\-sidinfo\ sid] [\-\-user\-sids\ sid] [\-U\ uid] [\-V] [\-\-verbose] [\-Y\ sid]
++wbinfo [\-a\ user%password] [\-\-all\-domains] [\-\-allocate\-gid] [\-\-allocate\-uid] [\-c] [\-\-ccache\-save] [\-\-change\-user\-password] [\-D\ domain] [\-\-domain\ domain] [\-\-dsgetdcname\ domain] [\-g] [\-\-getdcname\ domain] [\-\-get\-auth\-user] [\-G\ gid] [\-\-gid\-info\ gid] [\-\-group\-info\ group] [\-\-help|\-?] [\-i\ user] [\-I\ ip] [\-K\ user%password] [\-\-lanman] [\-m] [\-n\ name] [\-N\ netbios\-name] [\-\-ntlmv2] [\-\-online\-status] [\-\-own\-domain] [\-p] [\-\-ping\-dc] [\-r\ user] [\-R|\-\-lookup\-rids] [\-s\ sid] [\-\-separator] [\-\-set\-auth\-user\ user%password] [\-S\ sid] [\-\-sid\-aliases] [\-\-sid\-to\-fullname] [\-t] [\-u] [\-\-uid\-info\ uid] [\-\-usage] [\-\-user\-domgroups\ sid] [\-\-user\-sidinfo\ sid] [\-\-user\-sids\ sid] [\-U\ uid] [\-V] [\-\-verbose] [\-Y\ sid]
+ .SH "DESCRIPTION"
+ .PP
+ This tool is part of the
+@@ -130,9 +130,9 @@ Find a DC for a domain\&.
+ Get group info from gid\&.
+ .RE
+ .PP
+-\-\-group\-info \fIuser\fR
++\-\-group\-info \fIgroup\fR
+ .RS 4
+-Get group info for user\&.
++Get group info from group name\&.
+ .RE
+ .PP
+ \-g|\-\-domain\-groups
diff --git a/src/patches/samba/samba-3.5.12-dns.patch b/src/patches/samba/samba-3.5.12-dns.patch
new file mode 100644 (file)
index 0000000..d655a82
--- /dev/null
@@ -0,0 +1,27 @@
+From 1b0421a1a3d2b2e0168c0957864c16adf93e326d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Wed, 21 Dec 2011 15:47:35 +0100
+Subject: [PATCH] s3-dns: prevent from potentially doing wrong SRV DNS
+ lookups.
+
+With an empty sitename we asked for e.g.
+_ldap._tcp.._sites.dc._msdcs.AD.EXAMPLE.COM
+
+Guenther
+---
+ source3/libads/dns.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+Index: samba-3.6.6/source3/libads/dns.c
+===================================================================
+--- samba-3.6.6.orig/source3/libads/dns.c
++++ samba-3.6.6/source3/libads/dns.c
+@@ -741,7 +741,7 @@ static NTSTATUS ads_dns_query_internal(T
+                                      int *numdcs )
+ {
+       char *name;
+-      if (sitename) {
++      if (sitename && strlen(sitename)) {
+               name = talloc_asprintf(ctx, "%s._tcp.%s._sites.%s._msdcs.%s",
+                                      servicename, sitename,
+                                      dc_pdc_gc_domains, realm);
diff --git a/src/patches/samba/samba-3.5.12-pam_radio_type.patch b/src/patches/samba/samba-3.5.12-pam_radio_type.patch
new file mode 100644 (file)
index 0000000..624b73f
--- /dev/null
@@ -0,0 +1,31 @@
+From 516ba47988f00f83dd4ee53556e0be6463de88ec Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Thu, 5 Apr 2012 14:05:00 +0200
+Subject: [PATCH] nsswitch: disable HAVE_PAM_RADIO_TYPE handling until proper
+ PAM_RADIO_TYPE handling is available.
+
+ This is needed that gdm doesn't crash.
+
+Guenther
+---
+ nsswitch/pam_winbind.c |    4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/nsswitch/pam_winbind.c b/nsswitch/pam_winbind.c
+index b802036..0ed91d8 100644
+--- a/nsswitch/pam_winbind.c
++++ b/nsswitch/pam_winbind.c
+@@ -807,7 +807,9 @@ static int wbc_auth_error_to_pam_error(struct pwb_context *ctx,
+       return pam_winbind_request_log(ctx, ret, username, fn);
+ }
+-#if defined(HAVE_PAM_RADIO_TYPE)
++#if 0
++/* #if defined(HAVE_PAM_RADIO_TYPE) currently disabled until proper
++ * PAM_RADIO_TYPE is implemented - gd */
+ static bool _pam_winbind_change_pwd(struct pwb_context *ctx)
+ {
+       struct pam_message msg, *pmsg;
+-- 
+1.7.7.6
+
diff --git a/src/patches/samba/samba-3.6.18-fix_net_ads_join_segfault.patch b/src/patches/samba/samba-3.6.18-fix_net_ads_join_segfault.patch
new file mode 100644 (file)
index 0000000..dac2ede
--- /dev/null
@@ -0,0 +1,40 @@
+From 814b2c730b2f38767712a005bf328a4a04478f63 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Fri, 17 May 2013 15:14:35 +0200
+Subject: [PATCH 1/2] s3-libads: Fail
+ create_local_private_krb5_conf_for_domain() if parameters missing.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+Reviewed-by: Stefan Metzmacher <metze@samba.org>
+Reviewed-by: Andreas Schneider <asn@samba.org>
+(cherry picked from commit 6dc7c63efa95d0c04b542667d9b6a6621c8139bf)
+---
+ source3/libads/kerberos.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+Index: samba-3.6.22/source3/libads/kerberos.c
+===================================================================
+--- samba-3.6.22.orig/source3/libads/kerberos.c
++++ samba-3.6.22/source3/libads/kerberos.c
+@@ -866,6 +866,16 @@ bool create_local_private_krb5_conf_for_
+               return false;
+       }
++      if (realm == NULL) {
++              DEBUG(0, ("No realm has been specified! Do you really want to "
++                        "join an Active Directory server?\n"));
++              return false;
++      }
++
++      if (domain == NULL || pss == NULL || kdc_name == NULL) {
++              return false;
++      }
++
+       dname = lock_path("smb_krb5");
+       if (!dname) {
+               return false;
diff --git a/src/patches/samba/samba-3.6.19-valid_users_doc.patch b/src/patches/samba/samba-3.6.19-valid_users_doc.patch
new file mode 100644 (file)
index 0000000..602783b
--- /dev/null
@@ -0,0 +1,53 @@
+From 3c7822bac97ce4646f1b2c8419d1dae773c02c1d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Tue, 17 Sep 2013 12:47:58 +0200
+Subject: [PATCH] docs: point out side-effects of global "valid users" setting.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+---
+ docs-xml/smbdotconf/security/validusers.xml | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+Index: samba-3.6.22/docs-xml/smbdotconf/security/validusers.xml
+===================================================================
+--- samba-3.6.22.orig/docs-xml/smbdotconf/security/validusers.xml
++++ samba-3.6.22/docs-xml/smbdotconf/security/validusers.xml
+@@ -19,6 +19,16 @@
+     The current servicename is substituted for <parameter moreinfo="none">%S</parameter>. 
+     This is useful in the [homes] section.
+     </para>
++
++    <para><emphasis>Note: </emphasis>When used in the [global] section this
++    parameter may have unwanted side effects. For example: If samba is configured as a MASTER BROWSER (see
++    <parameter moreinfo="none">local master</parameter>,
++    <parameter moreinfo="none">os level</parameter>,
++    <parameter moreinfo="none">domain master</parameter>,
++    <parameter moreinfo="none">preferred master</parameter>) this option
++    will prevent workstations from being able to browse the network.
++    </para>
++
+ </description>
+ <related>invalid users</related>
+Index: samba-3.6.22/docs/manpages/smb.conf.5
+===================================================================
+--- samba-3.6.22.orig/docs/manpages/smb.conf.5
++++ samba-3.6.22/docs/manpages/smb.conf.5
+@@ -10311,6 +10311,12 @@ list then access is denied for that user
+ The current servicename is substituted for
+ \fI%S\fR\&. This is useful in the [homes] section\&.
+ .sp
++\fINote: \fRWhen used in the [global] section this parameter may have unwanted side effects\&. For example: If samba is configured as a MASTER BROWSER (see
++\fIlocal master\fR,
++\fIos level\fR,
++\fIdomain master\fR,
++\fIpreferred master\fR) this option will prevent workstations from being able to browse the network\&.
++.sp
+ Default:
+ \fI\fIvalid users\fR\fR\fI = \fR\fI # No valid users list (anyone can login) \fR\fI \fR
+ .sp
diff --git a/src/patches/samba/samba-3.6.23-fix_libads_krb5_ipv6.patch b/src/patches/samba/samba-3.6.23-fix_libads_krb5_ipv6.patch
new file mode 100644 (file)
index 0000000..9b6d221
--- /dev/null
@@ -0,0 +1,788 @@
+From 918ac8f0ed19aeaa4718fa94fcabe87d0419d768 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Mon, 13 Jan 2014 15:59:26 +0100
+Subject: [PATCH 1/5] PATCHSET11: s3-kerberos: remove print_kdc_line()
+ completely.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Just calling print_canonical_sockaddr() is sufficient, as it already deals with
+ipv6 as well. The port handling, which was only done for IPv6 (not IPv4), is
+removed as well. It was pointless because it always derived the port number from
+the provided address which was either a SMB (usually port 445) or LDAP
+connection. No KDC will ever run on port 389 or 445 on a Windows/Samba DC.
+Finally, the kerberos libraries that we support and build with, can deal with
+ipv6 addresses in krb5.conf, so we no longer put the (unnecessary) burden of
+resolving the DC name on the kerberos library anymore.
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+Reviewed-by: Andreas Schneider <asn@samba.org>
+
+Conflicts:
+       source3/libads/kerberos.c
+---
+ source3/libads/kerberos.c | 86 +++++------------------------------------------
+ 1 file changed, 9 insertions(+), 77 deletions(-)
+
+diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c
+index 1153ccb..064e5f7 100644
+--- a/source3/libads/kerberos.c
++++ b/source3/libads/kerberos.c
+@@ -661,73 +661,6 @@ int kerberos_kinit_password(const char *principal,
+ }
+ /************************************************************************
+-************************************************************************/
+-
+-static char *print_kdc_line(char *mem_ctx,
+-                      const char *prev_line,
+-                      const struct sockaddr_storage *pss,
+-                      const char *kdc_name)
+-{
+-      char *kdc_str = NULL;
+-
+-      if (pss->ss_family == AF_INET) {
+-              kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n",
+-                                      prev_line,
+-                                        print_canonical_sockaddr(mem_ctx, pss));
+-      } else {
+-              char addr[INET6_ADDRSTRLEN];
+-              uint16_t port = get_sockaddr_port(pss);
+-
+-              DEBUG(10,("print_kdc_line: IPv6 case for kdc_name: %s, port: %d\n",
+-                      kdc_name, port));
+-
+-              if (port != 0 && port != DEFAULT_KRB5_PORT) {
+-                      /* Currently for IPv6 we can't specify a non-default
+-                         krb5 port with an address, as this requires a ':'.
+-                         Resolve to a name. */
+-                      char hostname[MAX_DNS_NAME_LENGTH];
+-                      int ret = sys_getnameinfo((const struct sockaddr *)pss,
+-                                      sizeof(*pss),
+-                                      hostname, sizeof(hostname),
+-                                      NULL, 0,
+-                                      NI_NAMEREQD);
+-                      if (ret) {
+-                              DEBUG(0,("print_kdc_line: can't resolve name "
+-                                      "for kdc with non-default port %s. "
+-                                      "Error %s\n.",
+-                                      print_canonical_sockaddr(mem_ctx, pss),
+-                                      gai_strerror(ret)));
+-                              return NULL;
+-                      }
+-                      /* Success, use host:port */
+-                      kdc_str = talloc_asprintf(mem_ctx,
+-                                      "%s\tkdc = %s:%u\n",
+-                                      prev_line,
+-                                      hostname,
+-                                      (unsigned int)port);
+-              } else {
+-
+-                      /* no krb5 lib currently supports "kdc = ipv6 address"
+-                       * at all, so just fill in just the kdc_name if we have
+-                       * it and let the krb5 lib figure out the appropriate
+-                       * ipv6 address - gd */
+-
+-                      if (kdc_name) {
+-                              kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n",
+-                                              prev_line, kdc_name);
+-                      } else {
+-                              kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n",
+-                                              prev_line,
+-                                              print_sockaddr(addr,
+-                                                      sizeof(addr),
+-                                                      pss));
+-                      }
+-              }
+-      }
+-      return kdc_str;
+-}
+-
+-/************************************************************************
+  Create a string list of available kdc's, possibly searching by sitename.
+  Does DNS queries.
+@@ -746,7 +679,8 @@ static char *get_kdc_ip_string(char *mem_ctx,
+       struct ip_service *ip_srv_nonsite = NULL;
+       int count_site = 0;
+       int count_nonsite;
+-      char *kdc_str = print_kdc_line(mem_ctx, "", pss, kdc_name);
++      char *kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n", "",
++                                      print_canonical_sockaddr(mem_ctx, pss));
+       if (kdc_str == NULL) {
+               return NULL;
+@@ -768,10 +702,9 @@ static char *get_kdc_ip_string(char *mem_ctx,
+                       }
+                       /* Append to the string - inefficient
+                        * but not done often. */
+-                      kdc_str = print_kdc_line(mem_ctx,
+-                                              kdc_str,
+-                                              &ip_srv_site[i].ss,
+-                                              NULL);
++                      kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n",
++                                                kdc_str,
++                                                print_canonical_sockaddr(mem_ctx, &ip_srv_site[i].ss));
+                       if (!kdc_str) {
+                               SAFE_FREE(ip_srv_site);
+                               return NULL;
+@@ -806,11 +739,10 @@ static char *get_kdc_ip_string(char *mem_ctx,
+               }
+               /* Append to the string - inefficient but not done often. */
+-              kdc_str = print_kdc_line(mem_ctx,
+-                              kdc_str,
+-                              &ip_srv_nonsite[i].ss,
+-                              NULL);
+-              if (!kdc_str) {
++              kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n",
++                                        kdc_str,
++                                        print_canonical_sockaddr(mem_ctx, &ip_srv_nonsite[i].ss));
++              if (kdc_str == NULL) {
+                       SAFE_FREE(ip_srv_site);
+                       SAFE_FREE(ip_srv_nonsite);
+                       return NULL;
+-- 
+1.9.0
+
+
+From b4eba7d838b60230b9f6c9a08ef0ddc00e3e47f0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Fri, 7 Mar 2014 14:47:31 +0100
+Subject: [PATCH 2/5] PATCHSET11: s3-kerberos: remove unused kdc_name from
+ create_local_private_krb5_conf_for_domain().
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+Reviewed-by: Andreas Schneider <asn@samba.org>
+
+Autobuild-User(master): Günther Deschner <gd@samba.org>
+Autobuild-Date(master): Fri Mar  7 18:43:57 CET 2014 on sn-devel-104
+
+Conflicts:
+       source3/libads/kerberos.c
+       source3/libads/kerberos_proto.h
+       source3/libnet/libnet_join.c
+       source3/winbindd/winbindd_cm.c
+---
+ source3/libads/kerberos.c       | 10 ++++------
+ source3/libads/kerberos_proto.h |  3 +--
+ source3/libnet/libnet_join.c    |  2 +-
+ source3/libsmb/namequery_dc.c   |  6 ++----
+ source3/winbindd/winbindd_cm.c  |  6 ++----
+ 5 files changed, 10 insertions(+), 17 deletions(-)
+
+diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c
+index 064e5f7..b826cb3 100644
+--- a/source3/libads/kerberos.c
++++ b/source3/libads/kerberos.c
+@@ -671,8 +671,7 @@ int kerberos_kinit_password(const char *principal,
+ static char *get_kdc_ip_string(char *mem_ctx,
+               const char *realm,
+               const char *sitename,
+-              struct sockaddr_storage *pss,
+-              const char *kdc_name)
++              struct sockaddr_storage *pss)
+ {
+       int i;
+       struct ip_service *ip_srv_site = NULL;
+@@ -769,8 +768,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
+ bool create_local_private_krb5_conf_for_domain(const char *realm,
+                                               const char *domain,
+                                               const char *sitename,
+-                                              struct sockaddr_storage *pss,
+-                                              const char *kdc_name)
++                                              struct sockaddr_storage *pss)
+ {
+       char *dname;
+       char *tmpname = NULL;
+@@ -794,7 +792,7 @@ bool create_local_private_krb5_conf_for_domain(const char *realm,
+               return false;
+       }
+-      if (domain == NULL || pss == NULL || kdc_name == NULL) {
++      if (domain == NULL || pss == NULL) {
+               return false;
+       }
+@@ -825,7 +823,7 @@ bool create_local_private_krb5_conf_for_domain(const char *realm,
+       realm_upper = talloc_strdup(fname, realm);
+       strupper_m(realm_upper);
+-      kdc_ip_string = get_kdc_ip_string(dname, realm, sitename, pss, kdc_name);
++      kdc_ip_string = get_kdc_ip_string(dname, realm, sitename, pss);
+       if (!kdc_ip_string) {
+               goto done;
+       }
+diff --git a/source3/libads/kerberos_proto.h b/source3/libads/kerberos_proto.h
+index 406669cc..90d7cd9 100644
+--- a/source3/libads/kerberos_proto.h
++++ b/source3/libads/kerberos_proto.h
+@@ -75,8 +75,7 @@ int kerberos_kinit_password(const char *principal,
+ bool create_local_private_krb5_conf_for_domain(const char *realm,
+                                               const char *domain,
+                                               const char *sitename,
+-                                              struct sockaddr_storage *pss,
+-                                              const char *kdc_name);
++                                              struct sockaddr_storage *pss);
+ /* The following definitions come from libads/authdata.c  */
+diff --git a/source3/libnet/libnet_join.c b/source3/libnet/libnet_join.c
+index e84682d..f1736ec 100644
+--- a/source3/libnet/libnet_join.c
++++ b/source3/libnet/libnet_join.c
+@@ -1985,7 +1985,7 @@ static WERROR libnet_DomainJoin(TALLOC_CTX *mem_ctx,
+       create_local_private_krb5_conf_for_domain(
+               r->out.dns_domain_name, r->out.netbios_domain_name,
+-              NULL, &cli->dest_ss, cli->desthost);
++              NULL, &cli->dest_ss);
+       if (r->out.domain_is_ad && r->in.account_ou &&
+           !(r->in.join_flags & WKSSVC_JOIN_FLAGS_JOIN_UNSECURE)) {
+diff --git a/source3/libsmb/namequery_dc.c b/source3/libsmb/namequery_dc.c
+index 39b780c..149121a 100644
+--- a/source3/libsmb/namequery_dc.c
++++ b/source3/libsmb/namequery_dc.c
+@@ -111,14 +111,12 @@ static bool ads_dc_name(const char *domain,
+                               create_local_private_krb5_conf_for_domain(realm,
+                                                                       domain,
+                                                                       sitename,
+-                                                                      &ads->ldap.ss,
+-                                                                      ads->config.ldap_server_name);
++                                                                      &ads->ldap.ss);
+                       } else {
+                               create_local_private_krb5_conf_for_domain(realm,
+                                                                       domain,
+                                                                       NULL,
+-                                                                      &ads->ldap.ss,
+-                                                                      ads->config.ldap_server_name);
++                                                                      &ads->ldap.ss);
+                       }
+               }
+ #endif
+diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c
+index 8271279..59f30a5 100644
+--- a/source3/winbindd/winbindd_cm.c
++++ b/source3/winbindd/winbindd_cm.c
+@@ -1226,8 +1226,7 @@ static bool dcip_to_name(TALLOC_CTX *mem_ctx,
+                                       create_local_private_krb5_conf_for_domain(domain->alt_name,
+                                                                       domain->name,
+                                                                       sitename,
+-                                                                      pss,
+-                                                                      name);
++                                                                      pss);
+                                       SAFE_FREE(sitename);
+                               } else {
+@@ -1235,8 +1234,7 @@ static bool dcip_to_name(TALLOC_CTX *mem_ctx,
+                                       create_local_private_krb5_conf_for_domain(domain->alt_name,
+                                                                       domain->name,
+                                                                       NULL,
+-                                                                      pss,
+-                                                                      name);
++                                                                      pss);
+                               }
+                               winbindd_set_locator_kdc_envs(domain);
+-- 
+1.9.0
+
+
+From db840b57e81922cea984530e2dc1b42cc99e75de Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Wed, 2 Apr 2014 19:37:34 +0200
+Subject: [PATCH 3/5] PATCHSET11: s3-kerberos: make ipv6 support for generated
+ krb5 config files more robust.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Older MIT Kerberos libraries will add any secondary ipv6 address as
+ipv4 address, defining the (default) krb5 port 88 circumvents that.
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+Reviewed-by: Andreas Schneider <asn@samba.org>
+
+Autobuild-User(master): Günther Deschner <gd@samba.org>
+Autobuild-Date(master): Fri Apr  4 16:33:12 CEST 2014 on sn-devel-104
+
+Conflicts:
+       source3/libads/kerberos.c
+---
+ source3/libads/kerberos.c | 29 +++++++++++++++++++++++++++--
+ 1 file changed, 27 insertions(+), 2 deletions(-)
+
+diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c
+index b826cb3..5e34aa3 100644
+--- a/source3/libads/kerberos.c
++++ b/source3/libads/kerberos.c
+@@ -668,6 +668,31 @@ int kerberos_kinit_password(const char *principal,
+ ************************************************************************/
++/* print_canonical_sockaddr prints an ipv6 addr in the form of
++* [ipv6.addr]. This string, when put in a generated krb5.conf file is not
++* always properly dealt with by some older krb5 libraries. Adding the hard-coded
++* portnumber workarounds the issue. - gd */
++
++static char *print_canonical_sockaddr_with_port(TALLOC_CTX *mem_ctx,
++                                              const struct sockaddr_storage *pss)
++{
++      char *str = NULL;
++
++      str = print_canonical_sockaddr(mem_ctx, pss);
++      if (str == NULL) {
++              return NULL;
++      }
++
++      if (pss->ss_family != AF_INET6) {
++              return str;
++      }
++
++#if defined(HAVE_IPV6)
++      str = talloc_asprintf_append(str, ":88");
++#endif
++      return str;
++}
++
+ static char *get_kdc_ip_string(char *mem_ctx,
+               const char *realm,
+               const char *sitename,
+@@ -679,7 +704,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
+       int count_site = 0;
+       int count_nonsite;
+       char *kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n", "",
+-                                      print_canonical_sockaddr(mem_ctx, pss));
++                                      print_canonical_sockaddr_with_port(mem_ctx, pss));
+       if (kdc_str == NULL) {
+               return NULL;
+@@ -740,7 +765,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
+               /* Append to the string - inefficient but not done often. */
+               kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n",
+                                         kdc_str,
+-                                        print_canonical_sockaddr(mem_ctx, &ip_srv_nonsite[i].ss));
++                                        print_canonical_sockaddr_with_port(mem_ctx, &ip_srv_nonsite[i].ss));
+               if (kdc_str == NULL) {
+                       SAFE_FREE(ip_srv_site);
+                       SAFE_FREE(ip_srv_nonsite);
+-- 
+1.9.0
+
+
+From 208f1d7b5ae557bf34a39c847aeb1925ce4cb171 Mon Sep 17 00:00:00 2001
+From: Andrew Bartlett <abartlet@samba.org>
+Date: Tue, 26 Apr 2011 17:03:32 +1000
+Subject: [PATCH 4/5] PATCHSET11: s3-libads Pass a struct sockaddr_storage to
+ cldap routines
+
+This avoids these routines doing a DNS lookup that has already been
+done, and ensures that the emulated DNS lookup isn't thrown away.
+
+Andrew Bartlett
+---
+ source3/libads/cldap.c                | 14 ++++--------
+ source3/libads/cldap.h                |  4 ++--
+ source3/libads/ldap.c                 | 41 ++++++++++-------------------------
+ source3/libsmb/dsgetdcname.c          |  3 ++-
+ source3/utils/net_ads.c               |  7 +++---
+ source3/winbindd/idmap_adex/gc_util.c | 12 +++++++++-
+ 6 files changed, 33 insertions(+), 48 deletions(-)
+
+diff --git a/source3/libads/cldap.c b/source3/libads/cldap.c
+index 5d2e900..03fa17c 100644
+--- a/source3/libads/cldap.c
++++ b/source3/libads/cldap.c
+@@ -30,7 +30,7 @@
+ *******************************************************************/
+ bool ads_cldap_netlogon(TALLOC_CTX *mem_ctx,
+-                      const char *server,
++                      struct sockaddr_storage *ss,
+                       const char *realm,
+                       uint32_t nt_version,
+                       struct netlogon_samlogon_response **_reply)
+@@ -39,18 +39,12 @@ bool ads_cldap_netlogon(TALLOC_CTX *mem_ctx,
+       struct cldap_netlogon io;
+       struct netlogon_samlogon_response *reply;
+       NTSTATUS status;
+-      struct sockaddr_storage ss;
+       char addrstr[INET6_ADDRSTRLEN];
+       const char *dest_str;
+       int ret;
+       struct tsocket_address *dest_addr;
+-      if (!interpret_string_addr_prefer_ipv4(&ss, server, 0)) {
+-              DEBUG(2,("Failed to resolve[%s] into an address for cldap\n",
+-                      server));
+-              return false;
+-      }
+-      dest_str = print_sockaddr(addrstr, sizeof(addrstr), &ss);
++      dest_str = print_sockaddr(addrstr, sizeof(addrstr), ss);
+       ret = tsocket_address_inet_from_strings(mem_ctx, "ip",
+                                               dest_str, LDAP_PORT,
+@@ -113,7 +107,7 @@ failed:
+ *******************************************************************/
+ bool ads_cldap_netlogon_5(TALLOC_CTX *mem_ctx,
+-                        const char *server,
++                        struct sockaddr_storage *ss,
+                         const char *realm,
+                         struct NETLOGON_SAM_LOGON_RESPONSE_EX *reply5)
+ {
+@@ -121,7 +115,7 @@ bool ads_cldap_netlogon_5(TALLOC_CTX *mem_ctx,
+       struct netlogon_samlogon_response *reply = NULL;
+       bool ret;
+-      ret = ads_cldap_netlogon(mem_ctx, server, realm, nt_version, &reply);
++      ret = ads_cldap_netlogon(mem_ctx, ss, realm, nt_version, &reply);
+       if (!ret) {
+               return false;
+       }
+diff --git a/source3/libads/cldap.h b/source3/libads/cldap.h
+index d2ad4b0..60e1c56 100644
+--- a/source3/libads/cldap.h
++++ b/source3/libads/cldap.h
+@@ -27,12 +27,12 @@
+ /* The following definitions come from libads/cldap.c  */
+ bool ads_cldap_netlogon(TALLOC_CTX *mem_ctx,
+-                      const char *server,
++                      struct sockaddr_storage *ss,
+                       const char *realm,
+                       uint32_t nt_version,
+                       struct netlogon_samlogon_response **reply);
+ bool ads_cldap_netlogon_5(TALLOC_CTX *mem_ctx,
+-                        const char *server,
++                        struct sockaddr_storage *ss,
+                         const char *realm,
+                         struct NETLOGON_SAM_LOGON_RESPONSE_EX *reply5);
+diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
+index b841c84..0db0bcd 100644
+--- a/source3/libads/ldap.c
++++ b/source3/libads/ldap.c
+@@ -196,45 +196,32 @@ bool ads_closest_dc(ADS_STRUCT *ads)
+  */
+ static bool ads_try_connect(ADS_STRUCT *ads, const char *server, bool gc)
+ {
+-      char *srv;
+       struct NETLOGON_SAM_LOGON_RESPONSE_EX cldap_reply;
+       TALLOC_CTX *frame = talloc_stackframe();
+       bool ret = false;
++      struct sockaddr_storage ss;
++      char addr[INET6_ADDRSTRLEN];
+       if (!server || !*server) {
+               TALLOC_FREE(frame);
+               return False;
+       }
+-      if (!is_ipaddress(server)) {
+-              struct sockaddr_storage ss;
+-              char addr[INET6_ADDRSTRLEN];
+-
+-              if (!resolve_name(server, &ss, 0x20, true)) {
+-                      DEBUG(5,("ads_try_connect: unable to resolve name %s\n",
+-                              server ));
+-                      TALLOC_FREE(frame);
+-                      return false;
+-              }
+-              print_sockaddr(addr, sizeof(addr), &ss);
+-              srv = talloc_strdup(frame, addr);
+-      } else {
+-              /* this copes with inet_ntoa brokenness */
+-              srv = talloc_strdup(frame, server);
+-      }
+-
+-      if (!srv) {
++      if (!resolve_name(server, &ss, 0x20, true)) {
++              DEBUG(5,("ads_try_connect: unable to resolve name %s\n",
++                       server ));
+               TALLOC_FREE(frame);
+               return false;
+       }
++      print_sockaddr(addr, sizeof(addr), &ss);
+       DEBUG(5,("ads_try_connect: sending CLDAP request to %s (realm: %s)\n", 
+-              srv, ads->server.realm));
++              addr, ads->server.realm));
+       ZERO_STRUCT( cldap_reply );
+-      if ( !ads_cldap_netlogon_5(frame, srv, ads->server.realm, &cldap_reply ) ) {
+-              DEBUG(3,("ads_try_connect: CLDAP request %s failed.\n", srv));
++      if ( !ads_cldap_netlogon_5(frame, &ss, ads->server.realm, &cldap_reply ) ) {
++              DEBUG(3,("ads_try_connect: CLDAP request %s failed.\n", addr));
+               ret = false;
+               goto out;
+       }
+@@ -243,7 +230,7 @@ static bool ads_try_connect(ADS_STRUCT *ads, const char *server, bool gc)
+       if ( !(cldap_reply.server_type & NBT_SERVER_LDAP) ) {
+               DEBUG(1,("ads_try_connect: %s's CLDAP reply says it is not an LDAP server!\n",
+-                      srv));
++                      addr));
+               ret = false;
+               goto out;
+       }
+@@ -273,13 +260,7 @@ static bool ads_try_connect(ADS_STRUCT *ads, const char *server, bool gc)
+       ads->server.workgroup          = SMB_STRDUP(cldap_reply.domain_name);
+       ads->ldap.port = gc ? LDAP_GC_PORT : LDAP_PORT;
+-      if (!interpret_string_addr(&ads->ldap.ss, srv, 0)) {
+-              DEBUG(1,("ads_try_connect: unable to convert %s "
+-                      "to an address\n",
+-                      srv));
+-              ret = false;
+-              goto out;
+-      }
++      ads->ldap.ss = ss;
+       /* Store our site name. */
+       sitename_store( cldap_reply.domain_name, cldap_reply.client_site);
+diff --git a/source3/libsmb/dsgetdcname.c b/source3/libsmb/dsgetdcname.c
+index 841a179..2f8b8dc 100644
+--- a/source3/libsmb/dsgetdcname.c
++++ b/source3/libsmb/dsgetdcname.c
+@@ -863,9 +863,10 @@ static NTSTATUS process_dc_dns(TALLOC_CTX *mem_ctx,
+       for (i=0; i<num_dcs; i++) {
++
+               DEBUG(10,("LDAP ping to %s\n", dclist[i].hostname));
+-              if (ads_cldap_netlogon(mem_ctx, dclist[i].hostname,
++              if (ads_cldap_netlogon(mem_ctx, &dclist[i].ss,
+                                       domain_name,
+                                       nt_version,
+                                       &r))
+diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c
+index 8f8b7b4..816349d 100644
+--- a/source3/utils/net_ads.c
++++ b/source3/utils/net_ads.c
+@@ -62,7 +62,8 @@ static int net_ads_cldap_netlogon(struct net_context *c, ADS_STRUCT *ads)
+       struct NETLOGON_SAM_LOGON_RESPONSE_EX reply;
+       print_sockaddr(addr, sizeof(addr), &ads->ldap.ss);
+-      if ( !ads_cldap_netlogon_5(talloc_tos(), addr, ads->server.realm, &reply ) ) {
++
++      if ( !ads_cldap_netlogon_5(talloc_tos(), &ads->ldap.ss, ads->server.realm, &reply ) ) {
+               d_fprintf(stderr, _("CLDAP query failed!\n"));
+               return -1;
+       }
+@@ -385,7 +386,6 @@ int net_ads_check(struct net_context *c)
+ static int net_ads_workgroup(struct net_context *c, int argc, const char **argv)
+ {
+       ADS_STRUCT *ads;
+-      char addr[INET6_ADDRSTRLEN];
+       struct NETLOGON_SAM_LOGON_RESPONSE_EX reply;
+       if (c->display_usage) {
+@@ -407,8 +407,7 @@ static int net_ads_workgroup(struct net_context *c, int argc, const char **argv)
+               ads->ldap.port = 389;
+       }
+-      print_sockaddr(addr, sizeof(addr), &ads->ldap.ss);
+-      if ( !ads_cldap_netlogon_5(talloc_tos(), addr, ads->server.realm, &reply ) ) {
++      if ( !ads_cldap_netlogon_5(talloc_tos(), &ads->ldap.ss, ads->server.realm, &reply ) ) {
+               d_fprintf(stderr, _("CLDAP query failed!\n"));
+               ads_destroy(&ads);
+               return -1;
+diff --git a/source3/winbindd/idmap_adex/gc_util.c b/source3/winbindd/idmap_adex/gc_util.c
+index 77b318c..e625265 100644
+--- a/source3/winbindd/idmap_adex/gc_util.c
++++ b/source3/winbindd/idmap_adex/gc_util.c
+@@ -107,6 +107,7 @@ done:
+       NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
+       struct NETLOGON_SAM_LOGON_RESPONSE_EX cldap_reply;
+       TALLOC_CTX *frame = talloc_stackframe();
++      struct sockaddr_storage ss;
+       if (!gc || !domain) {
+               return NT_STATUS_INVALID_PARAMETER;
+@@ -126,8 +127,17 @@ done:
+       nt_status = ads_ntstatus(ads_status);
+       BAIL_ON_NTSTATUS_ERROR(nt_status);
++      if (!resolve_name(ads->config.ldap_server_name, &ss, 0x20, true)) {
++              DEBUG(5,("gc_find_forest_root: unable to resolve name %s\n",
++                       ads->config.ldap_server_name));
++              nt_status = NT_STATUS_IO_TIMEOUT;
++              /* This matches the old code which did the resolve in
++               * ads_cldap_netlogon_5 */
++              BAIL_ON_NTSTATUS_ERROR(nt_status);
++      }
++
+       if (!ads_cldap_netlogon_5(frame,
+-                                ads->config.ldap_server_name,
++                                &ss,
+                                 ads->config.realm,
+                                 &cldap_reply))
+       {
+-- 
+1.9.0
+
+
+From 4eb02e7caa83b725988dd9f659b3568873522a30 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Wed, 16 Apr 2014 16:07:14 +0200
+Subject: [PATCH 5/5] PATCHSET11: s3-libads: allow ads_try_connect() to re-use
+ a resolved ip address.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Pass down a struct sockaddr_storage to ads_try_connect.
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+Reviewed-by: Andreas Schneider <asn@samba.org>
+
+Autobuild-User(master): Günther Deschner <gd@samba.org>
+Autobuild-Date(master): Thu Apr 17 19:56:16 CEST 2014 on sn-devel-104
+---
+ source3/libads/ldap.c | 44 ++++++++++++++++++++++++++------------------
+ 1 file changed, 26 insertions(+), 18 deletions(-)
+
+diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
+index 0db0bcd..f8349cf 100644
+--- a/source3/libads/ldap.c
++++ b/source3/libads/ldap.c
+@@ -194,33 +194,27 @@ bool ads_closest_dc(ADS_STRUCT *ads)
+   try a connection to a given ldap server, returning True and setting the servers IP
+   in the ads struct if successful
+  */
+-static bool ads_try_connect(ADS_STRUCT *ads, const char *server, bool gc)
++static bool ads_try_connect(ADS_STRUCT *ads, bool gc,
++                          struct sockaddr_storage *ss)
+ {
+       struct NETLOGON_SAM_LOGON_RESPONSE_EX cldap_reply;
+       TALLOC_CTX *frame = talloc_stackframe();
+       bool ret = false;
+-      struct sockaddr_storage ss;
+       char addr[INET6_ADDRSTRLEN];
+-      if (!server || !*server) {
++      if (ss == NULL) {
+               TALLOC_FREE(frame);
+               return False;
+       }
+-      if (!resolve_name(server, &ss, 0x20, true)) {
+-              DEBUG(5,("ads_try_connect: unable to resolve name %s\n",
+-                       server ));
+-              TALLOC_FREE(frame);
+-              return false;
+-      }
+-      print_sockaddr(addr, sizeof(addr), &ss);
++      print_sockaddr(addr, sizeof(addr), ss);
+       DEBUG(5,("ads_try_connect: sending CLDAP request to %s (realm: %s)\n", 
+               addr, ads->server.realm));
+       ZERO_STRUCT( cldap_reply );
+-      if ( !ads_cldap_netlogon_5(frame, &ss, ads->server.realm, &cldap_reply ) ) {
++      if ( !ads_cldap_netlogon_5(frame, ss, ads->server.realm, &cldap_reply ) ) {
+               DEBUG(3,("ads_try_connect: CLDAP request %s failed.\n", addr));
+               ret = false;
+               goto out;
+@@ -260,7 +254,7 @@ static bool ads_try_connect(ADS_STRUCT *ads, const char *server, bool gc)
+       ads->server.workgroup          = SMB_STRDUP(cldap_reply.domain_name);
+       ads->ldap.port = gc ? LDAP_GC_PORT : LDAP_PORT;
+-      ads->ldap.ss = ss;
++      ads->ldap.ss = *ss;
+       /* Store our site name. */
+       sitename_store( cldap_reply.domain_name, cldap_reply.client_site);
+@@ -292,6 +286,7 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
+       bool use_own_domain = False;
+       char *sitename;
+       NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
++      bool ok = false;
+       /* if the realm and workgroup are both empty, assume they are ours */
+@@ -345,12 +340,14 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
+               DEBUG(6,("ads_find_dc: (ldap) looking for %s '%s'\n",
+                       (got_realm ? "realm" : "domain"), realm));
+-              if (get_dc_name(domain, realm, srv_name, &ip_out)) {
++              ok = get_dc_name(domain, realm, srv_name, &ip_out);
++              if (ok) {
+                       /*
+                        * we call ads_try_connect() to fill in the
+                        * ads->config details
+                        */
+-                      if (ads_try_connect(ads, srv_name, false)) {
++                      ok = ads_try_connect(ads, false, &ip_out);
++                      if (ok) {
+                               return NT_STATUS_OK;
+                       }
+               }
+@@ -406,7 +403,8 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
+                       }
+               }
+-              if ( ads_try_connect(ads, server, false) ) {
++              ok = ads_try_connect(ads, false, &ip_list[i].ss);
++              if (ok) {
+                       SAFE_FREE(ip_list);
+                       SAFE_FREE(sitename);
+                       return NT_STATUS_OK;
+@@ -591,9 +589,19 @@ ADS_STATUS ads_connect(ADS_STRUCT *ads)
+               TALLOC_FREE(s);
+       }
+-      if (ads->server.ldap_server)
+-      {
+-              if (ads_try_connect(ads, ads->server.ldap_server, ads->server.gc)) {
++      if (ads->server.ldap_server) {
++              bool ok = false;
++              struct sockaddr_storage ss;
++
++              ok = resolve_name(ads->server.ldap_server, &ss, 0x20, true);
++              if (!ok) {
++                      DEBUG(5,("ads_connect: unable to resolve name %s\n",
++                               ads->server.ldap_server));
++                      status = ADS_ERROR_NT(NT_STATUS_NOT_FOUND);
++                      goto out;
++              }
++              ok = ads_try_connect(ads, ads->server.gc, &ss);
++              if (ok) {
+                       goto got_connection;
+               }
+-- 
+1.9.0
+
+diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c
+index b826cb3..5e34aa3 100644
+--- a/source3/libads/kerberos.c
++++ b/source3/libads/kerberos.c
+@@ -827,10 +827,6 @@
+               return false;
+       }
+-      if (domain == NULL || pss == NULL || kdc_name == NULL) {
+-              return false;
+-      }
+-
+       dname = lock_path("smb_krb5");
+       if (!dname) {
+               return false;
diff --git a/src/patches/samba/samba-3.6.23-gecos.patch b/src/patches/samba/samba-3.6.23-gecos.patch
new file mode 100644 (file)
index 0000000..2ecfe86
--- /dev/null
@@ -0,0 +1,42 @@
+From 02da0b0ae947f30480b1246de22e865491e479f0 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Wed, 12 Feb 2014 13:26:02 +0100
+Subject: [PATCH] PATCHSET12: s3-winbind: Use strlcpy to avoid log entry.
+
+The full_name from Windows can be longer than 255 chars which results in
+a warning on log level 0 that we have a string overflow. This will avoid
+the warning. However we should fix this sooner or later on the protocol
+level to have no limit.
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Volker Lendecke <vl@samba.org>
+
+Conflicts:
+       source3/winbindd/wb_fill_pwent.c
+---
+ source3/winbindd/wb_fill_pwent.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/source3/winbindd/wb_fill_pwent.c b/source3/winbindd/wb_fill_pwent.c
+index 9634317..9d42b31 100644
+--- a/source3/winbindd/wb_fill_pwent.c
++++ b/source3/winbindd/wb_fill_pwent.c
+@@ -141,8 +141,13 @@ static void wb_fill_pwent_getgrsid_done(struct tevent_req *subreq)
+                                    true);
+       }
+-      fstrcpy(state->pw->pw_name, output_username);
+-      fstrcpy(state->pw->pw_gecos, state->info->full_name);
++      strlcpy(state->pw->pw_name,
++              output_username,
++              sizeof(state->pw->pw_name));
++      /* FIXME The full_name can be longer than 255 chars */
++      strlcpy(state->pw->pw_gecos,
++              state->info->full_name ? state->info->full_name : "",
++              sizeof(state->pw->pw_gecos));
+       /* Home directory and shell */
+       ok = fillup_pw_field(lp_template_homedir(),
+-- 
+1.9.3
+
diff --git a/src/patches/samba/samba-3.6.23-glusterfs.patch b/src/patches/samba/samba-3.6.23-glusterfs.patch
new file mode 100644 (file)
index 0000000..2b82064
--- /dev/null
@@ -0,0 +1,2318 @@
+From f2f684d4eadadeebf725b513bf4945ccf0aa7371 Mon Sep 17 00:00:00 2001
+From: Anand Avati <avati@redhat.com>
+Date: Wed, 29 May 2013 07:21:46 -0400
+Subject: [PATCH 1/9] PATCHSET13: vfs_glusterfs: Samba VFS module for glusterfs
+
+Implement a Samba VFS plugin for glusterfs based on gluster's gfapi.
+This is a "bottom" vfs plugin (not something to be stacked on top of
+another module), and translates (most) calls into closest actions
+on gfapi.
+
+Reviewed-by: Andrew Bartlett <abartlet@samba.org>
+Reviewed-by: Simo Sorce <idra@samba.org>
+Signed-off-by: Anand Avati <avati@redhat.com>
+---
+ source3/Makefile.in             |    5 +
+ source3/configure.in            |   23 +
+ source3/modules/vfs_glusterfs.c | 1461 +++++++++++++++++++++++++++++++++++++++
+ source3/modules/wscript_build   |    9 +
+ source3/wscript                 |   22 +
+ 5 files changed, 1520 insertions(+)
+ create mode 100644 source3/modules/vfs_glusterfs.c
+
+diff --git a/source3/Makefile.in b/source3/Makefile.in
+index 9e8e03d..27bc43e 100644
+--- a/source3/Makefile.in
++++ b/source3/Makefile.in
+@@ -848,6 +848,7 @@ VFS_SCANNEDONLY_OBJ = modules/vfs_scannedonly.o
+ VFS_CROSSRENAME_OBJ = modules/vfs_crossrename.o
+ VFS_LINUX_XFS_SGID_OBJ = modules/vfs_linux_xfs_sgid.o
+ VFS_TIME_AUDIT_OBJ = modules/vfs_time_audit.o
++VFS_GLUSTERFS_OBJ = modules/vfs_glusterfs.o
+ PAM_ERRORS_OBJ = ../libcli/auth/pam_errors.o
+ PLAINTEXT_AUTH_OBJ = auth/pampass.o auth/pass_check.o $(PAM_ERRORS_OBJ)
+@@ -3191,6 +3192,10 @@ bin/time_audit.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_TIME_AUDIT_OBJ)
+       @echo "Building plugin $@"
+       @$(SHLD_MODULE) $(VFS_TIME_AUDIT_OBJ)
++bin/glusterfs.@SHLIBEXT@: $(BINARY_PREREQS) $(VFS_GLUSTERFS_OBJ)
++      @echo "Building plugin $@"
++      $(SHLD_MODULE) $(VFS_GLUSTERFS_OBJ) @GLUSTERFS_LIBS@
++
+ #########################################################
+ ## IdMap NSS plugins
+diff --git a/source3/configure.in b/source3/configure.in
+index 42c23e3..3cc78e9 100644
+--- a/source3/configure.in
++++ b/source3/configure.in
+@@ -6688,6 +6688,29 @@
+ fi
++#############
++AC_ARG_ENABLE([glusterfs],
++       AC_HELP_STRING([--disable-glusterfs],[Do not build vfs_glusterfs module]))
++
++GLUTERFS_LIBS=""
++
++if test "x$enable_glusterfs" != "xno"; then
++   PKG_CHECK_MODULES([GLFS], [glusterfs-api >= 4], glfs_found=yes, glfs_found=no)
++fi
++
++if test "x$enable_glusterfs" = "xyes" -a "x$glfs_found" != "xyes"; then
++   echo "GFAPI not found in build system"
++   exit 1
++fi
++
++if test "x$glfs_found" = "xyes"; then
++    CFLAGS="$CFLAGS $GLFS_CFLAGS"
++    GLUSTERFS_LIBS="$GLFS_LIBS"
++    default_shared_modules="$default_shared_modules vfs_glusterfs"
++fi
++AC_SUBST(GLUSTERFS_LIBS)
++
++
+ #################################################
+ # Set pthread stuff
+@@ -7007,6 +7030,7 @@
+ SMB_MODULE(vfs_crossrename, \$(VFS_CROSSRENAME_OBJ), "bin/crossrename.$SHLIBEXT", VFS)
+ SMB_MODULE(vfs_linux_xfs_sgid, \$(VFS_LINUX_XFS_SGID_OBJ), "bin/linux_xfs_sgid.$SHLIBEXT", VFS)
+ SMB_MODULE(vfs_time_audit, \$(VFS_TIME_AUDIT_OBJ), "bin/time_audit.$SHLIBEXT", VFS)
++SMB_MODULE(vfs_glusterfs, \$(VFS_GLUSTERFS_OBJ), "bin/glusterfs.$SHLIBEXT", VFS)
+ SMB_SUBSYSTEM(VFS,smbd/vfs.o)
+diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
+new file mode 100644
+index 0000000..4beac1d
+--- /dev/null
++++ b/source3/modules/vfs_glusterfs.c
+@@ -0,0 +1,1461 @@
++/*
++   Unix SMB/CIFS implementation.
++
++   Wrap GlusterFS GFAPI calls in vfs functions.
++
++   Copyright (c) 2013 Anand Avati <avati@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 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/>.
++*/
++
++#include "includes.h"
++#include "smbd/smbd.h"
++#include <stdio.h>
++#include "api/glfs.h"
++
++#define DEFAULT_VOLFILE_SERVER "localhost"
++
++/*
++  TODO
++  ----
++  Short term:
++  - AIO support
++  - sendfile/recvfile support
++*/
++
++/* Helpers to provide 'integer' fds */
++
++/* This is global. gfapi's FD operations do not
++   require filesystem context.
++*/
++static glfs_fd_t **glfd_fd;
++static int glfd_fd_size;
++static int glfd_fd_used;
++static int glfd_fd_store(glfs_fd_t *glfd)
++{
++      int i;
++      void *tmp;
++
++      if (glfd_fd_size == glfd_fd_used) {
++              if (glfd_fd_size >= INT_MAX - 1) {
++                      errno = ENOMEM;
++                      return -1;
++              }
++
++              tmp = talloc_realloc(glfd_fd, glfd_fd, glfs_fd_t *,
++                                   glfd_fd_size + 1);
++              if (tmp == NULL) {
++                      errno = ENOMEM;
++                      return -1;
++              }
++
++              glfd_fd = tmp;
++              glfd_fd[glfd_fd_size] = 0;
++              glfd_fd_size++;
++      }
++
++      for (i = 0; i < glfd_fd_size; i++) {
++              if (!glfd_fd[i]) {
++                      break;
++              }
++      }
++      glfd_fd_used++;
++      glfd_fd[i] = glfd;
++      return i;
++}
++
++static glfs_fd_t *glfd_fd_get(int i)
++{
++      if (i < 0 || i >= glfd_fd_size) {
++              return NULL;
++      }
++      return glfd_fd[i];
++}
++
++static glfs_fd_t *glfd_fd_clear(int i)
++{
++      glfs_fd_t *glfd = NULL;
++
++      if (i < 0 || i >= glfd_fd_size) {
++              return NULL;
++      }
++
++      glfd = glfd_fd[i];
++      glfd_fd[i] = 0;
++      glfd_fd_used--;
++      return glfd;
++}
++
++/* Helper to convert stat to stat_ex */
++
++static void smb_stat_ex_from_stat(struct stat_ex *dst, const struct stat *src)
++{
++      ZERO_STRUCTP(dst);
++
++      dst->st_ex_dev = src->st_dev;
++      dst->st_ex_ino = src->st_ino;
++      dst->st_ex_mode = src->st_mode;
++      dst->st_ex_nlink = src->st_nlink;
++      dst->st_ex_uid = src->st_uid;
++      dst->st_ex_gid = src->st_gid;
++      dst->st_ex_rdev = src->st_rdev;
++      dst->st_ex_size = src->st_size;
++      dst->st_ex_atime.tv_sec = src->st_atime;
++#ifdef STAT_HAVE_NSEC
++      dst->st_ex_atime.tv_nsec = src->st_atime_nsec;
++#endif
++      dst->st_ex_mtime.tv_sec = src->st_mtime;
++#ifdef STAT_HAVE_NSEC
++      dst->st_ex_mtime.tv_nsec = src->st_mtime_nsec;
++#endif
++      dst->st_ex_ctime.tv_sec = src->st_ctime;
++#ifdef STAT_HAVE_NSEC
++      dst->st_ex_ctime.tv_nsec = src->st_ctime_nsec;
++#endif
++      dst->st_ex_btime.tv_sec = src->st_mtime;
++#ifdef STAT_HAVE_NSEC
++      dst->st_ex_btime.tv_nsec = src->st_mtime_nsec;
++#endif
++      dst->st_ex_blksize = src->st_blksize;
++      dst->st_ex_blocks = src->st_blocks;
++}
++
++/* pre-opened glfs_t */
++
++static struct glfs_preopened {
++      char *volume;
++      glfs_t *fs;
++      int ref;
++      struct glfs_preopened *next, *prev;
++} *glfs_preopened;
++
++
++int glfs_set_preopened(const char *volume, glfs_t *fs)
++{
++      struct glfs_preopened *entry = NULL;
++
++      entry = talloc_zero(NULL, struct glfs_preopened);
++      if (!entry) {
++              errno = ENOMEM;
++              return -1;
++      }
++
++      entry->volume = talloc_strdup(entry, volume);
++      if (!entry->volume) {
++              talloc_free(entry);
++              errno = ENOMEM;
++              return -1;
++      }
++
++      entry->fs = fs;
++      entry->ref = 1;
++
++      DLIST_ADD(glfs_preopened, entry);
++
++      return 0;
++}
++
++static glfs_t *glfs_find_preopened(const char *volume)
++{
++      struct glfs_preopened *entry = NULL;
++
++      for (entry = glfs_preopened; entry; entry = entry->next) {
++              if (strcmp(entry->volume, volume) == 0) {
++                      entry->ref++;
++                      return entry->fs;
++              }
++      }
++
++      return NULL;
++}
++
++static void glfs_clear_preopened(glfs_t *fs)
++{
++      int i;
++      struct glfs_preopened *entry = NULL;
++
++      for (entry = glfs_preopened; entry; entry = entry->next) {
++              if (entry->fs == fs) {
++                      if (--entry->ref)
++                              return;
++
++                      DLIST_REMOVE(glfs_preopened, entry);
++
++                      glfs_fini(entry->fs);
++                      talloc_free(entry);
++              }
++      }
++}
++
++/* Disk Operations */
++
++static int vfs_gluster_connect(struct vfs_handle_struct *handle,
++                             const char *service, const char *user)
++{
++      const char *volfile_server;
++      const char *volume;
++      const char *logfile;
++      int loglevel;
++      glfs_t *fs;
++      int ret;
++
++      logfile = lp_parm_const_string(SNUM(handle->conn), "glusterfs",
++                                     "logfile", NULL);
++
++      loglevel = lp_parm_int(SNUM(handle->conn), "glusterfs", "loglevel", -1);
++
++      volfile_server = lp_parm_const_string(SNUM(handle->conn), "glusterfs",
++                                            "volfile_server", NULL);
++      if (volfile_server == NULL) {
++              volfile_server = DEFAULT_VOLFILE_SERVER;
++      }
++
++      volume = lp_parm_const_string(SNUM(handle->conn), "glusterfs", "volume",
++                                    NULL);
++      if (volume == NULL) {
++              volume = service;
++      }
++
++      fs = glfs_find_preopened(volume);
++      if (fs) {
++              goto found;
++      }
++
++      fs = glfs_new(volume);
++      if (fs == NULL) {
++              return -1;
++      }
++
++      ret = glfs_set_volfile_server(fs, "tcp", volfile_server, 0);
++      if (ret < 0) {
++              DEBUG(0, ("Failed to set volfile_server %s\n", volfile_server));
++              glfs_fini(fs);
++              return -1;
++      }
++
++      ret = glfs_set_xlator_option(fs, "*-md-cache", "cache-posix-acl",
++                                   "true");
++      if (ret < 0) {
++              DEBUG(0, ("%s: Failed to set xlator options\n", volume));
++              glfs_fini(fs);
++              return -1;
++      }
++
++      ret = glfs_set_logging(fs, logfile, loglevel);
++      if (ret < 0) {
++              DEBUG(0, ("%s: Failed to set logfile %s loglevel %d\n",
++                        volume, logfile, loglevel));
++              glfs_fini(fs);
++              return -1;
++      }
++
++      ret = glfs_init(fs);
++      if (ret < 0) {
++              DEBUG(0, ("%s: Failed to initialize volume (%s)\n",
++                        volume, strerror(errno)));
++              glfs_fini(fs);
++              return -1;
++      }
++
++      ret = glfs_set_preopened(volume, fs);
++      if (ret < 0) {
++              DEBUG(0, ("%s: Failed to register volume (%s)\n",
++                        volume, strerror(errno)));
++              glfs_fini(fs);
++              return -1;
++      }
++found:
++      DEBUG(0, ("%s: Initialized volume from server %s\n",
++                volume, volfile_server));
++      handle->data = fs;
++      return 0;
++}
++
++static void vfs_gluster_disconnect(struct vfs_handle_struct *handle)
++{
++      glfs_t *fs = NULL;
++
++      fs = handle->data;
++
++      glfs_clear_preopened(fs);
++}
++
++static uint64_t
++vfs_gluster_disk_free(struct vfs_handle_struct *handle, const char *path,
++                    bool small_query, uint64_t *bsize_p, uint64_t *dfree_p,
++                    uint64_t *dsize_p)
++{
++      struct statvfs statvfs = { 0, };
++      uint64_t dfree = 0;
++      int ret;
++
++      ret = glfs_statvfs(handle->data, path, &statvfs);
++      if (ret < 0) {
++              DEBUG(0, ("glfs_statvfs(%s) failed: %s\n",
++                        path, strerror(errno)));
++              return -1;
++      }
++
++      dfree = statvfs.f_bsize * statvfs.f_bavail;
++
++      if (bsize_p) {
++              *bsize_p = statvfs.f_bsize;
++      }
++      if (dfree_p) {
++              *dfree_p = dfree;
++      }
++      if (dsize_p) {
++              *dsize_p = statvfs.f_bsize * statvfs.f_blocks;
++      }
++
++      return dfree;
++}
++
++static int
++vfs_gluster_get_quota(struct vfs_handle_struct *handle,
++                    enum SMB_QUOTA_TYPE qtype, unid_t id, SMB_DISK_QUOTA *qt)
++{
++      errno = ENOSYS;
++      return -1;
++}
++
++static int
++vfs_gluster_set_quota(struct vfs_handle_struct *handle,
++                    enum SMB_QUOTA_TYPE qtype, unid_t id, SMB_DISK_QUOTA *qt)
++{
++      errno = ENOSYS;
++      return -1;
++}
++
++static int vfs_gluster_statvfs(struct vfs_handle_struct *handle,
++                             const char *path,
++                             struct vfs_statvfs_struct *vfs_statvfs)
++{
++      struct statvfs statvfs = { 0, };
++      int ret;
++
++      ret = glfs_statvfs(handle->data, path, &statvfs);
++      if (ret < 0) {
++              DEBUG(0, ("glfs_statvfs(%s) failed: %s\n",
++                        path, strerror(errno)));
++              return -1;
++      }
++
++      ZERO_STRUCTP(vfs_statvfs);
++
++      vfs_statvfs->OptimalTransferSize = statvfs.f_frsize;
++      vfs_statvfs->BlockSize = statvfs.f_bsize;
++      vfs_statvfs->TotalBlocks = statvfs.f_blocks;
++      vfs_statvfs->BlocksAvail = statvfs.f_bfree;
++      vfs_statvfs->UserBlocksAvail = statvfs.f_bavail;
++      vfs_statvfs->TotalFileNodes = statvfs.f_files;
++      vfs_statvfs->FreeFileNodes = statvfs.f_ffree;
++      vfs_statvfs->FsIdentifier = statvfs.f_fsid;
++      vfs_statvfs->FsCapabilities =
++          FILE_CASE_SENSITIVE_SEARCH | FILE_CASE_PRESERVED_NAMES;
++
++      return ret;
++}
++
++static uint32_t vfs_gluster_fs_capabilities(struct vfs_handle_struct *handle,
++                                          enum timestamp_set_resolution *p_ts_res)
++{
++      uint32_t caps = FILE_CASE_SENSITIVE_SEARCH | FILE_CASE_PRESERVED_NAMES;
++
++#ifdef STAT_HAVE_NSEC
++      *p_ts_res = TIMESTAMP_SET_NT_OR_BETTER;
++#endif
++
++      return caps;
++}
++
++static DIR *vfs_gluster_opendir(struct vfs_handle_struct *handle,
++                              const char *path, const char *mask,
++                              uint32 attributes)
++{
++      glfs_fd_t *fd;
++
++      fd = glfs_opendir(handle->data, path);
++      if (fd == NULL) {
++              DEBUG(0, ("glfs_opendir(%s) failed: %s\n",
++                        path, strerror(errno)));
++      }
++
++      return (DIR *) fd;
++}
++
++static DIR *vfs_gluster_fdopendir(struct vfs_handle_struct *handle,
++                                files_struct *fsp, const char *mask,
++                                uint32 attributes)
++{
++      return (DIR *) glfd_fd_get(fsp->fh->fd);
++}
++
++static int vfs_gluster_closedir(struct vfs_handle_struct *handle, DIR *dirp)
++{
++      return glfs_closedir((void *)dirp);
++}
++
++static SMB_STRUCT_DIRENT *vfs_gluster_readdir(struct vfs_handle_struct *handle,
++                                            SMB_STRUCT_DIR *dirp,
++                                            SMB_STRUCT_STAT *sbuf)
++{
++      char direntbuf[512];
++      int ret;
++      struct stat stat;
++      struct dirent *dirent = 0;
++      static SMB_STRUCT_DIRENT result;
++
++      if (sbuf != NULL) {
++              ret = glfs_readdirplus_r((void *)dirp, &stat, (void *)direntbuf,
++                                       &dirent);
++      } else {
++              ret = glfs_readdir_r((void *)dirp, (void *)direntbuf, &dirent);
++      }
++
++      if (ret < 0 || (dirent == NULL)) {
++              return NULL;
++      }
++
++      if (sbuf != NULL) {
++              smb_stat_ex_from_stat(sbuf, &stat);
++      }
++
++      result.d_ino = dirent->d_ino;
++      result.d_off = dirent->d_off;
++      result.d_reclen = dirent->d_reclen;
++      result.d_type = dirent->d_type;
++      strncpy(result.d_name, dirent->d_name, 256);
++
++      return &result;
++}
++
++static long vfs_gluster_telldir(struct vfs_handle_struct *handle, DIR *dirp)
++{
++      return glfs_telldir((void *)dirp);
++}
++
++static void vfs_gluster_seekdir(struct vfs_handle_struct *handle, DIR *dirp,
++                              long offset)
++{
++      glfs_seekdir((void *)dirp, offset);
++}
++
++static void vfs_gluster_rewinddir(struct vfs_handle_struct *handle,
++                                DIR *dirp)
++{
++      glfs_seekdir((void *)dirp, 0);
++}
++
++static void vfs_gluster_init_search_op(struct vfs_handle_struct *handle,
++                                     DIR *dirp)
++{
++      return;
++}
++
++static int vfs_gluster_mkdir(struct vfs_handle_struct *handle, const char *path,
++                           mode_t mode)
++{
++      return glfs_mkdir(handle->data, path, mode);
++}
++
++static int vfs_gluster_rmdir(struct vfs_handle_struct *handle, const char *path)
++{
++      return glfs_rmdir(handle->data, path);
++}
++
++static int vfs_gluster_open(struct vfs_handle_struct *handle,
++                          struct smb_filename *smb_fname, files_struct *fsp,
++                          int flags, mode_t mode)
++{
++      glfs_fd_t *glfd;
++
++      if (flags & O_DIRECTORY) {
++              glfd = glfs_opendir(handle->data, smb_fname->base_name);
++      } else if (flags & O_CREAT) {
++              glfd = glfs_creat(handle->data, smb_fname->base_name, flags,
++                                mode);
++      } else {
++              glfd = glfs_open(handle->data, smb_fname->base_name, flags);
++      }
++
++      if (glfd == NULL) {
++              DEBUG(0, ("glfs_{open[dir],creat}(%s) failed: %s\n",
++                        smb_fname->base_name, strerror(errno)));
++              return -1;
++      }
++
++      return glfd_fd_store(glfd);
++}
++
++static int vfs_gluster_close(struct vfs_handle_struct *handle,
++                           files_struct *fsp)
++{
++      return glfs_close(glfd_fd_clear(fsp->fh->fd));
++}
++
++static ssize_t vfs_gluster_read(struct vfs_handle_struct *handle,
++                              files_struct *fsp, void *data, size_t n)
++{
++      return glfs_read(glfd_fd_get(fsp->fh->fd), data, n, 0);
++}
++
++static ssize_t vfs_gluster_pread(struct vfs_handle_struct *handle,
++                               files_struct *fsp, void *data, size_t n,
++                               off_t offset)
++{
++      return glfs_pread(glfd_fd_get(fsp->fh->fd), data, n, offset, 0);
++}
++
++static ssize_t vfs_gluster_write(struct vfs_handle_struct *handle,
++                               files_struct *fsp, const void *data, size_t n)
++{
++      return glfs_write(glfd_fd_get(fsp->fh->fd), data, n, 0);
++}
++
++static ssize_t vfs_gluster_pwrite(struct vfs_handle_struct *handle,
++                                files_struct *fsp, const void *data, size_t n,
++                                off_t offset)
++{
++      return glfs_pwrite(glfd_fd_get(fsp->fh->fd), data, n, offset, 0);
++}
++
++static off_t vfs_gluster_lseek(struct vfs_handle_struct *handle,
++                             files_struct *fsp, off_t offset, int whence)
++{
++      return glfs_lseek(glfd_fd_get(fsp->fh->fd), offset, whence);
++}
++
++static ssize_t vfs_gluster_sendfile(struct vfs_handle_struct *handle, int tofd,
++                                  files_struct *fromfsp, const DATA_BLOB *hdr,
++                                  off_t offset, size_t n)
++{
++      errno = ENOTSUP;
++      return -1;
++}
++
++static ssize_t vfs_gluster_recvfile(struct vfs_handle_struct *handle,
++                                  int fromfd, files_struct *tofsp,
++                                  off_t offset, size_t n)
++{
++      errno = ENOTSUP;
++      return -1;
++}
++
++static int vfs_gluster_rename(struct vfs_handle_struct *handle,
++                            const struct smb_filename *smb_fname_src,
++                            const struct smb_filename *smb_fname_dst)
++{
++      return glfs_rename(handle->data, smb_fname_src->base_name,
++                         smb_fname_dst->base_name);
++}
++
++static int vfs_gluster_fsync(struct vfs_handle_struct *handle,
++                           files_struct *fsp)
++{
++      return glfs_fsync(glfd_fd_get(fsp->fh->fd));
++}
++
++static int vfs_gluster_stat(struct vfs_handle_struct *handle,
++                          struct smb_filename *smb_fname)
++{
++      struct stat st;
++      int ret;
++
++      ret = glfs_stat(handle->data, smb_fname->base_name, &st);
++      if (ret == 0) {
++              smb_stat_ex_from_stat(&smb_fname->st, &st);
++      }
++      if (ret < 0 && errno != ENOENT) {
++              DEBUG(0, ("glfs_stat(%s) failed: %s\n",
++                        smb_fname->base_name, strerror(errno)));
++      }
++      return ret;
++}
++
++static int vfs_gluster_fstat(struct vfs_handle_struct *handle,
++                           files_struct *fsp, SMB_STRUCT_STAT *sbuf)
++{
++      struct stat st;
++      int ret;
++
++      ret = glfs_fstat(glfd_fd_get(fsp->fh->fd), &st);
++      if (ret == 0) {
++              smb_stat_ex_from_stat(sbuf, &st);
++      }
++      if (ret < 0) {
++              DEBUG(0, ("glfs_ftat(%d) failed: %s\n",
++                        fsp->fh->fd, strerror(errno)));
++      }
++      return ret;
++}
++
++static int vfs_gluster_lstat(struct vfs_handle_struct *handle,
++                           struct smb_filename *smb_fname)
++{
++      struct stat st;
++      int ret;
++
++      ret = glfs_lstat(handle->data, smb_fname->base_name, &st);
++      if (ret == 0) {
++              smb_stat_ex_from_stat(&smb_fname->st, &st);
++      }
++      if (ret < 0 && errno != ENOENT) {
++              DEBUG(0, ("glfs_lstat(%s) failed: %s\n",
++                        smb_fname->base_name, strerror(errno)));
++      }
++
++      return ret;
++}
++
++static uint64_t vfs_gluster_get_alloc_size(struct vfs_handle_struct *handle,
++                                         files_struct *fsp,
++                                         const SMB_STRUCT_STAT *sbuf)
++{
++      return sbuf->st_ex_blocks * 512;
++}
++
++static int vfs_gluster_unlink(struct vfs_handle_struct *handle,
++                            const struct smb_filename *smb_fname)
++{
++      return glfs_unlink(handle->data, smb_fname->base_name);
++}
++
++static int vfs_gluster_chmod(struct vfs_handle_struct *handle,
++                           const char *path, mode_t mode)
++{
++      return glfs_chmod(handle->data, path, mode);
++}
++
++static int vfs_gluster_fchmod(struct vfs_handle_struct *handle,
++                            files_struct *fsp, mode_t mode)
++{
++      return glfs_fchmod(glfd_fd_get(fsp->fh->fd), mode);
++}
++
++static int vfs_gluster_chown(struct vfs_handle_struct *handle,
++                           const char *path, uid_t uid, gid_t gid)
++{
++      return glfs_chown(handle->data, path, uid, gid);
++}
++
++static int vfs_gluster_fchown(struct vfs_handle_struct *handle,
++                            files_struct *fsp, uid_t uid, gid_t gid)
++{
++      return glfs_fchown(glfd_fd_get(fsp->fh->fd), uid, gid);
++}
++
++static int vfs_gluster_lchown(struct vfs_handle_struct *handle,
++                            const char *path, uid_t uid, gid_t gid)
++{
++      return glfs_lchown(handle->data, path, uid, gid);
++}
++
++static int vfs_gluster_chdir(struct vfs_handle_struct *handle, const char *path)
++{
++      return glfs_chdir(handle->data, path);
++}
++
++static char *vfs_gluster_getwd(struct vfs_handle_struct *handle, char *path)
++{
++      return glfs_getcwd(handle->data, path, PATH_MAX);
++}
++
++static int vfs_gluster_ntimes(struct vfs_handle_struct *handle,
++                            const struct smb_filename *smb_fname,
++                            struct smb_file_time *ft)
++{
++      struct timespec times[2];
++
++      times[0].tv_sec = ft->atime.tv_sec;
++      times[0].tv_nsec = ft->atime.tv_nsec;
++      times[1].tv_sec = ft->mtime.tv_sec;
++      times[1].tv_nsec = ft->mtime.tv_nsec;
++
++      return glfs_utimens(handle->data, smb_fname->base_name, times);
++}
++
++static int vfs_gluster_ftruncate(struct vfs_handle_struct *handle,
++                               files_struct *fsp, off_t offset)
++{
++      return glfs_ftruncate(glfd_fd_get(fsp->fh->fd), offset);
++}
++
++static int vfs_gluster_fallocate(struct vfs_handle_struct *handle,
++                               struct files_struct *fsp,
++                               enum vfs_fallocate_mode mode,
++                               off_t offset, off_t len)
++{
++      errno = ENOTSUP;
++      return -1;
++}
++
++static char *vfs_gluster_realpath(struct vfs_handle_struct *handle,
++                                const char *path)
++{
++      return glfs_realpath(handle->data, path, 0);
++}
++
++static bool vfs_gluster_lock(struct vfs_handle_struct *handle,
++                           files_struct *fsp, int op, off_t offset,
++                           off_t count, int type)
++{
++      struct flock flock = { 0, };
++      int ret;
++
++      flock.l_type = type;
++      flock.l_whence = SEEK_SET;
++      flock.l_start = offset;
++      flock.l_len = count;
++      flock.l_pid = 0;
++
++      ret = glfs_posix_lock(glfd_fd_get(fsp->fh->fd), op, &flock);
++
++      if (op == F_GETLK) {
++              /* lock query, true if someone else has locked */
++              if ((ret != -1) &&
++                  (flock.l_type != F_UNLCK) &&
++                  (flock.l_pid != 0) && (flock.l_pid != getpid()))
++                      return true;
++              /* not me */
++              return false;
++      }
++
++      if (ret == -1) {
++              return false;
++      }
++
++      return true;
++}
++
++static int vfs_gluster_kernel_flock(struct vfs_handle_struct *handle,
++                                  files_struct *fsp, uint32 share_mode,
++                                  uint32_t access_mask)
++{
++      return 0;
++}
++
++static int vfs_gluster_linux_setlease(struct vfs_handle_struct *handle,
++                                    files_struct *fsp, int leasetype)
++{
++      errno = ENOSYS;
++      return -1;
++}
++
++static bool vfs_gluster_getlock(struct vfs_handle_struct *handle,
++                              files_struct *fsp, off_t *poffset,
++                              off_t *pcount, int *ptype, pid_t *ppid)
++{
++      struct flock flock = { 0, };
++      int ret;
++
++      flock.l_type = *ptype;
++      flock.l_whence = SEEK_SET;
++      flock.l_start = *poffset;
++      flock.l_len = *pcount;
++      flock.l_pid = 0;
++
++      ret = glfs_posix_lock(glfd_fd_get(fsp->fh->fd), F_GETLK, &flock);
++
++      if (ret == -1) {
++              return false;
++      }
++
++      *ptype = flock.l_type;
++      *poffset = flock.l_start;
++      *pcount = flock.l_len;
++      *ppid = flock.l_pid;
++
++      return true;
++}
++
++static int vfs_gluster_symlink(struct vfs_handle_struct *handle,
++                             const char *oldpath, const char *newpath)
++{
++      return glfs_symlink(handle->data, oldpath, newpath);
++}
++
++static int vfs_gluster_readlink(struct vfs_handle_struct *handle,
++                              const char *path, char *buf, size_t bufsiz)
++{
++      return glfs_readlink(handle->data, path, buf, bufsiz);
++}
++
++static int vfs_gluster_link(struct vfs_handle_struct *handle,
++                          const char *oldpath, const char *newpath)
++{
++      return glfs_link(handle->data, oldpath, newpath);
++}
++
++static int vfs_gluster_mknod(struct vfs_handle_struct *handle, const char *path,
++                           mode_t mode, SMB_DEV_T dev)
++{
++      return glfs_mknod(handle->data, path, mode, dev);
++}
++
++static NTSTATUS vfs_gluster_notify_watch(struct vfs_handle_struct *vfs_handle,
++                                       struct sys_notify_context *ctx,
++                                       struct notify_entry *e,
++                                       void (*callback) (struct sys_notify_context *ctx,
++                                                         void *private_data,
++                                                         struct notify_event *ev),
++                                       void *private_data, void *handle)
++{
++      return NT_STATUS_NOT_IMPLEMENTED;
++}
++
++static int vfs_gluster_chflags(struct vfs_handle_struct *handle,
++                             const char *path, unsigned int flags)
++{
++      errno = ENOSYS;
++      return -1;
++}
++
++static int vfs_gluster_get_real_filename(struct vfs_handle_struct *handle,
++                                       const char *path, const char *name,
++                                       TALLOC_CTX *mem_ctx, char **found_name)
++{
++      int ret;
++      char key_buf[NAME_MAX + 64];
++      char val_buf[NAME_MAX + 1];
++
++      if (strlen(name) >= NAME_MAX) {
++              errno = ENAMETOOLONG;
++              return -1;
++      }
++
++      snprintf(key_buf, NAME_MAX + 64,
++               "user.glusterfs.get_real_filename:%s", name);
++
++      ret = glfs_getxattr(handle->data, path, key_buf, val_buf, NAME_MAX + 1);
++      if (ret == -1 && errno == ENODATA) {
++              errno = EOPNOTSUPP;
++              return -1;
++      }
++
++      *found_name = talloc_strdup(mem_ctx, val_buf);
++      if (found_name[0] == NULL) {
++              errno = ENOMEM;
++              return -1;
++      }
++      return 0;
++}
++
++static const char *vfs_gluster_connectpath(struct vfs_handle_struct *handle,
++                                         const char *filename)
++{
++      return handle->conn->connectpath;
++}
++
++/* EA Operations */
++
++static ssize_t vfs_gluster_getxattr(struct vfs_handle_struct *handle,
++                                  const char *path, const char *name,
++                                  void *value, size_t size)
++{
++      return glfs_getxattr(handle->data, path, name, value, size);
++}
++
++static ssize_t vfs_gluster_lgetxattr(struct vfs_handle_struct *handle,
++                                   const char *path, const char *name,
++                                   void *value, size_t size)
++{
++      return glfs_lgetxattr(handle->data, path, name, value, size);
++}
++
++static ssize_t vfs_gluster_fgetxattr(struct vfs_handle_struct *handle,
++                                   files_struct *fsp, const char *name,
++                                   void *value, size_t size)
++{
++      return glfs_fgetxattr(glfd_fd_get(fsp->fh->fd), name, value, size);
++}
++
++static ssize_t vfs_gluster_listxattr(struct vfs_handle_struct *handle,
++                                   const char *path, char *list, size_t size)
++{
++      return glfs_listxattr(handle->data, path, list, size);
++}
++
++static ssize_t vfs_gluster_llistxattr(struct vfs_handle_struct *handle,
++                                    const char *path, char *list, size_t size)
++{
++      return glfs_llistxattr(handle->data, path, list, size);
++}
++
++static ssize_t vfs_gluster_flistxattr(struct vfs_handle_struct *handle,
++                                    files_struct *fsp, char *list,
++                                    size_t size)
++{
++      return glfs_flistxattr(glfd_fd_get(fsp->fh->fd), list, size);
++}
++
++static int vfs_gluster_removexattr(struct vfs_handle_struct *handle,
++                                 const char *path, const char *name)
++{
++      return glfs_removexattr(handle->data, path, name);
++}
++
++static int vfs_gluster_lremovexattr(struct vfs_handle_struct *handle,
++                                  const char *path, const char *name)
++{
++      return glfs_lremovexattr(handle->data, path, name);
++}
++
++static int vfs_gluster_fremovexattr(struct vfs_handle_struct *handle,
++                                  files_struct *fsp, const char *name)
++{
++      return glfs_fremovexattr(glfd_fd_get(fsp->fh->fd), name);
++}
++
++static int vfs_gluster_setxattr(struct vfs_handle_struct *handle,
++                              const char *path, const char *name,
++                              const void *value, size_t size, int flags)
++{
++      return glfs_setxattr(handle->data, path, name, value, size, flags);
++}
++
++static int vfs_gluster_lsetxattr(struct vfs_handle_struct *handle,
++                               const char *path, const char *name,
++                               const void *value, size_t size, int flags)
++{
++      return glfs_lsetxattr(handle->data, path, name, value, size, flags);
++}
++
++static int vfs_gluster_fsetxattr(struct vfs_handle_struct *handle,
++                               files_struct *fsp, const char *name,
++                               const void *value, size_t size, int flags)
++{
++      return glfs_fsetxattr(glfd_fd_get(fsp->fh->fd), name, value, size,
++                            flags);
++}
++
++/* AIO Operations */
++
++static bool vfs_gluster_aio_force(struct vfs_handle_struct *handle,
++                                files_struct *fsp)
++{
++      return false;
++}
++
++/* Offline Operations */
++
++static bool vfs_gluster_is_offline(struct vfs_handle_struct *handle,
++                                 const struct smb_filename *fname,
++                                 SMB_STRUCT_STAT *sbuf)
++{
++      return false;
++}
++
++static int vfs_gluster_set_offline(struct vfs_handle_struct *handle,
++                                 const struct smb_filename *fname)
++{
++      errno = ENOTSUP;
++      return -1;
++}
++
++/* Posix ACL Operations */
++
++#define GLUSTER_ACL_VERSION 2
++#define GLUSTER_ACL_READ    0x04
++#define GLUSTER_ACL_WRITE   0x02
++#define GLUSTER_ACL_EXECUTE 0x01
++
++#define GLUSTER_ACL_UNDEFINED_TAG  0x00
++#define GLUSTER_ACL_USER_OBJ       0x01
++#define GLUSTER_ACL_USER           0x02
++#define GLUSTER_ACL_GROUP_OBJ      0x04
++#define GLUSTER_ACL_GROUP          0x08
++#define GLUSTER_ACL_MASK           0x10
++#define GLUSTER_ACL_OTHER          0x20
++
++#define GLUSTER_ACL_UNDEFINED_ID  (-1)
++
++struct gluster_ace {
++      uint16_t tag;
++      uint16_t perm;
++      uint32_t id;
++};
++
++struct gluster_acl_header {
++      uint32_t version;
++      struct gluster_ace entries[];
++};
++
++static SMB_ACL_T gluster_to_smb_acl(const char *buf, size_t xattr_size)
++{
++      int count;
++      size_t size;
++      struct gluster_ace *ace;
++      struct smb_acl_entry *smb_ace;
++      struct gluster_acl_header *hdr;
++      struct smb_acl_t *result;
++      int i;
++      uint16_t tag;
++      uint16_t perm;
++      uint32_t id;
++
++      size = xattr_size;
++
++      if (size < sizeof(*hdr)) {
++              /* ACL should be at least as big as the header */
++              errno = EINVAL;
++              return NULL;
++      }
++
++      size -= sizeof(*hdr);
++
++      if (size % sizeof(*ace)) {
++              /* Size of entries must strictly be a multiple of
++                 size of an ACE
++              */
++              errno = EINVAL;
++              return NULL;
++      }
++
++      count = size / sizeof(*ace);
++
++      hdr = (void *)buf;
++
++      if (ntohl(hdr->version) != GLUSTER_ACL_VERSION) {
++              DEBUG(0, ("Unknown gluster ACL version: %d\n",
++                        ntohl(hdr->version)));
++              return NULL;
++      }
++
++      result = SMB_MALLOC(sizeof(struct smb_acl_t) + (sizeof(struct smb_acl_entry) * count));
++      if (!result) {
++              errno = ENOMEM;
++              return NULL;
++      }
++
++      result->count = count;
++
++      smb_ace = result->acl;
++      ace = hdr->entries;
++
++      for (i = 0; i < count; i++) {
++              tag = ntohs(ace->tag);
++
++              switch(tag) {
++              case GLUSTER_ACL_USER:
++                      smb_ace->a_type = SMB_ACL_USER;
++                      break;
++              case GLUSTER_ACL_USER_OBJ:
++                      smb_ace->a_type = SMB_ACL_USER_OBJ;
++                      break;
++              case GLUSTER_ACL_GROUP:
++                      smb_ace->a_type = SMB_ACL_GROUP;
++                      break;
++              case GLUSTER_ACL_GROUP_OBJ:
++                      smb_ace->a_type = SMB_ACL_GROUP_OBJ;
++                      break;
++              case GLUSTER_ACL_OTHER:
++                      smb_ace->a_type = SMB_ACL_OTHER;
++                      break;
++              case GLUSTER_ACL_MASK:
++                      smb_ace->a_type = SMB_ACL_MASK;
++                      break;
++              default:
++                      DEBUG(0, ("unknown tag type %d\n", (unsigned int) tag));
++                      return NULL;
++              }
++
++              id = ntohl(ace->id);
++
++              switch(smb_ace->a_type) {
++              case SMB_ACL_USER:
++                      smb_ace->uid = id;
++                      break;
++              case SMB_ACL_GROUP:
++                      smb_ace->gid = id;
++                      break;
++              default:
++                      break;
++              }
++
++              perm = ntohs(ace->perm);
++
++              smb_ace->a_perm = 0;
++              smb_ace->a_perm |=
++                      ((perm & GLUSTER_ACL_READ) ? SMB_ACL_READ : 0);
++              smb_ace->a_perm |=
++                      ((perm & GLUSTER_ACL_WRITE) ? SMB_ACL_WRITE : 0);
++              smb_ace->a_perm |=
++                      ((perm & GLUSTER_ACL_EXECUTE) ? SMB_ACL_EXECUTE : 0);
++
++              ace++;
++              smb_ace++;
++      }
++
++      return result;
++}
++
++static ssize_t smb_to_gluster_acl(SMB_ACL_T theacl, char *buf, size_t len)
++{
++      ssize_t size;
++      struct gluster_ace *ace;
++      struct smb_acl_entry *smb_ace;
++      struct gluster_acl_header *hdr;
++      int i;
++      int count;
++      uint16_t tag;
++      uint16_t perm;
++      uint32_t id;
++
++      count = theacl->count;
++
++      size = sizeof(*hdr) + (count * sizeof(*ace));
++      if (!buf) {
++              return size;
++      }
++
++      if (len < size) {
++              errno = ERANGE;
++              return -1;
++      }
++
++      hdr = (void *)buf;
++      ace = hdr->entries;
++      smb_ace = theacl->acl;
++
++      hdr->version = htonl(GLUSTER_ACL_VERSION);
++
++      for (i = 0; i < count; i++) {
++              switch(smb_ace->a_type) {
++              case SMB_ACL_USER:
++                      tag = GLUSTER_ACL_USER;
++                      break;
++              case SMB_ACL_USER_OBJ:
++                      tag = GLUSTER_ACL_USER_OBJ;
++                      break;
++              case SMB_ACL_GROUP:
++                      tag = GLUSTER_ACL_GROUP;
++                      break;
++              case SMB_ACL_GROUP_OBJ:
++                      tag = GLUSTER_ACL_GROUP_OBJ;
++                      break;
++              case SMB_ACL_OTHER:
++                      tag = GLUSTER_ACL_OTHER;
++                      break;
++              case SMB_ACL_MASK:
++                      tag = GLUSTER_ACL_MASK;
++                      break;
++              default:
++                      DEBUG(0, ("Unknown tag value %d\n",
++                                smb_ace->a_type));
++                      errno = EINVAL;
++                      return -1;
++              }
++
++              ace->tag = ntohs(tag);
++
++              switch(smb_ace->a_type) {
++              case SMB_ACL_USER:
++                      id = smb_ace->uid;
++                      break;
++              case SMB_ACL_GROUP:
++                      id = smb_ace->gid;
++                      break;
++              default:
++                      id = GLUSTER_ACL_UNDEFINED_ID;
++                      break;
++              }
++
++              ace->id = ntohl(id);
++
++              ace->perm = 0;
++              ace->perm |=
++                      ((smb_ace->a_perm & SMB_ACL_READ) ? GLUSTER_ACL_READ : 0);
++              ace->perm |=
++                      ((smb_ace->a_perm & SMB_ACL_WRITE) ? GLUSTER_ACL_WRITE : 0);
++              ace->perm |=
++                      ((smb_ace->a_perm & SMB_ACL_EXECUTE) ? GLUSTER_ACL_EXECUTE : 0);
++
++              ace++;
++              smb_ace++;
++      }
++
++      return size;
++}
++
++
++static SMB_ACL_T vfs_gluster_sys_acl_get_file(struct vfs_handle_struct *handle,
++                                            const char *path_p,
++                                            SMB_ACL_TYPE_T type)
++{
++      struct smb_acl_t *result;
++      char *buf;
++      char *key;
++      ssize_t ret;
++
++      switch (type) {
++      case SMB_ACL_TYPE_ACCESS:
++              key = "system.posix_acl_access";
++              break;
++      case SMB_ACL_TYPE_DEFAULT:
++              key = "system.posix_acl_default";
++              break;
++      default:
++              errno = EINVAL;
++              return NULL;
++      }
++
++      ret = glfs_getxattr(handle->data, path_p, key, 0, 0);
++      if (ret <= 0) {
++              return NULL;
++      }
++
++      buf = alloca(ret);
++      ret = glfs_getxattr(handle->data, path_p, key, buf, ret);
++      if (ret <= 0) {
++              return NULL;
++      }
++
++      result = gluster_to_smb_acl(buf, ret);
++
++      return result;
++}
++
++static SMB_ACL_T vfs_gluster_sys_acl_get_fd(struct vfs_handle_struct *handle,
++                                          struct files_struct *fsp)
++{
++      struct smb_acl_t *result;
++      int ret;
++      char *buf;
++
++      ret = glfs_fgetxattr(glfd_fd_get(fsp->fh->fd),
++                           "system.posix_acl_access", 0, 0);
++      if (ret <= 0) {
++              return NULL;
++      }
++
++      buf = alloca(ret);
++      ret = glfs_fgetxattr(glfd_fd_get(fsp->fh->fd),
++                           "system.posix_acl_access", buf, ret);
++      if (ret <= 0) {
++              return NULL;
++      }
++
++      result = gluster_to_smb_acl(buf, ret);
++
++      return result;
++}
++
++static int vfs_gluster_sys_acl_set_file(struct vfs_handle_struct *handle,
++                                      const char *name,
++                                      SMB_ACL_TYPE_T acltype,
++                                      SMB_ACL_T theacl)
++{
++      int ret;
++      char *key;
++      char *buf;
++      ssize_t size;
++
++      switch (acltype) {
++      case SMB_ACL_TYPE_ACCESS:
++              key = "system.posix_acl_access";
++              break;
++      case SMB_ACL_TYPE_DEFAULT:
++              key = "system.posix_acl_default";
++              break;
++      default:
++              errno = EINVAL;
++              return -1;
++      }
++
++      size = smb_to_gluster_acl(theacl, 0, 0);
++      buf = alloca(size);
++
++      size = smb_to_gluster_acl(theacl, buf, size);
++      if (size == -1) {
++              return -1;
++      }
++
++      ret = glfs_setxattr(handle->data, name, key, buf, size, 0);
++
++      return ret;
++}
++
++static int vfs_gluster_sys_acl_set_fd(struct vfs_handle_struct *handle,
++                                    struct files_struct *fsp,
++                                    SMB_ACL_T theacl)
++{
++      int ret;
++      char *buf;
++      ssize_t size;
++
++      size = smb_to_gluster_acl(theacl, 0, 0);
++      buf = alloca(size);
++
++      size = smb_to_gluster_acl(theacl, buf, size);
++      if (size == -1) {
++              return -1;
++      }
++
++      ret = glfs_fsetxattr(glfd_fd_get(fsp->fh->fd),
++                           "system.posix_acl_access", buf, size, 0);
++      return ret;
++}
++
++static int vfs_gluster_sys_acl_delete_def_file(struct vfs_handle_struct *handle,
++                                             const char *path)
++{
++      return glfs_removexattr(handle->data, path, "system.posix_acl_default");
++}
++
++static struct vfs_fn_pointers glusterfs_fns = {
++
++      /* Disk Operations */
++
++      .connect_fn = vfs_gluster_connect,
++      .disconnect = vfs_gluster_disconnect,
++      .disk_free = vfs_gluster_disk_free,
++      .get_quota = vfs_gluster_get_quota,
++      .set_quota = vfs_gluster_set_quota,
++      .statvfs = vfs_gluster_statvfs,
++      .fs_capabilities = vfs_gluster_fs_capabilities,
++
++      /* Directory Operations */
++
++      .opendir = vfs_gluster_opendir,
++      .fdopendir = vfs_gluster_fdopendir,
++      .readdir = vfs_gluster_readdir,
++      .seekdir = vfs_gluster_seekdir,
++      .telldir = vfs_gluster_telldir,
++      .rewind_dir = vfs_gluster_rewinddir,
++      .mkdir = vfs_gluster_mkdir,
++      .rmdir = vfs_gluster_rmdir,
++      .closedir = vfs_gluster_closedir,
++      .init_search_op = vfs_gluster_init_search_op,
++
++      /* File Operations */
++
++      .open_fn = vfs_gluster_open,
++      .create_file = NULL,
++      .close_fn = vfs_gluster_close,
++      .vfs_read = vfs_gluster_read,
++      .pread = vfs_gluster_pread,
++      .write = vfs_gluster_write,
++      .pwrite = vfs_gluster_pwrite,
++      .lseek = vfs_gluster_lseek,
++      .sendfile = vfs_gluster_sendfile,
++      .recvfile = vfs_gluster_recvfile,
++      .rename = vfs_gluster_rename,
++      .fsync = vfs_gluster_fsync,
++      .stat = vfs_gluster_stat,
++      .fstat = vfs_gluster_fstat,
++      .lstat = vfs_gluster_lstat,
++      .get_alloc_size = vfs_gluster_get_alloc_size,
++      .unlink = vfs_gluster_unlink,
++
++      .chmod = vfs_gluster_chmod,
++      .fchmod = vfs_gluster_fchmod,
++      .chown = vfs_gluster_chown,
++      .fchown = vfs_gluster_fchown,
++      .lchown = vfs_gluster_lchown,
++      .chdir = vfs_gluster_chdir,
++      .getwd = vfs_gluster_getwd,
++      .ntimes = vfs_gluster_ntimes,
++      .ftruncate = vfs_gluster_ftruncate,
++      .fallocate = vfs_gluster_fallocate,
++      .lock = vfs_gluster_lock,
++      .kernel_flock = vfs_gluster_kernel_flock,
++      .linux_setlease = vfs_gluster_linux_setlease,
++      .getlock = vfs_gluster_getlock,
++      .symlink = vfs_gluster_symlink,
++      .vfs_readlink = vfs_gluster_readlink,
++      .link = vfs_gluster_link,
++      .mknod = vfs_gluster_mknod,
++      .realpath = vfs_gluster_realpath,
++      .notify_watch = vfs_gluster_notify_watch,
++      .chflags = vfs_gluster_chflags,
++      .file_id_create = NULL,
++      .streaminfo = NULL,
++      .get_real_filename = vfs_gluster_get_real_filename,
++      .connectpath = vfs_gluster_connectpath,
++
++      .brl_lock_windows = NULL,
++      .brl_unlock_windows = NULL,
++      .brl_cancel_windows = NULL,
++      .strict_lock = NULL,
++      .strict_unlock = NULL,
++      .translate_name = NULL,
++
++      /* NT ACL Operations */
++      .fget_nt_acl = NULL,
++      .get_nt_acl = NULL,
++      .fset_nt_acl = NULL,
++
++      /* Posix ACL Operations */
++      .chmod_acl = NULL,      /* passthrough to default */
++      .fchmod_acl = NULL,     /* passthrough to default */
++
++      .sys_acl_get_entry = NULL,
++      .sys_acl_get_tag_type = NULL,
++      .sys_acl_get_permset = NULL,
++      .sys_acl_get_qualifier = NULL,
++      .sys_acl_get_file = vfs_gluster_sys_acl_get_file,
++      .sys_acl_get_fd = vfs_gluster_sys_acl_get_fd,
++      .sys_acl_clear_perms = NULL,
++      .sys_acl_add_perm = NULL,
++      .sys_acl_to_text = NULL,
++      .sys_acl_init = NULL,
++      .sys_acl_create_entry = NULL,
++      .sys_acl_set_tag_type = NULL,
++      .sys_acl_set_qualifier = NULL,
++      .sys_acl_set_permset = NULL,
++      .sys_acl_valid = NULL,
++      .sys_acl_set_file = vfs_gluster_sys_acl_set_file,
++      .sys_acl_set_fd = vfs_gluster_sys_acl_set_fd,
++      .sys_acl_delete_def_file = vfs_gluster_sys_acl_delete_def_file,
++      .sys_acl_get_perm = NULL,
++      .sys_acl_free_text = NULL,
++      .sys_acl_free_acl = NULL,
++      .sys_acl_free_qualifier = NULL,
++
++      /* EA Operations */
++      .getxattr = vfs_gluster_getxattr,
++      .lgetxattr = vfs_gluster_lgetxattr,
++      .fgetxattr = vfs_gluster_fgetxattr,
++      .listxattr = vfs_gluster_listxattr,
++      .llistxattr = vfs_gluster_llistxattr,
++      .flistxattr = vfs_gluster_flistxattr,
++      .removexattr = vfs_gluster_removexattr,
++      .lremovexattr = vfs_gluster_lremovexattr,
++      .fremovexattr = vfs_gluster_fremovexattr,
++      .setxattr = vfs_gluster_setxattr,
++      .lsetxattr = vfs_gluster_lsetxattr,
++      .fsetxattr = vfs_gluster_fsetxattr,
++
++      /* AIO Operations */
++      .aio_read = NULL,
++      .aio_write = NULL,
++      .aio_return_fn = NULL,
++      .aio_cancel = NULL,
++      .aio_error_fn = NULL,
++      .aio_fsync = NULL,
++      .aio_suspend = NULL,
++      .aio_force = vfs_gluster_aio_force,
++
++      /* Offline Operations */
++      .is_offline = vfs_gluster_is_offline,
++      .set_offline = vfs_gluster_set_offline,
++};
++
++NTSTATUS vfs_glusterfs_init(void);
++NTSTATUS vfs_glusterfs_init(void)
++{
++      return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,
++                              "glusterfs", &glusterfs_fns);
++}
+diff --git a/source3/modules/wscript_build b/source3/modules/wscript_build
+index ff7163f..31c93be 100644
+--- a/source3/modules/wscript_build
++++ b/source3/modules/wscript_build
+@@ -50,6 +50,7 @@ VFS_SCANNEDONLY_SRC = 'vfs_scannedonly.c'
+ VFS_CROSSRENAME_SRC = 'vfs_crossrename.c'
+ VFS_LINUX_XFS_SGID_SRC = 'vfs_linux_xfs_sgid.c'
+ VFS_TIME_AUDIT_SRC = 'vfs_time_audit.c'
++VFS_GLUSTERFS_SRC = 'vfs_glusterfs.c'
+ bld.SAMBA3_SUBSYSTEM('NFS4_ACLS',
+@@ -408,6 +409,14 @@ bld.SAMBA3_MODULE('vfs_time_audit',
+                  internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_time_audit'),
+                  enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_time_audit'))
++bld.SAMBA3_MODULE('vfs_glusterfs',
++                  subsystem='vfs',
++                  source=VFS_GLUSTERFS_SRC,
++                  deps='samba-util gfapi',
++                  init_function='',
++                  internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_glusterfs'),
++                  enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_glusterfs'),
++                  allow_undefined_symbols=False)
+ CHARSET_WEIRD_SRC = 'weird.c'
+diff --git a/source3/wscript b/source3/wscript
+index bcc6ce1..7e34db5 100644
+--- a/source3/wscript
++++ b/source3/wscript
+@@ -60,6 +60,7 @@ def set_options(opt):
+     opt.SAMBA3_ADD_OPTION('automount')
+     opt.SAMBA3_ADD_OPTION('aio-support')
+     opt.SAMBA3_ADD_OPTION('profiling-data')
++    opt.SAMBA3_ADD_OPTION('glusterfs', with_name="enable", without_name="disable", default=True)
+     opt.SAMBA3_ADD_OPTION('cluster-support')
+@@ -1701,6 +1702,24 @@ main() {
+         conf.undefine('CLUSTER_SUPPORT')
++    #
++    # Checking for GlusterFS
++    #
++    if Options.options.with_glusterfs:
++        conf.check_cfg(package='glusterfs-api', args='"glusterfs-api >= 4" --cflags --libs',
++                       msg='Checking for glusterfs-api >= 4', uselib_store="GFAPI")
++        conf.CHECK_HEADERS('api/glfs.h', lib='gfapi')
++        conf.CHECK_LIB('gfapi', shlib=True)
++
++        if conf.CONFIG_SET('HAVE_API_GLFS_H'):
++            conf.DEFINE('HAVE_GLUSTERFS', '1')
++        else:
++            conf.SET_TARGET_TYPE('gfapi', 'EMPTY')
++            conf.undefine('HAVE_GLUSTERFS')
++    else:
++        conf.SET_TARGET_TYPE('gfapi', 'EMPTY')
++        conf.undefine('HAVE_GLUSTERFS')
++
+     conf.CHECK_CODE('__attribute__((destructor)) static void cleanup(void) { }',
+                   'HAVE_FUNCTION_ATTRIBUTE_DESTRUCTOR',
+@@ -1794,6 +1813,9 @@ main() {
+     if conf.CONFIG_SET('HAVE_GPFS'):
+       default_shared_modules.extend(TO_LIST('vfs_gpfs vfs_gpfs_hsm_notify'))
++    if conf.CONFIG_SET('HAVE_GLUSTERFS'):
++        default_shared_modules.extend(TO_LIST('vfs_glusterfs'))
++
+     explicit_shared_modules = TO_LIST(Options.options.shared_modules, delimiter=',')
+     explicit_static_modules = TO_LIST(Options.options.static_modules, delimiter=',')
+-- 
+1.9.3
+
+
+From e2b70ae1e9b072173de2b7d6140381b910d436b4 Mon Sep 17 00:00:00 2001
+From: Raghavendra Talur <rtalur@redhat.com>
+Date: Thu, 20 Jun 2013 17:58:15 -0700
+Subject: [PATCH 2/9] PATCHSET13: vfs_glusterfs: New file creation fix.
+
+When a new document is created in explorer, a check for file_exist is made.
+vfs_gluster_get_real_filename was returning 0 even when the file did not
+exist.
+---
+ source3/modules/vfs_glusterfs.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
+index 4beac1d..3752940 100644
+--- a/source3/modules/vfs_glusterfs.c
++++ b/source3/modules/vfs_glusterfs.c
+@@ -839,8 +839,10 @@ static int vfs_gluster_get_real_filename(struct vfs_handle_struct *handle,
+                "user.glusterfs.get_real_filename:%s", name);
+       ret = glfs_getxattr(handle->data, path, key_buf, val_buf, NAME_MAX + 1);
+-      if (ret == -1 && errno == ENODATA) {
+-              errno = EOPNOTSUPP;
++      if (ret == -1) {
++              if (errno == ENODATA) {
++                      errno = EOPNOTSUPP;
++              }
+               return -1;
+       }
+-- 
+1.9.3
+
+
+From e963ec42b17cdc7369e4b79387447bb3ddc99d2a Mon Sep 17 00:00:00 2001
+From: susant <spalai@redhat.com>
+Date: Wed, 7 Aug 2013 01:00:31 -0500
+Subject: [PATCH 3/9] PATCHSET13: vfs_glusterfs: Volume capacity reported to
+ Windows is incorrect
+
+VFS plugin was sending the actual size of the volume instead of the
+total number of block units because of which windows was getting the
+wrong volume capacity.
+
+Signed-off-by: susant <spalai@redhat.com>
+Reviewed-by: Anand Avati <avati@redhat.com>
+---
+ source3/modules/vfs_glusterfs.c | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
+index 3752940..1502776 100644
+--- a/source3/modules/vfs_glusterfs.c
++++ b/source3/modules/vfs_glusterfs.c
+@@ -297,7 +297,6 @@ vfs_gluster_disk_free(struct vfs_handle_struct *handle, const char *path,
+                     uint64_t *dsize_p)
+ {
+       struct statvfs statvfs = { 0, };
+-      uint64_t dfree = 0;
+       int ret;
+       ret = glfs_statvfs(handle->data, path, &statvfs);
+@@ -307,19 +306,17 @@ vfs_gluster_disk_free(struct vfs_handle_struct *handle, const char *path,
+               return -1;
+       }
+-      dfree = statvfs.f_bsize * statvfs.f_bavail;
+-
+       if (bsize_p) {
+-              *bsize_p = statvfs.f_bsize;
++              *bsize_p = (uint64_t)statvfs.f_bsize; /* Block size */
+       }
+       if (dfree_p) {
+-              *dfree_p = dfree;
++              *dfree_p = (uint64_t)statvfs.f_bavail; /* Available Block units */
+       }
+       if (dsize_p) {
+-              *dsize_p = statvfs.f_bsize * statvfs.f_blocks;
++              *dsize_p = (uint64_t)statvfs.f_blocks; /* Total Block units */
+       }
+-      return dfree;
++      return (uint64_t)statvfs.f_bavail;
+ }
+ static int
+-- 
+1.9.3
+
+
+From 1d41227866ede7ae14857105abd6b322e8e41525 Mon Sep 17 00:00:00 2001
+From: Anand Avati <avati@redhat.com>
+Date: Mon, 12 Aug 2013 14:59:24 -0500
+Subject: [PATCH 4/9] PATCHSET13: vfs_glusterfs: Implement proper
+ mashalling/unmarshalling of ACLs
+
+Use the primitives available in Samba byteorder.h for implementing
+proper (un)marshalling of ACL xattrs.
+
+Signed-off-by: Anand Avati <avati@redhat.com>
+Reviewed-by: Raghavendra Talur <rtalur@redhat.com>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+Tested-by: "Jose A. Rivera" <jarrpa@redhat.com>
+---
+ source3/modules/vfs_glusterfs.c | 154 +++++++++++++++++++++++++++++-----------
+ 1 file changed, 112 insertions(+), 42 deletions(-)
+
+diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
+index 1502776..1b81d06 100644
+--- a/source3/modules/vfs_glusterfs.c
++++ b/source3/modules/vfs_glusterfs.c
+@@ -963,13 +963,36 @@ static int vfs_gluster_set_offline(struct vfs_handle_struct *handle,
+       return -1;
+ }
+-/* Posix ACL Operations */
++/*
++  Gluster ACL Format:
++
++  Size = 4 (header) + N * 8 (entry)
++
++  Offset  Size    Field (Little Endian)
++  -------------------------------------
++  0-3     4-byte  Version
++
++  4-5     2-byte  Entry-1 tag
++  6-7     2-byte  Entry-1 perm
++  8-11    4-byte  Entry-1 id
++
++  12-13   2-byte  Entry-2 tag
++  14-15   2-byte  Entry-2 perm
++  16-19   4-byte  Entry-2 id
++  ...
++
++ */
++
++/* header version */
+ #define GLUSTER_ACL_VERSION 2
++
++/* perm bits */
+ #define GLUSTER_ACL_READ    0x04
+ #define GLUSTER_ACL_WRITE   0x02
+ #define GLUSTER_ACL_EXECUTE 0x01
++/* tag values */
+ #define GLUSTER_ACL_UNDEFINED_TAG  0x00
+ #define GLUSTER_ACL_USER_OBJ       0x01
+ #define GLUSTER_ACL_USER           0x02
+@@ -980,57 +1003,48 @@ static int vfs_gluster_set_offline(struct vfs_handle_struct *handle,
+ #define GLUSTER_ACL_UNDEFINED_ID  (-1)
+-struct gluster_ace {
+-      uint16_t tag;
+-      uint16_t perm;
+-      uint32_t id;
+-};
+-
+-struct gluster_acl_header {
+-      uint32_t version;
+-      struct gluster_ace entries[];
+-};
++#define GLUSTER_ACL_HEADER_SIZE    4
++#define GLUSTER_ACL_ENTRY_SIZE     8
+ static SMB_ACL_T gluster_to_smb_acl(const char *buf, size_t xattr_size)
+ {
+       int count;
+       size_t size;
+-      struct gluster_ace *ace;
+       struct smb_acl_entry *smb_ace;
+-      struct gluster_acl_header *hdr;
+       struct smb_acl_t *result;
+       int i;
++      int offset;
+       uint16_t tag;
+       uint16_t perm;
+       uint32_t id;
+       size = xattr_size;
+-      if (size < sizeof(*hdr)) {
+-              /* ACL should be at least as big as the header */
++      if (size < GLUSTER_ACL_HEADER_SIZE) {
++              /* ACL should be at least as big as the header (4 bytes) */
+               errno = EINVAL;
+               return NULL;
+       }
+-      size -= sizeof(*hdr);
++      size -= GLUSTER_ACL_HEADER_SIZE; /* size of header = 4 bytes */
+-      if (size % sizeof(*ace)) {
++      if (size % GLUSTER_ACL_ENTRY_SIZE) {
+               /* Size of entries must strictly be a multiple of
+-                 size of an ACE
++                 size of an ACE (8 bytes)
+               */
+               errno = EINVAL;
+               return NULL;
+       }
+-      count = size / sizeof(*ace);
+-
+-      hdr = (void *)buf;
++      count = size / GLUSTER_ACL_ENTRY_SIZE;
+-      if (ntohl(hdr->version) != GLUSTER_ACL_VERSION) {
++      /* Version is the first 4 bytes of the ACL */
++      if (IVAL(buf, 0) != GLUSTER_ACL_VERSION) {
+               DEBUG(0, ("Unknown gluster ACL version: %d\n",
+-                        ntohl(hdr->version)));
++                        IVAL(buf, 0)));
+               return NULL;
+       }
++      offset = GLUSTER_ACL_HEADER_SIZE;
+       result = SMB_MALLOC(sizeof(struct smb_acl_t) + (sizeof(struct smb_acl_entry) * count));
+       if (!result) {
+@@ -1041,10 +1055,19 @@ static SMB_ACL_T gluster_to_smb_acl(const char *buf, size_t xattr_size)
+       result->count = count;
+       smb_ace = result->acl;
+-      ace = hdr->entries;
+       for (i = 0; i < count; i++) {
+-              tag = ntohs(ace->tag);
++              /* TAG is the first 2 bytes of an entry */
++              tag = SVAL(buf, offset);
++              offset += 2;
++
++              /* PERM is the next 2 bytes of an entry */
++              perm = SVAL(buf, offset);
++              offset += 2;
++
++              /* ID is the last 4 bytes of an entry */
++              id = IVAL(buf, offset);
++              offset += 4;
+               switch(tag) {
+               case GLUSTER_ACL_USER:
+@@ -1070,7 +1093,6 @@ static SMB_ACL_T gluster_to_smb_acl(const char *buf, size_t xattr_size)
+                       return NULL;
+               }
+-              id = ntohl(ace->id);
+               switch(smb_ace->a_type) {
+               case SMB_ACL_USER:
+@@ -1083,8 +1105,6 @@ static SMB_ACL_T gluster_to_smb_acl(const char *buf, size_t xattr_size)
+                       break;
+               }
+-              perm = ntohs(ace->perm);
+-
+               smb_ace->a_perm = 0;
+               smb_ace->a_perm |=
+                       ((perm & GLUSTER_ACL_READ) ? SMB_ACL_READ : 0);
+@@ -1093,28 +1113,61 @@ static SMB_ACL_T gluster_to_smb_acl(const char *buf, size_t xattr_size)
+               smb_ace->a_perm |=
+                       ((perm & GLUSTER_ACL_EXECUTE) ? SMB_ACL_EXECUTE : 0);
+-              ace++;
+               smb_ace++;
+       }
+       return result;
+ }
++
++static int gluster_ace_cmp(const void *left, const void *right)
++{
++      int ret = 0;
++      uint16_t tag_left, tag_right;
++      uint32_t id_left, id_right;
++
++      /*
++        Sorting precedence:
++
++         - Smaller TAG values must be earlier.
++
++         - Within same TAG, smaller identifiers must be earlier, E.g:
++           UID 0 entry must be earlier than UID 200
++           GID 17 entry must be earlier than GID 19
++      */
++
++      /* TAG is the first element in the entry */
++      tag_left = SVAL(left, 0);
++      tag_right = SVAL(right, 0);
++
++      ret = (tag_left - tag_right);
++      if (!ret) {
++              /* ID is the third element in the entry, after two short
++                 integers (tag and perm), i.e at offset 4.
++              */
++              id_left = IVAL(left, 4);
++              id_right = IVAL(right, 4);
++              ret = id_left - id_right;
++      }
++
++      return ret;
++}
++
++
+ static ssize_t smb_to_gluster_acl(SMB_ACL_T theacl, char *buf, size_t len)
+ {
+       ssize_t size;
+-      struct gluster_ace *ace;
+       struct smb_acl_entry *smb_ace;
+-      struct gluster_acl_header *hdr;
+       int i;
+       int count;
+       uint16_t tag;
+       uint16_t perm;
+       uint32_t id;
++      int offset;
+       count = theacl->count;
+-      size = sizeof(*hdr) + (count * sizeof(*ace));
++      size = GLUSTER_ACL_HEADER_SIZE + (count * GLUSTER_ACL_ENTRY_SIZE);
+       if (!buf) {
+               return size;
+       }
+@@ -1124,13 +1177,14 @@ static ssize_t smb_to_gluster_acl(SMB_ACL_T theacl, char *buf, size_t len)
+               return -1;
+       }
+-      hdr = (void *)buf;
+-      ace = hdr->entries;
+       smb_ace = theacl->acl;
+-      hdr->version = htonl(GLUSTER_ACL_VERSION);
++      /* Version is the first 4 bytes of the ACL */
++      SIVAL(buf, 0, GLUSTER_ACL_VERSION);
++      offset = GLUSTER_ACL_HEADER_SIZE;
+       for (i = 0; i < count; i++) {
++              /* Calculate tag */
+               switch(smb_ace->a_type) {
+               case SMB_ACL_USER:
+                       tag = GLUSTER_ACL_USER;
+@@ -1157,8 +1211,8 @@ static ssize_t smb_to_gluster_acl(SMB_ACL_T theacl, char *buf, size_t len)
+                       return -1;
+               }
+-              ace->tag = ntohs(tag);
++              /* Calculate id */
+               switch(smb_ace->a_type) {
+               case SMB_ACL_USER:
+                       id = smb_ace->uid;
+@@ -1171,20 +1225,36 @@ static ssize_t smb_to_gluster_acl(SMB_ACL_T theacl, char *buf, size_t len)
+                       break;
+               }
+-              ace->id = ntohl(id);
++              /* Calculate perm */
++              perm = 0;
+-              ace->perm = 0;
+-              ace->perm |=
++              perm |=
+                       ((smb_ace->a_perm & SMB_ACL_READ) ? GLUSTER_ACL_READ : 0);
+-              ace->perm |=
++              perm |=
+                       ((smb_ace->a_perm & SMB_ACL_WRITE) ? GLUSTER_ACL_WRITE : 0);
+-              ace->perm |=
++              perm |=
+                       ((smb_ace->a_perm & SMB_ACL_EXECUTE) ? GLUSTER_ACL_EXECUTE : 0);
+-              ace++;
++
++              /* TAG is the first 2 bytes of an entry */
++              SSVAL(buf, offset, tag);
++              offset += 2;
++
++              /* PERM is the next 2 bytes of an entry */
++              SSVAL(buf, offset, perm);
++              offset += 2;
++
++              /* ID is the last 4 bytes of an entry */
++              SIVAL(buf, offset, id);
++              offset += 4;
++
+               smb_ace++;
+       }
++      /* Skip the header, sort @count number of 8-byte entries */
++      qsort(buf+GLUSTER_ACL_HEADER_SIZE, count, GLUSTER_ACL_ENTRY_SIZE,
++            gluster_ace_cmp);
++
+       return size;
+ }
+-- 
+1.9.3
+
+
+From 26673935299da8ce830ff9d0ea5df18f52092092 Mon Sep 17 00:00:00 2001
+From: "Christopher R. Hertel" <crh@redhat.com>
+Date: Thu, 29 Aug 2013 11:01:24 -0500
+Subject: [PATCH 5/9] PATCHSET13: vfs_glusterfs: Fix excessive debug output
+ from vfs_gluster_open().
+
+The vfs_gluster_open() function generates a debug message (at level 0)
+for every failed attempt to open a pathname.  This includes cases in
+which attempts are made to open a directory as a file (those attempts
+are retried calling vfs_gluster_opendir()).  The result is that the log
+file fills with messages about failed attempts to open directories,
+because they are directories.  This patch ensures that failed attempts
+to open directories as files are logged at log level 4, not 0.  In
+addition, other failed open attempts are logged at level 1, not 0.
+
+Signed-off-by: Christopher R. Hertel <crh@redhat.com>
+Reviewed-by : Susant Palai <spalai@redhat.com>
+Reviewed-by : Raghavendra Talur <rtalur@redhat.com>
+Reviewed-by : Jose A. Rivera <jarrpa@redhat.com>
+---
+ source3/modules/vfs_glusterfs.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
+index 1b81d06..b92c7fd 100644
+--- a/source3/modules/vfs_glusterfs.c
++++ b/source3/modules/vfs_glusterfs.c
+@@ -488,11 +488,8 @@ static int vfs_gluster_open(struct vfs_handle_struct *handle,
+       }
+       if (glfd == NULL) {
+-              DEBUG(0, ("glfs_{open[dir],creat}(%s) failed: %s\n",
+-                        smb_fname->base_name, strerror(errno)));
+               return -1;
+       }
+-
+       return glfd_fd_store(glfd);
+ }
+-- 
+1.9.3
+
+
+From f396be725dd8e8f93b0eed1b23fcf0a0f61303a9 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Mon, 4 Nov 2013 12:32:05 +0100
+Subject: [PATCH 6/9] PATCHSET13: vfs: Fix some build warnings in glusterfs.
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: David Disseldorp <ddiss@samba.org>
+---
+ source3/modules/vfs_glusterfs.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
+index b92c7fd..4b8da4a 100644
+--- a/source3/modules/vfs_glusterfs.c
++++ b/source3/modules/vfs_glusterfs.c
+@@ -1262,7 +1262,7 @@ static SMB_ACL_T vfs_gluster_sys_acl_get_file(struct vfs_handle_struct *handle,
+ {
+       struct smb_acl_t *result;
+       char *buf;
+-      char *key;
++      const char *key;
+       ssize_t ret;
+       switch (type) {
+@@ -1324,7 +1324,7 @@ static int vfs_gluster_sys_acl_set_file(struct vfs_handle_struct *handle,
+                                       SMB_ACL_T theacl)
+ {
+       int ret;
+-      char *key;
++      const char *key;
+       char *buf;
+       ssize_t size;
+-- 
+1.9.3
+
+
+From 2b136f8999e171d15736d0a532353799b7251ae2 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Fri, 15 Nov 2013 17:02:19 +0100
+Subject: [PATCH 7/9] PATCHSET13: s3-vfs: Make glfs_set_preopened() static.
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+---
+ source3/modules/vfs_glusterfs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
+index 4b8da4a..ef505a3 100644
+--- a/source3/modules/vfs_glusterfs.c
++++ b/source3/modules/vfs_glusterfs.c
+@@ -141,7 +141,7 @@ static struct glfs_preopened {
+ } *glfs_preopened;
+-int glfs_set_preopened(const char *volume, glfs_t *fs)
++static int glfs_set_preopened(const char *volume, glfs_t *fs)
+ {
+       struct glfs_preopened *entry = NULL;
+-- 
+1.9.3
+
+
+From 9b2c8854a5a27e4fdbe5191abf174d3152b0edfd Mon Sep 17 00:00:00 2001
+From: Poornima Gurusiddaiah <pgurusid@redhat.com>
+Date: Sun, 24 Nov 2013 21:37:53 +0000
+Subject: [PATCH 8/9] PATCHSET13: vfs_glusterfs: Enable per client log file
+
+In Samba configuration file, one of the options of gluster type is
+log file, the value of this option was not allowed to contain any
+variables, as a result all the clients would have a single log file,
+which complicated debugging.
+In this patch, variable substitution is performed for gluster log file.
+Hence allowing user to customise the gluster log file name.
+
+Signed-off-by: Poornima Gurusiddaiah <pgurusid@redhat.com>
+Reviewed-by: Ira Cooper <ira@samba.org>
+---
+ source3/modules/vfs_glusterfs.c | 41 ++++++++++++++++++++++-------------------
+ 1 file changed, 22 insertions(+), 19 deletions(-)
+
+diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
+index ef505a3..3757968 100644
+--- a/source3/modules/vfs_glusterfs.c
++++ b/source3/modules/vfs_glusterfs.c
+@@ -205,12 +205,12 @@ static int vfs_gluster_connect(struct vfs_handle_struct *handle,
+ {
+       const char *volfile_server;
+       const char *volume;
+-      const char *logfile;
++      char *logfile;
+       int loglevel;
+       glfs_t *fs;
+-      int ret;
++      int ret = 0;
+-      logfile = lp_parm_const_string(SNUM(handle->conn), "glusterfs",
++      logfile = lp_parm_talloc_string(SNUM(handle->conn), "glusterfs",
+                                      "logfile", NULL);
+       loglevel = lp_parm_int(SNUM(handle->conn), "glusterfs", "loglevel", -1);
+@@ -229,57 +229,60 @@ static int vfs_gluster_connect(struct vfs_handle_struct *handle,
+       fs = glfs_find_preopened(volume);
+       if (fs) {
+-              goto found;
++              goto done;
+       }
+       fs = glfs_new(volume);
+       if (fs == NULL) {
+-              return -1;
++              ret = -1;
++              goto done;
+       }
+       ret = glfs_set_volfile_server(fs, "tcp", volfile_server, 0);
+       if (ret < 0) {
+               DEBUG(0, ("Failed to set volfile_server %s\n", volfile_server));
+-              glfs_fini(fs);
+-              return -1;
++              goto done;
+       }
+       ret = glfs_set_xlator_option(fs, "*-md-cache", "cache-posix-acl",
+                                    "true");
+       if (ret < 0) {
+               DEBUG(0, ("%s: Failed to set xlator options\n", volume));
+-              glfs_fini(fs);
+-              return -1;
++              goto done;
+       }
+       ret = glfs_set_logging(fs, logfile, loglevel);
+       if (ret < 0) {
+               DEBUG(0, ("%s: Failed to set logfile %s loglevel %d\n",
+                         volume, logfile, loglevel));
+-              glfs_fini(fs);
+-              return -1;
++              goto done;
+       }
+       ret = glfs_init(fs);
+       if (ret < 0) {
+               DEBUG(0, ("%s: Failed to initialize volume (%s)\n",
+                         volume, strerror(errno)));
+-              glfs_fini(fs);
+-              return -1;
++              goto done;
+       }
+       ret = glfs_set_preopened(volume, fs);
+       if (ret < 0) {
+               DEBUG(0, ("%s: Failed to register volume (%s)\n",
+                         volume, strerror(errno)));
+-              glfs_fini(fs);
++              goto done;
++      }
++done:
++      talloc_free(logfile);
++      if (ret < 0) {
++              if (fs)
++                      glfs_fini(fs);
+               return -1;
++      } else {
++              DEBUG(0, ("%s: Initialized volume from server %s\n",
++                         volume, volfile_server));
++              handle->data = fs;
++              return 0;
+       }
+-found:
+-      DEBUG(0, ("%s: Initialized volume from server %s\n",
+-                volume, volfile_server));
+-      handle->data = fs;
+-      return 0;
+ }
+ static void vfs_gluster_disconnect(struct vfs_handle_struct *handle)
+-- 
+1.9.3
+
+
+From 8577c573dcd44e26579a6594b83a6d582faef14c Mon Sep 17 00:00:00 2001
+From: Niels de Vos <ndevos@redhat.com>
+Date: Fri, 10 Jan 2014 16:26:18 +0100
+Subject: [PATCH 9/9] PATCHSET13: vfs/glusterfs: in case atime is not passed,
+ set it to the current atime
+
+The Linux CIFS client does not pass an updated atime when a write() is
+done. This causes the vfs/glusterfs module to set the atime to -1 on the
+Gluster backend, resulting in an atime far in the future (year 2106).
+
+Signed-off-by: Niels de Vos <ndevos@redhat.com>
+Reviewed-by: Ira Cooper <ira@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+
+Autobuild-User(master): Jeremy Allison <jra@samba.org>
+Autobuild-Date(master): Wed Jan 15 21:31:30 CET 2014 on sn-devel-104
+---
+ source3/modules/vfs_glusterfs.c | 26 ++++++++++++++++++++++----
+ 1 file changed, 22 insertions(+), 4 deletions(-)
+
+diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
+index 3757968..24f80dd 100644
+--- a/source3/modules/vfs_glusterfs.c
++++ b/source3/modules/vfs_glusterfs.c
+@@ -675,10 +675,28 @@ static int vfs_gluster_ntimes(struct vfs_handle_struct *handle,
+ {
+       struct timespec times[2];
+-      times[0].tv_sec = ft->atime.tv_sec;
+-      times[0].tv_nsec = ft->atime.tv_nsec;
+-      times[1].tv_sec = ft->mtime.tv_sec;
+-      times[1].tv_nsec = ft->mtime.tv_nsec;
++      if (null_timespec(ft->atime)) {
++              times[0].tv_sec = smb_fname->st.st_ex_atime.tv_sec;
++              times[0].tv_nsec = smb_fname->st.st_ex_atime.tv_nsec;
++      } else {
++              times[0].tv_sec = ft->atime.tv_sec;
++              times[0].tv_nsec = ft->atime.tv_nsec;
++      }
++
++      if (null_timespec(ft->mtime)) {
++              times[1].tv_sec = smb_fname->st.st_ex_mtime.tv_sec;
++              times[1].tv_nsec = smb_fname->st.st_ex_mtime.tv_nsec;
++      } else {
++              times[1].tv_sec = ft->mtime.tv_sec;
++              times[1].tv_nsec = ft->mtime.tv_nsec;
++      }
++
++      if ((timespec_compare(&times[0],
++                            &smb_fname->st.st_ex_atime) == 0) &&
++          (timespec_compare(&times[1],
++                            &smb_fname->st.st_ex_mtime) == 0)) {
++              return 0;
++      }
+       return glfs_utimens(handle->data, smb_fname->base_name, times);
+ }
+-- 
+1.9.3
+
diff --git a/src/patches/samba/samba-3.6.23-libsmbclient.patch b/src/patches/samba/samba-3.6.23-libsmbclient.patch
new file mode 100644 (file)
index 0000000..61107c5
--- /dev/null
@@ -0,0 +1,36 @@
+From b2b00b1d7871f7557fe7e8f616fa46a8e5ebd298 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Wed, 28 May 2014 16:02:15 +0200
+Subject: [PATCH] PATCHSET10: s3-libsmbclient: Always initialize globals.
+
+This fixes cases where we dereference NULL pointers of globals which
+were not initialized.
+---
+ source3/libsmb/libsmb_context.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/source3/libsmb/libsmb_context.c b/source3/libsmb/libsmb_context.c
+index 6c20d65..888c2ef 100644
+--- a/source3/libsmb/libsmb_context.c
++++ b/source3/libsmb/libsmb_context.c
+@@ -76,7 +76,7 @@ SMBC_module_init(void * punused)
+          * defaults ...
+          */
+-        if (!lp_load(get_dyn_CONFIGFILE(), True, False, False, False)) {
++        if (!lp_load(get_dyn_CONFIGFILE(), True, False, False, True)) {
+             DEBUG(5, ("Could not load config file: %s\n",
+                       get_dyn_CONFIGFILE()));
+         } else if (home) {
+@@ -89,7 +89,7 @@ SMBC_module_init(void * punused)
+             if (asprintf(&conf,
+                          "%s/.smb/smb.conf.append",
+                          home) > 0) {
+-                if (!lp_load(conf, True, False, False, False)) {
++                if (!lp_load(conf, True, False, False, True)) {
+                     DEBUG(10,
+                           ("Could not append config file: "
+                            "%s\n",
+-- 
+1.9.3
+
diff --git a/src/patches/samba/samba-3.6.26-smb2_case_sensitive.patch b/src/patches/samba/samba-3.6.26-smb2_case_sensitive.patch
new file mode 100644 (file)
index 0000000..ee27bd4
--- /dev/null
@@ -0,0 +1,118 @@
+From 3432aafbf86b4d3a559838d81b3ebc039e72a412 Mon Sep 17 00:00:00 2001
+From: Jeremy Allison <jra@samba.org>
+Date: Tue, 10 Jun 2014 14:41:45 -0700
+Subject: [PATCH 1/2] s3: smbd - SMB[2|3]. Ensure a \ or / can't be found
+ anywhere in a search path, not just at the start.
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+---
+ source3/smbd/smb2_find.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/source3/smbd/smb2_find.c b/source3/smbd/smb2_find.c
+index 59e5b66..b0ab7a8 100644
+--- a/source3/smbd/smb2_find.c
++++ b/source3/smbd/smb2_find.c
+@@ -255,11 +255,11 @@ static struct tevent_req *smbd_smb2_find_send(TALLOC_CTX *mem_ctx,
+               tevent_req_nterror(req, NT_STATUS_OBJECT_NAME_INVALID);
+               return tevent_req_post(req, ev);
+       }
+-      if (strcmp(in_file_name, "\\") == 0) {
++      if (strchr_m(in_file_name, '\\') != NULL) {
+               tevent_req_nterror(req, NT_STATUS_OBJECT_NAME_INVALID);
+               return tevent_req_post(req, ev);
+       }
+-      if (strcmp(in_file_name, "/") == 0) {
++      if (strchr_m(in_file_name, '/') != NULL) {
+               tevent_req_nterror(req, NT_STATUS_OBJECT_NAME_INVALID);
+               return tevent_req_post(req, ev);
+       }
+-- 
+1.9.3
+
+
+From 190d0f39bb400a373c8f4d6847e2980c0df8da2b Mon Sep 17 00:00:00 2001
+From: Jeremy Allison <jra@samba.org>
+Date: Tue, 10 Jun 2014 15:58:15 -0700
+Subject: [PATCH 2/2] s3: smbd : SMB2 - fix SMB2_SEARCH when searching non
+ wildcard string with a case-canonicalized share.
+
+We need to go through filename_convert() in order for the filename
+canonicalization to be done on a non-wildcard search string (as is
+done in the SMB1 findfirst code path).
+
+Fixes Bug #10650 - "case sensitive = True" option doesn't work with "max protocol = SMB2" or higher in large directories.
+
+https://bugzilla.samba.org/show_bug.cgi?id=10650
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+---
+ source3/smbd/smb2_find.c | 38 +++++++++++++++++++++++++++++++++++---
+ 1 file changed, 35 insertions(+), 3 deletions(-)
+
+diff --git a/source3/smbd/smb2_find.c b/source3/smbd/smb2_find.c
+index b0ab7a8..6fe6545 100644
+--- a/source3/smbd/smb2_find.c
++++ b/source3/smbd/smb2_find.c
+@@ -229,6 +229,7 @@ static struct tevent_req *smbd_smb2_find_send(TALLOC_CTX *mem_ctx,
+       uint32_t dirtype = FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_DIRECTORY;
+       bool dont_descend = false;
+       bool ask_sharemode = true;
++      bool wcard_has_wild;
+       req = tevent_req_create(mem_ctx, &state,
+                               struct smbd_smb2_find_state);
+@@ -303,16 +304,47 @@ static struct tevent_req *smbd_smb2_find_send(TALLOC_CTX *mem_ctx,
+               dptr_CloseDir(fsp);
+       }
++      wcard_has_wild = ms_has_wild(in_file_name);
++
++      /* Ensure we've canonicalized any search path if not a wildcard. */
++      if (!wcard_has_wild) {
++              struct smb_filename *smb_fname = NULL;
++              const char *fullpath;
++
++              if (ISDOT(fsp->fsp_name->base_name)) {
++                      fullpath = in_file_name;
++              } else {
++                      fullpath = talloc_asprintf(state,
++                                      "%s/%s",
++                                      fsp->fsp_name->base_name,
++                                      in_file_name);
++              }
++              if (tevent_req_nomem(fullpath, req)) {
++                      return tevent_req_post(req, ev);
++              }
++              status = filename_convert(state,
++                              conn,
++                              false, /* Not a DFS path. */
++                              fullpath,
++                              UCF_SAVE_LCOMP | UCF_ALWAYS_ALLOW_WCARD_LCOMP,
++                              &wcard_has_wild,
++                              &smb_fname);
++
++              if (!NT_STATUS_IS_OK(status)) {
++                      tevent_req_nterror(req, status);
++                      return tevent_req_post(req, ev);
++              }
++
++              in_file_name = smb_fname->original_lcomp;
++      }
++
+       if (fsp->dptr == NULL) {
+-              bool wcard_has_wild;
+               if (!(fsp->access_mask & SEC_DIR_LIST)) {
+                       tevent_req_nterror(req, NT_STATUS_ACCESS_DENIED);
+                       return tevent_req_post(req, ev);
+               }
+-              wcard_has_wild = ms_has_wild(in_file_name);
+-
+               status = dptr_create(conn,
+                                    fsp,
+                                    fsp->fsp_name->base_name,
+-- 
+1.9.3
+
diff --git a/src/patches/samba/samba-3.6.99-2110-ntlmssp-session-setup-nas.patch b/src/patches/samba/samba-3.6.99-2110-ntlmssp-session-setup-nas.patch
new file mode 100644 (file)
index 0000000..2b6ce6a
--- /dev/null
@@ -0,0 +1,39 @@
+From ce2b7dad823e3af00884bc0c75851eec7445ec88 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Mon, 31 Oct 2016 12:25:35 +0100
+Subject: [PATCH] s3-libsmb Allow SESSION KEY setup without signing
+
+This is not supported by NetApp or EMC NAS systems. They do not
+implement the protocol correctly. So work around their broken
+implementations.
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+---
+ source3/libsmb/ntlmssp.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/source3/libsmb/ntlmssp.c b/source3/libsmb/ntlmssp.c
+index 7e58990..446d02d 100644
+--- a/source3/libsmb/ntlmssp.c
++++ b/source3/libsmb/ntlmssp.c
+@@ -206,7 +206,7 @@ void ntlmssp_want_feature_list(struct ntlmssp_state *ntlmssp_state, char *featur
+        * also add  NTLMSSP_NEGOTIATE_SEAL here. JRA.
+        */
+       if (in_list("NTLMSSP_FEATURE_SESSION_KEY", feature_list, True)) {
+-              ntlmssp_state->required_flags |= NTLMSSP_NEGOTIATE_SIGN;
++              ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_SIGN;
+       }
+       if (in_list("NTLMSSP_FEATURE_SIGN", feature_list, True)) {
+               ntlmssp_state->required_flags |= NTLMSSP_NEGOTIATE_SIGN;
+@@ -231,7 +231,7 @@ void ntlmssp_want_feature(struct ntlmssp_state *ntlmssp_state, uint32_t feature)
+ {
+       /* As per JRA's comment above */
+       if (feature & NTLMSSP_FEATURE_SESSION_KEY) {
+-              ntlmssp_state->required_flags |= NTLMSSP_NEGOTIATE_SIGN;
++              ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_SIGN;
+       }
+       if (feature & NTLMSSP_FEATURE_SIGN) {
+               ntlmssp_state->required_flags |= NTLMSSP_NEGOTIATE_SIGN;
+-- 
+2.10.1
+
diff --git a/src/patches/samba/samba-3.6.99-add_spoolss_os_version.patch b/src/patches/samba/samba-3.6.99-add_spoolss_os_version.patch
new file mode 100644 (file)
index 0000000..3953b29
--- /dev/null
@@ -0,0 +1,53 @@
+From e5d6a3914151217e1487d9a444c2ced4cfd89491 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Sat, 19 Jan 2013 01:37:29 +0100
+Subject: [PATCH 19/20] PATCHSET9: s3-spoolss: Make it easier to manipulate the
+ returned OSVersion at runtime.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+Reviewed-by: Andreas Schneider <asn@samba.org>
+Signed-off-by: Andreas Schneider <asn@samba.org>
+---
+ source3/rpc_server/spoolss/srv_spoolss_nt.c | 14 +++++++++++---
+ 1 file changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+index 8372c43..0c4b582 100644
+--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
++++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+@@ -2352,9 +2352,13 @@ static WERROR getprinterdata_printer_server(TALLOC_CTX *mem_ctx,
+               enum ndr_err_code ndr_err;
+               struct spoolss_OSVersion os;
+-              os.major                = 5;    /* Windows 2000 == 5.0 */
+-              os.minor                = 0;
+-              os.build                = 2195; /* build */
++              os.major                = lp_parm_int(GLOBAL_SECTION_SNUM,
++                                                    "spoolss", "os_major", 5);
++                                                    /* Windows 2000 == 5.0 */
++              os.minor                = lp_parm_int(GLOBAL_SECTION_SNUM,
++                                                    "spoolss", "os_minor", 0);
++              os.build                = lp_parm_int(GLOBAL_SECTION_SNUM,
++                                                    "spoolss", "os_build", 2195);
+               os.extra_string         = "";   /* leave extra string empty */
+               ndr_err = ndr_push_struct_blob(&blob, mem_ctx, &os,
+@@ -2363,6 +2367,10 @@ static WERROR getprinterdata_printer_server(TALLOC_CTX *mem_ctx,
+                       return WERR_GENERAL_FAILURE;
+               }
++              if (DEBUGLEVEL >= 10) {
++                      NDR_PRINT_DEBUG(spoolss_OSVersion, &os);
++              }
++
+               *type = REG_BINARY;
+               data->binary = blob;
+-- 
+1.9.0
+
diff --git a/src/patches/samba/samba-3.6.99-add_timeout_option_to_smbclient.patch b/src/patches/samba/samba-3.6.99-add_timeout_option_to_smbclient.patch
new file mode 100644 (file)
index 0000000..7175ca8
--- /dev/null
@@ -0,0 +1,147 @@
+commit e8f6a7df1b5ae7f7275ac59b8c21b82de1922c3b
+Author:     Jeremy Allison <jra@samba.org>
+AuthorDate: Fri Aug 16 13:49:39 2013 -0700
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Wed Feb 5 11:50:28 2014 +0100
+
+    Add new "timeout" command and -t option to smbclient to set the per-operation timeout.
+    
+    This is needed as once SMB3 encryption is selected the server
+    response time can be very slow when requesting large numbers
+    (256) of large encrypted packets (1MB) from a Windows 2012
+    virtual machine. This allows clients to tune their allowable
+    wait time.
+    
+    Signed-off-by: Jeremy Allison <jra@samba.org>
+    Reviewed-by: Michael Adam <obnox@samba.org>
+    (cherry picked from commit d9c88a56dc451be09e8c9fc9aa8857e312fcb444)
+---
+ source3/client/client.c | 44 ++++++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 40 insertions(+), 4 deletions(-)
+
+diff --git a/source3/client/client.c b/source3/client/client.c
+index f6e42f6..aa16b14 100644
+--- a/source3/client/client.c
++++ b/source3/client/client.c
+@@ -54,7 +54,12 @@ static bool grepable = false;
+ static char *cmdstr = NULL;
+ const char *cmd_ptr = NULL;
++/* 30 second timeout on most commands */
++#define CLIENT_TIMEOUT (30*1000)
++#define SHORT_TIMEOUT (5*1000)
++
+ static int io_bufsize = 524288;
++static int io_timeout = (CLIENT_TIMEOUT/1000); /* Per operation timeout (in seconds). */
+ static int name_type = 0x20;
+ static int max_protocol = PROTOCOL_NT1;
+@@ -64,10 +69,6 @@ static int cmd_help(void);
+ #define CREATE_ACCESS_READ READ_CONTROL_ACCESS
+-/* 30 second timeout on most commands */
+-#define CLIENT_TIMEOUT (30*1000)
+-#define SHORT_TIMEOUT (5*1000)
+-
+ /* value for unused fid field in trans2 secondary request */
+ #define FID_UNUSED (0xFFFF)
+@@ -4264,6 +4265,31 @@ int cmd_iosize(void)
+ }
+ /****************************************************************************
++ timeout command
++***************************************************************************/
++
++static int cmd_timeout(void)
++{
++      TALLOC_CTX *ctx = talloc_tos();
++      char *buf;
++
++      if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
++              unsigned int old_timeout = cli_set_timeout(cli, 0);
++              cli_set_timeout(cli, old_timeout);
++              d_printf("timeout <n> (per-operation timeout "
++                      "in seconds - currently %u).\n",
++                      old_timeout/1000);
++              return 1;
++      }
++
++      io_timeout = strtol(buf,NULL,0);
++      cli_set_timeout(cli, io_timeout*1000);
++      d_printf("io_timeout per operation is now %d\n", io_timeout);
++      return 0;
++}
++
++
++/****************************************************************************
+ history
+ ****************************************************************************/
+ static int cmd_history(void)
+@@ -4369,6 +4395,7 @@ static struct {
+   {"symlink",cmd_symlink,"<oldname> <newname> create a UNIX symlink",{COMPL_REMOTE,COMPL_REMOTE}},
+   {"tar",cmd_tar,"tar <c|x>[IXFqbgNan] current directory to/from <file name>",{COMPL_NONE,COMPL_NONE}},
+   {"tarmode",cmd_tarmode,"<full|inc|reset|noreset> tar's behaviour towards archive bits",{COMPL_NONE,COMPL_NONE}},
++  {"timeout",cmd_timeout,"timeout <number> - set the per-operation timeout in seconds (default 20)",{COMPL_NONE,COMPL_NONE}},
+   {"translate",cmd_translate,"toggle text translation for printing",{COMPL_NONE,COMPL_NONE}},
+   {"unlock",cmd_unlock,"unlock <fnum> <hex-start> <hex-len> : remove a POSIX lock",{COMPL_REMOTE,COMPL_REMOTE}},
+   {"volume",cmd_volume,"print the volume name",{COMPL_NONE,COMPL_NONE}},
+@@ -4465,6 +4492,7 @@ static int process_command_string(const char *cmd_in)
+               if (!cli) {
+                       return 1;
+               }
++              cli_set_timeout(cli, io_timeout*1000);
+       }
+       while (cmd[0] != '\0')    {
+@@ -4942,6 +4970,8 @@ static int process(const char *base_directory)
+               return 1;
+       }
++      cli_set_timeout(cli, io_timeout*1000);
++
+       if (base_directory && *base_directory) {
+               rc = do_cd(base_directory);
+               if (rc) {
+@@ -4972,6 +5002,7 @@ static int do_host_query(const char *query_host)
+       if (!cli)
+               return 1;
++      cli_set_timeout(cli, io_timeout*1000);
+       browse_host(true);
+       /* Ensure that the host can do IPv4 */
+@@ -5003,6 +5034,7 @@ static int do_host_query(const char *query_host)
+               return 1;
+       }
++      cli_set_timeout(cli, io_timeout*1000);
+       list_servers(lp_workgroup());
+       cli_shutdown(cli);
+@@ -5026,6 +5058,7 @@ static int do_tar_op(const char *base_directory)
+                       max_protocol, port, name_type);
+               if (!cli)
+                       return 1;
++              cli_set_timeout(cli, io_timeout*1000);
+       }
+       recurse=true;
+@@ -5091,6 +5124,8 @@ static int do_message_op(struct user_auth_info *a_info)
+               return 1;
+       }
++      cli_set_timeout(cli, io_timeout*1000);
++
+       send_message(get_cmdline_auth_info_username(a_info));
+       cli_shutdown(cli);
+@@ -5127,6 +5162,7 @@ static int do_message_op(struct user_auth_info *a_info)
+               { "directory", 'D', POPT_ARG_STRING, NULL, 'D', "Start from directory", "DIR" },
+               { "command", 'c', POPT_ARG_STRING, &cmdstr, 'c', "Execute semicolon separated commands" }, 
+               { "send-buffer", 'b', POPT_ARG_INT, &io_bufsize, 'b', "Changes the transmit/send buffer", "BYTES" },
++              { "timeout", 't', POPT_ARG_INT, &io_timeout, 'b', "Changes the per-operation timeout", "SECONDS" },
+               { "port", 'p', POPT_ARG_INT, &port, 'p', "Port to connect to", "PORT" },
+               { "grepable", 'g', POPT_ARG_NONE, NULL, 'g', "Produce grepable output" },
+                 { "browse", 'B', POPT_ARG_NONE, NULL, 'B', "Browse SMB servers using DNS" },
diff --git a/src/patches/samba/samba-3.6.99-asserted_identity_sid-S-1-18-1.patch b/src/patches/samba/samba-3.6.99-asserted_identity_sid-S-1-18-1.patch
new file mode 100644 (file)
index 0000000..19e5f1a
--- /dev/null
@@ -0,0 +1,223 @@
+From ed26d110b814e2cf0413bd9665bd08bda271ba01 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Fri, 15 Jan 2016 14:46:07 +0100
+Subject: [PATCH 1/3] security: Add Asserted Identity sids (S-1-18)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=11677
+
+definitions taken from [MS-DTYP]: Windows Data Types,
+2.4.2.4 Well-Known SID Structures.
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+---
+ libcli/security/dom_sid.h  | 3 +++
+ libcli/security/util_sid.c | 8 ++++++++
+ librpc/idl/security.idl    | 3 +++
+ 3 files changed, 14 insertions(+)
+
+diff --git a/libcli/security/dom_sid.h b/libcli/security/dom_sid.h
+index 04571c2..503b621 100644
+--- a/libcli/security/dom_sid.h
++++ b/libcli/security/dom_sid.h
+@@ -35,6 +35,9 @@ extern const struct dom_sid global_sid_System;
+ extern const struct dom_sid global_sid_NULL;
+ extern const struct dom_sid global_sid_Authenticated_Users;
+ extern const struct dom_sid global_sid_Network;
++extern const struct dom_sid global_sid_Asserted_Identity;
++extern const struct dom_sid global_sid_Asserted_Identity_Service;
++extern const struct dom_sid global_sid_Asserted_Identity_Authentication_Authority;
+ extern const struct dom_sid global_sid_Creator_Owner;
+ extern const struct dom_sid global_sid_Creator_Group;
+ extern const struct dom_sid global_sid_Anonymous;
+diff --git a/libcli/security/util_sid.c b/libcli/security/util_sid.c
+index cf1f7f3..5a41ef7 100644
+--- a/libcli/security/util_sid.c
++++ b/libcli/security/util_sid.c
+@@ -53,6 +53,14 @@ const struct dom_sid global_sid_Authenticated_Users =       /* All authenticated rids
+ const struct dom_sid global_sid_Restriced =                   /* Restriced Code */
+ { 1, 1, {0,0,0,0,0,5}, {12,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
+ #endif
++
++const struct dom_sid global_sid_Asserted_Identity =       /* Asserted Identity */
++{ 1, 0, {0,0,0,0,0,18}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
++const struct dom_sid global_sid_Asserted_Identity_Service =   /* Asserted Identity Service */
++{ 1, 1, {0,0,0,0,0,18}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
++const struct dom_sid global_sid_Asserted_Identity_Authentication_Authority =  /* Asserted Identity Authentication Authority */
++{ 1, 1, {0,0,0,0,0,18}, {2,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
++
+ const struct dom_sid global_sid_Network =                     /* Network rids */
+ { 1, 1, {0,0,0,0,0,5}, {2,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
+diff --git a/librpc/idl/security.idl b/librpc/idl/security.idl
+index 0ea79a3..7df773e 100644
+--- a/librpc/idl/security.idl
++++ b/librpc/idl/security.idl
+@@ -277,6 +277,9 @@ interface security
+       const string SID_NT_TRUSTED_INSTALLER =
+               "S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464";
++      const string SID_AUTHENTICATION_AUTHORITY_ASSERTED_IDENTITY = "S-1-18-1";
++      const string SID_SERVICE_ASSERTED_IDENTITY = "S-1-18-2";
++
+       /* well-known domain RIDs */
+       const int DOMAIN_RID_LOGON                   = 9;
+       const int DOMAIN_RID_ENTERPRISE_READONLY_DCS = 498;
+-- 
+2.5.0
+
+
+From be247c05146c45bcea5c06a38ff07e8f0c934ab6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Fri, 15 Jan 2016 14:43:12 +0100
+Subject: [PATCH 2/3] s3-util: add helper functions to deal with the S-1-18
+ domain.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=11677
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+---
+ source3/Makefile.in            |  2 +-
+ source3/include/proto.h        |  5 +++++
+ source3/lib/util_specialsids.c | 40 ++++++++++++++++++++++++++++++++++++++++
+ source3/wscript_build          |  1 +
+ 4 files changed, 47 insertions(+), 1 deletion(-)
+ create mode 100644 source3/lib/util_specialsids.c
+
+diff --git a/source3/Makefile.in b/source3/Makefile.in
+index 9e8e03d..8df2bff 100644
+--- a/source3/Makefile.in
++++ b/source3/Makefile.in
+@@ -456,7 +456,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
+         lib/access.o lib/smbrun.o \
+         lib/bitmap.o lib/dprintf.o $(UTIL_REG_OBJ) \
+         lib/wins_srv.o \
+-        lib/util_str.o lib/clobber.o lib/util_sid.o \
++        lib/util_str.o lib/clobber.o lib/util_sid.o lib/util_specialsids.o \
+         lib/util_unistr.o ../lib/util/charset/codepoints.o lib/util_file.o \
+         lib/util.o lib/util_cmdline.o lib/util_names.o \
+         lib/util_sock.o lib/sock_exec.o lib/util_sec.o \
+diff --git a/source3/include/proto.h b/source3/include/proto.h
+index 7303e76..8cd162b 100644
+--- a/source3/include/proto.h
++++ b/source3/include/proto.h
+@@ -1937,6 +1937,11 @@ bool sid_check_is_in_unix_groups(const struct dom_sid *sid);
+ const char *unix_groups_domain_name(void);
+ bool lookup_unix_group_name(const char *name, struct dom_sid *sid);
++/* The following definitions come from lib/util_specialsids.c  */
++bool sid_check_is_asserted_identity(const struct dom_sid *sid);
++bool sid_check_is_in_asserted_identity(const struct dom_sid *sid);
++const char *asserted_identity_domain_name(void);
++
+ /* The following definitions come from lib/filename_util.c */
+ NTSTATUS get_full_smb_filename(TALLOC_CTX *ctx, const struct smb_filename *smb_fname,
+diff --git a/source3/lib/util_specialsids.c b/source3/lib/util_specialsids.c
+new file mode 100644
+index 0000000..4c402d6
+--- /dev/null
++++ b/source3/lib/util_specialsids.c
+@@ -0,0 +1,40 @@
++/*
++   Unix SMB/CIFS implementation.
++   Copyright (C) Guenther Deschner 2016
++
++   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/>.
++*/
++
++#include "includes.h"
++#include "../libcli/security/security.h"
++
++bool sid_check_is_asserted_identity(const struct dom_sid *sid)
++{
++      return dom_sid_equal(sid, &global_sid_Asserted_Identity);
++}
++
++bool sid_check_is_in_asserted_identity(const struct dom_sid *sid)
++{
++      struct dom_sid dom_sid;
++
++      sid_copy(&dom_sid, sid);
++      sid_split_rid(&dom_sid, NULL);
++
++      return sid_check_is_asserted_identity(&dom_sid);
++}
++
++const char *asserted_identity_domain_name(void)
++{
++      return "Asserted Identity";
++}
+diff --git a/source3/wscript_build b/source3/wscript_build
+index 40935d1..ceccbb5 100755
+--- a/source3/wscript_build
++++ b/source3/wscript_build
+@@ -74,6 +74,7 @@ LIB_SRC = '''
+           lib/bitmap.c lib/dprintf.c
+           lib/wins_srv.c
+           lib/clobber.c lib/util_sid.c
++          lib/util_specialsids.c
+           lib/util_file.c
+           lib/util.c lib/util_cmdline.c lib/util_names.c
+           lib/util_sock.c lib/sock_exec.c lib/util_sec.c
+-- 
+2.5.0
+
+
+From bb5c28c8d45be8e26abe37e4873c4b1c59fff782 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Fri, 15 Jan 2016 14:43:48 +0100
+Subject: [PATCH 3/3] s3-util: skip S-1-18 sids in token generaion in
+ sid_array_from_info3().
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=11677
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+---
+ source3/lib/util_sid.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c
+index f051b7a..92fbc76 100644
+--- a/source3/lib/util_sid.c
++++ b/source3/lib/util_sid.c
+@@ -190,6 +190,11 @@ NTSTATUS sid_array_from_info3(TALLOC_CTX *mem_ctx,
+          */
+       for (i = 0; i < info3->sidcount; i++) {
++
++              if (sid_check_is_in_asserted_identity(info3->sids[i].sid)) {
++                      continue;
++              }
++
+               status = add_sid_to_array(mem_ctx, info3->sids[i].sid,
+                                     &sid_array, &num_sids);
+               if (!NT_STATUS_IS_OK(status)) {
+-- 
+2.5.0
+
diff --git a/src/patches/samba/samba-3.6.99-bug-1117059.patch b/src/patches/samba/samba-3.6.99-bug-1117059.patch
new file mode 100644 (file)
index 0000000..4941e66
--- /dev/null
@@ -0,0 +1,86 @@
+From 7f0edd8c68cd20a136a33d692f32ee2ffc30db76 Mon Sep 17 00:00:00 2001
+From: Michael Adam <obnox@samba.org>
+Date: Mon, 19 Jan 2015 13:51:55 +0100
+Subject: [PATCH] s3:winbind:grent: don't stop group enumeration when a group
+ has no gid
+
+simply continue with the next group
+
+Note: this patch introduces some code duplication to make it
+easier to create minimal backport patch. Subsequent patches
+will provide some refactoring to reduce the duplication.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=8905
+
+Signed-off-by: Michael Adam <obnox@samba.org>
+---
+ source3/winbindd/wb_next_grent.c | 51 +++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 50 insertions(+), 1 deletion(-)
+
+diff --git a/source3/winbindd/wb_next_grent.c b/source3/winbindd/wb_next_grent.c
+index 2b3799a..f52d2d1 100644
+--- a/source3/winbindd/wb_next_grent.c
++++ b/source3/winbindd/wb_next_grent.c
+@@ -168,9 +168,58 @@ static void wb_next_grent_getgrsid_done(struct tevent_req *subreq)
+       status = wb_getgrsid_recv(subreq, talloc_tos(), &domname, &name,
+                                 &state->gr->gr_gid, &state->members);
+       TALLOC_FREE(subreq);
+-      if (tevent_req_nterror(req, status)) {
++
++      if (NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED)) {
++              state->gstate->next_group += 1;
++
++              if (state->gstate->next_group >= state->gstate->num_groups) {
++                      TALLOC_FREE(state->gstate->groups);
++
++                      if (state->gstate->domain == NULL) {
++                              state->gstate->domain = domain_list();
++                      } else {
++                              state->gstate->domain = state->gstate->domain->next;
++                      }
++
++                      if ((state->gstate->domain != NULL) &&
++                          sid_check_is_domain(&state->gstate->domain->sid))
++                      {
++                              state->gstate->domain = state->gstate->domain->next;
++                      }
++
++                      if (state->gstate->domain == NULL) {
++                              tevent_req_nterror(req,
++                                                 NT_STATUS_NO_MORE_ENTRIES);
++                              return;
++                      }
++
++                      subreq = dcerpc_wbint_QueryGroupList_send(
++                              state, state->ev,
++                              dom_child_handle(state->gstate->domain),
++                              &state->next_groups);
++                      if (tevent_req_nomem(subreq, req)) {
++                              return;
++                      }
++
++                      tevent_req_set_callback(subreq,
++                                              wb_next_grent_fetch_done, req);
++                      return;
++              }
++
++              subreq = wb_getgrsid_send(
++                      state, state->ev,
++                      &state->gstate->groups[state->gstate->next_group].sid,
++                      state->max_nesting);
++              if (tevent_req_nomem(subreq, req)) {
++                      return;
++              }
++              tevent_req_set_callback(subreq, wb_next_grent_getgrsid_done,
++                                      req);
++              return;
++      } else if (tevent_req_nterror(req, status)) {
+               return;
+       }
++
+       if (!fill_grent(talloc_tos(), state->gr, domname, name,
+                       state->gr->gr_gid)) {
+               DEBUG(5, ("fill_grent failed\n"));
+-- 
+2.1.0
+
diff --git a/src/patches/samba/samba-3.6.99-bug-1192211.patch b/src/patches/samba/samba-3.6.99-bug-1192211.patch
new file mode 100644 (file)
index 0000000..a14f736
--- /dev/null
@@ -0,0 +1,42 @@
+From a5b116fe3107a56e1d881906e77d9731b0c6b2c2 Mon Sep 17 00:00:00 2001
+From: Michael Adam <obnox@samba.org>
+Date: Sat, 1 Jun 2013 02:14:41 +0200
+Subject: [PATCH] shadow_copy2: implement disk_free
+
+Signed-off-by: Michael Adam <obnox@samba.org>
+---
+ source3/modules/vfs_shadow_copy2.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c
+index fedfb53..7fd4dd5 100644
+--- a/source3/modules/vfs_shadow_copy2.c
++++ b/source3/modules/vfs_shadow_copy2.c
+@@ -944,6 +944,16 @@ static int shadow_copy2_get_shadow_copy2_data(vfs_handle_struct *handle,
+       return 0;
+ }
++static uint64_t shadow_copy2_disk_free(vfs_handle_struct *handle,
++                                     const char *fname, bool small_query,
++                                     uint64_t *bsize, uint64_t *dfree,
++                                     uint64_t *dsize)
++{
++      SHADOW2_NEXT(DISK_FREE,
++                   (handle, name, small_query, bsize, dfree, dsize),
++                   uint64_t, 0);
++}
++
+ static struct vfs_fn_pointers vfs_shadow_copy2_fns = {
+         .opendir = shadow_copy2_opendir,
+         .mkdir = shadow_copy2_mkdir,
+@@ -975,6 +985,7 @@ static struct vfs_fn_pointers vfs_shadow_copy2_fns = {
+         .get_nt_acl = shadow_copy2_get_nt_acl,
+         .chmod_acl = shadow_copy2_chmod_acl,
+       .get_shadow_copy_data = shadow_copy2_get_shadow_copy2_data,
++      .disk_free = shadow_copy2_disk_free,
+ };
+ NTSTATUS vfs_shadow_copy2_init(void);
+-- 
+2.1.0
+
diff --git a/src/patches/samba/samba-3.6.99-doc_netbios_name_length_limit.patch b/src/patches/samba/samba-3.6.99-doc_netbios_name_length_limit.patch
new file mode 100644 (file)
index 0000000..22330f1
--- /dev/null
@@ -0,0 +1,257 @@
+From caea507e6b57a82e059803e307f87fd39affde9c Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Wed, 15 Jul 2015 13:22:40 +0200
+Subject: [PATCH] PATCHSET31: docs: Documents length limitations for NetBIOS
+ name
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11401
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Michael Adam <obnox@samba.org>
+
+Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
+Autobuild-Date(master): Wed Jul 15 19:35:48 CEST 2015 on sn-devel-104
+---
+ docs-xml/smbdotconf/base/netbiosname.xml | 2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: samba-3.6.23/docs-xml/smbdotconf/base/netbiosname.xml
+===================================================================
+--- samba-3.6.23.orig/docs-xml/smbdotconf/base/netbiosname.xml
++++ samba-3.6.23/docs-xml/smbdotconf/base/netbiosname.xml
+@@ -9,6 +9,8 @@
+               the hosts DNS name) will be the name that these services are advertised under.
+               </para>
++              <para>Note that the maximum length for a NetBIOS name is 15 charactars.</para>
++
+               <para>
+               There is a bug in Samba-3 that breaks operation of browsing and access to shares if the netbios name
+               is set to the literal name <literal>PIPE</literal>. To avoid this problem, do not name your Samba-3
+Index: samba-3.6.23/docs/manpages/smb.conf.5
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smb.conf.5
++++ samba-3.6.23/docs/manpages/smb.conf.5
+@@ -1,13 +1,13 @@
+ '\" t
+ .\"     Title: smb.conf
+ .\"    Author: [see the "AUTHOR" section]
+-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+-.\"      Date: 09/18/2013
++.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
++.\"      Date: 10/15/2015
+ .\"    Manual: File Formats and Conventions
+ .\"    Source: Samba 3.6
+ .\"  Language: English
+ .\"
+-.TH "SMB\&.CONF" "5" "09/18/2013" "Samba 3\&.6" "File Formats and Conventions"
++.TH "SMB\&.CONF" "5" "10/15/2015" "Samba 3\&.6" "File Formats and Conventions"
+ .\" -----------------------------------------------------------------
+ .\" * Define some portability stuff
+ .\" -----------------------------------------------------------------
+@@ -1201,8 +1201,7 @@ add user to group script (G)
+ .PP
+ .RS 4
+ Full path to the script that will be called when a user is added to a group using the Windows NT domain administration tools\&. It will be run by
+-\fBsmbd\fR(8)
+-\fIAS ROOT\fR\&. Any
++\fBsmbd\fR(8)\fIAS ROOT\fR\&. Any
+ \fI%g\fR
+ will be replaced with the group name and any
+ \fI%u\fR
+@@ -1563,8 +1562,7 @@ smbpasswd
+ will fail to connect in it\*(Aqs default mode\&.
+ smbpasswd
+ can be forced to use the primary IP interface of the local host by using its
+-\fBsmbpasswd\fR(8)
+-\fI\-r \fR\fI\fIremote machine\fR\fR
++\fBsmbpasswd\fR(8)\fI\-r \fR\fI\fIremote machine\fR\fR
+ parameter, with
+ \fIremote machine\fR
+ set to the IP name of the primary interface of the local host\&.
+@@ -1868,8 +1866,7 @@ and
+ \fIseal\fR
+ are only available if Samba has been compiled against a modern OpenLDAP version (2\&.3\&.x or higher)\&.
+ .sp
+-This option is needed in the case of Domain Controllers enforcing the usage of signed LDAP connections (e\&.g\&. Windows 2000 SP3 or higher)\&. LDAP sign and seal can be controlled with the registry key "HKLM\eSystem\eCurrentControlSet\eServices\e
+-NTDS\eParameters\eLDAPServerIntegrity" on the Windows server side\&.
++This option is needed in the case of Domain Controllers enforcing the usage of signed LDAP connections (e\&.g\&. Windows 2000 SP3 or higher)\&. LDAP sign and seal can be controlled with the registry key "HKLM\eSystem\eCurrentControlSet\eServices\eNTDS\eParameters\eLDAPServerIntegrity" on the Windows server side\&.
+ .sp
+ Depending on the used KRB5 library (MIT and older Heimdal versions) it is possible that the message "integrity only" is not supported\&. In this case,
+ \fIsign\fR
+@@ -2513,8 +2510,7 @@ delete group script (G)
+ .PP
+ .RS 4
+ This is the full pathname to a script that will be run
+-\fIAS ROOT\fR
+-\fBsmbd\fR(8)
++\fIAS ROOT\fR\fBsmbd\fR(8)
+ when a group is requested to be deleted\&. It will expand any
+ \fI%g\fR
+ to the group name passed\&. This script is only useful for installations using the Windows NT domain administration tools\&.
+@@ -2633,8 +2629,7 @@ delete user from group script (G)
+ .PP
+ .RS 4
+ Full path to the script that will be called when a user is removed from a group using the Windows NT domain administration tools\&. It will be run by
+-\fBsmbd\fR(8)
+-\fIAS ROOT\fR\&. Any
++\fBsmbd\fR(8)\fIAS ROOT\fR\&. Any
+ \fI%g\fR
+ will be replaced with the group name and any
+ \fI%u\fR
+@@ -4895,8 +4890,7 @@ script\&.
+ LDAP connections should be secured where possible\&. This may be done setting
+ \fIeither\fR
+ this parameter to
+-\fIStart_tls\fR
+-\fIor\fR
++\fIStart_tls\fR\fIor\fR
+ by specifying
+ \fIldaps://\fR
+ in the URL argument of
+@@ -4935,9 +4929,7 @@ Please note that this parameter does onl
+ \fIrpc\fR
+ methods\&. To enable the LDAPv3 StartTLS extended operation (RFC2830) for
+ \fIads\fR, set
+-\m[blue]\fBldap ssl = yes\fR\m[]
+-\fIand\fR
+-\m[blue]\fBldap ssl ads = yes\fR\m[]\&. See
++\m[blue]\fBldap ssl = yes\fR\m[]\fIand\fR\m[blue]\fBldap ssl ads = yes\fR\m[]\&. See
+ smb\&.conf(5)
+ for more information on
+ \m[blue]\fBldap ssl ads\fR\m[]\&.
+@@ -5100,8 +5092,7 @@ in elections for local master browser\&.
+ Setting this value to
+ \fBno\fR
+ will cause
+-nmbd
+-\fInever\fR
++nmbd\fInever\fR
+ to become a local master browser\&.
+ .sp
+ Default:
+@@ -5463,7 +5454,6 @@ logon home (G)
+ .RS 4
+ This parameter specifies the home directory location when a Win95/98 or NT Workstation logs into a Samba PDC\&. It allows you to do
+ .sp
+-
+ C:\e>\fBNET USE H: /HOME\fR
+ .sp
+ from a command prompt, for example\&.
+@@ -5472,7 +5462,6 @@ This option takes the standard substitut
+ .sp
+ This parameter can be used with Win9X workstations to ensure that roaming profiles are stored in a subdirectory of the user\*(Aqs home directory\&. This is done in the following way:
+ .sp
+-
+ logon home = \e\e%N\e%U\eprofile
+ .sp
+ This tells Samba to return the above string, with substitutions made when a client requests the info, generally in a NetUserGetInfo request\&. Win9X clients truncate the info to \e\eserver\eshare when a user does
+@@ -6050,7 +6039,6 @@ The three settings are :
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \fBYes\fR
+ \- The read only DOS attribute is mapped to the inverse of the user or owner write bit in the unix permission mode set\&. If the owner write bit is not set, the read only attribute is reported as being set on the file\&. If the read only DOS attribute is set, Samba sets the owner, group and others write bits to zero\&. Write bits set in an ACL are ignored by Samba\&. If the read only DOS attribute is unset, Samba simply sets the write bit of the owner to one\&.
+ .RE
+@@ -6063,7 +6051,6 @@ The three settings are :
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \fBPermissions\fR
+ \- The read only DOS attribute is mapped to the effective permissions of the connecting user, as evaluated by
+ \fBsmbd\fR(8)
+@@ -6078,7 +6065,6 @@ by reading the unix permissions and POSI
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \fBNo\fR
+ \- The read only DOS attribute is unaffected by permissions, and can only be set by the
+ \m[blue]\fBstore dos attributes\fR\m[]
+@@ -6732,7 +6718,6 @@ The options are: "lmhosts", "host", "win
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \fBlmhosts\fR
+ : Lookup an IP address in the Samba lmhosts file\&. If the line in lmhosts has no name type attached to the NetBIOS name (see the manpage for lmhosts for details) then any name type matches for lookup\&.
+ .RE
+@@ -6745,7 +6730,6 @@ The options are: "lmhosts", "host", "win
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-
+ \fBhost\fR
+ : Do a standard host name to IP address resolution, using the system
+ /etc/hosts, NIS, or DNS lookups\&. This method of name resolution is operating system depended for instance on IRIX or Solaris this may be controlled by the
+@@ -6833,6 +6817,8 @@ netbios name (G)
+ .RS 4
+ This sets the NetBIOS name by which a Samba server is known\&. By default it is the same as the first component of the host\*(Aqs DNS name\&. If a machine is a browse server or logon server this name (or the first component of the hosts DNS name) will be the name that these services are advertised under\&.
+ .sp
++Note that the maximum length for a NetBIOS name is 15 charactars\&.
++.sp
+ There is a bug in Samba\-3 that breaks operation of browsing and access to shares if the netbios name is set to the literal name
+ PIPE\&. To avoid this problem, do not name your Samba\-3 server
+ PIPE\&.
+@@ -7639,7 +7625,6 @@ This option specifies a command to be ru
+ .sp
+ An interesting example is to send the users a welcome message every time they log in\&. Maybe a message of the day? Here is an example:
+ .sp
+-
+ preexec = csh \-c \*(Aqecho \e"Welcome to %S!\e" | /usr/local/samba/bin/smbclient \-M %m \-I %I\*(Aq &
+ .sp
+ Of course, this could get annoying after a while :\-)
+@@ -8452,9 +8437,7 @@ rpc_server (G)
+ Defines what kind of rpc server to use for a named pipe\&. The rpc_server prefix must be followed by the pipe name, and a value\&.
+ .sp
+ Three possible values are currently supported:
+-embedded
+-daemon
+-external
++embeddeddaemonexternal
+ .sp
+ The classic method is to run every pipe as an internal function
+ \fIembedded\fR
+@@ -8632,8 +8615,7 @@ security = share
+ server)\&. Instead, the clients send authentication information (passwords) on a per\-share basis, at the time they attempt to connect to that share\&.
+ .sp
+ Note that
+-smbd
+-\fIALWAYS\fR
++smbd\fIALWAYS\fR
+ uses a valid UNIX user to act on behalf of the client, even in
+ security = share
+ level security\&.
+@@ -10177,8 +10159,6 @@ This parameter specifies the absolute pa
+ .sp
+ For example, a valid usershare directory might be /usr/local/samba/lib/usershares, set up as follows\&.
+ .sp
+-
+-.sp
+ .if n \{\
+ .RS 4
+ .\}
+@@ -10650,10 +10630,10 @@ and
+ .sp -1
+ .IP \(bu 2.3
+ .\}
+-\fI<sfu | rfc2307 >\fR
+-\- When Samba is running in security = ads and your Active Directory Domain Controller does support the Microsoft "Services for Unix" (SFU) LDAP schema, winbind can retrieve the login shell and the home directory attributes directly from your Directory Server\&. Note that retrieving UID and GID from your ADS\-Server requires to use
++\fI<sfu | sfu20 | rfc2307 >\fR
++\- When Samba is running in security = ads and your Active Directory Domain Controller does support the Microsoft "Services for Unix" (SFU) LDAP schema, winbind can retrieve the login shell and the home directory attributes directly from your Directory Server\&. For SFU 3\&.0 or 3\&.5 simply choose "sfu", if you use SFU 2\&.0 please choose "sfu20"\&. Note that retrieving UID and GID from your ADS\-Server requires to use
+ \fIidmap config DOMAIN:backend\fR
+-= ad as well\&.
++= ad as well\&. The primary group membership is currently always calculated via the "primaryGroupID" LDAP attribute\&.
+ .RE
+ .sp
+ .RE
+@@ -11036,7 +11016,6 @@ special sections make life for an admini
+ This man page is correct for version 3 of the Samba suite\&.
+ .SH "SEE ALSO"
+ .PP
+-
+ \fBsamba\fR(7),
+ \fBsmbpasswd\fR(8),
+ \fBswat\fR(8),
diff --git a/src/patches/samba/samba-3.6.99-fix_dirsort_ea-support.patch b/src/patches/samba/samba-3.6.99-fix_dirsort_ea-support.patch
new file mode 100644 (file)
index 0000000..5683ae6
--- /dev/null
@@ -0,0 +1,314 @@
+From 252499c1513c45764d039af8732cd97b37c8c494 Mon Sep 17 00:00:00 2001
+From: Volker Lendecke <vl@samba.org>
+Date: Thu, 9 Feb 2017 15:40:39 +0100
+Subject: [PATCH 1/3] smbd: Streamline get_ea_names_from_file
+
+Signed-off-by: Volker Lendecke <vl@samba.org>
+Reviewed-by: Ralph Boehme <slow@samba.org>
+Backported-by: Andreas Schneider <asn@samba.org>
+Backported-from: 27daed8fcf95eed2df112dc1c30c3a40b5c9565b
+---
+ source3/smbd/trans2.c | 89 +++++++++++++++++++++++++++++----------------------
+ 1 file changed, 51 insertions(+), 38 deletions(-)
+
+diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
+index 98fd2af..49cfe9f 100644
+--- a/source3/smbd/trans2.c
++++ b/source3/smbd/trans2.c
+@@ -201,12 +201,14 @@ NTSTATUS get_ea_names_from_file(TALLOC_CTX *mem_ctx, connection_struct *conn,
+                               files_struct *fsp, const char *fname,
+                               char ***pnames, size_t *pnum_names)
+ {
++      char smallbuf[1024];
+       /* Get a list of all xattrs. Max namesize is 64k. */
+       size_t ea_namelist_size = 1024;
+-      char *ea_namelist = NULL;
++      char *ea_namelist = smallbuf;
++      char *to_free = NULL;
+       char *p;
+-      char **names, **tmp;
++      char **names;
+       size_t num_names;
+       ssize_t sizeret = -1;
+       NTSTATUS status;
+@@ -228,25 +230,24 @@ NTSTATUS get_ea_names_from_file(TALLOC_CTX *mem_ctx, connection_struct *conn,
+               return NT_STATUS_OK;
+       }
+-      /*
+-       * TALLOC the result early to get the talloc hierarchy right.
+-       */
+-
+-      names = TALLOC_ARRAY(mem_ctx, char *, 1);
+-      if (names == NULL) {
+-              DEBUG(0, ("talloc failed\n"));
+-              return NT_STATUS_NO_MEMORY;
++      if (fsp && fsp->fh->fd != -1) {
++              sizeret = SMB_VFS_FLISTXATTR(fsp, ea_namelist,
++                                           ea_namelist_size);
++      } else {
++              sizeret = SMB_VFS_LISTXATTR(conn,
++                                          fname,
++                                          ea_namelist,
++                                          ea_namelist_size);
+       }
+-      while (ea_namelist_size <= 65536) {
+-
+-              ea_namelist = TALLOC_REALLOC_ARRAY(
+-                      names, ea_namelist, char, ea_namelist_size);
++      if ((sizeret == -1) && (errno == ERANGE)) {
++              ea_namelist_size = 65536;
++              ea_namelist = TALLOC_ARRAY(mem_ctx, char, ea_namelist_size);
+               if (ea_namelist == NULL) {
+                       DEBUG(0, ("talloc failed\n"));
+-                      TALLOC_FREE(names);
+                       return NT_STATUS_NO_MEMORY;
+               }
++              to_free = ea_namelist;
+               if (fsp && fsp->fh->fd != -1) {
+                       sizeret = SMB_VFS_FLISTXATTR(fsp, ea_namelist,
+@@ -255,25 +256,18 @@ NTSTATUS get_ea_names_from_file(TALLOC_CTX *mem_ctx, connection_struct *conn,
+                       sizeret = SMB_VFS_LISTXATTR(conn, fname, ea_namelist,
+                                                   ea_namelist_size);
+               }
+-
+-              if ((sizeret == -1) && (errno == ERANGE)) {
+-                      ea_namelist_size *= 2;
+-              }
+-              else {
+-                      break;
+-              }
+       }
+       if (sizeret == -1) {
+-              TALLOC_FREE(names);
+-              return map_nt_error_from_unix(errno);
++              status = map_nt_error_from_unix(errno);
++              TALLOC_FREE(to_free);
++              return status;
+       }
+-      DEBUG(10, ("get_ea_list_from_file: ea_namelist size = %u\n",
+-                 (unsigned int)sizeret));
++      DEBUG(10, ("ea_namelist size = %zd\n", sizeret));
+       if (sizeret == 0) {
+-              TALLOC_FREE(names);
++              TALLOC_FREE(to_free);
+               return NT_STATUS_OK;
+       }
+@@ -282,7 +276,7 @@ NTSTATUS get_ea_names_from_file(TALLOC_CTX *mem_ctx, connection_struct *conn,
+        */
+       if (ea_namelist[sizeret-1] != '\0') {
+-              TALLOC_FREE(names);
++              TALLOC_FREE(to_free);
+               return NT_STATUS_INTERNAL_ERROR;
+       }
+@@ -295,26 +289,45 @@ NTSTATUS get_ea_names_from_file(TALLOC_CTX *mem_ctx, connection_struct *conn,
+               num_names += 1;
+       }
+-      tmp = TALLOC_REALLOC_ARRAY(mem_ctx, names, char *, num_names);
+-      if (tmp == NULL) {
++      *pnum_names = num_names;
++
++      if (pnames == NULL) {
++              TALLOC_FREE(to_free);
++              return NT_STATUS_OK;
++      }
++
++      names = TALLOC_ARRAY(mem_ctx, char *, num_names);
++      if (names == NULL) {
+               DEBUG(0, ("talloc failed\n"));
+-              TALLOC_FREE(names);
++              TALLOC_FREE(to_free);
+               return NT_STATUS_NO_MEMORY;
+       }
+-      names = tmp;
++      if (ea_namelist == smallbuf) {
++              ea_namelist = talloc_memdup(names, smallbuf, sizeret);
++              if (ea_namelist == NULL) {
++                      TALLOC_FREE(names);
++                      return NT_STATUS_NO_MEMORY;
++              }
++      } else {
++              talloc_steal(names, ea_namelist);
++
++              ea_namelist = talloc_realloc(names, ea_namelist, char,
++                                           sizeret);
++              if (ea_namelist == NULL) {
++                      TALLOC_FREE(names);
++                      return NT_STATUS_NO_MEMORY;
++              }
++      }
++
+       num_names = 0;
+       for (p = ea_namelist; p - ea_namelist < sizeret; p += strlen(p)+1) {
+               names[num_names++] = p;
+       }
+-      if (pnames) {
+-              *pnames = names;
+-      } else {
+-              TALLOC_FREE(names);
+-      }
+-      *pnum_names = num_names;
++      *pnames = names;
++
+       return NT_STATUS_OK;
+ }
+-- 
+2.9.3
+
+
+From 17563ab22ad19b34e1d9a1d12b2594c4186718b6 Mon Sep 17 00:00:00 2001
+From: Volker Lendecke <vl@samba.org>
+Date: Tue, 25 Oct 2016 12:28:12 +0200
+Subject: [PATCH 2/3] lib/util/charset: Optimize next_codepoint for the ascii
+ case
+
+Signed-off-by: Volker Lendecke <vl@samba.org>
+Reviewed-by: Ralph Boehme <slow@samba.org>
+
+(cherry picked from commit 07d9a909ba6853fb0b96f6d86e4cf0d5d1b35b28)
+---
+ lib/util/charset/codepoints.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/lib/util/charset/codepoints.c b/lib/util/charset/codepoints.c
+index 5ee95a8..7d157a3 100644
+--- a/lib/util/charset/codepoints.c
++++ b/lib/util/charset/codepoints.c
+@@ -495,6 +495,10 @@ _PUBLIC_ codepoint_t next_codepoint_ext(const char *str, charset_t src_charset,
+ _PUBLIC_ codepoint_t next_codepoint(const char *str, size_t *size)
+ {
++      if ((str[0] & 0x80) == 0) {
++              *size = 1;
++              return str[0];
++      }
+       return next_codepoint_convenience(get_iconv_convenience(), str, size);
+ }
+-- 
+2.9.3
+
+
+From ac8f6faa891fd282fb39ccb8e75a364bf97a5f2b Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Thu, 9 Feb 2017 15:05:01 +0100
+Subject: [PATCH 3/3] s3-vfs: Only walk the directory once in
+ open_and_sort_dir()
+
+On a slow filesystem or network filesystem this can make a huge
+difference.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=12571
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+---
+ source3/modules/vfs_dirsort.c | 61 +++++++++++++++++++++++++++----------------
+ 1 file changed, 38 insertions(+), 23 deletions(-)
+
+diff --git a/source3/modules/vfs_dirsort.c b/source3/modules/vfs_dirsort.c
+index 698e96b..66582e6 100644
+--- a/source3/modules/vfs_dirsort.c
++++ b/source3/modules/vfs_dirsort.c
+@@ -68,8 +68,10 @@ static bool get_sorted_dir_mtime(vfs_handle_struct *handle,
+ static bool open_and_sort_dir(vfs_handle_struct *handle,
+                               struct dirsort_privates *data)
+ {
+-      unsigned int i = 0;
+-      unsigned int total_count = 0;
++      uint32_t total_count = 0;
++      /* This should be enough for most use cases */
++      uint32_t dirent_allocated = 64;
++      SMB_STRUCT_DIRENT *dp;
+       data->number_of_entries = 0;
+@@ -77,38 +79,51 @@ static bool open_and_sort_dir(vfs_handle_struct *handle,
+               return false;
+       }
+-      while (SMB_VFS_NEXT_READDIR(handle, data->source_directory, NULL)
+-             != NULL) {
+-              total_count++;
+-      }
+-
+-      if (total_count == 0) {
++      dp = SMB_VFS_NEXT_READDIR(handle, data->source_directory, NULL);
++      if (dp == NULL) {
+               return false;
+       }
+-      /* Open the underlying directory and count the number of entries
+-         Skip back to the beginning as we'll read it again */
+-      SMB_VFS_NEXT_REWINDDIR(handle, data->source_directory);
+-
+       /* Set up an array and read the directory entries into it */
+       TALLOC_FREE(data->directory_list); /* destroy previous cache if needed */
+       data->directory_list = talloc_zero_array(data,
+                                                SMB_STRUCT_DIRENT,
+-                                               total_count);
+-      if (!data->directory_list) {
++                                               dirent_allocated);
++      if (data->directory_list == NULL) {
+               return false;
+       }
+-      for (i = 0; i < total_count; i++) {
+-              SMB_STRUCT_DIRENT *dp = SMB_VFS_NEXT_READDIR(handle,
+-                                              data->source_directory,
+-                                              NULL);
+-              if (dp == NULL) {
+-                      break;
++
++      do {
++              if (total_count >= dirent_allocated) {
++                      struct dirent *dlist;
++
++                      /*
++                       * Be memory friendly.
++                       *
++                       * We should not double the amount of memory. With a lot
++                       * of files we reach easily 50MB, and doubling will
++                       * get much bigger just for a few files more.
++                       *
++                       * For 200k files this means 50 memory reallocations.
++                       */
++                      dirent_allocated += 4096;
++
++                      dlist = talloc_realloc(data,
++                                             data->directory_list,
++                                             SMB_STRUCT_DIRENT,
++                                             dirent_allocated);
++                      if (dlist == NULL) {
++                              break;
++                      }
++                      data->directory_list = dlist;
+               }
+-              data->directory_list[i] = *dp;
+-      }
++              data->directory_list[total_count] = *dp;
++
++              total_count++;
++              dp = SMB_VFS_NEXT_READDIR(handle, data->source_directory, NULL);
++      } while (dp != NULL);
+-      data->number_of_entries = i;
++      data->number_of_entries = total_count;
+       /* Sort the directory entries by name */
+       TYPESAFE_QSORT(data->directory_list, data->number_of_entries, compare_dirent);
+-- 
+2.9.3
+
diff --git a/src/patches/samba/samba-3.6.99-fix_dropbox_share.patch b/src/patches/samba/samba-3.6.99-fix_dropbox_share.patch
new file mode 100644 (file)
index 0000000..564ecb4
--- /dev/null
@@ -0,0 +1,271 @@
+From 8f286450a223d002358f6dfe81b770fee86c3c85 Mon Sep 17 00:00:00 2001
+From: Volker Lendecke <vl@samba.org>
+Date: Tue, 3 Dec 2013 13:20:17 +0100
+Subject: [PATCH 1/3] PATCHSET15: smbd: Fix regression for the dropbox case.
+
+We need to allow to save a file to a directory with perm -wx.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=10297
+
+Signed-off-by: Volker Lendecke <vl@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+Reviewed-by: Andreas Schneider <asn@samba.org>
+(cherry picked from commit 5b49fe24c906cbae12beff7a1b45de6809258cab)
+---
+ source3/smbd/filename.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c
+index 8ef0c0a..ca19369 100644
+--- a/source3/smbd/filename.c
++++ b/source3/smbd/filename.c
+@@ -716,7 +716,10 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
+                                * here.
+                                */
+                               if (errno == EACCES) {
+-                                      if (ucf_flags & UCF_CREATING_FILE) {
++                                      if ((ucf_flags & UCF_CREATING_FILE) == 0) {
++                                              status = NT_STATUS_ACCESS_DENIED;
++                                              goto fail;
++                                      } else {
+                                               /*
+                                                * This is the dropbox
+                                                * behaviour. A dropbox is a
+@@ -728,11 +731,8 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
+                                                * nevertheless want to allow
+                                                * users creating a file.
+                                                */
+-                                              status = NT_STATUS_OBJECT_PATH_NOT_FOUND;
+-                                      } else {
+-                                              status = NT_STATUS_ACCESS_DENIED;
++                                              errno = 0;
+                                       }
+-                                      goto fail;
+                               }
+                               if ((errno != 0) && (errno != ENOENT)) {
+-- 
+1.9.3
+
+
+From 38674e8f208a7e8f2ead72266292f30b7ea33c87 Mon Sep 17 00:00:00 2001
+From: Jeremy Allison <jra@samba.org>
+Date: Tue, 3 Dec 2013 10:19:09 -0800
+Subject: [PATCH 2/3] PATCHSET15: smbd: change flag name from UCF_CREATING_FILE
+ to UCF_PREP_CREATEFILE
+
+In preparation to using it for all open calls.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=10297
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+Reviewed-by: Volker Lendecke <vl@samba.org>
+(cherry picked from commit 874318a97868e08837a1febb1be8e8a167b5ae0f)
+---
+ source3/include/smb.h      |  2 +-
+ source3/smbd/filename.c    |  2 +-
+ source3/smbd/nttrans.c     |  4 ++--
+ source3/smbd/reply.c       | 10 +++++-----
+ source3/smbd/smb2_create.c |  2 +-
+ 5 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/source3/include/smb.h b/source3/include/smb.h
+index 2d04373..559e061 100644
+--- a/source3/include/smb.h
++++ b/source3/include/smb.h
+@@ -1716,7 +1716,7 @@ struct smb_file_time {
+ #define UCF_COND_ALLOW_WCARD_LCOMP    0x00000004
+ #define UCF_POSIX_PATHNAMES           0x00000008
+ #define UCF_UNIX_NAME_LOOKUP          0x00000010
+-#define UCF_CREATING_FILE             0x00000020
++#define UCF_PREP_CREATEFILE           0x00000020
+ /*
+  * smb_filename
+diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c
+index ca19369..2e68e52 100644
+--- a/source3/smbd/filename.c
++++ b/source3/smbd/filename.c
+@@ -716,7 +716,7 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
+                                * here.
+                                */
+                               if (errno == EACCES) {
+-                                      if ((ucf_flags & UCF_CREATING_FILE) == 0) {
++                                      if ((ucf_flags & UCF_PREP_CREATEFILE) == 0) {
+                                               status = NT_STATUS_ACCESS_DENIED;
+                                               goto fail;
+                                       } else {
+diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
+index 4c145e0..f5da720 100644
+--- a/source3/smbd/nttrans.c
++++ b/source3/smbd/nttrans.c
+@@ -537,7 +537,7 @@ void reply_ntcreate_and_X(struct smb_request *req)
+                               req->flags2 & FLAGS2_DFS_PATHNAMES,
+                               fname,
+                               (create_disposition == FILE_CREATE)
+-                                      ? UCF_CREATING_FILE : 0,
++                                ? UCF_PREP_CREATEFILE : 0,
+                               NULL,
+                               &smb_fname);
+@@ -1167,7 +1167,7 @@ static void call_nt_transact_create(connection_struct *conn,
+                               req->flags2 & FLAGS2_DFS_PATHNAMES,
+                               fname,
+                               (create_disposition == FILE_CREATE)
+-                                      ? UCF_CREATING_FILE : 0,
++                                ? UCF_PREP_CREATEFILE : 0,
+                               NULL,
+                               &smb_fname);
+diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
+index 0585a6e..8478031 100644
+--- a/source3/smbd/reply.c
++++ b/source3/smbd/reply.c
+@@ -1761,7 +1761,7 @@ void reply_open(struct smb_request *req)
+                               req->flags2 & FLAGS2_DFS_PATHNAMES,
+                               fname,
+                               (create_disposition == FILE_CREATE)
+-                                      ? UCF_CREATING_FILE : 0,
++                                ? UCF_PREP_CREATEFILE : 0,
+                               NULL,
+                               &smb_fname);
+       if (!NT_STATUS_IS_OK(status)) {
+@@ -1939,7 +1939,7 @@ void reply_open_and_X(struct smb_request *req)
+                               req->flags2 & FLAGS2_DFS_PATHNAMES,
+                               fname,
+                               (create_disposition == FILE_CREATE)
+-                                      ? UCF_CREATING_FILE : 0,
++                                ? UCF_PREP_CREATEFILE : 0,
+                               NULL,
+                               &smb_fname);
+       if (!NT_STATUS_IS_OK(status)) {
+@@ -2147,7 +2147,7 @@ void reply_mknew(struct smb_request *req)
+                               conn,
+                               req->flags2 & FLAGS2_DFS_PATHNAMES,
+                               fname,
+-                              UCF_CREATING_FILE,
++                              UCF_PREP_CREATEFILE,
+                               NULL,
+                               &smb_fname);
+       if (!NT_STATUS_IS_OK(status)) {
+@@ -2288,7 +2288,7 @@ void reply_ctemp(struct smb_request *req)
+               status = filename_convert(ctx, conn,
+                               req->flags2 & FLAGS2_DFS_PATHNAMES,
+                               fname,
+-                              UCF_CREATING_FILE,
++                              UCF_PREP_CREATEFILE,
+                               NULL,
+                               &smb_fname);
+               if (!NT_STATUS_IS_OK(status)) {
+@@ -5541,7 +5541,7 @@ void reply_mkdir(struct smb_request *req)
+       status = filename_convert(ctx, conn,
+                                req->flags2 & FLAGS2_DFS_PATHNAMES,
+                                directory,
+-                               UCF_CREATING_FILE,
++                               UCF_PREP_CREATEFILE,
+                                NULL,
+                                &smb_dname);
+       if (!NT_STATUS_IS_OK(status)) {
+diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c
+index 0862990..cd15852 100644
+--- a/source3/smbd/smb2_create.c
++++ b/source3/smbd/smb2_create.c
+@@ -695,7 +695,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
+                                         smb1req->flags2 & FLAGS2_DFS_PATHNAMES,
+                                         fname,
+                                         (in_create_disposition == FILE_CREATE) ?
+-                                              UCF_CREATING_FILE : 0,
++                                                UCF_PREP_CREATEFILE : 0,
+                                         NULL,
+                                         &smb_fname);
+               if (!NT_STATUS_IS_OK(status)) {
+-- 
+1.9.3
+
+
+From d3fb56a7239ef4173ff13f2fec2beb44402dee6b Mon Sep 17 00:00:00 2001
+From: Jeremy Allison <jra@samba.org>
+Date: Tue, 3 Dec 2013 10:21:16 -0800
+Subject: [PATCH 3/3] PATCHSET15: smbd: Always use UCF_PREP_CREATEFILE for
+ filename_convert calls to resolve a path for open.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=10297
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+Reviewed-by: Volker Lendecke <vl@samba.org>
+
+Autobuild-User(master): Jeremy Allison <jra@samba.org>
+Autobuild-Date(master): Mon Dec  9 21:02:21 CET 2013 on sn-devel-104
+
+(cherry picked from commit f98d10af2a05f0261611f4cabdfe274cd9fe91c0)
+---
+ source3/smbd/nttrans.c     | 6 ++----
+ source3/smbd/reply.c       | 6 ++----
+ source3/smbd/smb2_create.c | 3 +--
+ 3 files changed, 5 insertions(+), 10 deletions(-)
+
+diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
+index f5da720..f7d9b9d 100644
+--- a/source3/smbd/nttrans.c
++++ b/source3/smbd/nttrans.c
+@@ -536,8 +536,7 @@ void reply_ntcreate_and_X(struct smb_request *req)
+                               conn,
+                               req->flags2 & FLAGS2_DFS_PATHNAMES,
+                               fname,
+-                              (create_disposition == FILE_CREATE)
+-                                ? UCF_PREP_CREATEFILE : 0,
++                              UCF_PREP_CREATEFILE,
+                               NULL,
+                               &smb_fname);
+@@ -1166,8 +1165,7 @@ static void call_nt_transact_create(connection_struct *conn,
+                               conn,
+                               req->flags2 & FLAGS2_DFS_PATHNAMES,
+                               fname,
+-                              (create_disposition == FILE_CREATE)
+-                                ? UCF_PREP_CREATEFILE : 0,
++                              UCF_PREP_CREATEFILE,
+                               NULL,
+                               &smb_fname);
+diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
+index 8478031..1583c23 100644
+--- a/source3/smbd/reply.c
++++ b/source3/smbd/reply.c
+@@ -1760,8 +1760,7 @@ void reply_open(struct smb_request *req)
+                               conn,
+                               req->flags2 & FLAGS2_DFS_PATHNAMES,
+                               fname,
+-                              (create_disposition == FILE_CREATE)
+-                                ? UCF_PREP_CREATEFILE : 0,
++                              UCF_PREP_CREATEFILE,
+                               NULL,
+                               &smb_fname);
+       if (!NT_STATUS_IS_OK(status)) {
+@@ -1938,8 +1937,7 @@ void reply_open_and_X(struct smb_request *req)
+                               conn,
+                               req->flags2 & FLAGS2_DFS_PATHNAMES,
+                               fname,
+-                              (create_disposition == FILE_CREATE)
+-                                ? UCF_PREP_CREATEFILE : 0,
++                              UCF_PREP_CREATEFILE,
+                               NULL,
+                               &smb_fname);
+       if (!NT_STATUS_IS_OK(status)) {
+diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c
+index cd15852..d0cda33 100644
+--- a/source3/smbd/smb2_create.c
++++ b/source3/smbd/smb2_create.c
+@@ -694,8 +694,7 @@ static struct tevent_req *smbd_smb2_create_send(TALLOC_CTX *mem_ctx,
+                                         smb1req->conn,
+                                         smb1req->flags2 & FLAGS2_DFS_PATHNAMES,
+                                         fname,
+-                                        (in_create_disposition == FILE_CREATE) ?
+-                                                UCF_PREP_CREATEFILE : 0,
++                                        UCF_PREP_CREATEFILE,
+                                         NULL,
+                                         &smb_fname);
+               if (!NT_STATUS_IS_OK(status)) {
+-- 
+1.9.3
+
diff --git a/src/patches/samba/samba-3.6.99-fix_force_group.patch b/src/patches/samba/samba-3.6.99-fix_force_group.patch
new file mode 100644 (file)
index 0000000..2d4bb95
--- /dev/null
@@ -0,0 +1,68 @@
+From a502759e2e20e8001355b26d1e974a7116d78b92 Mon Sep 17 00:00:00 2001
+From: Justin Maggard <jmaggard@netgear.com>
+Date: Tue, 21 Jul 2015 15:17:30 -0700
+Subject: [PATCH] PATCHSET27: s3-passdb: Respect LOOKUP_NAME_GROUP flag in sid
+ lookup.
+
+Somewhere along the line, a config line like "valid users = @foo"
+broke when "foo" also exists as a user.
+
+user_ok_token() already does the right thing by adding the LOOKUP_NAME_GROUP
+flag; but lookup_name() was not respecting that flag, and went ahead and looked
+for users anyway.
+
+Regression test to follow.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11320
+
+Signed-off-by: Justin Maggard <jmaggard@netgear.com>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+Reviewed-by: Marc Muehlfeld <mmuehlfeld@samba.org>
+
+Autobuild-User(master): Jeremy Allison <jra@samba.org>
+Autobuild-Date(master): Tue Jul 28 21:35:58 CEST 2015 on sn-devel-104
+
+(cherry picked from commit dc99d451bf23668d73878847219682fced547622)
+---
+ source3/passdb/lookup_sid.c | 4 ++--
+ source3/passdb/lookup_sid.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/source3/passdb/lookup_sid.c b/source3/passdb/lookup_sid.c
+index dcc2911..18d0e37 100644
+--- a/source3/passdb/lookup_sid.c
++++ b/source3/passdb/lookup_sid.c
+@@ -119,7 +119,7 @@ bool lookup_name(TALLOC_CTX *mem_ctx,
+                       goto ok;
+       }
+-      if (((flags & LOOKUP_NAME_NO_NSS) == 0)
++      if (((flags & (LOOKUP_NAME_NO_NSS|LOOKUP_NAME_GROUP)) == 0)
+           && strequal(domain, unix_users_domain_name())) {
+               if (lookup_unix_user_name(name, &sid)) {
+                       type = SID_NAME_USER;
+@@ -292,7 +292,7 @@ bool lookup_name(TALLOC_CTX *mem_ctx,
+       /* 11. Ok, windows would end here. Samba has two more options:
+                Unmapped users and unmapped groups */
+-      if (((flags & LOOKUP_NAME_NO_NSS) == 0)
++      if (((flags & (LOOKUP_NAME_NO_NSS|LOOKUP_NAME_GROUP)) == 0)
+           && lookup_unix_user_name(name, &sid)) {
+               domain = talloc_strdup(tmp_ctx, unix_users_domain_name());
+               type = SID_NAME_USER;
+diff --git a/source3/passdb/lookup_sid.h b/source3/passdb/lookup_sid.h
+index b2f5cf5..4b26e0a 100644
+--- a/source3/passdb/lookup_sid.h
++++ b/source3/passdb/lookup_sid.h
+@@ -29,7 +29,7 @@
+ #define LOOKUP_NAME_NONE              0x00000000
+ #define LOOKUP_NAME_ISOLATED             0x00000001  /* Look up unqualified names */
+ #define LOOKUP_NAME_REMOTE               0x00000002  /* Ask others */
+-#define LOOKUP_NAME_GROUP                0x00000004  /* (unused) This is a NASTY hack for
++#define LOOKUP_NAME_GROUP                0x00000004  /* This is a NASTY hack for
+                                                       valid users = @foo where foo also
+                                                       exists in as user. */
+ #define LOOKUP_NAME_NO_NSS             0x00000008  /* no NSS calls to avoid
+-- 
+2.5.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_force_user_winbind_default_domain.patch b/src/patches/samba/samba-3.6.99-fix_force_user_winbind_default_domain.patch
new file mode 100644 (file)
index 0000000..6552e1a
--- /dev/null
@@ -0,0 +1,58 @@
+From 4d187b353d77761d40b04b8451f7ebe11fc8fab8 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Tue, 31 Mar 2015 18:15:51 +0200
+Subject: [PATCH] PATCHSET24: s3-passdb: Fix 'force user' with winbind default
+ domain
+
+If we set 'winbind use default domain' and specify 'force user = user'
+without a domain name we fail to log in. In this case we need to try a
+lookup with the domain name.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11185
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+
+(cherry picked from commit cd4442c7ac93e165862c9195a7c345472646aa59)
+---
+ source3/passdb/lookup_sid.c | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+diff --git a/source3/passdb/lookup_sid.c b/source3/passdb/lookup_sid.c
+index 64a181e..dcc2911 100644
+--- a/source3/passdb/lookup_sid.c
++++ b/source3/passdb/lookup_sid.c
+@@ -391,6 +391,30 @@ bool lookup_name_smbconf(TALLOC_CTX *mem_ctx,
+                               ret_sid, ret_type);
+       }
++      /* Try with winbind default domain name. */
++      if (lp_winbind_use_default_domain()) {
++              bool ok;
++
++              qualified_name = talloc_asprintf(mem_ctx,
++                                               "%s\\%s",
++                                               lp_workgroup(),
++                                               full_name);
++              if (qualified_name == NULL) {
++                      return false;
++              }
++
++              ok = lookup_name(mem_ctx,
++                               qualified_name,
++                               flags,
++                               ret_domain,
++                               ret_name,
++                               ret_sid,
++                               ret_type);
++              if (ok) {
++                      return true;
++              }
++      }
++
+       /* Try with our own SAM name. */
+       qualified_name = talloc_asprintf(mem_ctx, "%s\\%s",
+                               get_global_sam_name(),
+-- 
+2.1.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_force_user_with_security_ads.patch b/src/patches/samba/samba-3.6.99-fix_force_user_with_security_ads.patch
new file mode 100644 (file)
index 0000000..cd732b0
--- /dev/null
@@ -0,0 +1,1292 @@
+From 77942b3569d379a097b2f7c58203d0379fd80ddc Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Mon, 16 Dec 2013 12:57:20 +0100
+Subject: [PATCH 1/6] s3-lib: Add winbind_lookup_usersids().
+
+Pair-Programmed-With: Guenther Deschner <gd@samba.org>
+Signed-off-by: Guenther Deschner <gd@samba.org>
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Andrew Bartlett <abartlet@samba.org>
+---
+ source3/lib/winbind_util.c | 34 ++++++++++++++++++++++++++++++++++
+ source3/lib/winbind_util.h |  4 ++++
+ 2 files changed, 38 insertions(+)
+
+diff --git a/source3/lib/winbind_util.c b/source3/lib/winbind_util.c
+index f30bcfc..758fe73 100644
+--- a/source3/lib/winbind_util.c
++++ b/source3/lib/winbind_util.c
+@@ -342,6 +342,40 @@ bool winbind_get_sid_aliases(TALLOC_CTX *mem_ctx,
+       return true;
+ }
++bool winbind_lookup_usersids(TALLOC_CTX *mem_ctx,
++                           const struct dom_sid *user_sid,
++                           uint32_t *p_num_sids,
++                           struct dom_sid **p_sids)
++{
++      wbcErr ret;
++      struct wbcDomainSid dom_sid;
++      struct wbcDomainSid *sid_list = NULL;
++      uint32_t num_sids;
++
++      memcpy(&dom_sid, user_sid, sizeof(dom_sid));
++
++      ret = wbcLookupUserSids(&dom_sid,
++                              false,
++                              &num_sids,
++                              &sid_list);
++      if (ret != WBC_ERR_SUCCESS) {
++              return false;
++      }
++
++      *p_sids = talloc_array(mem_ctx, struct dom_sid, num_sids);
++      if (*p_sids == NULL) {
++              wbcFreeMemory(sid_list);
++              return false;
++      }
++
++      memcpy(*p_sids, sid_list, sizeof(dom_sid) * num_sids);
++
++      *p_num_sids = num_sids;
++      wbcFreeMemory(sid_list);
++
++      return true;
++}
++
+ #else      /* WITH_WINBIND */
+ struct passwd * winbind_getpwnam(const char * name)
+diff --git a/source3/lib/winbind_util.h b/source3/lib/winbind_util.h
+index 541bb95..abbc5a9 100644
+--- a/source3/lib/winbind_util.h
++++ b/source3/lib/winbind_util.h
+@@ -58,5 +58,9 @@ bool winbind_get_sid_aliases(TALLOC_CTX *mem_ctx,
+                            size_t num_members,
+                            uint32_t **pp_alias_rids,
+                            size_t *p_num_alias_rids);
++bool winbind_lookup_usersids(TALLOC_CTX *mem_ctx,
++                           const struct dom_sid *user_sid,
++                           uint32_t *p_num_sids,
++                           struct dom_sid **p_sids);
+ #endif /* __LIB__WINBIND_UTIL_H__ */
+-- 
+1.8.5.3
+
+
+From a776571e344110b89340f5008bed869763aa4dff Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Fri, 13 Dec 2013 19:08:34 +0100
+Subject: [PATCH 2/6] s3-auth: Add passwd_to_SamInfo3().
+
+First this function tries to contacts winbind if the user is a domain
+user to get valid information about it. If winbind isn't running it will
+try to create everything from the passwd struct. This is not always
+reliable but works in most cases. It improves the current situation
+which doesn't talk to winbind at all.
+
+Pair-Programmed-With: Guenther Deschner <gd@samba.org>
+Signed-off-by: Guenther Deschner <gd@samba.org>
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Andrew Bartlett <abartlet@samba.org>
+---
+ source3/auth/proto.h       |   4 ++
+ source3/auth/server_info.c | 116 +++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 120 insertions(+)
+
+diff --git a/source3/auth/proto.h b/source3/auth/proto.h
+index 3d1fa06..c5a9647 100644
+--- a/source3/auth/proto.h
++++ b/source3/auth/proto.h
+@@ -225,6 +225,10 @@ NTSTATUS samu_to_SamInfo3(TALLOC_CTX *mem_ctx,
+                         const char *login_server,
+                         struct netr_SamInfo3 **_info3,
+                         struct extra_auth_info *extra);
++NTSTATUS passwd_to_SamInfo3(TALLOC_CTX *mem_ctx,
++                          const char *unix_username,
++                          const struct passwd *pwd,
++                          struct netr_SamInfo3 **pinfo3);
+ struct netr_SamInfo3 *copy_netr_SamInfo3(TALLOC_CTX *mem_ctx,
+                                        struct netr_SamInfo3 *orig);
+ struct netr_SamInfo3 *wbcAuthUserInfo_to_netr_SamInfo3(TALLOC_CTX *mem_ctx,
+diff --git a/source3/auth/server_info.c b/source3/auth/server_info.c
+index 90b3ed6..32ffd3a 100644
+--- a/source3/auth/server_info.c
++++ b/source3/auth/server_info.c
+@@ -24,6 +24,7 @@
+ #include "../libcli/security/security.h"
+ #include "rpc_client/util_netlogon.h"
+ #include "nsswitch/libwbclient/wbclient.h"
++#include "lib/winbind_util.h"
+ #include "passdb.h"
+ #undef DBGC_CLASS
+@@ -476,6 +477,121 @@ NTSTATUS samu_to_SamInfo3(TALLOC_CTX *mem_ctx,
+       return NT_STATUS_OK;
+ }
++NTSTATUS passwd_to_SamInfo3(TALLOC_CTX *mem_ctx,
++                          const char *unix_username,
++                          const struct passwd *pwd,
++                          struct netr_SamInfo3 **pinfo3)
++{
++      struct netr_SamInfo3 *info3;
++      NTSTATUS status;
++      TALLOC_CTX *tmp_ctx;
++      const char *domain_name = NULL;
++      const char *user_name = NULL;
++      struct dom_sid domain_sid;
++      struct dom_sid user_sid;
++      struct dom_sid group_sid;
++      enum lsa_SidType type;
++      uint32_t num_sids = 0;
++      struct dom_sid *user_sids = NULL;
++      bool ok;
++
++      tmp_ctx = talloc_stackframe();
++
++      ok = lookup_name_smbconf(tmp_ctx,
++                               unix_username,
++                               LOOKUP_NAME_ALL,
++                               &domain_name,
++                               &user_name,
++                               &user_sid,
++                               &type);
++      if (!ok) {
++              status = NT_STATUS_NO_SUCH_USER;
++              goto done;
++      }
++
++      if (type != SID_NAME_USER) {
++              status = NT_STATUS_NO_SUCH_USER;
++              goto done;
++      }
++
++      ok = winbind_lookup_usersids(tmp_ctx,
++                                   &user_sid,
++                                   &num_sids,
++                                   &user_sids);
++      /* Check if winbind is running */
++      if (ok) {
++              /*
++               * Winbind is running and the first element of the user_sids
++               * is the primary group.
++               */
++              if (num_sids > 0) {
++                      group_sid = user_sids[0];
++              }
++      } else {
++              /*
++               * Winbind is not running, create the group_sid from the
++               * group id.
++               */
++              gid_to_sid(&group_sid, pwd->pw_gid);
++      }
++
++      /* Make sure we have a valid group sid */
++      ok = !is_null_sid(&group_sid);
++      if (!ok) {
++              status = NT_STATUS_NO_SUCH_USER;
++              goto done;
++      }
++
++      /* Construct a netr_SamInfo3 from the information we have */
++      info3 = talloc_zero(tmp_ctx, struct netr_SamInfo3);
++      if (!info3) {
++              status = NT_STATUS_NO_MEMORY;
++              goto done;
++      }
++
++      info3->base.account_name.string = talloc_strdup(info3, unix_username);
++      if (info3->base.account_name.string == NULL) {
++              status = NT_STATUS_NO_MEMORY;
++              goto done;
++      }
++
++      ZERO_STRUCT(domain_sid);
++
++      sid_copy(&domain_sid, &user_sid);
++      sid_split_rid(&domain_sid, &info3->base.rid);
++      info3->base.domain_sid = dom_sid_dup(info3, &domain_sid);
++
++      ok = sid_peek_check_rid(&domain_sid, &group_sid,
++                              &info3->base.primary_gid);
++      if (!ok) {
++              DEBUG(1, ("The primary group domain sid(%s) does not "
++                        "match the domain sid(%s) for %s(%s)\n",
++                        sid_string_dbg(&group_sid),
++                        sid_string_dbg(&domain_sid),
++                        unix_username,
++                        sid_string_dbg(&user_sid)));
++              status = NT_STATUS_INVALID_SID;
++              goto done;
++      }
++
++      info3->base.acct_flags = ACB_NORMAL;
++
++      if (num_sids) {
++              status = group_sids_to_info3(info3, user_sids, num_sids);
++              if (!NT_STATUS_IS_OK(status)) {
++                      goto done;
++              }
++      }
++
++      *pinfo3 = talloc_steal(mem_ctx, info3);
++
++      status = NT_STATUS_OK;
++done:
++      talloc_free(tmp_ctx);
++
++      return status;
++}
++
+ #undef RET_NOMEM
+ #define RET_NOMEM(ptr) do { \
+-- 
+1.8.5.3
+
+
+From de5914820e7e8665036411061911a9a5ed06a673 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Fri, 13 Dec 2013 19:11:01 +0100
+Subject: [PATCH 3/6] s3-auth: Pass talloc context to make_server_info_pw().
+
+Pair-Programmed-With: Guenther Deschner <gd@samba.org>
+Signed-off-by: Guenther Deschner <gd@samba.org>
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Andrew Bartlett <abartlet@samba.org>
+---
+ source3/auth/auth_server.c |  5 ++++-
+ source3/auth/auth_unix.c   |  7 +++++--
+ source3/auth/auth_util.c   | 51 ++++++++++++++++++++++++++--------------------
+ source3/auth/proto.h       |  9 ++++----
+ source3/auth/user_krb5.c   |  2 +-
+ 5 files changed, 44 insertions(+), 30 deletions(-)
+
+diff --git a/source3/auth/auth_server.c b/source3/auth/auth_server.c
+index fdd7671..969caad 100644
+--- a/source3/auth/auth_server.c
++++ b/source3/auth/auth_server.c
+@@ -448,7 +448,10 @@ use this machine as the password server.\n"));
+               if ( (pass = smb_getpwnam(talloc_tos(), user_info->mapped.account_name,
+                       &real_username, True )) != NULL )
+               {
+-                      nt_status = make_server_info_pw(server_info, pass->pw_name, pass);
++                      nt_status = make_server_info_pw(mem_ctx,
++                                                      pass->pw_name,
++                                                      pass,
++                                                      server_info);
+                       TALLOC_FREE(pass);
+                       TALLOC_FREE(real_username);
+               }
+diff --git a/source3/auth/auth_unix.c b/source3/auth/auth_unix.c
+index 086c39e..d6ef547 100644
+--- a/source3/auth/auth_unix.c
++++ b/source3/auth/auth_unix.c
+@@ -56,8 +56,11 @@ static NTSTATUS check_unix_security(const struct auth_context *auth_context,
+       unbecome_root();
+       if (NT_STATUS_IS_OK(nt_status)) {
+-              if (pass) {
+-                      make_server_info_pw(server_info, pass->pw_name, pass);
++              if (pass != NULL) {
++                      nt_status = make_server_info_pw(mem_ctx,
++                                                      pass->pw_name,
++                                                      pass,
++                                                      server_info);
+               } else {
+                       /* we need to do somthing more useful here */
+                       nt_status = NT_STATUS_NO_SUCH_USER;
+diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c
+index 288f461..3aa229d 100644
+--- a/source3/auth/auth_util.c
++++ b/source3/auth/auth_util.c
+@@ -555,14 +555,15 @@ NTSTATUS create_local_token(struct auth_serversupplied_info *server_info)
+  to a struct samu
+ ***************************************************************************/
+-NTSTATUS make_server_info_pw(struct auth_serversupplied_info **server_info,
+-                             char *unix_username,
+-                           struct passwd *pwd)
++NTSTATUS make_server_info_pw(TALLOC_CTX *mem_ctx,
++                           const char *unix_username,
++                           const struct passwd *pwd,
++                           struct auth_serversupplied_info **server_info)
+ {
+       NTSTATUS status;
+       struct samu *sampass = NULL;
+       char *qualified_name = NULL;
+-      TALLOC_CTX *mem_ctx = NULL;
++      TALLOC_CTX *tmp_ctx;
+       struct dom_sid u_sid;
+       enum lsa_SidType type;
+       struct auth_serversupplied_info *result;
+@@ -580,27 +581,27 @@ NTSTATUS make_server_info_pw(struct auth_serversupplied_info **server_info,
+        * plaintext passwords were used with no SAM backend.
+        */
+-      mem_ctx = talloc_init("make_server_info_pw_tmp");
+-      if (!mem_ctx) {
++      tmp_ctx = talloc_stackframe();
++      if (tmp_ctx == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+-      qualified_name = talloc_asprintf(mem_ctx, "%s\\%s",
++      qualified_name = talloc_asprintf(tmp_ctx, "%s\\%s",
+                                       unix_users_domain_name(),
+                                       unix_username );
+       if (!qualified_name) {
+-              TALLOC_FREE(mem_ctx);
++              TALLOC_FREE(tmp_ctx);
+               return NT_STATUS_NO_MEMORY;
+       }
+-      if (!lookup_name(mem_ctx, qualified_name, LOOKUP_NAME_ALL,
++      if (!lookup_name(tmp_ctx, qualified_name, LOOKUP_NAME_ALL,
+                                               NULL, NULL,
+                                               &u_sid, &type)) {
+-              TALLOC_FREE(mem_ctx);
++              TALLOC_FREE(tmp_ctx);
+               return NT_STATUS_NO_SUCH_USER;
+       }
+-      TALLOC_FREE(mem_ctx);
++      TALLOC_FREE(tmp_ctx);
+       if (type != SID_NAME_USER) {
+               return NT_STATUS_NO_SUCH_USER;
+@@ -623,7 +624,7 @@ NTSTATUS make_server_info_pw(struct auth_serversupplied_info **server_info,
+       /* set the user sid to be the calculated u_sid */
+       pdb_set_user_sid(sampass, &u_sid, PDB_SET);
+-      result = make_server_info(NULL);
++      result = make_server_info(mem_ctx);
+       if (result == NULL) {
+               TALLOC_FREE(sampass);
+               return NT_STATUS_NO_MEMORY;
+@@ -908,37 +909,43 @@ NTSTATUS make_serverinfo_from_username(TALLOC_CTX *mem_ctx,
+ {
+       struct auth_serversupplied_info *result;
+       struct passwd *pwd;
++      TALLOC_CTX *tmp_ctx;
+       NTSTATUS status;
+-      pwd = Get_Pwnam_alloc(talloc_tos(), username);
+-      if (pwd == NULL) {
+-              return NT_STATUS_NO_SUCH_USER;
++      tmp_ctx = talloc_stackframe();
++      if (tmp_ctx == NULL) {
++              return NT_STATUS_NO_MEMORY;
+       }
+-      status = make_server_info_pw(&result, pwd->pw_name, pwd);
+-
+-      TALLOC_FREE(pwd);
++      pwd = Get_Pwnam_alloc(tmp_ctx, username);
++      if (pwd == NULL) {
++              status = NT_STATUS_NO_SUCH_USER;
++              goto done;
++      }
++      status = make_server_info_pw(tmp_ctx, pwd->pw_name, pwd, &result);
+       if (!NT_STATUS_IS_OK(status)) {
+-              return status;
++              goto done;
+       }
+       result->nss_token = true;
+       result->guest = is_guest;
+       if (use_guest_token) {
+-              status = make_server_info_guest(mem_ctx, &result);
++              status = make_server_info_guest(tmp_ctx, &result);
+       } else {
+               status = create_local_token(result);
+       }
++      *presult = talloc_steal(mem_ctx, result);
++done:
++      talloc_free(tmp_ctx);
+       if (!NT_STATUS_IS_OK(status)) {
+               TALLOC_FREE(result);
+               return status;
+       }
+-      *presult = talloc_steal(mem_ctx, result);
+-      return NT_STATUS_OK;
++      return status;
+ }
+diff --git a/source3/auth/proto.h b/source3/auth/proto.h
+index c5a9647..50a27cf 100644
+--- a/source3/auth/proto.h
++++ b/source3/auth/proto.h
+@@ -144,14 +144,15 @@ NTSTATUS create_token_from_username(TALLOC_CTX *mem_ctx, const char *username,
+ bool user_in_group_sid(const char *username, const struct dom_sid *group_sid);
+ bool user_in_group(const char *username, const char *groupname);
+ struct passwd;
+-NTSTATUS make_server_info_pw(struct auth_serversupplied_info **server_info,
+-                             char *unix_username,
+-                           struct passwd *pwd);
++NTSTATUS make_server_info_pw(TALLOC_CTX *mem_ctx,
++                           const char *unix_username,
++                           const struct passwd *pwd,
++                           struct auth_serversupplied_info **server_info);
+ NTSTATUS make_serverinfo_from_username(TALLOC_CTX *mem_ctx,
+                                      const char *username,
+                                      bool use_guest_token,
+                                      bool is_guest,
+-                                     struct auth_serversupplied_info **presult);
++                                     struct auth_serversupplied_info **session_info);
+ struct auth_serversupplied_info *copy_serverinfo(TALLOC_CTX *mem_ctx,
+                                                const struct auth_serversupplied_info *src);
+ bool init_guest_info(void);
+diff --git a/source3/auth/user_krb5.c b/source3/auth/user_krb5.c
+index e52149a..1214b45 100644
+--- a/source3/auth/user_krb5.c
++++ b/source3/auth/user_krb5.c
+@@ -238,7 +238,7 @@ NTSTATUS make_server_info_krb5(TALLOC_CTX *mem_ctx,
+                        */
+                       DEBUG(10, ("didn't find user %s in passdb, calling "
+                                  "make_server_info_pw\n", username));
+-                      status = make_server_info_pw(&tmp, username, pw);
++                      status = make_server_info_pw(mem_ctx, username, pw, &tmp);
+               }
+               TALLOC_FREE(sampass);
+-- 
+1.8.5.3
+
+
+From 840b5b996a719922a1fdaa5ee2188a4d4c60f345 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Fri, 13 Dec 2013 19:19:02 +0100
+Subject: [PATCH 4/6] s3-auth: Use passwd_to_SamInfo3().
+
+Correctly lookup users which come from smb.conf. passwd_to_SamInfo3()
+tries to contact winbind if the user is a domain user to get
+valid information about it. If winbind isn't running it will try to
+create everything from the passwd struct. This is not always reliable
+but works in most cases. It improves the current situation which doesn't
+talk to winbind at all.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=8598
+
+Pair-Programmed-With: Guenther Deschner <gd@samba.org>
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Andrew Bartlett <abartlet@samba.org>
+
+Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
+Autobuild-Date(master): Wed Feb  5 01:40:38 CET 2014 on sn-devel-104
+---
+ source3/auth/auth_util.c   | 91 +++++++++-------------------------------------
+ source3/auth/server_info.c | 22 ++++++++++-
+ 2 files changed, 37 insertions(+), 76 deletions(-)
+
+diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c
+index 3aa229d..5ffdb25f 100644
+--- a/source3/auth/auth_util.c
++++ b/source3/auth/auth_util.c
+@@ -561,100 +561,43 @@ NTSTATUS make_server_info_pw(TALLOC_CTX *mem_ctx,
+                            struct auth_serversupplied_info **server_info)
+ {
+       NTSTATUS status;
+-      struct samu *sampass = NULL;
+-      char *qualified_name = NULL;
+-      TALLOC_CTX *tmp_ctx;
+-      struct dom_sid u_sid;
+-      enum lsa_SidType type;
++      TALLOC_CTX *tmp_ctx = NULL;
+       struct auth_serversupplied_info *result;
+-      /*
+-       * The SID returned in server_info->sam_account is based
+-       * on our SAM sid even though for a pure UNIX account this should
+-       * not be the case as it doesn't really exist in the SAM db.
+-       * This causes lookups on "[in]valid users" to fail as they
+-       * will lookup this name as a "Unix User" SID to check against
+-       * the user token. Fix this by adding the "Unix User"\unix_username
+-       * SID to the sid array. The correct fix should probably be
+-       * changing the server_info->sam_account user SID to be a
+-       * S-1-22 Unix SID, but this might break old configs where
+-       * plaintext passwords were used with no SAM backend.
+-       */
+-
+       tmp_ctx = talloc_stackframe();
+       if (tmp_ctx == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+-      qualified_name = talloc_asprintf(tmp_ctx, "%s\\%s",
+-                                      unix_users_domain_name(),
+-                                      unix_username );
+-      if (!qualified_name) {
+-              TALLOC_FREE(tmp_ctx);
+-              return NT_STATUS_NO_MEMORY;
+-      }
+-
+-      if (!lookup_name(tmp_ctx, qualified_name, LOOKUP_NAME_ALL,
+-                                              NULL, NULL,
+-                                              &u_sid, &type)) {
+-              TALLOC_FREE(tmp_ctx);
+-              return NT_STATUS_NO_SUCH_USER;
+-      }
+-
+-      TALLOC_FREE(tmp_ctx);
+-
+-      if (type != SID_NAME_USER) {
+-              return NT_STATUS_NO_SUCH_USER;
+-      }
+-
+-      if ( !(sampass = samu_new( NULL )) ) {
+-              return NT_STATUS_NO_MEMORY;
+-      }
+-
+-      status = samu_set_unix( sampass, pwd );
+-      if (!NT_STATUS_IS_OK(status)) {
+-              return status;
+-      }
+-
+-      /* In pathological cases the above call can set the account
+-       * name to the DOMAIN\username form. Reset the account name
+-       * using unix_username */
+-      pdb_set_username(sampass, unix_username, PDB_SET);
+-
+-      /* set the user sid to be the calculated u_sid */
+-      pdb_set_user_sid(sampass, &u_sid, PDB_SET);
+-
+-      result = make_server_info(mem_ctx);
++      result = make_server_info(tmp_ctx);
+       if (result == NULL) {
+-              TALLOC_FREE(sampass);
+-              return NT_STATUS_NO_MEMORY;
++              status = NT_STATUS_NO_MEMORY;
++              goto done;
+       }
+-      status = samu_to_SamInfo3(result, sampass, global_myname(),
+-                                &result->info3, &result->extra);
+-      TALLOC_FREE(sampass);
++      status = passwd_to_SamInfo3(result,
++                                  unix_username,
++                                  pwd,
++                                  &result->info3);
+       if (!NT_STATUS_IS_OK(status)) {
+-              DEBUG(10, ("Failed to convert samu to info3: %s\n",
+-                         nt_errstr(status)));
+-              TALLOC_FREE(result);
+-              return status;
++              goto done;
+       }
+       result->unix_name = talloc_strdup(result, unix_username);
+-      result->sanitized_username = sanitize_username(result, unix_username);
+-
+-      if ((result->unix_name == NULL)
+-          || (result->sanitized_username == NULL)) {
+-              TALLOC_FREE(result);
+-              return NT_STATUS_NO_MEMORY;
++      if (result->unix_name == NULL) {
++              status = NT_STATUS_NO_MEMORY;
++              goto done;
+       }
+       result->utok.uid = pwd->pw_uid;
+       result->utok.gid = pwd->pw_gid;
+-      *server_info = result;
++      *server_info = talloc_steal(mem_ctx, result);
++      status = NT_STATUS_OK;
++done:
++      talloc_free(tmp_ctx);
+-      return NT_STATUS_OK;
++      return status;
+ }
+ static NTSTATUS get_system_info3(TALLOC_CTX *mem_ctx,
+diff --git a/source3/auth/server_info.c b/source3/auth/server_info.c
+index 32ffd3a..077bb6b 100644
+--- a/source3/auth/server_info.c
++++ b/source3/auth/server_info.c
+@@ -529,10 +529,28 @@ NTSTATUS passwd_to_SamInfo3(TALLOC_CTX *mem_ctx,
+               }
+       } else {
+               /*
+-               * Winbind is not running, create the group_sid from the
+-               * group id.
++               * Winbind is not running, try to create the group_sid from the
++               * passwd group id.
++               */
++
++              /*
++               * This can lead to a primary group of S-1-22-2-XX which
++               * will be rejected by other Samba code.
+                */
+               gid_to_sid(&group_sid, pwd->pw_gid);
++
++              ZERO_STRUCT(domain_sid);
++
++              /*
++               * If we are a unix group, set the group_sid to the
++               * 'Domain Users' RID of 513 which will always resolve to a
++               * name.
++               */
++              if (sid_check_is_in_unix_groups(&group_sid)) {
++                      sid_compose(&group_sid,
++                                  get_global_sam_sid(),
++                                  DOMAIN_RID_USERS);
++              }
+       }
+       /* Make sure we have a valid group sid */
+-- 
+1.8.5.3
+
+
+From 7d8da06b8966cfb45ede48ce2be0754fd592ff62 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Tue, 18 Feb 2014 10:02:57 +0100
+Subject: [PATCH 5/6] s3-auth: Pass mem_ctx to make_server_info_sam().
+
+Coverity-Id: 1168009
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=8598
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+
+Change-Id: Ie614b0654c3a7eec1ebb10dbb9763696eec795bd
+Reviewed-by: Andrew Bartlett <abartlet@samba.org>
+
+(cherry picked from commit 3dc72266005e87a291f5bf9847257e8c54314d39)
+---
+ source3/auth/check_samsec.c    |  2 +-
+ source3/auth/proto.h           |  5 ++--
+ source3/auth/server_info_sam.c | 63 +++++++++++++++++++++++++-----------------
+ source3/auth/user_krb5.c       | 12 ++++----
+ 4 files changed, 49 insertions(+), 33 deletions(-)
+
+diff --git a/source3/auth/check_samsec.c b/source3/auth/check_samsec.c
+index f918dc0..ed30e0d 100644
+--- a/source3/auth/check_samsec.c
++++ b/source3/auth/check_samsec.c
+@@ -482,7 +482,7 @@ NTSTATUS check_sam_security(const DATA_BLOB *challenge,
+       }
+       become_root();
+-      nt_status = make_server_info_sam(server_info, sampass);
++      nt_status = make_server_info_sam(mem_ctx, sampass, server_info);
+       unbecome_root();
+       TALLOC_FREE(sampass);
+diff --git a/source3/auth/proto.h b/source3/auth/proto.h
+index 50a27cf..e6830aa 100644
+--- a/source3/auth/proto.h
++++ b/source3/auth/proto.h
+@@ -133,8 +133,9 @@ NTSTATUS make_user_info_for_reply_enc(struct auth_usersupplied_info **user_info,
+                                       DATA_BLOB lm_resp, DATA_BLOB nt_resp);
+ bool make_user_info_guest(struct auth_usersupplied_info **user_info) ;
+ struct samu;
+-NTSTATUS make_server_info_sam(struct auth_serversupplied_info **server_info,
+-                            struct samu *sampass);
++NTSTATUS make_server_info_sam(TALLOC_CTX *mem_ctx,
++                            struct samu *sampass,
++                            struct auth_serversupplied_info **pserver_info);
+ NTSTATUS create_local_token(struct auth_serversupplied_info *server_info);
+ NTSTATUS create_token_from_username(TALLOC_CTX *mem_ctx, const char *username,
+                                   bool is_guest,
+diff --git a/source3/auth/server_info_sam.c b/source3/auth/server_info_sam.c
+index 31fd9f9..aed70fa 100644
+--- a/source3/auth/server_info_sam.c
++++ b/source3/auth/server_info_sam.c
+@@ -58,45 +58,54 @@ static bool is_our_machine_account(const char *username)
+  Make (and fill) a user_info struct from a struct samu
+ ***************************************************************************/
+-NTSTATUS make_server_info_sam(struct auth_serversupplied_info **server_info,
+-                            struct samu *sampass)
++NTSTATUS make_server_info_sam(TALLOC_CTX *mem_ctx,
++                            struct samu *sampass,
++                            struct auth_serversupplied_info **pserver_info)
+ {
+       struct passwd *pwd;
+-      struct auth_serversupplied_info *result;
++      struct auth_serversupplied_info *server_info;
+       const char *username = pdb_get_username(sampass);
++      TALLOC_CTX *tmp_ctx;
+       NTSTATUS status;
+-      if ( !(result = make_server_info(NULL)) ) {
++      tmp_ctx = talloc_stackframe();
++      if (tmp_ctx == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+-      if ( !(pwd = Get_Pwnam_alloc(result, username)) ) {
++      server_info = make_server_info(tmp_ctx);
++      if (server_info == NULL) {
++              status = NT_STATUS_NO_MEMORY;
++              goto out;
++      }
++
++      pwd = Get_Pwnam_alloc(tmp_ctx, username);
++      if (pwd == NULL) {
+               DEBUG(1, ("User %s in passdb, but getpwnam() fails!\n",
+                         pdb_get_username(sampass)));
+-              TALLOC_FREE(result);
+-              return NT_STATUS_NO_SUCH_USER;
++              status = NT_STATUS_NO_SUCH_USER;
++              goto out;
+       }
+-      status = samu_to_SamInfo3(result, sampass, global_myname(),
+-                                &result->info3, &result->extra);
++      status = samu_to_SamInfo3(server_info,
++                                sampass,
++                                global_myname(),
++                                &server_info->info3,
++                                &server_info->extra);
+       if (!NT_STATUS_IS_OK(status)) {
+-              TALLOC_FREE(result);
+-              return status;
++              goto out;
+       }
+-      result->unix_name = pwd->pw_name;
+-      /* Ensure that we keep pwd->pw_name, because we will free pwd below */
+-      talloc_steal(result, pwd->pw_name);
+-      result->utok.gid = pwd->pw_gid;
+-      result->utok.uid = pwd->pw_uid;
++      server_info->unix_name = talloc_steal(server_info, pwd->pw_name);
+-      TALLOC_FREE(pwd);
++      server_info->utok.gid = pwd->pw_gid;
++      server_info->utok.uid = pwd->pw_uid;
+-      result->sanitized_username = sanitize_username(result,
+-                                                     result->unix_name);
+-      if (result->sanitized_username == NULL) {
+-              TALLOC_FREE(result);
+-              return NT_STATUS_NO_MEMORY;
++      server_info->sanitized_username = sanitize_username(server_info,
++                                                          server_info->unix_name);
++      if (server_info->sanitized_username == NULL) {
++              status = NT_STATUS_NO_MEMORY;
++              goto out;
+       }
+       if (IS_DC && is_our_machine_account(username)) {
+@@ -117,9 +126,13 @@ NTSTATUS make_server_info_sam(struct auth_serversupplied_info **server_info,
+       }
+       DEBUG(5,("make_server_info_sam: made server info for user %s -> %s\n",
+-               pdb_get_username(sampass), result->unix_name));
++               pdb_get_username(sampass), server_info->unix_name));
++
++      *pserver_info = talloc_steal(mem_ctx, server_info);
+-      *server_info = result;
++      status = NT_STATUS_OK;
++out:
++      talloc_free(tmp_ctx);
+-      return NT_STATUS_OK;
++      return status;
+ }
+diff --git a/source3/auth/user_krb5.c b/source3/auth/user_krb5.c
+index 1214b45..1441f88 100644
+--- a/source3/auth/user_krb5.c
++++ b/source3/auth/user_krb5.c
+@@ -219,9 +219,6 @@ NTSTATUS make_server_info_krb5(TALLOC_CTX *mem_ctx,
+                * SID consistency with ntlmssp session setup
+                */
+               struct samu *sampass;
+-              /* The stupid make_server_info_XX functions here
+-                 don't take a talloc context. */
+-              struct auth_serversupplied_info *tmp = NULL;
+               sampass = samu_new(talloc_tos());
+               if (sampass == NULL) {
+@@ -231,14 +228,19 @@ NTSTATUS make_server_info_krb5(TALLOC_CTX *mem_ctx,
+               if (pdb_getsampwnam(sampass, username)) {
+                       DEBUG(10, ("found user %s in passdb, calling "
+                                  "make_server_info_sam\n", username));
+-                      status = make_server_info_sam(&tmp, sampass);
++                      status = make_server_info_sam(mem_ctx,
++                                                    sampass,
++                                                    &server_info);
+               } else {
+                       /*
+                        * User not in passdb, make it up artificially
+                        */
+                       DEBUG(10, ("didn't find user %s in passdb, calling "
+                                  "make_server_info_pw\n", username));
+-                      status = make_server_info_pw(mem_ctx, username, pw, &tmp);
++                      status = make_server_info_pw(mem_ctx,
++                                                   username,
++                                                   pw,
++                                                   &server_info);
+               }
+               TALLOC_FREE(sampass);
+-- 
+1.8.5.3
+
+
+From 77c2d6c08ab3f3894a225a306dbc87f5575a1902 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Tue, 18 Feb 2014 10:19:57 +0100
+Subject: [PATCH 6/6] s3-auth: Pass mem_ctx to auth_check_ntlm_password().
+
+Coverity-Id: 1168009
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=8598
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+
+Change-Id: Ie01674561a6a75239a13918d3190c2f21c3efc7a
+Reviewed-by: Andrew Bartlett <abartlet@samba.org>
+
+(cherry picked from commit 4d792db03f18aa164b565c7fdc7b446c174fba28)
+---
+ source3/auth/auth.c                         | 51 ++++++++++++++++++-----------
+ source3/auth/auth_compat.c                  | 19 ++++++++---
+ source3/auth/auth_ntlmssp.c                 |  6 ++--
+ source3/auth/proto.h                        |  3 +-
+ source3/auth/user_krb5.c                    |  7 ++--
+ source3/include/auth.h                      |  3 +-
+ source3/rpc_server/netlogon/srv_netlog_nt.c |  6 ++--
+ source3/smbd/sesssetup.c                    | 16 +++++----
+ 8 files changed, 69 insertions(+), 42 deletions(-)
+
+diff --git a/source3/auth/auth.c b/source3/auth/auth.c
+index dbe337f..17431b8 100644
+--- a/source3/auth/auth.c
++++ b/source3/auth/auth.c
+@@ -201,19 +201,19 @@ static bool check_domain_match(const char *user, const char *domain)
+  * @return An NTSTATUS with NT_STATUS_OK or an appropriate error.
+  *
+  **/
+-
+-static NTSTATUS check_ntlm_password(const struct auth_context *auth_context,
+-                                  const struct auth_usersupplied_info *user_info, 
+-                                  struct auth_serversupplied_info **server_info)
++static NTSTATUS check_ntlm_password(TALLOC_CTX *mem_ctx,
++                                  const struct auth_context *auth_context,
++                                  const struct auth_usersupplied_info *user_info,
++                                  struct auth_serversupplied_info **pserver_info)
+ {
+       /* if all the modules say 'not for me' this is reasonable */
+       NTSTATUS nt_status = NT_STATUS_NO_SUCH_USER;
+       const char *unix_username;
+       auth_methods *auth_method;
+-      TALLOC_CTX *mem_ctx;
+-      if (!user_info || !auth_context || !server_info)
++      if (user_info == NULL || auth_context == NULL || pserver_info == NULL) {
+               return NT_STATUS_LOGON_FAILURE;
++      }
+       DEBUG(3, ("check_ntlm_password:  Checking password for unmapped user [%s]\\[%s]@[%s] with the new password interface\n", 
+                 user_info->client.domain_name, user_info->client.account_name, user_info->workstation_name));
+@@ -247,17 +247,27 @@ static NTSTATUS check_ntlm_password(const struct auth_context *auth_context,
+               return NT_STATUS_LOGON_FAILURE;
+       for (auth_method = auth_context->auth_method_list;auth_method; auth_method = auth_method->next) {
++              struct auth_serversupplied_info *server_info;
++              TALLOC_CTX *tmp_ctx;
+               NTSTATUS result;
+-              mem_ctx = talloc_init("%s authentication for user %s\\%s", auth_method->name,
+-                                    user_info->mapped.domain_name, user_info->client.account_name);
++              tmp_ctx = talloc_named(mem_ctx,
++                                     0,
++                                     "%s authentication for user %s\\%s",
++                                     auth_method->name,
++                                     user_info->mapped.domain_name,
++                                     user_info->client.account_name);
+-              result = auth_method->auth(auth_context, auth_method->private_data, mem_ctx, user_info, server_info);
++              result = auth_method->auth(auth_context,
++                                         auth_method->private_data,
++                                         tmp_ctx,
++                                         user_info,
++                                         &server_info);
+               /* check if the module did anything */
+               if ( NT_STATUS_V(result) == NT_STATUS_V(NT_STATUS_NOT_IMPLEMENTED) ) {
+                       DEBUG(10,("check_ntlm_password: %s had nothing to say\n", auth_method->name));
+-                      talloc_destroy(mem_ctx);
++                      TALLOC_FREE(tmp_ctx);
+                       continue;
+               }
+@@ -271,19 +281,20 @@ static NTSTATUS check_ntlm_password(const struct auth_context *auth_context,
+                                 auth_method->name, user_info->client.account_name, nt_errstr(nt_status)));
+               }
+-              talloc_destroy(mem_ctx);
+-
+-              if ( NT_STATUS_IS_OK(nt_status))
+-              {
+-                              break;                  
++              if (NT_STATUS_IS_OK(nt_status)) {
++                      *pserver_info = talloc_steal(mem_ctx, server_info);
++                      TALLOC_FREE(tmp_ctx);
++                      break;
+               }
++
++              TALLOC_FREE(tmp_ctx);
+       }
+       /* successful authentication */
+       if (NT_STATUS_IS_OK(nt_status)) {
+-              unix_username = (*server_info)->unix_name;
+-              if (!(*server_info)->guest) {
++              unix_username = (*pserver_info)->unix_name;
++              if (!(*pserver_info)->guest) {
+                       /* We might not be root if we are an RPC call */
+                       become_root();
+                       nt_status = smb_pam_accountcheck(
+@@ -301,9 +312,9 @@ static NTSTATUS check_ntlm_password(const struct auth_context *auth_context,
+               }
+               if (NT_STATUS_IS_OK(nt_status)) {
+-                      DEBUG((*server_info)->guest ? 5 : 2, 
++                      DEBUG((*pserver_info)->guest ? 5 : 2,
+                             ("check_ntlm_password:  %sauthentication for user [%s] -> [%s] -> [%s] succeeded\n",
+-                             (*server_info)->guest ? "guest " : "",
++                             (*pserver_info)->guest ? "guest " : "",
+                              user_info->client.account_name,
+                              user_info->mapped.account_name,
+                              unix_username));
+@@ -317,7 +328,7 @@ static NTSTATUS check_ntlm_password(const struct auth_context *auth_context,
+       DEBUG(2, ("check_ntlm_password:  Authentication for user [%s] -> [%s] FAILED with error %s\n",
+                 user_info->client.account_name, user_info->mapped.account_name,
+                 nt_errstr(nt_status)));
+-      ZERO_STRUCTP(server_info);
++      ZERO_STRUCTP(pserver_info);
+       return nt_status;
+ }
+diff --git a/source3/auth/auth_compat.c b/source3/auth/auth_compat.c
+index 0ae712a..d51c96f 100644
+--- a/source3/auth/auth_compat.c
++++ b/source3/auth/auth_compat.c
+@@ -35,7 +35,8 @@ check if a username/password is OK assuming the password is in plaintext
+ return True if the password is correct, False otherwise
+ ****************************************************************************/
+-NTSTATUS check_plaintext_password(const char *smb_name,
++NTSTATUS check_plaintext_password(TALLOC_CTX *mem_ctx,
++                                const char *smb_name,
+                                 DATA_BLOB plaintext_blob,
+                                 struct auth_serversupplied_info **server_info)
+ {
+@@ -59,8 +60,10 @@ NTSTATUS check_plaintext_password(const char *smb_name,
+               return NT_STATUS_NO_MEMORY;
+       }
+-      nt_status = plaintext_auth_context->check_ntlm_password(plaintext_auth_context, 
+-                                                              user_info, server_info); 
++      nt_status = plaintext_auth_context->check_ntlm_password(mem_ctx,
++                                                              plaintext_auth_context,
++                                                              user_info,
++                                                              server_info);
+       TALLOC_FREE(plaintext_auth_context);
+       free_user_info(&user_info);
+@@ -84,7 +87,10 @@ static NTSTATUS pass_check_smb(struct auth_context *actx,
+                                    domain,
+                                    lm_pwd,
+                                    nt_pwd);
+-      nt_status = actx->check_ntlm_password(actx, user_info, &server_info);
++      nt_status = actx->check_ntlm_password(talloc_tos(),
++                                            actx,
++                                            user_info,
++                                            &server_info);
+       free_user_info(&user_info);
+       TALLOC_FREE(server_info);
+       return nt_status;
+@@ -127,7 +133,10 @@ bool password_ok(struct auth_context *actx, bool global_encrypted,
+               }
+       } else {
+               struct auth_serversupplied_info *server_info = NULL;
+-              NTSTATUS nt_status = check_plaintext_password(smb_name, password_blob, &server_info);
++              NTSTATUS nt_status = check_plaintext_password(talloc_tos(),
++                                                            smb_name,
++                                                            password_blob,
++                                                            &server_info);
+               TALLOC_FREE(server_info);
+               if (NT_STATUS_IS_OK(nt_status)) {
+                       return True;
+diff --git a/source3/auth/auth_ntlmssp.c b/source3/auth/auth_ntlmssp.c
+index ae29c30..097501c 100644
+--- a/source3/auth/auth_ntlmssp.c
++++ b/source3/auth/auth_ntlmssp.c
+@@ -143,8 +143,10 @@ static NTSTATUS auth_ntlmssp_check_password(struct ntlmssp_state *ntlmssp_state,
+       user_info->logon_parameters = MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT | MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT;
+-      nt_status = auth_ntlmssp_state->auth_context->check_ntlm_password(auth_ntlmssp_state->auth_context, 
+-                                                                        user_info, &auth_ntlmssp_state->server_info); 
++      nt_status = auth_ntlmssp_state->auth_context->check_ntlm_password(mem_ctx,
++                                                                        auth_ntlmssp_state->auth_context,
++                                                                        user_info,
++                                                                        &auth_ntlmssp_state->server_info);
+       username_was_mapped = user_info->was_mapped;
+diff --git a/source3/auth/proto.h b/source3/auth/proto.h
+index e6830aa..fccabc4 100644
+--- a/source3/auth/proto.h
++++ b/source3/auth/proto.h
+@@ -50,7 +50,8 @@ NTSTATUS auth_builtin_init(void);
+ /* The following definitions come from auth/auth_compat.c  */
+-NTSTATUS check_plaintext_password(const char *smb_name,
++NTSTATUS check_plaintext_password(TALLOC_CTX *mem_ctx,
++                                const char *smb_name,
+                                 DATA_BLOB plaintext_password,
+                                 struct auth_serversupplied_info **server_info);
+ bool password_ok(struct auth_context *actx, bool global_encrypted,
+diff --git a/source3/auth/user_krb5.c b/source3/auth/user_krb5.c
+index 1441f88..1e5254e 100644
+--- a/source3/auth/user_krb5.c
++++ b/source3/auth/user_krb5.c
+@@ -230,7 +230,7 @@ NTSTATUS make_server_info_krb5(TALLOC_CTX *mem_ctx,
+                                  "make_server_info_sam\n", username));
+                       status = make_server_info_sam(mem_ctx,
+                                                     sampass,
+-                                                    &server_info);
++                                                    server_info);
+               } else {
+                       /*
+                        * User not in passdb, make it up artificially
+@@ -240,7 +240,7 @@ NTSTATUS make_server_info_krb5(TALLOC_CTX *mem_ctx,
+                       status = make_server_info_pw(mem_ctx,
+                                                    username,
+                                                    pw,
+-                                                   &server_info);
++                                                   server_info);
+               }
+               TALLOC_FREE(sampass);
+@@ -250,9 +250,6 @@ NTSTATUS make_server_info_krb5(TALLOC_CTX *mem_ctx,
+                       return status;
+                 }
+-              /* Steal tmp server info into the server_info pointer. */
+-              *server_info = talloc_move(mem_ctx, &tmp);
+-
+               /* make_server_info_pw does not set the domain. Without this
+                * we end up with the local netbios name in substitutions for
+                * %D. */
+diff --git a/source3/include/auth.h b/source3/include/auth.h
+index c017da9..b0ac11a 100644
+--- a/source3/include/auth.h
++++ b/source3/include/auth.h
+@@ -89,7 +89,8 @@ struct auth_context {
+       NTSTATUS (*get_ntlm_challenge)(struct auth_context *auth_context,
+                                      uint8_t chal[8]);
+-      NTSTATUS (*check_ntlm_password)(const struct auth_context *auth_context,
++      NTSTATUS (*check_ntlm_password)(TALLOC_CTX *mem_ctx,
++                                      const struct auth_context *auth_context,
+                                       const struct auth_usersupplied_info *user_info, 
+                                       struct auth_serversupplied_info **server_info);
+       NTSTATUS (*nt_status_squash)(NTSTATUS nt_status);
+diff --git a/source3/rpc_server/netlogon/srv_netlog_nt.c b/source3/rpc_server/netlogon/srv_netlog_nt.c
+index 3fd93bc..1cf04df 100644
+--- a/source3/rpc_server/netlogon/srv_netlog_nt.c
++++ b/source3/rpc_server/netlogon/srv_netlog_nt.c
+@@ -1563,8 +1563,10 @@ static NTSTATUS _netr_LogonSamLogon_base(struct pipes_struct *p,
+       } /* end switch */
+       if ( NT_STATUS_IS_OK(status) ) {
+-              status = auth_context->check_ntlm_password(auth_context,
+-                      user_info, &server_info);
++              status = auth_context->check_ntlm_password(p->mem_ctx,
++                                                         auth_context,
++                                                         user_info,
++                                                         &server_info);
+       }
+       TALLOC_FREE(auth_context);
+diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
+index 75c2a15..2a40e1b 100644
+--- a/source3/smbd/sesssetup.c
++++ b/source3/smbd/sesssetup.c
+@@ -140,7 +140,8 @@ static void reply_sesssetup_blob(struct smb_request *req,
+  Do a 'guest' logon, getting back the
+ ****************************************************************************/
+-static NTSTATUS check_guest_password(struct auth_serversupplied_info **server_info)
++static NTSTATUS check_guest_password(TALLOC_CTX *mem_ctx,
++                                   struct auth_serversupplied_info **server_info)
+ {
+       struct auth_context *auth_context;
+       struct auth_usersupplied_info *user_info = NULL;
+@@ -150,7 +151,7 @@ static NTSTATUS check_guest_password(struct auth_serversupplied_info **server_in
+       DEBUG(3,("Got anonymous request\n"));
+-      nt_status = make_auth_context_fixed(talloc_tos(), &auth_context, chal);
++      nt_status = make_auth_context_fixed(mem_ctx, &auth_context, chal);
+       if (!NT_STATUS_IS_OK(nt_status)) {
+               return nt_status;
+       }
+@@ -160,9 +161,10 @@ static NTSTATUS check_guest_password(struct auth_serversupplied_info **server_in
+               return NT_STATUS_NO_MEMORY;
+       }
+-      nt_status = auth_context->check_ntlm_password(auth_context,
+-                                              user_info,
+-                                              server_info);
++      nt_status = auth_context->check_ntlm_password(mem_ctx,
++                                                    auth_context,
++                                                    user_info,
++                                                    server_info);
+       TALLOC_FREE(auth_context);
+       free_user_info(&user_info);
+       return nt_status;
+@@ -1609,7 +1611,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
+       if (!*user) {
+-              nt_status = check_guest_password(&server_info);
++              nt_status = check_guest_password(talloc_tos(), &server_info);
+       } else if (doencrypt) {
+               struct auth_context *negprot_auth_context = NULL;
+@@ -1627,6 +1629,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
+                                               lm_resp, nt_resp);
+               if (NT_STATUS_IS_OK(nt_status)) {
+                       nt_status = negprot_auth_context->check_ntlm_password(
++                                      talloc_tos(),
+                                       negprot_auth_context,
+                                       user_info,
+                                       &server_info);
+@@ -1651,6 +1654,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
+                       if (NT_STATUS_IS_OK(nt_status)) {
+                               nt_status = plaintext_auth_context->check_ntlm_password(
++                                              talloc_tos(),
+                                               plaintext_auth_context,
+                                               user_info,
+                                               &server_info);
+-- 
+1.8.5.3
+
+From f07614228629e650b0e0a27dd4d15b6e5eef5baa Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Wed, 28 May 2014 15:12:29 +0200
+Subject: [PATCH 18/20] PATCHSET1: Allocate server_info on the correct memory
+ context.
+
+This fixes a talloc double free PANIC when connecting to share.
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+---
+ source3/auth/auth_ntlmssp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/source3/auth/auth_ntlmssp.c b/source3/auth/auth_ntlmssp.c
+index 097501c..3c7e324 100644
+--- a/source3/auth/auth_ntlmssp.c
++++ b/source3/auth/auth_ntlmssp.c
+@@ -143,7 +143,7 @@ static NTSTATUS auth_ntlmssp_check_password(struct ntlmssp_state *ntlmssp_state,
+       user_info->logon_parameters = MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT | MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT;
+-      nt_status = auth_ntlmssp_state->auth_context->check_ntlm_password(mem_ctx,
++      nt_status = auth_ntlmssp_state->auth_context->check_ntlm_password(auth_ntlmssp_state,
+                                                                         auth_ntlmssp_state->auth_context,
+                                                                         user_info,
+                                                                         &auth_ntlmssp_state->server_info);
+-- 
+1.9.0
+
+commit 0c6838663d42a04a80e25a8a3827710926952077
+Author:     Andreas Schneider <asn@samba.org>
+AuthorDate: Wed Jul 2 16:39:22 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Wed Jul 2 16:47:43 2014 +0200
+
+    PATCHSET1 s3-auth: Do not double free the result.
+    
+    Signed-off-by: Andreas Schneider <asn@samba.org>
+    Reviewed-by: Guenther Deschner <gd@samba.org>
+---
+ source3/auth/auth_util.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c
+index 5ffdb25f..1f1fed9 100644
+--- a/source3/auth/auth_util.c
++++ b/source3/auth/auth_util.c
+@@ -883,10 +883,6 @@ NTSTATUS make_serverinfo_from_username(TALLOC_CTX *mem_ctx,
+       *presult = talloc_steal(mem_ctx, result);
+ done:
+       talloc_free(tmp_ctx);
+-      if (!NT_STATUS_IS_OK(status)) {
+-              TALLOC_FREE(result);
+-              return status;
+-      }
+       return status;
+ }
+commit 879e576d439fddf33ab2353b4a54ccd162020a03
+Author:     Andreas Schneider <asn@samba.org>
+AuthorDate: Tue Jul 8 10:26:51 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Tue Jul 8 17:08:10 2014 +0200
+
+    PATCHSET1 s3-auth: Fix support for 'security = share' in passwd_to_SamInfo3().
+    
+    Signed-off-by: Andreas Schneider <asn@samba.org>
+---
+ source3/auth/server_info.c | 19 ++++++++++++++++---
+ 1 file changed, 16 insertions(+), 3 deletions(-)
+
+diff --git a/source3/auth/server_info.c b/source3/auth/server_info.c
+index 077bb6b..e627892 100644
+--- a/source3/auth/server_info.c
++++ b/source3/auth/server_info.c
+@@ -575,9 +575,21 @@ NTSTATUS passwd_to_SamInfo3(TALLOC_CTX *mem_ctx,
+       ZERO_STRUCT(domain_sid);
+-      sid_copy(&domain_sid, &user_sid);
+-      sid_split_rid(&domain_sid, &info3->base.rid);
+-      info3->base.domain_sid = dom_sid_dup(info3, &domain_sid);
++      /*
++       * Check if this is a "Unix Users" domain user,
++       * we need to handle it in a special way if that's the case.
++       */
++      if (sid_check_is_in_unix_users(&user_sid)) {
++              /*
++               * In info3 you can only set rids for the user and the
++               * primary group, and the domain sid must be that of
++               * the sam domain.
++               */
++              sid_copy(&domain_sid, get_global_sam_sid());
++      } else {
++              sid_copy(&domain_sid, &user_sid);
++              sid_split_rid(&domain_sid, &info3->base.rid);
++      }
+       ok = sid_peek_check_rid(&domain_sid, &group_sid,
+                               &info3->base.primary_gid);
+@@ -592,6 +604,7 @@ NTSTATUS passwd_to_SamInfo3(TALLOC_CTX *mem_ctx,
+               goto done;
+       }
++      info3->base.domain_sid = dom_sid_dup(info3, &domain_sid);
+       info3->base.acct_flags = ACB_NORMAL;
+       if (num_sids) {
diff --git a/src/patches/samba/samba-3.6.99-fix_gecos_interactive.patch b/src/patches/samba/samba-3.6.99-fix_gecos_interactive.patch
new file mode 100644 (file)
index 0000000..acb0c51
--- /dev/null
@@ -0,0 +1,922 @@
+commit 8a7159aa1b000593ffe89ca8d7477e6373764aaf
+Author:     Günther Deschner <gd@samba.org>
+AuthorDate: Tue Jul 15 14:16:56 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Tue Jul 15 15:25:27 2014 +0200
+
+    PATCHSET14 s3-rpc_client: return info3 in rpccli_netlogon_password_logon().
+    
+    Guenther
+    
+    Signed-off-by: Günther Deschner <gd@samba.org>
+    Pair-Programmed-With: Andreas Schneider <asn@samba.org>
+    Reviewed-by: Andreas Schneider <asn@samba.org>
+---
+ source3/rpc_client/cli_netlogon.c | 100 +++++++++++++++++++++-----------------
+ source3/rpc_client/cli_netlogon.h |   3 +-
+ source3/rpcclient/cmd_netlogon.c  |   3 +-
+ 3 files changed, 60 insertions(+), 46 deletions(-)
+
+diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c
+index c69a933..9454226 100644
+--- a/source3/rpc_client/cli_netlogon.c
++++ b/source3/rpc_client/cli_netlogon.c
+@@ -153,6 +153,53 @@ NTSTATUS rpccli_netlogon_setup_creds(struct rpc_pipe_client *cli,
+       return NT_STATUS_OK;
+ }
++static NTSTATUS map_validation_to_info3(TALLOC_CTX *mem_ctx,
++                                      uint16_t validation_level,
++                                      union netr_Validation *validation,
++                                      struct netr_SamInfo3 **info3_p)
++{
++      struct netr_SamInfo3 *info3;
++      NTSTATUS status;
++
++      if (validation == NULL) {
++              return NT_STATUS_INVALID_PARAMETER;
++      }
++
++      switch (validation_level) {
++      case 3:
++              if (validation->sam3 == NULL) {
++                      return NT_STATUS_INVALID_PARAMETER;
++              }
++
++              info3 = talloc_move(mem_ctx, &validation->sam3);
++              break;
++      case 6:
++              if (validation->sam6 == NULL) {
++                      return NT_STATUS_INVALID_PARAMETER;
++              }
++
++              info3 = talloc_zero(mem_ctx, struct netr_SamInfo3);
++              if (info3 == NULL) {
++                      return NT_STATUS_NO_MEMORY;
++              }
++              status = copy_netr_SamBaseInfo(info3, &validation->sam6->base, &info3->base);
++              if (!NT_STATUS_IS_OK(status)) {
++                      TALLOC_FREE(info3);
++                      return status;
++              }
++
++              info3->sidcount = validation->sam6->sidcount;
++              info3->sids = talloc_move(info3, &validation->sam6->sids);
++              break;
++      default:
++              return NT_STATUS_BAD_VALIDATION_CLASS;
++      }
++
++      *info3_p = info3;
++
++      return NT_STATUS_OK;
++}
++
+ /* Logon domain user */
+ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
+@@ -163,7 +210,8 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
+                                  const char *password,
+                                  const char *workstation,
+                                  uint16_t validation_level,
+-                                 int logon_type)
++                                 int logon_type,
++                                 struct netr_SamInfo3 **info3)
+ {
+       NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
+       NTSTATUS status;
+@@ -298,54 +346,18 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
+               return NT_STATUS_ACCESS_DENIED;
+       }
+-      return result;
+-}
+-
+-static NTSTATUS map_validation_to_info3(TALLOC_CTX *mem_ctx,
+-                                      uint16_t validation_level,
+-                                      union netr_Validation *validation,
+-                                      struct netr_SamInfo3 **info3_p)
+-{
+-      struct netr_SamInfo3 *info3;
+-      NTSTATUS status;
+-
+-      if (validation == NULL) {
+-              return NT_STATUS_INVALID_PARAMETER;
++      if (!NT_STATUS_IS_OK(result)) {
++              return result;
+       }
+-      switch (validation_level) {
+-      case 3:
+-              if (validation->sam3 == NULL) {
+-                      return NT_STATUS_INVALID_PARAMETER;
+-              }
+-
+-              info3 = talloc_move(mem_ctx, &validation->sam3);
+-              break;
+-      case 6:
+-              if (validation->sam6 == NULL) {
+-                      return NT_STATUS_INVALID_PARAMETER;
+-              }
+-
+-              info3 = talloc_zero(mem_ctx, struct netr_SamInfo3);
+-              if (info3 == NULL) {
+-                      return NT_STATUS_NO_MEMORY;
+-              }
+-              status = copy_netr_SamBaseInfo(info3, &validation->sam6->base, &info3->base);
+-              if (!NT_STATUS_IS_OK(status)) {
+-                      TALLOC_FREE(info3);
+-                      return status;
+-              }
++      netlogon_creds_decrypt_samlogon(cli->dc, validation_level, &validation);
+-              info3->sidcount = validation->sam6->sidcount;
+-              info3->sids = talloc_move(info3, &validation->sam6->sids);
+-              break;
+-      default:
+-              return NT_STATUS_BAD_VALIDATION_CLASS;
++      result = map_validation_to_info3(mem_ctx, validation_level, &validation, info3);
++      if (!NT_STATUS_IS_OK(result)) {
++              return result;
+       }
+-      *info3_p = info3;
+-
+-      return NT_STATUS_OK;
++      return result;
+ }
+ /**
+diff --git a/source3/rpc_client/cli_netlogon.h b/source3/rpc_client/cli_netlogon.h
+index ad59d5b..9c6cbc8 100644
+--- a/source3/rpc_client/cli_netlogon.h
++++ b/source3/rpc_client/cli_netlogon.h
+@@ -41,7 +41,8 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
+                                  const char *password,
+                                  const char *workstation,
+                                  uint16_t validation_level,
+-                                 int logon_type);
++                                 int logon_type,
++                                 struct netr_SamInfo3 **info3);
+ NTSTATUS rpccli_netlogon_sam_network_logon(struct rpc_pipe_client *cli,
+                                          TALLOC_CTX *mem_ctx,
+                                          uint32 logon_parameters,
+diff --git a/source3/rpcclient/cmd_netlogon.c b/source3/rpcclient/cmd_netlogon.c
+index 63057ac..e285145 100644
+--- a/source3/rpcclient/cmd_netlogon.c
++++ b/source3/rpcclient/cmd_netlogon.c
+@@ -724,6 +724,7 @@ static NTSTATUS cmd_netlogon_sam_logon(struct rpc_pipe_client *cli,
+       uint16_t validation_level = 3;
+       uint32 logon_param = 0;
+       const char *workstation = NULL;
++      struct netr_SamInfo3 *info3 = NULL;
+       /* Check arguments */
+@@ -750,7 +751,7 @@ static NTSTATUS cmd_netlogon_sam_logon(struct rpc_pipe_client *cli,
+       /* Perform the sam logon */
+-      result = rpccli_netlogon_sam_logon(cli, mem_ctx, logon_param, lp_workgroup(), username, password, workstation, validation_level, logon_type);
++      result = rpccli_netlogon_sam_logon(cli, mem_ctx, logon_param, lp_workgroup(), username, password, workstation, validation_level, logon_type, &info3);
+       if (!NT_STATUS_IS_OK(result))
+               goto done;
+commit 53c404ade6d660c449a9dddb56aa80dc6d5ea920
+Author:     Günther Deschner <gd@samba.org>
+AuthorDate: Tue Jul 15 14:25:19 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Tue Jul 15 15:25:29 2014 +0200
+
+    PATCHSET14 s3-winbindd: call interactive samlogon via rpccli_netlogon_password_logon.
+    
+    Guenther
+    
+    Signed-off-by: Guenther Deschner <gd@samba.org>
+    Pair-Programmed-With: Andreas Schneider <asn@samba.org>
+    Reviewed-by: Andreas Schneider <asn@samba.org>
+---
+ source3/winbindd/winbindd_pam.c | 20 +++++++++++++++++++-
+ 1 file changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c
+index 125e393..2b31d54 100644
+--- a/source3/winbindd/winbindd_pam.c
++++ b/source3/winbindd/winbindd_pam.c
+@@ -1152,11 +1152,13 @@ static NTSTATUS winbind_samlogon_retry_loop(struct winbindd_domain *domain,
+                                           uint32_t logon_parameters,
+                                           const char *server,
+                                           const char *username,
++                                          const char *password,
+                                           const char *domainname,
+                                           const char *workstation,
+                                           const uint8_t chal[8],
+                                           DATA_BLOB lm_response,
+                                           DATA_BLOB nt_response,
++                                          bool interactive,
+                                           struct netr_SamInfo3 **info3)
+ {
+       int attempts = 0;
+@@ -1269,7 +1271,19 @@ static NTSTATUS winbind_samlogon_retry_loop(struct winbindd_domain *domain,
+                       domain->can_do_validation6 = false;
+               }
+-              if (domain->can_do_samlogon_ex && domain->can_do_validation6) {
++              if (interactive && username != NULL && password != NULL) {
++                      result = rpccli_netlogon_sam_logon(
++                                      netlogon_pipe,
++                                      mem_ctx,
++                                      logon_parameters,
++                                      domainname,
++                                      username,
++                                      password,
++                                      workstation,
++                                      3, /* FIXME */
++                                      NetlogonInteractiveInformation,
++                                      info3);
++              } else if (domain->can_do_samlogon_ex && domain->can_do_validation6) {
+                       result = rpccli_netlogon_sam_network_logon_ex(
+                                       netlogon_pipe,
+                                       mem_ctx,
+@@ -1453,11 +1467,13 @@ static NTSTATUS winbindd_dual_pam_auth_samlogon(TALLOC_CTX *mem_ctx,
+                                            0,
+                                            domain->dcname,
+                                            name_user,
++                                           pass,
+                                            name_domain,
+                                            global_myname(),
+                                            chal,
+                                            lm_resp,
+                                            nt_resp,
++                                           true,
+                                            &my_info3);
+       if (!NT_STATUS_IS_OK(result)) {
+               goto done;
+@@ -1874,12 +1890,14 @@ enum winbindd_result winbindd_dual_pam_auth_crap(struct winbindd_domain *domain,
+                                            state->request->data.auth_crap.logon_parameters,
+                                            domain->dcname,
+                                            name_user,
++                                           NULL, /* password */
+                                            name_domain,
+                                            /* Bug #3248 - found by Stefan Burkei. */
+                                            workstation, /* We carefully set this above so use it... */
+                                            state->request->data.auth_crap.chal,
+                                            lm_resp,
+                                            nt_resp,
++                                           false, /* interactive */
+                                            &info3);
+       if (!NT_STATUS_IS_OK(result)) {
+               goto done;
+commit f73d1b92b78c4c3f23f411807273e3d09d39c10a
+Author:     Günther Deschner <gd@samba.org>
+AuthorDate: Mon Jul 7 17:14:37 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Tue Jul 15 15:25:30 2014 +0200
+
+    PATCHSET14 s3-winbindd: add wcache_query_user_fullname().
+    
+    This helper function is used to query the full name of a cached user object (for
+    further gecos processing).
+    
+    Thanks to Matt Rogers <mrogers@redhat.com>.
+    
+    BUG: https://bugzilla.samba.org/show_bug.cgi?id=10440
+    
+    Guenther
+    
+    Pair-Programmed-With: Andreas Schneider <asn@samba.org>
+    Signed-off-by: Günther Deschner <gd@samba.org>
+    Reviewed-by: Andreas Schneider <asn@samba.org>
+---
+ source3/winbindd/winbindd_cache.c | 34 ++++++++++++++++++++++++++++++++++
+ source3/winbindd/winbindd_proto.h |  4 ++++
+ 2 files changed, 38 insertions(+)
+
+diff --git a/source3/winbindd/winbindd_cache.c b/source3/winbindd/winbindd_cache.c
+index 0a65953..82c8087 100644
+--- a/source3/winbindd/winbindd_cache.c
++++ b/source3/winbindd/winbindd_cache.c
+@@ -2282,6 +2282,40 @@ NTSTATUS wcache_query_user(struct winbindd_domain *domain,
+       return status;
+ }
++
++/**
++* @brief Query a fullname from the username cache (for further gecos processing)
++*
++* @param domain               A pointer to the winbindd_domain struct.
++* @param mem_ctx      The talloc context.
++* @param user_sid     The user sid.
++* @param full_name    A pointer to the full_name string.
++*
++* @return NTSTATUS code
++*/
++NTSTATUS wcache_query_user_fullname(struct winbindd_domain *domain,
++                                  TALLOC_CTX *mem_ctx,
++                                  const struct dom_sid *user_sid,
++                                  const char **full_name)
++{
++      NTSTATUS status;
++      struct wbint_userinfo info;
++
++      status = wcache_query_user(domain, mem_ctx, user_sid, &info);
++      if (!NT_STATUS_IS_OK(status)) {
++              return status;
++      }
++
++      if (info.full_name != NULL) {
++              *full_name = talloc_strdup(mem_ctx, info.full_name);
++              if (*full_name == NULL) {
++                      return NT_STATUS_NO_MEMORY;
++              }
++      }
++
++      return NT_STATUS_OK;
++}
++
+ /* Lookup user information from a rid */
+ static NTSTATUS query_user(struct winbindd_domain *domain,
+                          TALLOC_CTX *mem_ctx,
+diff --git a/source3/winbindd/winbindd_proto.h b/source3/winbindd/winbindd_proto.h
+index 82176b2..585853e 100644
+--- a/source3/winbindd/winbindd_proto.h
++++ b/source3/winbindd/winbindd_proto.h
+@@ -103,6 +103,10 @@ NTSTATUS wcache_query_user(struct winbindd_domain *domain,
+                          TALLOC_CTX *mem_ctx,
+                          const struct dom_sid *user_sid,
+                          struct wbint_userinfo *info);
++NTSTATUS wcache_query_user_fullname(struct winbindd_domain *domain,
++                                  TALLOC_CTX *mem_ctx,
++                                  const struct dom_sid *user_sid,
++                                  const char **full_name);
+ NTSTATUS wcache_lookup_useraliases(struct winbindd_domain *domain,
+                                  TALLOC_CTX *mem_ctx,
+                                  uint32 num_sids, const struct dom_sid *sids,
+commit d4d04c269ade1e96f84b71e60a1c6c322eec5514
+Author:     Günther Deschner <gd@samba.org>
+AuthorDate: Mon Jul 7 17:16:32 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Tue Jul 15 15:25:31 2014 +0200
+
+    PATCHSET14 s3-winbindd: use wcache_query_user_fullname after inspecting samlogon cache.
+    
+    The reason for this followup query is that very often the samlogon cache only
+    contains a info3 netlogon user structure that has been retrieved during a
+    netlogon samlogon authentication using "network" logon level. With that logon
+    level only a few info3 fields are filled in; the user's fullname is never filled
+    in that case. This is problematic when the cache is used to fill in the user's
+    gecos field (for NSS queries). When we have retrieved the user's fullname during
+    other queries, reuse it from the other caches.
+    
+    Thanks to Matt Rogers <mrogers@redhat.com>.
+    
+    BUG: https://bugzilla.samba.org/show_bug.cgi?id=10440
+    
+    Guenther
+    
+    Pair-Programmed-With: Andreas Schneider <asn@samba.org>
+    Signed-off-by: Guenther Deschner <gd@samba.org>
+    Reviewed-by: Andreas Schneider <asn@samba.org>
+---
+ source3/winbindd/winbindd_ads.c   |  8 ++++++++
+ source3/winbindd/winbindd_msrpc.c |  8 ++++++++
+ source3/winbindd/winbindd_pam.c   | 41 +++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 57 insertions(+)
+
+diff --git a/source3/winbindd/winbindd_ads.c b/source3/winbindd/winbindd_ads.c
+index 3099ff0..7d960fc 100644
+--- a/source3/winbindd/winbindd_ads.c
++++ b/source3/winbindd/winbindd_ads.c
+@@ -515,6 +515,14 @@ static NTSTATUS query_user(struct winbindd_domain *domain,
+               TALLOC_FREE(user);
++              if (info->full_name == NULL) {
++                      /* this might fail so we dont check the return code */
++                      wcache_query_user_fullname(domain,
++                                                 mem_ctx,
++                                                 sid,
++                                                 &info->full_name);
++              }
++
+               return NT_STATUS_OK;
+       }
+diff --git a/source3/winbindd/winbindd_msrpc.c b/source3/winbindd/winbindd_msrpc.c
+index b426884..eae822c 100644
+--- a/source3/winbindd/winbindd_msrpc.c
++++ b/source3/winbindd/winbindd_msrpc.c
+@@ -439,6 +439,14 @@ static NTSTATUS msrpc_query_user(struct winbindd_domain *domain,
+               user_info->full_name = talloc_strdup(user_info,
+                                                    user->base.full_name.string);
++              if (user_info->full_name == NULL) {
++                      /* this might fail so we dont check the return code */
++                      wcache_query_user_fullname(domain,
++                                                 mem_ctx,
++                                                 user_sid,
++                                                 &user_info->full_name);
++              }
++
+               status = NT_STATUS_OK;
+               goto done;
+       }
+diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c
+index 2b31d54..86b352e 100644
+--- a/source3/winbindd/winbindd_pam.c
++++ b/source3/winbindd/winbindd_pam.c
+@@ -1739,6 +1739,26 @@ process_result:
+               sid_compose(&user_sid, info3->base.domain_sid,
+                           info3->base.rid);
++              if (info3->base.full_name.string == NULL) {
++                      struct netr_SamInfo3 *cached_info3;
++
++                      cached_info3 = netsamlogon_cache_get(state->mem_ctx,
++                                                           &user_sid);
++                      if (cached_info3 != NULL &&
++                          cached_info3->base.full_name.string != NULL) {
++                              info3->base.full_name.string =
++                                      talloc_strdup(info3,
++                                                    cached_info3->base.full_name.string);
++                      } else {
++
++                              /* this might fail so we dont check the return code */
++                              wcache_query_user_fullname(domain,
++                                              info3,
++                                              &user_sid,
++                                              &info3->base.full_name.string);
++                      }
++              }
++
+               wcache_invalidate_samlogon(find_domain_from_name(name_domain),
+                                          &user_sid);
+               netsamlogon_cache_store(name_user, info3);
+@@ -1910,6 +1930,27 @@ process_result:
+               sid_compose(&user_sid, info3->base.domain_sid,
+                           info3->base.rid);
++
++              if (info3->base.full_name.string == NULL) {
++                      struct netr_SamInfo3 *cached_info3;
++
++                      cached_info3 = netsamlogon_cache_get(state->mem_ctx,
++                                                           &user_sid);
++                      if (cached_info3 != NULL &&
++                          cached_info3->base.full_name.string != NULL) {
++                              info3->base.full_name.string =
++                                      talloc_strdup(info3,
++                                                    cached_info3->base.full_name.string);
++                      } else {
++
++                              /* this might fail so we dont check the return code */
++                              wcache_query_user_fullname(domain,
++                                              info3,
++                                              &user_sid,
++                                              &info3->base.full_name.string);
++                      }
++              }
++
+               wcache_invalidate_samlogon(find_domain_from_name(name_domain),
+                                          &user_sid);
+               netsamlogon_cache_store(name_user, info3);
+commit 7a38729ac2b93d0bd8c2450821cfcedff6fa3f53
+Author:     Günther Deschner <gd@samba.org>
+AuthorDate: Wed Jul 9 13:36:06 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Tue Jul 15 15:25:32 2014 +0200
+
+    PATCHSET14 samlogon_cache: use a talloc_stackframe inside netsamlogon_cache_store.
+    
+    Guenther
+    
+    Signed-off-by: Günther Deschner <gd@samba.org>
+    Reviewed-by: Andreas Schneider <asn@samba.org>
+---
+ source3/libsmb/samlogon_cache.c | 13 ++++---------
+ 1 file changed, 4 insertions(+), 9 deletions(-)
+
+diff --git a/source3/libsmb/samlogon_cache.c b/source3/libsmb/samlogon_cache.c
+index 590c950..4281965 100644
+--- a/source3/libsmb/samlogon_cache.c
++++ b/source3/libsmb/samlogon_cache.c
+@@ -132,7 +132,7 @@ bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 *info3)
+       bool result = false;
+       struct dom_sid  user_sid;
+       time_t t = time(NULL);
+-      TALLOC_CTX *mem_ctx;
++      TALLOC_CTX *tmp_ctx = talloc_stackframe();
+       DATA_BLOB blob;
+       enum ndr_err_code ndr_err;
+       struct netsamlogoncache_entry r;
+@@ -156,11 +156,6 @@ bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 *info3)
+       /* Prepare data */
+-      if (!(mem_ctx = TALLOC_P( NULL, int))) {
+-              DEBUG(0,("netsamlogon_cache_store: talloc() failed!\n"));
+-              return false;
+-      }
+-
+       /* only Samba fills in the username, not sure why NT doesn't */
+       /* so we fill it in since winbindd_getpwnam() makes use of it */
+@@ -175,11 +170,11 @@ bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 *info3)
+               NDR_PRINT_DEBUG(netsamlogoncache_entry, &r);
+       }
+-      ndr_err = ndr_push_struct_blob(&blob, mem_ctx, &r,
++      ndr_err = ndr_push_struct_blob(&blob, tmp_ctx, &r,
+                                      (ndr_push_flags_fn_t)ndr_push_netsamlogoncache_entry);
+       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+               DEBUG(0,("netsamlogon_cache_store: failed to push entry to cache\n"));
+-              TALLOC_FREE(mem_ctx);
++              TALLOC_FREE(tmp_ctx);
+               return false;
+       }
+@@ -190,7 +185,7 @@ bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 *info3)
+               result = true;
+       }
+-      TALLOC_FREE(mem_ctx);
++      TALLOC_FREE(tmp_ctx);
+       return result;
+ }
+commit f89b793bd672a66f5e75ade33467f6621545f0d4
+Author:     Andreas Schneider <asn@samba.org>
+AuthorDate: Thu Jul 3 16:17:46 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Tue Jul 15 15:25:32 2014 +0200
+
+    PATCHSET14 samlogon_cache: avoid overwriting info3->base.full_name.string.
+    
+    This field servers as a source for the gecos field. We should not overwrite it
+    when a info3 struct from a samlogon network level gets saved in which case this
+    field is always NULL.
+    
+    BUG: https://bugzilla.samba.org/show_bug.cgi?id=10440
+    
+    Signed-off-by: Andreas Schneider <asn@samba.org>
+    Reviewed-by: Guenther Deschner <gd@samba.org>
+---
+ source3/libsmb/samlogon_cache.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/source3/libsmb/samlogon_cache.c b/source3/libsmb/samlogon_cache.c
+index 4281965..8a3dbd2 100644
+--- a/source3/libsmb/samlogon_cache.c
++++ b/source3/libsmb/samlogon_cache.c
+@@ -156,6 +156,20 @@ bool netsamlogon_cache_store(const char *username, struct netr_SamInfo3 *info3)
+       /* Prepare data */
++      if (info3->base.full_name.string == NULL) {
++              struct netr_SamInfo3 *cached_info3;
++              const char *full_name = NULL;
++
++              cached_info3 = netsamlogon_cache_get(tmp_ctx, &user_sid);
++              if (cached_info3 != NULL) {
++                      full_name = cached_info3->base.full_name.string;
++              }
++
++              if (full_name != NULL) {
++                      info3->base.full_name.string = talloc_strdup(info3, full_name);
++              }
++      }
++
+       /* only Samba fills in the username, not sure why NT doesn't */
+       /* so we fill it in since winbindd_getpwnam() makes use of it */
+commit 8fcaeecf174a1c9088c84f271e2859f75e9a5101
+Author:     Andreas Schneider <asn@samba.org>
+AuthorDate: Thu Jul 3 16:19:42 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Tue Jul 15 15:25:33 2014 +0200
+
+    PATCHSET14 s3-winbind: Don't set the gecos field to NULL.
+    
+    The value is loaded from the cache anyway. So it will be set to NULL if
+    it is not available.
+    
+    BUG: https://bugzilla.samba.org/show_bug.cgi?id=10440
+    
+    Signed-off-by: Andreas Schneider <asn@samba.org>
+    Reviewed-by: Guenther Deschner <gd@samba.org>
+---
+ source3/winbindd/nss_info_template.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/source3/winbindd/nss_info_template.c b/source3/winbindd/nss_info_template.c
+index 5fdfd9b..de93803 100644
+--- a/source3/winbindd/nss_info_template.c
++++ b/source3/winbindd/nss_info_template.c
+@@ -48,7 +48,6 @@ static NTSTATUS nss_template_get_info( struct nss_domain_entry *e,
+         username */
+       *homedir = talloc_strdup( ctx, lp_template_homedir() );
+       *shell   = talloc_strdup( ctx, lp_template_shell() );
+-      *gecos   = NULL;
+       if ( !*homedir || !*shell ) {
+               return NT_STATUS_NO_MEMORY;
+commit d32503872aec4fca41056b2d9d9bbb6b15ce9701
+Author:     Günther Deschner <gd@samba.org>
+AuthorDate: Tue Jul 15 16:21:08 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Tue Jul 15 16:24:59 2014 +0200
+
+    PATCHSET14 s3-rpc_client: add rpccli_netlogon_sam_logon_ex().
+    
+    This function deals with interactive samlogon and does a dcerpc_netr_SamLogonEx
+    call (w/o credential chaining).
+    
+    Guenther
+    
+    Signed-off-by: Günther Deschner <gd@samba.org>
+---
+ source3/rpc_client/cli_netlogon.c | 152 ++++++++++++++++++++++++++++++++++++++
+ source3/rpc_client/cli_netlogon.h |  10 +++
+ 2 files changed, 162 insertions(+)
+
+diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c
+index 9454226..0290944 100644
+--- a/source3/rpc_client/cli_netlogon.c
++++ b/source3/rpc_client/cli_netlogon.c
+@@ -360,6 +360,158 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
+       return result;
+ }
++/* Logon domain user */
++
++NTSTATUS rpccli_netlogon_sam_logon_ex(struct rpc_pipe_client *cli,
++                                    TALLOC_CTX *mem_ctx,
++                                    uint32 logon_parameters,
++                                    const char *domain,
++                                    const char *username,
++                                    const char *password,
++                                    const char *workstation,
++                                    uint16_t validation_level,
++                                    int logon_type,
++                                    struct netr_SamInfo3 **info3)
++{
++      NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
++      NTSTATUS status;
++      struct netr_Authenticator ret_creds;
++      union netr_LogonLevel *logon;
++      union netr_Validation validation;
++      uint8_t authoritative;
++      fstring clnt_name_slash;
++      struct dcerpc_binding_handle *b = cli->binding_handle;
++      uint32_t flags = 0;
++
++      ZERO_STRUCT(ret_creds);
++
++      logon = TALLOC_ZERO_P(mem_ctx, union netr_LogonLevel);
++      if (!logon) {
++              return NT_STATUS_NO_MEMORY;
++      }
++
++      if (workstation) {
++              fstr_sprintf( clnt_name_slash, "\\\\%s", workstation );
++      } else {
++              fstr_sprintf( clnt_name_slash, "\\\\%s", global_myname() );
++      }
++
++      /* Initialise input parameters */
++
++      switch (logon_type) {
++      case NetlogonInteractiveInformation: {
++
++              struct netr_PasswordInfo *password_info;
++
++              struct samr_Password lmpassword;
++              struct samr_Password ntpassword;
++
++              password_info = TALLOC_ZERO_P(mem_ctx, struct netr_PasswordInfo);
++              if (!password_info) {
++                      return NT_STATUS_NO_MEMORY;
++              }
++
++              nt_lm_owf_gen(password, ntpassword.hash, lmpassword.hash);
++
++              if (cli->dc->negotiate_flags & NETLOGON_NEG_ARCFOUR) {
++                      netlogon_creds_arcfour_crypt(cli->dc, lmpassword.hash, 16);
++                      netlogon_creds_arcfour_crypt(cli->dc, ntpassword.hash, 16);
++              } else {
++                      netlogon_creds_des_encrypt(cli->dc, &lmpassword);
++                      netlogon_creds_des_encrypt(cli->dc, &ntpassword);
++              }
++
++              password_info->identity_info.domain_name.string         = domain;
++              password_info->identity_info.parameter_control          = logon_parameters;
++              password_info->identity_info.logon_id_low               = 0xdead;
++              password_info->identity_info.logon_id_high              = 0xbeef;
++              password_info->identity_info.account_name.string        = username;
++              password_info->identity_info.workstation.string         = clnt_name_slash;
++
++              password_info->lmpassword = lmpassword;
++              password_info->ntpassword = ntpassword;
++
++              logon->password = password_info;
++
++              break;
++      }
++      case NetlogonNetworkInformation: {
++              struct netr_NetworkInfo *network_info;
++              uint8 chal[8];
++              unsigned char local_lm_response[24];
++              unsigned char local_nt_response[24];
++              struct netr_ChallengeResponse lm;
++              struct netr_ChallengeResponse nt;
++
++              ZERO_STRUCT(lm);
++              ZERO_STRUCT(nt);
++
++              network_info = TALLOC_ZERO_P(mem_ctx, struct netr_NetworkInfo);
++              if (!network_info) {
++                      return NT_STATUS_NO_MEMORY;
++              }
++
++              generate_random_buffer(chal, 8);
++
++              SMBencrypt(password, chal, local_lm_response);
++              SMBNTencrypt(password, chal, local_nt_response);
++
++              lm.length = 24;
++              lm.data = local_lm_response;
++
++              nt.length = 24;
++              nt.data = local_nt_response;
++
++              network_info->identity_info.domain_name.string          = domain;
++              network_info->identity_info.parameter_control           = logon_parameters;
++              network_info->identity_info.logon_id_low                = 0xdead;
++              network_info->identity_info.logon_id_high               = 0xbeef;
++              network_info->identity_info.account_name.string         = username;
++              network_info->identity_info.workstation.string          = clnt_name_slash;
++
++              memcpy(network_info->challenge, chal, 8);
++              network_info->nt = nt;
++              network_info->lm = lm;
++
++              logon->network = network_info;
++
++              break;
++      }
++      default:
++              DEBUG(0, ("switch value %d not supported\n",
++                      logon_type));
++              return NT_STATUS_INVALID_INFO_CLASS;
++      }
++
++      status = dcerpc_netr_LogonSamLogonEx(b, mem_ctx,
++                                           cli->srv_name_slash,
++                                           global_myname(),
++                                           logon_type,
++                                           logon,
++                                           validation_level,
++                                           &validation,
++                                           &authoritative,
++                                           &flags,
++                                           &result);
++      if (!NT_STATUS_IS_OK(status)) {
++              return status;
++      }
++
++      if (!NT_STATUS_IS_OK(result)) {
++              return result;
++      }
++
++      netlogon_creds_decrypt_samlogon(cli->dc, validation_level, &validation);
++
++      result = map_validation_to_info3(mem_ctx, validation_level, &validation, info3);
++      if (!NT_STATUS_IS_OK(result)) {
++              return result;
++      }
++
++      return result;
++}
++
++
+ /**
+  * Logon domain user with an 'network' SAM logon
+  *
+diff --git a/source3/rpc_client/cli_netlogon.h b/source3/rpc_client/cli_netlogon.h
+index 9c6cbc8..3763843 100644
+--- a/source3/rpc_client/cli_netlogon.h
++++ b/source3/rpc_client/cli_netlogon.h
+@@ -43,6 +43,16 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli,
+                                  uint16_t validation_level,
+                                  int logon_type,
+                                  struct netr_SamInfo3 **info3);
++NTSTATUS rpccli_netlogon_sam_logon_ex(struct rpc_pipe_client *cli,
++                                    TALLOC_CTX *mem_ctx,
++                                    uint32 logon_parameters,
++                                    const char *domain,
++                                    const char *username,
++                                    const char *password,
++                                    const char *workstation,
++                                    uint16_t validation_level,
++                                    int logon_type,
++                                    struct netr_SamInfo3 **info3);
+ NTSTATUS rpccli_netlogon_sam_network_logon(struct rpc_pipe_client *cli,
+                                          TALLOC_CTX *mem_ctx,
+                                          uint32 logon_parameters,
+commit f39f18e062207427ea436c85a7c721629a38bc0d
+Author:     Günther Deschner <gd@samba.org>
+AuthorDate: Tue Jul 15 16:22:15 2014 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Tue Jul 15 16:25:04 2014 +0200
+
+    PATCHSET14 s3-winbindd: prefer to do a rpccli_netlogon_sam_logon_ex if we can.
+    
+    Guenther
+    
+    Signed-off-by: Günther Deschner <gd@samba.org>
+---
+ source3/winbindd/winbindd_pam.c | 36 +++++++++++++++++++++++++-----------
+ 1 file changed, 25 insertions(+), 11 deletions(-)
+
+diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c
+index 86b352e..e838ac6 100644
+--- a/source3/winbindd/winbindd_pam.c
++++ b/source3/winbindd/winbindd_pam.c
+@@ -1272,17 +1272,31 @@ static NTSTATUS winbind_samlogon_retry_loop(struct winbindd_domain *domain,
+               }
+               if (interactive && username != NULL && password != NULL) {
+-                      result = rpccli_netlogon_sam_logon(
+-                                      netlogon_pipe,
+-                                      mem_ctx,
+-                                      logon_parameters,
+-                                      domainname,
+-                                      username,
+-                                      password,
+-                                      workstation,
+-                                      3, /* FIXME */
+-                                      NetlogonInteractiveInformation,
+-                                      info3);
++                      if (domain->can_do_samlogon_ex && domain->can_do_validation6) {
++                              result = rpccli_netlogon_sam_logon_ex(
++                                              netlogon_pipe,
++                                              mem_ctx,
++                                              logon_parameters,
++                                              domainname,
++                                              username,
++                                              password,
++                                              workstation,
++                                              6,
++                                              NetlogonInteractiveInformation,
++                                              info3);
++                      } else {
++                              result = rpccli_netlogon_sam_logon(
++                                              netlogon_pipe,
++                                              mem_ctx,
++                                              logon_parameters,
++                                              domainname,
++                                              username,
++                                              password,
++                                              workstation,
++                                              domain->can_do_validation6 ? 6 : 3,
++                                              NetlogonInteractiveInformation,
++                                              info3);
++                      }
+               } else if (domain->can_do_samlogon_ex && domain->can_do_validation6) {
+                       result = rpccli_netlogon_sam_network_logon_ex(
+                                       netlogon_pipe,
+From fa58aff691268b021ba4dde1eb580d0387b917e1 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Wed, 20 Aug 2014 15:51:21 +0200
+Subject: [PATCH] PATCHSET14: Reset netlogon pipe for interactive samlogon_ex.
+
+---
+ source3/winbindd/winbindd_pam.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c
+index e838ac6..5316232 100644
+--- a/source3/winbindd/winbindd_pam.c
++++ b/source3/winbindd/winbindd_pam.c
+@@ -1297,6 +1297,18 @@ static NTSTATUS winbind_samlogon_retry_loop(struct winbindd_domain *domain,
+                                               NetlogonInteractiveInformation,
+                                               info3);
+                       }
++
++                      if (NT_STATUS_EQUAL(result, NT_STATUS_WRONG_PASSWORD)) {
++                              /*
++                               * HACK: This is a 3.6 hack that we get a new
++                               * session_key to do a successfuly interactive
++                               * logon
++                               */
++                              TALLOC_FREE(domain->conn.netlogon_pipe);
++                              attempts += 1;
++                              retry = true;
++                              continue;
++                      }
+               } else if (domain->can_do_samlogon_ex && domain->can_do_validation6) {
+                       result = rpccli_netlogon_sam_network_logon_ex(
+                                       netlogon_pipe,
+-- 
+1.9.3
+
diff --git a/src/patches/samba/samba-3.6.99-fix_group_expansion_in_service_path.patch b/src/patches/samba/samba-3.6.99-fix_group_expansion_in_service_path.patch
new file mode 100644 (file)
index 0000000..28661d7
--- /dev/null
@@ -0,0 +1,46 @@
+commit 1d5f14acc3bacb96f7b8b300b3aeccd793552122
+Author:     Andreas Schneider <asn@samba.org>
+AuthorDate: Wed Nov 27 17:21:01 2013 +0100
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Wed Feb 5 11:44:51 2014 +0100
+
+    s3-lib: Fix %G substitution for domain users in smbd
+    
+    BUG: https://bugzilla.samba.org/show_bug.cgi?id=10286
+    Signed-off-by: Andreas Schneider <asn@samba.org>
+    Reviewed-by: Christian Ambach <ambi@samba.org>
+    
+    Autobuild-User(master): Christian Ambach <ambi@samba.org>
+    Autobuild-Date(master): Tue Dec 10 16:39:43 CET 2013 on sn-devel-104
+    
+    (cherry picked from commit 8eef4ab79ec5fb7e96ad2f2ad6c9bf30db13a50d)
+---
+ source3/lib/substitute.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/source3/lib/substitute.c b/source3/lib/substitute.c
+index 10beed7..5f72a5d 100644
+--- a/source3/lib/substitute.c
++++ b/source3/lib/substitute.c
+@@ -605,10 +605,20 @@ static char *alloc_sub_basic(const char *smb_name, const char *domain_name,
+                       break;
+               case 'G' : {
+                       struct passwd *pass;
+-                      r = talloc_strdup(tmp_ctx, smb_name);
++
++                      if (domain_name != NULL && domain_name[0] != '\0') {
++                              r = talloc_asprintf(tmp_ctx,
++                                                  "%s%c%s",
++                                                  domain_name,
++                                                  *lp_winbind_separator(),
++                                                  smb_name);
++                      } else {
++                              r = talloc_strdup(tmp_ctx, smb_name);
++                      }
+                       if (r == NULL) {
+                               goto error;
+                       }
++
+                       pass = Get_Pwnam_alloc(tmp_ctx, r);
+                       if (pass != NULL) {
+                               a_string = realloc_string_sub(
diff --git a/src/patches/samba/samba-3.6.99-fix_group_expansion_with_nss_templates.patch b/src/patches/samba/samba-3.6.99-fix_group_expansion_with_nss_templates.patch
new file mode 100644 (file)
index 0000000..6d43f7c
--- /dev/null
@@ -0,0 +1,376 @@
+commit 75989f1d0d3ec86bb2046511b962ad72119c750b
+Author:     Andreas Schneider <asn@samba.org>
+AuthorDate: Mon Nov 18 14:58:04 2013 +0100
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Wed Feb 5 11:38:44 2014 +0100
+
+    s3-lib: Add grpname to talloc_sub_specified().
+    
+    BUG: https://bugzilla.samba.org/show_bug.cgi?id=2191
+---
+ source3/include/proto.h          |  1 +
+ source3/lib/substitute.c         | 31 +++++++++++++++++++++++++------
+ source3/passdb/passdb.c          |  8 ++++----
+ source3/passdb/pdb_ldap.c        | 24 +++++++++++++++++++++---
+ source3/torture/torture.c        |  2 +-
+ source3/utils/net_sam.c          |  2 ++
+ source3/winbindd/wb_fill_pwent.c |  4 ++--
+ 7 files changed, 56 insertions(+), 16 deletions(-)
+
+diff --git a/source3/include/proto.h b/source3/include/proto.h
+index 7303e76..db091ce 100644
+--- a/source3/include/proto.h
++++ b/source3/include/proto.h
+@@ -365,6 +365,7 @@ char *talloc_sub_basic(TALLOC_CTX *mem_ctx, const char *smb_name,
+ char *talloc_sub_specified(TALLOC_CTX *mem_ctx,
+                       const char *input_string,
+                       const char *username,
++                      const char *grpname,
+                       const char *domain,
+                       uid_t uid,
+                       gid_t gid);
+diff --git a/source3/lib/substitute.c b/source3/lib/substitute.c
+index 68328e5..10beed7 100644
+--- a/source3/lib/substitute.c
++++ b/source3/lib/substitute.c
+@@ -722,6 +722,7 @@ done:
+ char *talloc_sub_specified(TALLOC_CTX *mem_ctx,
+                       const char *input_string,
+                       const char *username,
++                      const char *grpname,
+                       const char *domain,
+                       uid_t uid,
+                       gid_t gid)
+@@ -757,9 +758,18 @@ char *talloc_sub_specified(TALLOC_CTX *mem_ctx,
+                       break;
+               case 'G' :
+                       if (gid != -1) {
+-                              a_string = talloc_string_sub(
+-                                      tmp_ctx, a_string, "%G",
+-                                      gidtoname(gid));
++                              const char *name;
++
++                              if (grpname != NULL) {
++                                      name = grpname;
++                              } else {
++                                      name = gidtoname(gid);
++                              }
++
++                              a_string = talloc_string_sub(tmp_ctx,
++                                                           a_string,
++                                                           "%G",
++                                                           name);
+                       } else {
+                               a_string = talloc_string_sub(
+                                       tmp_ctx, a_string,
+@@ -768,9 +778,18 @@ char *talloc_sub_specified(TALLOC_CTX *mem_ctx,
+                       break;
+               case 'g' :
+                       if (gid != -1) {
+-                              a_string = talloc_string_sub(
+-                                      tmp_ctx, a_string, "%g",
+-                                      gidtoname(gid));
++                              const char *name;
++
++                              if (grpname != NULL) {
++                                      name = grpname;
++                              } else {
++                                      name = gidtoname(gid);
++                              }
++
++                              a_string = talloc_string_sub(tmp_ctx,
++                                                           a_string,
++                                                           "%g",
++                                                           name);
+                       } else {
+                               a_string = talloc_string_sub(
+                                       tmp_ctx, a_string, "%g", "NO_GROUP");
+diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c
+index 52c1129..493a694 100644
+--- a/source3/passdb/passdb.c
++++ b/source3/passdb/passdb.c
+@@ -228,16 +228,16 @@ static NTSTATUS samu_set_unix_internal(struct samu *user, const struct passwd *p
+               /* set some basic attributes */
+               pdb_set_profile_path(user, talloc_sub_specified(user, 
+-                      lp_logon_path(), pwd->pw_name, domain, pwd->pw_uid, pwd->pw_gid), 
++                      lp_logon_path(), pwd->pw_name, NULL, domain, pwd->pw_uid, pwd->pw_gid),
+                       PDB_DEFAULT);           
+               pdb_set_homedir(user, talloc_sub_specified(user, 
+-                      lp_logon_home(), pwd->pw_name, domain, pwd->pw_uid, pwd->pw_gid),
++                      lp_logon_home(), pwd->pw_name, NULL, domain, pwd->pw_uid, pwd->pw_gid),
+                       PDB_DEFAULT);
+               pdb_set_dir_drive(user, talloc_sub_specified(user, 
+-                      lp_logon_drive(), pwd->pw_name, domain, pwd->pw_uid, pwd->pw_gid),
++                      lp_logon_drive(), pwd->pw_name, NULL, domain, pwd->pw_uid, pwd->pw_gid),
+                       PDB_DEFAULT);
+               pdb_set_logon_script(user, talloc_sub_specified(user, 
+-                      lp_logon_script(), pwd->pw_name, domain, pwd->pw_uid, pwd->pw_gid), 
++                      lp_logon_script(), pwd->pw_name, NULL, domain, pwd->pw_uid, pwd->pw_gid),
+                       PDB_DEFAULT);
+       }
+diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c
+index 9316f40..1665641 100644
+--- a/source3/passdb/pdb_ldap.c
++++ b/source3/passdb/pdb_ldap.c
+@@ -5399,11 +5399,29 @@ static NTSTATUS ldapsam_create_user(struct pdb_methods *my_methods,
+               if (is_machine) {
+                       /* TODO: choose a more appropriate default for machines */
+-                      homedir = talloc_sub_specified(tmp_ctx, lp_template_homedir(), "SMB_workstations_home", ldap_state->domain_name, uid, gid);
++                      homedir = talloc_sub_specified(tmp_ctx,
++                                                     lp_template_homedir(),
++                                                     "SMB_workstations_home",
++                                                     NULL,
++                                                     ldap_state->domain_name,
++                                                     uid,
++                                                     gid);
+                       shell = talloc_strdup(tmp_ctx, "/bin/false");
+               } else {
+-                      homedir = talloc_sub_specified(tmp_ctx, lp_template_homedir(), name, ldap_state->domain_name, uid, gid);
+-                      shell = talloc_sub_specified(tmp_ctx, lp_template_shell(), name, ldap_state->domain_name, uid, gid);
++                      homedir = talloc_sub_specified(tmp_ctx,
++                                                     lp_template_homedir(),
++                                                     name,
++                                                     NULL,
++                                                     ldap_state->domain_name,
++                                                     uid,
++                                                     gid);
++                      shell = talloc_sub_specified(tmp_ctx,
++                                                   lp_template_shell(),
++                                                   name,
++                                                   NULL,
++                                                   ldap_state->domain_name,
++                                                   uid,
++                                                   gid);
+               }
+               uidstr = talloc_asprintf(tmp_ctx, "%u", (unsigned int)uid);
+               gidstr = talloc_asprintf(tmp_ctx, "%u", (unsigned int)gid);
+diff --git a/source3/torture/torture.c b/source3/torture/torture.c
+index d37d83c..def177b 100644
+--- a/source3/torture/torture.c
++++ b/source3/torture/torture.c
+@@ -5976,7 +5976,7 @@ static bool subst_test(const char *str, const char *user, const char *domain,
+       char *subst;
+       bool result = true;
+-      subst = talloc_sub_specified(talloc_tos(), str, user, domain, uid, gid);
++      subst = talloc_sub_specified(talloc_tos(), str, user, NULL, domain, uid, gid);
+       if (strcmp(subst, expected) != 0) {
+               printf("sub_specified(%s, %s, %s, %d, %d) returned [%s], expected "
+diff --git a/source3/utils/net_sam.c b/source3/utils/net_sam.c
+index 0ff7c55..b49bb73 100644
+--- a/source3/utils/net_sam.c
++++ b/source3/utils/net_sam.c
+@@ -1847,10 +1847,12 @@ doma_done:
+               gidstr = talloc_asprintf(tc, "%u", (unsigned int)domadmins_gid);
+               dir = talloc_sub_specified(tc, lp_template_homedir(),
+                                               "Administrator",
++                                              NULL,
+                                               get_global_sam_name(),
+                                               uid, domadmins_gid);
+               shell = talloc_sub_specified(tc, lp_template_shell(),
+                                               "Administrator",
++                                              NULL,
+                                               get_global_sam_name(),
+                                               uid, domadmins_gid);
+diff --git a/source3/winbindd/wb_fill_pwent.c b/source3/winbindd/wb_fill_pwent.c
+index 8f09480..4d94a31 100644
+--- a/source3/winbindd/wb_fill_pwent.c
++++ b/source3/winbindd/wb_fill_pwent.c
+@@ -181,11 +181,11 @@ static bool fillup_pw_field(const char *lp_template,
+       if ((in != NULL) && (in[0] != '\0') && (lp_security() == SEC_ADS)) {
+               templ = talloc_sub_specified(talloc_tos(), in,
+-                                           username, domname,
++                                           username, NULL, domname,
+                                            uid, gid);
+       } else {
+               templ = talloc_sub_specified(talloc_tos(), lp_template,
+-                                           username, domname,
++                                           username, NULL, domname,
+                                            uid, gid);
+       }
+commit 5faa0adf0a8c450897d7a61d348a600f889e5bef
+Author:     Andreas Schneider <asn@samba.org>
+AuthorDate: Mon Nov 18 14:58:14 2013 +0100
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Wed Feb 5 11:43:17 2014 +0100
+
+    s3-winbind: Pass the group name to fillup_pw_field().
+    
+    BUG: https://bugzilla.samba.org/show_bug.cgi?id=2191
+---
+ source3/winbindd/wb_fill_pwent.c | 58 +++++++++++++++++++++++++++++-----------
+ 1 file changed, 42 insertions(+), 16 deletions(-)
+
+diff --git a/source3/winbindd/wb_fill_pwent.c b/source3/winbindd/wb_fill_pwent.c
+index 4d94a31..878c5ad 100644
+--- a/source3/winbindd/wb_fill_pwent.c
++++ b/source3/winbindd/wb_fill_pwent.c
+@@ -29,6 +29,7 @@ struct wb_fill_pwent_state {
+ static bool fillup_pw_field(const char *lp_template,
+                           const char *username,
++                          const char *grpname,
+                           const char *domname,
+                           uid_t uid,
+                           gid_t gid,
+@@ -36,7 +37,7 @@ static bool fillup_pw_field(const char *lp_template,
+                           fstring out);
+ static void wb_fill_pwent_sid2uid_done(struct tevent_req *subreq);
+-static void wb_fill_pwent_sid2gid_done(struct tevent_req *subreq);
++static void wb_fill_pwent_getgrsid_done(struct tevent_req *subreq);
+ struct tevent_req *wb_fill_pwent_send(TALLOC_CTX *mem_ctx,
+                                     struct tevent_context *ev,
+@@ -76,33 +77,44 @@ static void wb_fill_pwent_sid2uid_done(struct tevent_req *subreq)
+               return;
+       }
+-      subreq = wb_sid2gid_send(state, state->ev, &state->info->group_sid);
++      subreq = wb_getgrsid_send(state, state->ev, &state->info->group_sid, 1);
+       if (tevent_req_nomem(subreq, req)) {
+               return;
+       }
+-      tevent_req_set_callback(subreq, wb_fill_pwent_sid2gid_done, req);
++      tevent_req_set_callback(subreq, wb_fill_pwent_getgrsid_done, req);
+ }
+-static void wb_fill_pwent_sid2gid_done(struct tevent_req *subreq)
++static void wb_fill_pwent_getgrsid_done(struct tevent_req *subreq)
+ {
+       struct tevent_req *req = tevent_req_callback_data(
+               subreq, struct tevent_req);
+       struct wb_fill_pwent_state *state = tevent_req_data(
+               req, struct wb_fill_pwent_state);
+       struct winbindd_domain *domain;
+-      char *dom_name;
++      const char *dom_name;
++      const char *grp_name;
+       fstring user_name, output_username;
+       char *mapped_name = NULL;
++      struct talloc_dict *members;
++      TALLOC_CTX *tmp_ctx = talloc_stackframe();
+       NTSTATUS status;
+-
+-      status = wb_sid2gid_recv(subreq, &state->pw->pw_gid);
++      bool ok;
++
++      status = wb_getgrsid_recv(subreq,
++                                tmp_ctx,
++                                &dom_name,
++                                &grp_name,
++                                &state->pw->pw_gid,
++                                &members);
+       TALLOC_FREE(subreq);
+       if (tevent_req_nterror(req, status)) {
++              talloc_free(tmp_ctx);
+               return;
+       }
+       domain = find_domain_from_sid_noinit(&state->info->user_sid);
+       if (domain == NULL) {
++              talloc_free(tmp_ctx);
+               tevent_req_nterror(req, NT_STATUS_NO_SUCH_USER);
+               return;
+       }
+@@ -133,17 +145,30 @@ static void wb_fill_pwent_sid2gid_done(struct tevent_req *subreq)
+       fstrcpy(state->pw->pw_gecos, state->info->full_name);
+       /* Home directory and shell */
+-
+-      if (!fillup_pw_field(lp_template_homedir(), user_name, dom_name,
+-                           state->pw->pw_uid, state->pw->pw_gid,
+-                           state->info->homedir, state->pw->pw_dir)) {
++      ok = fillup_pw_field(lp_template_homedir(),
++                           user_name,
++                           grp_name,
++                           dom_name,
++                           state->pw->pw_uid,
++                           state->pw->pw_gid,
++                           state->info->homedir,
++                           state->pw->pw_dir);
++      if (!ok) {
++              talloc_free(tmp_ctx);
+               tevent_req_nterror(req, NT_STATUS_NO_SUCH_USER);
+               return;
+       }
+-      if (!fillup_pw_field(lp_template_shell(), user_name, dom_name,
+-                           state->pw->pw_uid, state->pw->pw_gid,
+-                           state->info->shell, state->pw->pw_shell)) {
++      ok = fillup_pw_field(lp_template_shell(),
++                           user_name,
++                           grp_name,
++                           dom_name,
++                           state->pw->pw_uid,
++                           state->pw->pw_gid,
++                           state->info->shell,
++                           state->pw->pw_shell);
++      talloc_free(tmp_ctx);
++      if (!ok) {
+               tevent_req_nterror(req, NT_STATUS_NO_SUCH_USER);
+               return;
+       }
+@@ -162,6 +187,7 @@ NTSTATUS wb_fill_pwent_recv(struct tevent_req *req)
+ static bool fillup_pw_field(const char *lp_template,
+                           const char *username,
++                          const char *grpname,
+                           const char *domname,
+                           uid_t uid,
+                           gid_t gid,
+@@ -181,11 +207,11 @@ static bool fillup_pw_field(const char *lp_template,
+       if ((in != NULL) && (in[0] != '\0') && (lp_security() == SEC_ADS)) {
+               templ = talloc_sub_specified(talloc_tos(), in,
+-                                           username, NULL, domname,
++                                           username, grpname, domname,
+                                            uid, gid);
+       } else {
+               templ = talloc_sub_specified(talloc_tos(), lp_template,
+-                                           username, NULL, domname,
++                                           username, grpname, domname,
+                                            uid, gid);
+       }
+commit db176c22f4f3e4c4f38288144d63822c3c191419
+Author:     Volker Lendecke <vl@samba.org>
+AuthorDate: Thu Jan 16 16:10:25 2014 +0100
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Wed Feb 5 11:44:15 2014 +0100
+
+    s3-winbind: Improve performance of wb_fill_pwent_sid2uid_done().
+    
+    BUG: https://bugzilla.samba.org/show_bug.cgi?id=2191
+    
+    Signed-off-by: Volker Lendecke <vl@samba.org>
+    Reviewed-by: Andreas Schneider <asn@samba.org>
+    
+    Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
+    Autobuild-Date(master): Thu Jan 16 20:17:24 CET 2014 on sn-devel-104
+    
+    (cherry picked from commit 1a43778433934530d77791edd1af538de8b1d8a3)
+---
+ source3/winbindd/wb_fill_pwent.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/source3/winbindd/wb_fill_pwent.c b/source3/winbindd/wb_fill_pwent.c
+index 878c5ad..9634317 100644
+--- a/source3/winbindd/wb_fill_pwent.c
++++ b/source3/winbindd/wb_fill_pwent.c
+@@ -77,7 +77,7 @@ static void wb_fill_pwent_sid2uid_done(struct tevent_req *subreq)
+               return;
+       }
+-      subreq = wb_getgrsid_send(state, state->ev, &state->info->group_sid, 1);
++      subreq = wb_getgrsid_send(state, state->ev, &state->info->group_sid, 0);
+       if (tevent_req_nomem(subreq, req)) {
+               return;
+       }
diff --git a/src/patches/samba/samba-3.6.99-fix_keytab_null_termination.patch b/src/patches/samba/samba-3.6.99-fix_keytab_null_termination.patch
new file mode 100644 (file)
index 0000000..6c78b23
--- /dev/null
@@ -0,0 +1,37 @@
+From e56b5bf5eddfa89ae948dc7bb154dfc6154199a6 Mon Sep 17 00:00:00 2001
+From: Matt Rogers <mrogers@redhat.com>
+Date: Wed, 12 Nov 2014 17:21:05 +0100
+Subject: [PATCH] PATCHSET17: s3-keytab: fix keytab array NULL termination.
+
+Signed-off-by: Matt Rogers <mrogers@redhat.com>
+Reviewed-by: Guenther Deschner <gd@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+(cherry picked from commit 0de6799996955fbf8e19ace8c4b7b61f5a262cb5)
+Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
+---
+ source3/libads/kerberos_keytab.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/source3/libads/kerberos_keytab.c b/source3/libads/kerberos_keytab.c
+index badce3e..1033842 100644
+--- a/source3/libads/kerberos_keytab.c
++++ b/source3/libads/kerberos_keytab.c
+@@ -629,14 +629,13 @@ int ads_keytab_create_default(ADS_STRUCT *ads)
+               goto done;
+       }
+-      oldEntries = talloc_array(tmpctx, char *, found);
++      oldEntries = talloc_zero_array(tmpctx, char *, found + 1);
+       if (!oldEntries) {
+               DEBUG(1, (__location__ ": Failed to allocate space to store "
+                         "the old keytab entries (talloc failed?).\n"));
+               ret = -1;
+               goto done;
+       }
+-      memset(oldEntries, '\0', found * sizeof(char *));
+       ret = krb5_kt_start_seq_get(context, keytab, &cursor);
+       if (ret == KRB5_KT_END || ret == ENOENT) {
+-- 
+2.1.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_lookups_with_one_way_trusts.patch b/src/patches/samba/samba-3.6.99-fix_lookups_with_one_way_trusts.patch
new file mode 100644 (file)
index 0000000..c425489
--- /dev/null
@@ -0,0 +1,37 @@
+commit afcc7e5ef289d25c19c7ac881ce505ec910fde7c
+Author:     Gregor Beck <gbeck@sernet.de>
+AuthorDate: Thu Feb 20 11:25:53 2014 +0100
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Mon Mar 3 16:49:42 2014 +0100
+
+    s3:winbindd: avoid directly asking a trusted domain in wb_lookupsids*()
+    
+    As a domain member we should always use a DC of our own domain.
+    
+    It would be possible to pass all sids in one single dcerpc_wbint_LookupSids()
+    call. For now we just fix bug.
+    
+    Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>
+    
+    Bug: https://bugzilla.samba.org/show_bug.cgi?id=10458
+    Signed-off-by: Gregor Beck <gbeck@sernet.de>
+    Signed-off-by: Stefan Metzmacher <metze@samba.org>
+    Reviewed-by: Andreas Schneider <asn@samba.org>
+    (cherry picked from commit 66fb0ce9557553a4c01607b517e65ac4c93841d0)
+---
+ source3/winbindd/wb_lookupsids.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/source3/winbindd/wb_lookupsids.c b/source3/winbindd/wb_lookupsids.c
+index 2fd735d..1bfdba8 100644
+--- a/source3/winbindd/wb_lookupsids.c
++++ b/source3/winbindd/wb_lookupsids.c
+@@ -320,7 +320,7 @@ static struct wb_lookupsids_domain *wb_lookupsids_get_domain(
+               }
+       }
+-      wb_domain = find_domain_from_sid_noinit(sid);
++      wb_domain = find_lookup_domain_from_sid(sid);
+       if (wb_domain == NULL) {
+               return NULL;
+       }
diff --git a/src/patches/samba/samba-3.6.99-fix_mangling_hash_segfault.patch b/src/patches/samba/samba-3.6.99-fix_mangling_hash_segfault.patch
new file mode 100644 (file)
index 0000000..ce19a97
--- /dev/null
@@ -0,0 +1,38 @@
+From 9f974a391260e95340f08091fdbc822845eae160 Mon Sep 17 00:00:00 2001
+From: Volker Lendecke <vl@samba.org>
+Date: Tue, 19 Aug 2014 14:32:15 +0000
+Subject: [PATCH] PATCHSET29: smbd: Properly initialize mangle_hash
+
+[Bug 10782] mangle_hash() can fail to initialize charset (smbd crash).
+
+https://bugzilla.samba.org/show_bug.cgi?id=10782
+
+Signed-off-by: Volker Lendecke <vl@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+
+Autobuild-User(master): Jeremy Allison <jra@samba.org>
+Autobuild-Date(master): Tue Aug 26 01:30:38 CEST 2014 on sn-devel-104
+
+(cherry picked from commit e914c2c52db7ecf3bb2a3860820c5cfe8812696e)
+---
+ source3/smbd/mangle_hash.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/source3/smbd/mangle_hash.c b/source3/smbd/mangle_hash.c
+index bafcd03..35a098f 100644
+--- a/source3/smbd/mangle_hash.c
++++ b/source3/smbd/mangle_hash.c
+@@ -706,6 +706,10 @@ const struct mangle_fns *mangle_hash_init(void)
+ {
+       mangle_reset();
++      if (chartest == NULL) {
++              init_chartest();
++      }
++
+       /* Create the in-memory tdb using our custom hash function. */
+       tdb_mangled_cache = tdb_open_ex("mangled_cache", 1031, TDB_INTERNAL,
+                               (O_RDWR|O_CREAT), 0644, NULL, fast_string_hash);
+-- 
+2.5.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_map_to_guest_bad_uid.patch b/src/patches/samba/samba-3.6.99-fix_map_to_guest_bad_uid.patch
new file mode 100644 (file)
index 0000000..3d5add1
--- /dev/null
@@ -0,0 +1,76 @@
+From c370237f44f91f98e4e5cce81fafeea442573bad Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Wed, 19 Aug 2015 16:24:08 +0200
+Subject: [PATCH 1/2] PATCHSET32: s3-auth: Pass nt_username to check_account()
+
+We set nt_username above but do not use it in this function.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=9862
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Guenther Deschner <gd@samba.org>
+(cherry picked from commit e8c76932e4ac192a00afa3b9731f5921c4b37da6)
+---
+ source3/auth/auth_util.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c
+index a548b7b..aa269d6 100644
+--- a/source3/auth/auth_util.c
++++ b/source3/auth/auth_util.c
+@@ -1251,9 +1251,12 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx,
+       /* this call will try to create the user if necessary */
+-      nt_status = check_account(mem_ctx, nt_domain, sent_nt_username,
+-                                   &found_username, &pwd,
+-                                   &username_was_mapped);
++      nt_status = check_account(mem_ctx,
++                                nt_domain,
++                                nt_username,
++                                &found_username,
++                                &pwd,
++                                &username_was_mapped);
+       if (!NT_STATUS_IS_OK(nt_status)) {
+               return nt_status;
+-- 
+2.5.0
+
+
+From 1ab3cd252942b4fa5637d3f98b48ac3ba098de30 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Wed, 19 Aug 2015 16:11:47 +0200
+Subject: [PATCH 2/2] PATCHSET32: s3-auth: Fix 'map to guest = Bad Uid' support
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=9862
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Guenther Deschner <gd@samba.org>
+(cherry picked from commit 34965d4d98d172e848e2b96fad8a9e0b99288ba7)
+---
+ source3/auth/auth_util.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c
+index aa269d6..cfda8b7 100644
+--- a/source3/auth/auth_util.c
++++ b/source3/auth/auth_util.c
+@@ -1259,6 +1259,14 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx,
+                                 &username_was_mapped);
+       if (!NT_STATUS_IS_OK(nt_status)) {
++              /* Handle 'map to guest = Bad Uid */
++              if (NT_STATUS_EQUAL(nt_status, NT_STATUS_NO_SUCH_USER) &&
++                  (lp_security() == SEC_ADS || lp_security() == SEC_DOMAIN) &&
++                  lp_map_to_guest() == MAP_TO_GUEST_ON_BAD_UID) {
++                      DEBUG(2, ("Try to map %s to guest account\n",
++                                 nt_username));
++                      return make_server_info_guest(mem_ctx, server_info);
++              }
+               return nt_status;
+       }
+-- 
+2.5.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_member_auth_after_changed_secret.patch b/src/patches/samba/samba-3.6.99-fix_member_auth_after_changed_secret.patch
new file mode 100644 (file)
index 0000000..819a4f5
--- /dev/null
@@ -0,0 +1,89 @@
+From 51fbcb75007faddfbea29ef78a3857ba878a2327 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org>
+Date: Thu, 6 Dec 2012 14:54:25 +0100
+Subject: [PATCH] s3-rpc_server: Remove obsolete process_creds boolean in
+ samlogon server.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Guenther
+
+Signed-off-by: Günther Deschner <gd@samba.org>
+Reviewed-by: Stefan Metzmacher <metze@samba.org>
+
+(cherry picked from commit c1fb595081c2b0bf66bce06c09750f53e8031311)
+---
+ source3/rpc_server/netlogon/srv_netlog_nt.c | 27 +++------------------------
+ 1 file changed, 3 insertions(+), 24 deletions(-)
+
+diff --git a/source3/rpc_server/netlogon/srv_netlog_nt.c b/source3/rpc_server/netlogon/srv_netlog_nt.c
+index 8079b3a..d14d0ed 100644
+--- a/source3/rpc_server/netlogon/srv_netlog_nt.c
++++ b/source3/rpc_server/netlogon/srv_netlog_nt.c
+@@ -1416,21 +1416,16 @@ static NTSTATUS _netr_LogonSamLogon_base(struct pipes_struct *p,
+       struct auth_usersupplied_info *user_info = NULL;
+       struct auth_serversupplied_info *server_info = NULL;
+       struct auth_context *auth_context = NULL;
+-      uint8_t pipe_session_key[16];
+-      bool process_creds = true;
+       const char *fn;
+       switch (p->opnum) {
+               case NDR_NETR_LOGONSAMLOGON:
+-                      process_creds = true;
+                       fn = "_netr_LogonSamLogon";
+                       break;
+               case NDR_NETR_LOGONSAMLOGONWITHFLAGS:
+-                      process_creds = true;
+                       fn = "_netr_LogonSamLogonWithFlags";
+                       break;
+               case NDR_NETR_LOGONSAMLOGONEX:
+-                      process_creds = false;
+                       fn = "_netr_LogonSamLogonEx";
+                       break;
+               default:
+@@ -1621,29 +1616,13 @@ static NTSTATUS _netr_LogonSamLogon_base(struct pipes_struct *p,
+            the SAM Local Security Authority should record that the user is
+            logged in to the domain.  */
+-      if (process_creds) {
+-              /* Get the pipe session key from the creds. */
+-              memcpy(pipe_session_key, creds->session_key, 16);
+-      } else {
+-              struct schannel_state *schannel_auth;
+-              /* Get the pipe session key from the schannel. */
+-              if ((p->auth.auth_type != DCERPC_AUTH_TYPE_SCHANNEL)
+-                  || (p->auth.auth_ctx == NULL)) {
+-                      return NT_STATUS_INVALID_HANDLE;
+-              }
+-
+-              schannel_auth = talloc_get_type_abort(p->auth.auth_ctx,
+-                                                    struct schannel_state);
+-              memcpy(pipe_session_key, schannel_auth->creds->session_key, 16);
+-      }
+-
+       switch (r->in.validation_level) {
+       case 2:
+-              status = serverinfo_to_SamInfo2(server_info, pipe_session_key, 16,
++              status = serverinfo_to_SamInfo2(server_info, creds->session_key, 16,
+                                               r->out.validation->sam2);
+               break;
+       case 3:
+-              status = serverinfo_to_SamInfo3(server_info, pipe_session_key, 16,
++              status = serverinfo_to_SamInfo3(server_info, creds->session_key, 16,
+                                               r->out.validation->sam3);
+               break;
+       case 6:
+@@ -1655,7 +1634,7 @@ static NTSTATUS _netr_LogonSamLogon_base(struct pipes_struct *p,
+                       break;
+               }
+-              status = serverinfo_to_SamInfo6(server_info, pipe_session_key, 16,
++              status = serverinfo_to_SamInfo6(server_info, creds->session_key, 16,
+                                               r->out.validation->sam6);
+               break;
+       }
+-- 
+2.9.3
+
diff --git a/src/patches/samba/samba-3.6.99-fix_memleak_in_printer_list.patch b/src/patches/samba/samba-3.6.99-fix_memleak_in_printer_list.patch
new file mode 100644 (file)
index 0000000..979809c
--- /dev/null
@@ -0,0 +1,34 @@
+commit 5c6cbc0becb78f57dea333185a56ea782716c334
+Author:     Jeremy Allison <jra@samba.org>
+AuthorDate: Mon Feb 24 16:18:31 2014 -0800
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Fri Feb 28 17:17:49 2014 +0100
+
+    s3-printing: Fix obvious memory leak in printer_list_get_printer().
+    
+    https://bugzilla.samba.org/show_bug.cgi?id=9993
+    
+    Signed-off-by: Jeremy Allison <jra@samba.org>
+    Reviewed-by: Ira Cooper <ira@samba.org>
+    Reviewed-by: Andreas Schneider <asn@samba.org>
+    
+    Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
+    Autobuild-Date(master): Tue Feb 25 13:19:37 CET 2014 on sn-devel-104
+    
+    (cherry picked from commit 148bbdd8d04400b5d873f636671dd443952ca04f)
+---
+ source3/printing/printer_list.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/source3/printing/printer_list.c b/source3/printing/printer_list.c
+index 8f196a5..603ce4b 100644
+--- a/source3/printing/printer_list.c
++++ b/source3/printing/printer_list.c
+@@ -133,6 +133,7 @@ NTSTATUS printer_list_get_printer(TALLOC_CTX *mem_ctx,
+ done:
+       SAFE_FREE(nstr);
+       SAFE_FREE(cstr);
++      SAFE_FREE(lstr);
+       TALLOC_FREE(key);
+       return status;
+ }
diff --git a/src/patches/samba/samba-3.6.99-fix_memleak_winbind_cached_creds.patch b/src/patches/samba/samba-3.6.99-fix_memleak_winbind_cached_creds.patch
new file mode 100644 (file)
index 0000000..6de8a21
--- /dev/null
@@ -0,0 +1,46 @@
+From cf53bff0e8482e35068d8e894af5634a0a9b1399 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Wed, 29 Jun 2016 13:38:19 +0200
+Subject: [PATCH] s3-winbind: Fix memory leak with each cached credential login
+
+When we allow offline logon and have a lot of logins, windbind will leak
+4k of memory which each log in. On systems with heavy load this can grow
+quickly and the OOM killer will kill Winbind.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11999
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Guenther Deschner <gd@samba.org>
+---
+ source3/winbindd/winbindd_cache.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/source3/winbindd/winbindd_cache.c b/source3/winbindd/winbindd_cache.c
+index 82c8087..2e983cd 100644
+--- a/source3/winbindd/winbindd_cache.c
++++ b/source3/winbindd/winbindd_cache.c
+@@ -3415,7 +3415,7 @@ NTSTATUS wcache_remove_oldest_cached_creds(struct winbindd_domain *domain, const
+       struct winbind_cache *cache = get_cache(domain);
+       NTSTATUS status;
+       int ret;
+-      struct cred_list *cred, *oldest = NULL;
++      struct cred_list *cred, *next, *oldest = NULL;
+       if (!cache->tdb) {
+               return NT_STATUS_INTERNAL_DB_ERROR;
+@@ -3484,7 +3484,11 @@ NTSTATUS wcache_remove_oldest_cached_creds(struct winbindd_domain *domain, const
+               status = NT_STATUS_UNSUCCESSFUL;
+       }
+ done:
+-      SAFE_FREE(wcache_cred_list);
++      for (cred = wcache_cred_list; cred; cred = next) {
++              next = cred->next;
++              DLIST_REMOVE(wcache_cred_list, cred);
++              SAFE_FREE(cred);
++      }
+       SAFE_FREE(oldest);
+       return status;
+-- 
+2.9.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_nbt_query_with_many_components.patch b/src/patches/samba/samba-3.6.99-fix_nbt_query_with_many_components.patch
new file mode 100644 (file)
index 0000000..9d99f44
--- /dev/null
@@ -0,0 +1,35 @@
+commit 9c3a46e53ebfff376eefee88c2b8745e17bdc21b
+Author:     Günther Deschner <gd@samba.org>
+AuthorDate: Tue Feb 4 16:38:46 2014 +0100
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Mon Mar 10 17:18:14 2014 +0100
+
+    PATCHSET6 librpc/nbt: increase MAX_COMPONENTS limit for nbt_names.
+    
+    domains with more then 10 subdomains are not so uncommon.
+    
+    https://bugzilla.samba.org/show_bug.cgi?id=10439
+    
+    Guenther
+    
+    Signed-off-by: Günther Deschner <gd@samba.org>
+    Reviewed-by: Andreas Schneider <asn@samba.org>
+    
+    (cherry picked from commit 4e05bad0d18e351cb2a2db74860e77adea727c79)
+---
+ libcli/nbt/nbtname.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libcli/nbt/nbtname.c b/libcli/nbt/nbtname.c
+index fec8e8e..3aa0000 100644
+--- a/libcli/nbt/nbtname.c
++++ b/libcli/nbt/nbtname.c
+@@ -30,7 +30,7 @@
+ #include "lib/util/util_net.h"
+ /* don't allow an unlimited number of name components */
+-#define MAX_COMPONENTS 10
++#define MAX_COMPONENTS 128
+ /**
+   print a nbt string
diff --git a/src/patches/samba/samba-3.6.99-fix_pam_winbind_parsing_segfault.patch b/src/patches/samba/samba-3.6.99-fix_pam_winbind_parsing_segfault.patch
new file mode 100644 (file)
index 0000000..954af02
--- /dev/null
@@ -0,0 +1,112 @@
+From 580eabc2c9dfe29d719a026ff8f6ac3d2ead1983 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Tue, 8 Sep 2015 16:48:08 +0200
+Subject: [PATCH] PATCHSET28: pam_winbind: Fix a segfault if initialization
+ fails
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11502
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Michael Adam <obnox@samba.org>
+
+Autobuild-User(master): Michael Adam <obnox@samba.org>
+Autobuild-Date(master): Tue Sep  8 21:39:21 CEST 2015 on sn-devel-104
+
+(cherry picked from commit 7d84cd6e40024fd361ea21635f7befed40f0e41f)
+---
+ nsswitch/pam_winbind.c | 19 ++++++++-----------
+ 1 file changed, 8 insertions(+), 11 deletions(-)
+
+diff --git a/nsswitch/pam_winbind.c b/nsswitch/pam_winbind.c
+index d126494..cfaa5f1 100644
+--- a/nsswitch/pam_winbind.c
++++ b/nsswitch/pam_winbind.c
+@@ -2465,7 +2465,7 @@ static int _pam_delete_cred(pam_handle_t *pamh, int flags,
+       retval = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx);
+       if (retval) {
+-              goto out;
++              return retval;
+       }
+       _PAM_LOG_FUNCTION_ENTER("_pam_delete_cred", ctx);
+@@ -2600,7 +2600,7 @@ int pam_sm_authenticate(pam_handle_t *pamh, int flags,
+       retval = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx);
+       if (retval) {
+-              goto out;
++              return retval;
+       }
+       _PAM_LOG_FUNCTION_ENTER("pam_sm_authenticate", ctx);
+@@ -2752,7 +2752,7 @@ int pam_sm_setcred(pam_handle_t *pamh, int flags,
+       ret = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx);
+       if (ret) {
+-              goto out;
++              return ret;
+       }
+       _PAM_LOG_FUNCTION_ENTER("pam_sm_setcred", ctx);
+@@ -2782,8 +2782,6 @@ int pam_sm_setcred(pam_handle_t *pamh, int flags,
+                       break;
+       }
+- out:
+-
+       _PAM_LOG_FUNCTION_LEAVE("pam_sm_setcred", ctx, ret);
+       TALLOC_FREE(ctx);
+@@ -2806,7 +2804,7 @@ int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags,
+       ret = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx);
+       if (ret) {
+-              goto out;
++              return ret;
+       }
+       _PAM_LOG_FUNCTION_ENTER("pam_sm_acct_mgmt", ctx);
+@@ -2901,7 +2899,7 @@ int pam_sm_open_session(pam_handle_t *pamh, int flags,
+       ret = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx);
+       if (ret) {
+-              goto out;
++              return ret;
+       }
+       _PAM_LOG_FUNCTION_ENTER("pam_sm_open_session", ctx);
+@@ -2910,7 +2908,7 @@ int pam_sm_open_session(pam_handle_t *pamh, int flags,
+               /* check and create homedir */
+               ret = _pam_mkhomedir(ctx);
+       }
+- out:
++
+       _PAM_LOG_FUNCTION_LEAVE("pam_sm_open_session", ctx, ret);
+       TALLOC_FREE(ctx);
+@@ -2927,12 +2925,11 @@ int pam_sm_close_session(pam_handle_t *pamh, int flags,
+       ret = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx);
+       if (ret) {
+-              goto out;
++              return ret;
+       }
+       _PAM_LOG_FUNCTION_ENTER("pam_sm_close_session", ctx);
+-out:
+       _PAM_LOG_FUNCTION_LEAVE("pam_sm_close_session", ctx, ret);
+       TALLOC_FREE(ctx);
+@@ -3012,7 +3009,7 @@ int pam_sm_chauthtok(pam_handle_t * pamh, int flags,
+       ret = _pam_winbind_init_context(pamh, flags, argc, argv, &ctx);
+       if (ret) {
+-              goto out;
++              return ret;
+       }
+       _PAM_LOG_FUNCTION_ENTER("pam_sm_chauthtok", ctx);
+-- 
+2.5.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_printcap_cpu_utilization.patch b/src/patches/samba/samba-3.6.99-fix_printcap_cpu_utilization.patch
new file mode 100644 (file)
index 0000000..7c59211
--- /dev/null
@@ -0,0 +1,958 @@
+From 61c58824cc9117ffe206ae7c126929bfa2384486 Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@samba.org>
+Date: Thu, 10 Jul 2014 00:18:10 +0200
+Subject: [PATCH 1/7] PATCHSET18: printing: traverse_read the printer list for
+ share updates
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The printcap update procedure involves the background printer process
+obtaining the printcap information from the printing backend, writing
+this to printer_list.tdb, and then notifying all smbd processes of the
+new list. The processes then all attempt to simultaneously traverse
+printer_list.tdb, in order to update their local share lists.
+
+With a large number of printers, and a large number of per-client smbd
+processes, this traversal results in significant lock contention, mostly
+due to the fact that the traversal is unnecessarily done with an
+exclusive (write) lock on the printer_list.tdb database.
+
+This commit changes the share update code path to perform a read-only
+traversal.
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=10652
+
+Reported-by: Alex K <korobkin+samba@gmail.com>
+Reported-by: Franz Pförtsch <franz.pfoertsch@brose.com>
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+---
+ source3/printing/load.c         |  2 +-
+ source3/printing/pcap.c         |  4 ++--
+ source3/printing/pcap.h         |  2 +-
+ source3/printing/printer_list.c | 17 +++++++++++------
+ source3/printing/printer_list.h |  4 ++--
+ 5 files changed, 17 insertions(+), 12 deletions(-)
+
+diff --git a/source3/printing/load.c b/source3/printing/load.c
+index 829c3e3..0a3de73 100644
+--- a/source3/printing/load.c
++++ b/source3/printing/load.c
+@@ -70,5 +70,5 @@ void load_printers(struct tevent_context *ev,
+       /* load all printcap printers */
+       if (lp_load_printers() && lp_servicenumber(PRINTERS_NAME) >= 0)
+-              pcap_printer_fn(lp_add_one_printer, NULL);
++              pcap_printer_read_fn(lp_add_one_printer, NULL);
+ }
+diff --git a/source3/printing/pcap.c b/source3/printing/pcap.c
+index 62db4f5..6ad8e33 100644
+--- a/source3/printing/pcap.c
++++ b/source3/printing/pcap.c
+@@ -229,11 +229,11 @@ void pcap_printer_fn_specific(const struct pcap_cache *pc,
+       return;
+ }
+-void pcap_printer_fn(void (*fn)(const char *, const char *, const char *, void *), void *pdata)
++void pcap_printer_read_fn(void (*fn)(const char *, const char *, const char *, void *), void *pdata)
+ {
+       NTSTATUS status;
+-      status = printer_list_run_fn(fn, pdata);
++      status = printer_list_read_run_fn(fn, pdata);
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(3, ("Failed to run fn for all printers!\n"));
+       }
+diff --git a/source3/printing/pcap.h b/source3/printing/pcap.h
+index 7056213..6c062c3 100644
+--- a/source3/printing/pcap.h
++++ b/source3/printing/pcap.h
+@@ -39,7 +39,7 @@ bool pcap_cache_add(const char *name, const char *comment, const char *location)
+ bool pcap_cache_loaded(void);
+ bool pcap_cache_replace(const struct pcap_cache *cache);
+ void pcap_printer_fn_specific(const struct pcap_cache *, void (*fn)(const char *, const char *, const char *, void *), void *);
+-void pcap_printer_fn(void (*fn)(const char *, const char *, const char *, void *), void *);
++void pcap_printer_read_fn(void (*fn)(const char *, const char *, const char *, void *), void *);
+ void pcap_cache_reload(struct tevent_context *ev,
+                      struct messaging_context *msg_ctx,
+diff --git a/source3/printing/printer_list.c b/source3/printing/printer_list.c
+index 603ce4b..b24bf83 100644
+--- a/source3/printing/printer_list.c
++++ b/source3/printing/printer_list.c
+@@ -280,7 +280,8 @@ done:
+ typedef int (printer_list_trv_fn_t)(struct db_record *, void *);
+ static NTSTATUS printer_list_traverse(printer_list_trv_fn_t *fn,
+-                                              void *private_data)
++                                    void *private_data,
++                                    bool read_only)
+ {
+       struct db_context *db;
+       int ret;
+@@ -290,7 +291,11 @@ static NTSTATUS printer_list_traverse(printer_list_trv_fn_t *fn,
+               return NT_STATUS_INTERNAL_DB_CORRUPTION;
+       }
+-      ret = db->traverse(db, fn, private_data);
++      if (read_only) {
++              ret = db->traverse_read(db, fn, private_data);
++      } else {
++              ret = db->traverse(db, fn, private_data);
++      }
+       if (ret < 0) {
+               return NT_STATUS_UNSUCCESSFUL;
+       }
+@@ -357,7 +362,7 @@ NTSTATUS printer_list_clean_old(void)
+       state.status = NT_STATUS_OK;
+-      status = printer_list_traverse(printer_list_clean_fn, &state);
++      status = printer_list_traverse(printer_list_clean_fn, &state, false);
+       if (NT_STATUS_EQUAL(status, NT_STATUS_UNSUCCESSFUL) &&
+           !NT_STATUS_IS_OK(state.status)) {
+               status = state.status;
+@@ -404,8 +409,8 @@ static int printer_list_exec_fn(struct db_record *rec, void *private_data)
+       return 0;
+ }
+-NTSTATUS printer_list_run_fn(void (*fn)(const char *, const char *, const char *, void *),
+-                           void *private_data)
++NTSTATUS printer_list_read_run_fn(void (*fn)(const char *, const char *, const char *, void *),
++                                void *private_data)
+ {
+       struct printer_list_exec_state state;
+       NTSTATUS status;
+@@ -414,7 +419,7 @@ NTSTATUS printer_list_run_fn(void (*fn)(const char *, const char *, const char *
+       state.private_data = private_data;
+       state.status = NT_STATUS_OK;
+-      status = printer_list_traverse(printer_list_exec_fn, &state);
++      status = printer_list_traverse(printer_list_exec_fn, &state, true);
+       if (NT_STATUS_EQUAL(status, NT_STATUS_UNSUCCESSFUL) &&
+           !NT_STATUS_IS_OK(state.status)) {
+               status = state.status;
+diff --git a/source3/printing/printer_list.h b/source3/printing/printer_list.h
+index fb2e007..b12c192 100644
+--- a/source3/printing/printer_list.h
++++ b/source3/printing/printer_list.h
+@@ -100,6 +100,6 @@ NTSTATUS printer_list_mark_reload(void);
+  */
+ NTSTATUS printer_list_clean_old(void);
+-NTSTATUS printer_list_run_fn(void (*fn)(const char *, const char *, const char *, void *),
+-                           void *private_data);
++NTSTATUS printer_list_read_run_fn(void (*fn)(const char *, const char *, const char *, void *),
++                                void *private_data);
+ #endif /* _PRINTER_LIST_H_ */
+-- 
+2.1.0
+
+
+From 18b15f127b656ad9232789b073460c95b1aaa835 Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@samba.org>
+Date: Fri, 11 Jul 2014 17:00:05 +0200
+Subject: [PATCH 2/7] PATCHSET18: printing: only reload printer shares on
+ client enum
+
+Currently, automatic printer share updates are handled in the following
+way:
+- Background printer process (BPP) forked on startup
+- Parent smbd and per-client children await MSG_PRINTER_PCAP messages
+- BPP periodically polls the printing backend for printcap data
+       - printcap data written to printer_list.tdb
+       - MSG_PRINTER_PCAP sent to all smbd processes following update
+- smbd processes all read the latest printer_list.tdb data, and update
+  their share listings
+
+This procedure is not scalable, as all smbd processes hit
+printer_list.tdb in parallel, resulting in a large spike in CPU usage.
+
+This change sees smbd processes only update their printer share lists
+only when a client asks for this information, e.g. via NetShareEnum or
+EnumPrinters.
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=10652
+
+Suggested-by: Volker Lendecke <vl@samba.org>
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+---
+ source3/printing/spoolssd.c                 | 17 +----------------
+ source3/rpc_server/spoolss/srv_spoolss_nt.c | 11 ++++++++++-
+ source3/rpc_server/srvsvc/srv_srvsvc_nt.c   |  1 +
+ source3/smbd/lanman.c                       |  3 +++
+ source3/smbd/server.c                       | 27 +++++----------------------
+ 5 files changed, 20 insertions(+), 39 deletions(-)
+
+diff --git a/source3/printing/spoolssd.c b/source3/printing/spoolssd.c
+index 83727df..7953237 100644
+--- a/source3/printing/spoolssd.c
++++ b/source3/printing/spoolssd.c
+@@ -74,20 +74,6 @@ static void smb_conf_updated(struct messaging_context *msg,
+       spoolss_reopen_logs();
+ }
+-static void spoolss_pcap_updated(struct messaging_context *msg,
+-                               void *private_data,
+-                               uint32_t msg_type,
+-                               struct server_id server_id,
+-                               DATA_BLOB *data)
+-{
+-      struct tevent_context *ev_ctx = talloc_get_type_abort(private_data,
+-                                                           struct tevent_context);
+-
+-      DEBUG(10, ("Got message saying pcap was updated. Reloading.\n"));
+-      change_to_root_user();
+-      reload_printers(ev_ctx, msg);
+-}
+-
+ static void spoolss_sig_term_handler(struct tevent_context *ev,
+                                    struct tevent_signal *se,
+                                    int signum,
+@@ -206,12 +192,11 @@ void start_spoolssd(struct tevent_context *ev_ctx,
+               exit(1);
+       }
++      /* printer shares updated from printer_list.tdb on client enumeration */
+       messaging_register(msg_ctx, NULL,
+                          MSG_PRINTER_UPDATE, print_queue_receive);
+       messaging_register(msg_ctx, ev_ctx,
+                          MSG_SMB_CONF_UPDATED, smb_conf_updated);
+-      messaging_register(msg_ctx, ev_ctx,
+-                         MSG_PRINTER_PCAP, spoolss_pcap_updated);
+       /*
+        * Initialize spoolss with an init function to convert printers first.
+diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+index 516b7dc..db48574 100644
+--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
++++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+@@ -4316,12 +4316,21 @@ static WERROR enum_all_printers_info_level(TALLOC_CTX *mem_ctx,
+                                          uint32_t *count_p)
+ {
+       int snum;
+-      int n_services = lp_numservices();
++      int n_services;
+       union spoolss_PrinterInfo *info = NULL;
+       uint32_t count = 0;
+       WERROR result = WERR_OK;
+       struct dcerpc_binding_handle *b = NULL;
++      /*
++       * printer shares are only updated on client enumeration. The background
++       * printer process updates printer_list.tdb at regular intervals.
++       */
++      become_root();
++      reload_printers(messaging_event_context(msg_ctx), msg_ctx);
++      unbecome_root();
++
++      n_services = lp_numservices();
+       *count_p = 0;
+       *info_p = NULL;
+diff --git a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c
+index b9345d6..4600da3 100644
+--- a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c
++++ b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c
+@@ -568,6 +568,7 @@ static WERROR init_srv_share_info_ctr(struct pipes_struct *p,
+       /* Ensure all the usershares are loaded. */
+       become_root();
++      reload_printers(messaging_event_context(p->msg_ctx), p->msg_ctx);
+       load_usershare_shares();
+       load_registry_shares();
+       num_services = lp_numservices();
+diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c
+index f56ea30..49f7583 100644
+--- a/source3/smbd/lanman.c
++++ b/source3/smbd/lanman.c
+@@ -43,6 +43,7 @@
+ #include "passdb/machine_sid.h"
+ #include "auth.h"
+ #include "rpc_server/rpc_ncacn_np.h"
++#include "messages.h"
+ #ifdef CHECK_TYPES
+ #undef CHECK_TYPES
+@@ -2091,6 +2092,8 @@ static bool api_RNetShareEnum(struct smbd_server_connection *sconn,
+       /* Ensure all the usershares are loaded. */
+       become_root();
++      reload_printers(messaging_event_context(sconn->msg_ctx),
++                      sconn->msg_ctx);
+       load_registry_shares();
+       count = load_usershare_shares();
+       unbecome_root();
+diff --git a/source3/smbd/server.c b/source3/smbd/server.c
+index a26dbc4..102e8dd 100644
+--- a/source3/smbd/server.c
++++ b/source3/smbd/server.c
+@@ -111,24 +111,6 @@ static void smb_conf_updated(struct messaging_context *msg,
+       /* printer reload triggered by background printing process */
+ }
+-/*******************************************************************
+- What to do when printcap is updated.
+- ********************************************************************/
+-
+-static void smb_pcap_updated(struct messaging_context *msg,
+-                           void *private_data,
+-                           uint32_t msg_type,
+-                           struct server_id server_id,
+-                           DATA_BLOB *data)
+-{
+-      struct tevent_context *ev_ctx =
+-              talloc_get_type_abort(private_data, struct tevent_context);
+-
+-      DEBUG(10,("Got message saying pcap was updated. Reloading.\n"));
+-      change_to_root_user();
+-      reload_printers(ev_ctx, msg);
+-}
+-
+ static void smbd_sig_term_handler(struct tevent_context *ev,
+                                 struct tevent_signal *se,
+                                 int signum,
+@@ -1287,10 +1269,11 @@ extern void build_options(bool screen);
+       if (is_daemon && !interactive
+           && lp_parm_bool(-1, "smbd", "backgroundqueue", true)) {
+-              /* background queue is responsible for printcap cache updates */
+-              messaging_register(smbd_server_conn->msg_ctx,
+-                                 smbd_event_context(),
+-                                 MSG_PRINTER_PCAP, smb_pcap_updated);
++              /*
++               * background queue is responsible for printcap cache updates.
++               * Other smbd processes only reload printers when a client
++               * issues an enumeration request.
++               */
+               start_background_queue(server_event_context(),
+                                      smbd_server_conn->msg_ctx);
+       } else {
+-- 
+2.1.0
+
+
+From 52196380547dde4784e42c35c46135bb5230a08d Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@samba.org>
+Date: Tue, 22 Jul 2014 20:17:38 +0200
+Subject: [PATCH 3/7] PATCHSET18: printing: reload printer_list.tdb from in
+ memory list
+
+This will allow in future for a single atomic printer_list.tdb update.
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=10652
+
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+---
+ source3/printing/pcap.c           | 26 +++++++++++---------------
+ source3/printing/pcap.h           |  8 ++++----
+ source3/printing/print_aix.c      | 17 ++++++++++++++---
+ source3/printing/print_iprint.c   | 16 ++++++++++------
+ source3/printing/print_standard.c |  8 ++++++--
+ source3/printing/print_svid.c     | 11 +++++++----
+ 6 files changed, 52 insertions(+), 34 deletions(-)
+
+diff --git a/source3/printing/pcap.c b/source3/printing/pcap.c
+index 6ad8e33..5173fc9 100644
+--- a/source3/printing/pcap.c
++++ b/source3/printing/pcap.c
+@@ -83,7 +83,7 @@ void pcap_cache_destroy_specific(struct pcap_cache **pp_cache)
+       *pp_cache = NULL;
+ }
+-bool pcap_cache_add(const char *name, const char *comment, const char *location)
++static bool pcap_cache_add(const char *name, const char *comment, const char *location)
+ {
+       NTSTATUS status;
+       time_t t = time_mono(NULL);
+@@ -132,8 +132,8 @@ void pcap_cache_reload(struct tevent_context *ev,
+ {
+       const char *pcap_name = lp_printcapname();
+       bool pcap_reloaded = False;
+-      NTSTATUS status;
+       bool post_cache_fill_fn_handled = false;
++      struct pcap_cache *pcache = NULL;
+       DEBUG(3, ("reloading printcap cache\n"));
+@@ -143,12 +143,6 @@ void pcap_cache_reload(struct tevent_context *ev,
+               return;
+       }
+-      status = printer_list_mark_reload();
+-      if (!NT_STATUS_IS_OK(status)) {
+-              DEBUG(0, ("Failed to mark printer list for reload!\n"));
+-              return;
+-      }
+-
+ #ifdef HAVE_CUPS
+       if (strequal(pcap_name, "cups")) {
+               pcap_reloaded = cups_cache_reload(ev, msg_ctx,
+@@ -164,26 +158,26 @@ void pcap_cache_reload(struct tevent_context *ev,
+ #ifdef HAVE_IPRINT
+       if (strequal(pcap_name, "iprint")) {
+-              pcap_reloaded = iprint_cache_reload();
++              pcap_reloaded = iprint_cache_reload(&pcache);
+               goto done;
+       }
+ #endif
+ #if defined(SYSV) || defined(HPUX)
+       if (strequal(pcap_name, "lpstat")) {
+-              pcap_reloaded = sysv_cache_reload();
++              pcap_reloaded = sysv_cache_reload(&pcache);
+               goto done;
+       }
+ #endif
+ #ifdef AIX
+       if (strstr_m(pcap_name, "/qconfig") != NULL) {
+-              pcap_reloaded = aix_cache_reload();
++              pcap_reloaded = aix_cache_reload(&pcache);
+               goto done;
+       }
+ #endif
+-      pcap_reloaded = std_pcap_cache_reload(pcap_name);
++      pcap_reloaded = std_pcap_cache_reload(pcap_name, &pcache);
+ done:
+       DEBUG(3, ("reload status: %s\n", (pcap_reloaded) ? "ok" : "error"));
+@@ -192,14 +186,16 @@ done:
+               /* cleanup old entries only if the operation was successful,
+                * otherwise keep around the old entries until we can
+                * successfuly reaload */
+-              status = printer_list_clean_old();
+-              if (!NT_STATUS_IS_OK(status)) {
+-                      DEBUG(0, ("Failed to cleanup printer list!\n"));
++
++              if (!pcap_cache_replace(pcache)) {
++                      DEBUG(0, ("Failed to replace printer list!\n"));
+               }
++
+               if (post_cache_fill_fn != NULL) {
+                       post_cache_fill_fn(ev, msg_ctx);
+               }
+       }
++      pcap_cache_destroy_specific(&pcache);
+       return;
+ }
+diff --git a/source3/printing/pcap.h b/source3/printing/pcap.h
+index 6c062c3..d388d7d 100644
+--- a/source3/printing/pcap.h
++++ b/source3/printing/pcap.h
+@@ -49,7 +49,7 @@ bool pcap_printername_ok(const char *printername);
+ /* The following definitions come from printing/print_aix.c  */
+-bool aix_cache_reload(void);
++bool aix_cache_reload(struct pcap_cache **_pcache);
+ /* The following definitions come from printing/print_cups.c  */
+@@ -60,13 +60,13 @@ bool cups_cache_reload(struct tevent_context *ev,
+ /* The following definitions come from printing/print_iprint.c  */
+-bool iprint_cache_reload(void);
++bool iprint_cache_reload(struct pcap_cache **_pcache);
+ /* The following definitions come from printing/print_svid.c  */
+-bool sysv_cache_reload(void);
++bool sysv_cache_reload(struct pcap_cache **_pcache);
+ /* The following definitions come from printing/print_standard.c  */
+-bool std_pcap_cache_reload(const char *pcap_name);
++bool std_pcap_cache_reload(const char *pcap_name, struct pcap_cache **_pcache);
+ #endif /* _PRINTING_PCAP_H_ */
+diff --git a/source3/printing/print_aix.c b/source3/printing/print_aix.c
+index 23d9a86..927a71b 100644
+--- a/source3/printing/print_aix.c
++++ b/source3/printing/print_aix.c
+@@ -29,12 +29,13 @@
+ #include "printing/pcap.h"
+ #ifdef AIX
+-bool aix_cache_reload(void)
++bool aix_cache_reload(struct pcap_cache **_pcache)
+ {
+       int iEtat;
+       XFILE *pfile;
+       char *line = NULL, *p;
+       char *name = NULL;
++      struct pcap_cache *pcache = NULL;
+       TALLOC_CTX *ctx = talloc_init("aix_cache_reload");
+       if (!ctx) {
+@@ -52,6 +53,8 @@ bool aix_cache_reload(void)
+       iEtat = 0;
+       /* scan qconfig file for searching <printername>:       */
+       for (;(line = fgets_slash(NULL, 1024, pfile)); free(line)) {
++              bool ok;
++
+               if (*line == '*' || *line == 0)
+                       continue;
+@@ -67,6 +70,7 @@ bool aix_cache_reload(void)
+                               if (strcmp(p, "bsh") != 0) {
+                                       name = talloc_strdup(ctx, p);
+                                       if (!name) {
++                                              pcap_cache_destroy_specific(&pcache);
+                                               SAFE_FREE(line);
+                                               x_fclose(pfile);
+                                               TALLOC_FREE(ctx);
+@@ -86,7 +90,10 @@ bool aix_cache_reload(void)
+                               /* name is found without stanza device  */
+                               /* probably a good printer ???          */
+                               iEtat = 0;
+-                              if (!pcap_cache_add(name, NULL, NULL)) {
++                              ok = pcap_cache_add_specific(&pcache,
++                                                           name, NULL, NULL);
++                              if (!ok) {
++                                      pcap_cache_destroy_specific(&pcache);
+                                       SAFE_FREE(line);
+                                       x_fclose(pfile);
+                                       TALLOC_FREE(ctx);
+@@ -101,7 +108,10 @@ bool aix_cache_reload(void)
+                       } else if (strstr_m(line, "device")) {
+                               /* it's a good virtual printer */
+                               iEtat = 0;
+-                              if (!pcap_cache_add(name, NULL, NULL)) {
++                              ok = pcap_cache_add_specific(&pcache,
++                                                           name, NULL, NULL);
++                              if (!ok) {
++                                      pcap_cache_destroy_specific(&pcache);
+                                       SAFE_FREE(line);
+                                       x_fclose(pfile);
+                                       TALLOC_FREE(ctx);
+@@ -113,6 +123,7 @@ bool aix_cache_reload(void)
+               }
+       }
++      *_pcache = pcache;
+       x_fclose(pfile);
+       TALLOC_FREE(ctx);
+       return true;
+diff --git a/source3/printing/print_iprint.c b/source3/printing/print_iprint.c
+index 529f0dd..6e91747 100644
+--- a/source3/printing/print_iprint.c
++++ b/source3/printing/print_iprint.c
+@@ -204,7 +204,8 @@ static int iprint_get_server_version(http_t *http, char* serviceUri)
+ static int iprint_cache_add_printer(http_t *http,
+                                  int reqId,
+-                                 char* url)
++                                 char *url,
++                                 struct pcap_cache **pcache)
+ {
+       ipp_t           *request = NULL,        /* IPP Request */
+                       *response = NULL;       /* IPP Response */
+@@ -340,7 +341,7 @@ static int iprint_cache_add_printer(http_t *http,
+               */
+               if (name != NULL && !secure && smb_enabled) 
+-                      pcap_cache_add(name, info, NULL);
++                      pcap_cache_add_specific(pcache, name, info, NULL);
+       }
+  out:
+@@ -349,7 +350,7 @@ static int iprint_cache_add_printer(http_t *http,
+       return(0);
+ }
+-bool iprint_cache_reload(void)
++bool iprint_cache_reload(struct pcap_cache **_pcache)
+ {
+       http_t          *http = NULL;           /* HTTP connection to server */
+       ipp_t           *request = NULL,        /* IPP Request */
+@@ -357,7 +358,8 @@ bool iprint_cache_reload(void)
+       ipp_attribute_t *attr;                  /* Current attribute */
+       cups_lang_t     *language = NULL;       /* Default language */
+       int             i;
+-      bool ret = False;
++      bool ret = false;
++      struct pcap_cache *pcache = NULL;
+       DEBUG(5, ("reloading iprint printcap cache\n"));
+@@ -439,14 +441,16 @@ bool iprint_cache_reload(void)
+                                       char *url = ippGetString(attr, i, NULL);
+                                       if (!url || !strlen(url))
+                                               continue;
+-                                      iprint_cache_add_printer(http, i+2, url);
++                                      iprint_cache_add_printer(http, i+2, url,
++                                                               &pcache);
+                               }
+                       }
+                       attr = ippNextAttribute(response);
+               }
+       }
+-      ret = True;
++      ret = true;
++      *_pcache = pcache;
+  out:
+       if (response)
+diff --git a/source3/printing/print_standard.c b/source3/printing/print_standard.c
+index c4f9c5b..b5f1056 100644
+--- a/source3/printing/print_standard.c
++++ b/source3/printing/print_standard.c
+@@ -59,10 +59,11 @@
+ #include "printing/pcap.h"
+ /* handle standard printcap - moved from pcap_printer_fn() */
+-bool std_pcap_cache_reload(const char *pcap_name)
++bool std_pcap_cache_reload(const char *pcap_name, struct pcap_cache **_pcache)
+ {
+       XFILE *pcap_file;
+       char *pcap_line;
++      struct pcap_cache *pcache = NULL;
+       if ((pcap_file = x_fopen(pcap_name, O_RDONLY, 0)) == NULL) {
+               DEBUG(0, ("Unable to open printcap file %s for read!\n", pcap_name));
+@@ -117,12 +118,15 @@ bool std_pcap_cache_reload(const char *pcap_name)
+                       }
+               }
+-              if (*name && !pcap_cache_add(name, comment, NULL)) {
++              if ((*name != '\0')
++               && !pcap_cache_add_specific(&pcache, name, comment, NULL)) {
+                       x_fclose(pcap_file);
++                      pcap_cache_destroy_specific(&pcache);
+                       return false;
+               }
+       }
+       x_fclose(pcap_file);
++      *_pcache = pcache;
+       return true;
+ }
+diff --git a/source3/printing/print_svid.c b/source3/printing/print_svid.c
+index 2226493..879661b 100644
+--- a/source3/printing/print_svid.c
++++ b/source3/printing/print_svid.c
+@@ -35,10 +35,11 @@
+ #include "printing/pcap.h"
+ #if defined(SYSV) || defined(HPUX)
+-bool sysv_cache_reload(void)
++bool sysv_cache_reload(struct pcap_cache **_pcache)
+ {
+       char **lines;
+       int i;
++      struct pcap_cache *pcache = NULL;
+ #if defined(HPUX)
+       DEBUG(5, ("reloading hpux printcap cache\n"));
+@@ -111,14 +112,16 @@ bool sysv_cache_reload(void)
+                       *tmp = '\0';
+               
+               /* add it to the cache */
+-              if (!pcap_cache_add(name, NULL, NULL)) {
++              if (!pcap_cache_add_specific(&pcache, name, NULL, NULL)) {
+                       TALLOC_FREE(lines);
+-                      return False;
++                      pcap_cache_destroy_specific(&pcache);
++                      return false;
+               }
+       }
+       TALLOC_FREE(lines);
+-      return True;
++      *_pcache = pcache;
++      return true;
+ }
+ #else
+-- 
+2.1.0
+
+
+From 91c0b6477fcd4ad20d1cda45f78f160cee8e58ff Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@samba.org>
+Date: Fri, 25 Jul 2014 12:18:54 +0200
+Subject: [PATCH 4/7] PATCHSET18: printing: remove pcap_cache_add()
+
+All print list updates are now done via pcap_cache_replace(), which can
+call into the print_list code directly.
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=10652
+
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+---
+ source3/printing/pcap.c | 16 ++++++----------
+ source3/printing/pcap.h |  1 -
+ 2 files changed, 6 insertions(+), 11 deletions(-)
+
+diff --git a/source3/printing/pcap.c b/source3/printing/pcap.c
+index 5173fc9..5059f20 100644
+--- a/source3/printing/pcap.c
++++ b/source3/printing/pcap.c
+@@ -83,15 +83,6 @@ void pcap_cache_destroy_specific(struct pcap_cache **pp_cache)
+       *pp_cache = NULL;
+ }
+-static bool pcap_cache_add(const char *name, const char *comment, const char *location)
+-{
+-      NTSTATUS status;
+-      time_t t = time_mono(NULL);
+-
+-      status = printer_list_set_printer(talloc_tos(), name, comment, location, t);
+-      return NT_STATUS_IS_OK(status);
+-}
+-
+ bool pcap_cache_loaded(void)
+ {
+       NTSTATUS status;
+@@ -105,6 +96,7 @@ bool pcap_cache_replace(const struct pcap_cache *pcache)
+ {
+       const struct pcap_cache *p;
+       NTSTATUS status;
++      time_t t = time_mono(NULL);
+       status = printer_list_mark_reload();
+       if (!NT_STATUS_IS_OK(status)) {
+@@ -113,7 +105,11 @@ bool pcap_cache_replace(const struct pcap_cache *pcache)
+       }
+       for (p = pcache; p; p = p->next) {
+-              pcap_cache_add(p->name, p->comment, p->location);
++              status = printer_list_set_printer(talloc_tos(), p->name,
++                                                p->comment, p->location, t);
++              if (!NT_STATUS_IS_OK(status)) {
++                      return false;
++              }
+       }
+       status = printer_list_clean_old();
+diff --git a/source3/printing/pcap.h b/source3/printing/pcap.h
+index d388d7d..7dccf84 100644
+--- a/source3/printing/pcap.h
++++ b/source3/printing/pcap.h
+@@ -35,7 +35,6 @@ struct pcap_cache;
+ bool pcap_cache_add_specific(struct pcap_cache **ppcache, const char *name, const char *comment, const char *location);
+ void pcap_cache_destroy_specific(struct pcap_cache **ppcache);
+-bool pcap_cache_add(const char *name, const char *comment, const char *location);
+ bool pcap_cache_loaded(void);
+ bool pcap_cache_replace(const struct pcap_cache *cache);
+ void pcap_printer_fn_specific(const struct pcap_cache *, void (*fn)(const char *, const char *, const char *, void *), void *);
+-- 
+2.1.0
+
+
+From 10582491e417d5ab5c77afe2337793dbacd98fa8 Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@samba.org>
+Date: Wed, 23 Jul 2014 12:12:34 +0200
+Subject: [PATCH 5/7] PATCHSET18: printing: return last change time with
+ pcap_cache_loaded()
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=10652
+
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+---
+ source3/printing/load.c |  2 +-
+ source3/printing/pcap.c | 10 ++++++++--
+ source3/printing/pcap.h |  2 +-
+ source3/web/swat.c      |  4 ++--
+ 4 files changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/source3/printing/load.c b/source3/printing/load.c
+index 0a3de73..83f1095 100644
+--- a/source3/printing/load.c
++++ b/source3/printing/load.c
+@@ -64,7 +64,7 @@ load automatic printer services from pre-populated pcap cache
+ void load_printers(struct tevent_context *ev,
+                  struct messaging_context *msg_ctx)
+ {
+-      SMB_ASSERT(pcap_cache_loaded());
++      SMB_ASSERT(pcap_cache_loaded(NULL));
+       add_auto_printers();
+diff --git a/source3/printing/pcap.c b/source3/printing/pcap.c
+index 5059f20..027c1b2 100644
+--- a/source3/printing/pcap.c
++++ b/source3/printing/pcap.c
+@@ -83,13 +83,19 @@ void pcap_cache_destroy_specific(struct pcap_cache **pp_cache)
+       *pp_cache = NULL;
+ }
+-bool pcap_cache_loaded(void)
++bool pcap_cache_loaded(time_t *_last_change)
+ {
+       NTSTATUS status;
+       time_t last;
+       status = printer_list_get_last_refresh(&last);
+-      return NT_STATUS_IS_OK(status);
++      if (!NT_STATUS_IS_OK(status)) {
++              return false;
++      }
++      if (_last_change != NULL) {
++              *_last_change = last;
++      }
++      return true;
+ }
+ bool pcap_cache_replace(const struct pcap_cache *pcache)
+diff --git a/source3/printing/pcap.h b/source3/printing/pcap.h
+index 7dccf84..8fc9e9d 100644
+--- a/source3/printing/pcap.h
++++ b/source3/printing/pcap.h
+@@ -35,7 +35,7 @@ struct pcap_cache;
+ bool pcap_cache_add_specific(struct pcap_cache **ppcache, const char *name, const char *comment, const char *location);
+ void pcap_cache_destroy_specific(struct pcap_cache **ppcache);
+-bool pcap_cache_loaded(void);
++bool pcap_cache_loaded(time_t *_last_change);
+ bool pcap_cache_replace(const struct pcap_cache *cache);
+ void pcap_printer_fn_specific(const struct pcap_cache *, void (*fn)(const char *, const char *, const char *, void *), void *);
+ void pcap_printer_read_fn(void (*fn)(const char *, const char *, const char *, void *), void *);
+diff --git a/source3/web/swat.c b/source3/web/swat.c
+index f8933d2..a1a035c 100644
+--- a/source3/web/swat.c
++++ b/source3/web/swat.c
+@@ -586,7 +586,7 @@ static int save_reload(int snum)
+                 return 0;
+         }
+       iNumNonAutoPrintServices = lp_numservices();
+-      if (pcap_cache_loaded()) {
++      if (pcap_cache_loaded(NULL)) {
+               load_printers(server_event_context(),
+                             server_messaging_context());
+       }
+@@ -1572,7 +1572,7 @@ const char *lang_msg_rotate(TALLOC_CTX *ctx, const char *msgid)
+       reopen_logs();
+       load_interfaces();
+       iNumNonAutoPrintServices = lp_numservices();
+-      if (pcap_cache_loaded()) {
++      if (pcap_cache_loaded(NULL)) {
+               load_printers(server_event_context(),
+                             server_messaging_context());
+       }
+-- 
+2.1.0
+
+
+From 484667ff73b54b275f8629264aef27ec9628c7fd Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@samba.org>
+Date: Wed, 23 Jul 2014 14:42:00 +0200
+Subject: [PATCH 6/7] PATCHSET18: smbd: only reprocess printer_list.tdb if it
+ changed
+
+The per-client smbd printer share inventory is currently updated from
+printer_list.tdb when a client enumerates printers, via EnumPrinters or
+NetShareEnum.
+printer_list.tdb is populated by the background print process, based on
+the latest printcap values retrieved from the printing backend (e.g.
+CUPS) at regular intervals.
+This change ensures that per-client smbd processes don't reparse
+printer_list.tdb if it hasn't been updated since the last enumeration.
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=10652
+
+Suggested-by: Volker Lendecke <vl@samba.org>
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+---
+ source3/smbd/server_reload.c | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+diff --git a/source3/smbd/server_reload.c b/source3/smbd/server_reload.c
+index c4c5a8d..57f7972 100644
+--- a/source3/smbd/server_reload.c
++++ b/source3/smbd/server_reload.c
+@@ -30,6 +30,13 @@
+ #include "auth.h"
+ #include "messages.h"
++/*
++ * The persistent pcap cache is populated by the background print process. Per
++ * client smbds should only reload their printer share inventories if this
++ * information has changed. Use last_reload_time to detect this.
++ */
++static time_t reload_last_pcap_time = 0;
++
+ /****************************************************************************
+  purge stale printers and reload from pre-populated pcap cache
+ **************************************************************************/
+@@ -40,6 +47,20 @@ void reload_printers(struct tevent_context *ev,
+       int pnum;
+       int snum;
+       const char *pname;
++      bool ok;
++      time_t pcap_last_update;
++
++      ok = pcap_cache_loaded(&pcap_last_update);
++      if (!ok) {
++              DEBUG(1, ("pcap cache not loaded\n"));
++              return;
++      }
++
++      if (reload_last_pcap_time == pcap_last_update) {
++              DEBUG(5, ("skipping printer reload, already up to date.\n"));
++              return;
++      }
++      reload_last_pcap_time = pcap_last_update;
+       n_services = lp_numservices();
+       pnum = lp_servicenumber(PRINTERS_NAME);
+-- 
+2.1.0
+
+
+From 08848f939b735b5a68066ebcc995247d77f5fa2d Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@samba.org>
+Date: Wed, 6 Aug 2014 14:33:02 +0200
+Subject: [PATCH 7/7] PATCHSET18: printing: reload printer shares on
+ OpenPrinter
+
+The printer share inventory should be reloaded on open _and_
+enumeration, as there are some clients, such as cupsaddsmb, that do not
+perform an enumeration prior to access.
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=10652
+
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+---
+ source3/rpc_server/spoolss/srv_spoolss_nt.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+index db48574..fb8f61f 100644
+--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
++++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+@@ -1737,6 +1737,16 @@ WERROR _spoolss_OpenPrinterEx(struct pipes_struct *p,
+               return WERR_INVALID_PARAM;
+       }
++      /*
++       * The printcap printer share inventory is updated on client
++       * enumeration. For clients that do not perform enumeration prior to
++       * access, such as cupssmbadd, we reinitialise the printer share
++       * inventory on open as well.
++       */
++      become_root();
++      reload_printers(messaging_event_context(p->msg_ctx), p->msg_ctx);
++      unbecome_root();
++
+       /* some sanity check because you can open a printer or a print server */
+       /* aka: \\server\printer or \\server */
+@@ -4323,7 +4333,7 @@ static WERROR enum_all_printers_info_level(TALLOC_CTX *mem_ctx,
+       struct dcerpc_binding_handle *b = NULL;
+       /*
+-       * printer shares are only updated on client enumeration. The background
++       * printer shares are updated on client enumeration. The background
+        * printer process updates printer_list.tdb at regular intervals.
+        */
+       become_root();
+-- 
+2.1.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_rpc_query_user_list.patch b/src/patches/samba/samba-3.6.99-fix_rpc_query_user_list.patch
new file mode 100644 (file)
index 0000000..cc43528
--- /dev/null
@@ -0,0 +1,37 @@
+From 75497eb3bb57424cefbbbe0c61cd2b0adcad802b Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Wed, 2 Nov 2016 17:19:09 +0100
+Subject: [PATCH] s3-winbind: Do not return NO_MEMORY if we have an empty user
+ list
+
+The domain child for the MACHINE ACCOUNT might fail with
+NT_STATUS_NO_MEMORY because an emtpy user list is returned.
+
+*pnum_info is already set to 0 at the beginngin so we should just
+declare victory here!
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=12405
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+---
+ source3/winbindd/winbindd_rpc.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/source3/winbindd/winbindd_rpc.c b/source3/winbindd/winbindd_rpc.c
+index c560a6b..59bd78a 100644
+--- a/source3/winbindd/winbindd_rpc.c
++++ b/source3/winbindd/winbindd_rpc.c
+@@ -88,6 +88,10 @@ NTSTATUS rpc_query_user_list(TALLOC_CTX *mem_ctx,
+               num_dom_users = disp_info.info1.count;
+               num_info += num_dom_users;
++              /* If there are no user to enumerate we're done */
++              if (num_info == 0) {
++                      return NT_STATUS_OK;
++              }
+               info = TALLOC_REALLOC_ARRAY(mem_ctx,
+                                           info,
+-- 
+2.7.4
+
diff --git a/src/patches/samba/samba-3.6.99-fix_rpcclient_timeout_command.patch b/src/patches/samba/samba-3.6.99-fix_rpcclient_timeout_command.patch
new file mode 100644 (file)
index 0000000..02be2c6
--- /dev/null
@@ -0,0 +1,73 @@
+From fe30cb2d1932401b5507af9f12149506cf0ae749 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Tue, 7 Apr 2015 16:12:18 +0200
+Subject: [PATCH] PATCHSET25: rpcclient: Fix the timeout command
+
+https://bugzilla.samba.org/show_bug.cgi?id=11199
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Stefan Metzmacher <metze@samba.org>
+
+(cherry picked from commit 2bca4cdc6f83dce48c73a33288c4fd3ae80f883b)
+---
+ source3/rpcclient/rpcclient.c | 23 +++++++----------------
+ 1 file changed, 7 insertions(+), 16 deletions(-)
+
+diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c
+index c2f3e4c..0dbcd01 100644
+--- a/source3/rpcclient/rpcclient.c
++++ b/source3/rpcclient/rpcclient.c
+@@ -481,8 +481,6 @@ static NTSTATUS cmd_seal(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
+ static NTSTATUS cmd_timeout(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
+                           int argc, const char **argv)
+ {
+-      struct cmd_list *tmp;
+-
+       if (argc > 2) {
+               printf("Usage: %s timeout\n", argv[0]);
+               return NT_STATUS_OK;
+@@ -490,19 +488,6 @@ static NTSTATUS cmd_timeout(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
+       if (argc == 2) {
+               timeout = atoi(argv[1]);
+-
+-              for (tmp = cmd_list; tmp; tmp = tmp->next) {
+-
+-                      struct cmd_set *tmp_set;
+-
+-                      for (tmp_set = tmp->cmd_set; tmp_set->name; tmp_set++) {
+-                              if (tmp_set->rpc_pipe == NULL) {
+-                                      continue;
+-                              }
+-
+-                              rpccli_set_timeout(tmp_set->rpc_pipe, timeout);
+-                      }
+-              }
+       }
+       printf("timeout is %d\n", timeout);
+@@ -791,6 +776,11 @@ static NTSTATUS do_cmd(struct cli_state *cli,
+               }
+       }
++      /* Set timeout for new connections */
++      if (cmd_entry->rpc_pipe) {
++              rpccli_set_timeout(cmd_entry->rpc_pipe, timeout);
++      }
++
+       /* Run command */
+       if ( cmd_entry->returntype == RPC_RTYPE_NTSTATUS ) {
+@@ -1124,7 +1114,8 @@ out_free:
+       /* Load command lists */
+-      timeout = cli_set_timeout(cli, 10000);
++      timeout = 10000;
++      cli_set_timeout(cli, timeout);
+       cmd_set = rpcclient_command_list;
+-- 
+2.1.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_security_server_share_access.patch b/src/patches/samba/samba-3.6.99-fix_security_server_share_access.patch
new file mode 100644 (file)
index 0000000..ad23353
--- /dev/null
@@ -0,0 +1,70 @@
+From 56bfca66b8597afe731f4624bb9f862bb45f81ba Mon Sep 17 00:00:00 2001
+From: Matt Rogers <mrogers@redhat.com>
+Date: Mon, 12 Oct 2015 14:46:18 +0200
+Subject: [PATCH] PATCHSET33: s3-auch: Fix secuirty = server share access
+
+Resolve user groups in non-winbind path of passwd_to_SamInfo3(), fixing
+group memberships with server security.
+
+Signed-off-by: Matt Rogers <mrogers@redhat.com>
+---
+ source3/auth/server_info.c | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+diff --git a/source3/auth/server_info.c b/source3/auth/server_info.c
+index 1fd9317..91724cc 100644
+--- a/source3/auth/server_info.c
++++ b/source3/auth/server_info.c
+@@ -571,7 +571,9 @@ NTSTATUS passwd_to_SamInfo3(TALLOC_CTX *mem_ctx,
+       enum lsa_SidType type;
+       uint32_t num_sids = 0;
+       struct dom_sid *user_sids = NULL;
++      gid_t *gids = NULL;
+       bool ok;
++      int i;
+       tmp_ctx = talloc_stackframe();
+@@ -629,6 +631,29 @@ NTSTATUS passwd_to_SamInfo3(TALLOC_CTX *mem_ctx,
+                                   get_global_sam_sid(),
+                                   DOMAIN_RID_USERS);
+               }
++
++              if (!getgroups_unix_user(tmp_ctx,
++                                       unix_username,
++                                       pwd->pw_gid,
++                                       &gids,
++                                       &num_sids)) {
++                      DEBUG(1, ("Failed to get unix user groups.\n"));
++                      goto done;
++              }
++
++              if (num_sids == 0) {
++                      smb_panic("primary group missing");
++              }
++
++              user_sids = TALLOC_ARRAY(tmp_ctx, struct dom_sid, num_sids);
++
++              if (user_sids == NULL) {
++                      return NT_STATUS_NO_MEMORY;
++              }
++
++              for (i = 0; i < num_sids; i++) {
++                      gid_to_sid(&user_sids[i], gids[i]);
++              }
+       }
+       /* Make sure we have a valid group sid */
+@@ -696,6 +721,9 @@ NTSTATUS passwd_to_SamInfo3(TALLOC_CTX *mem_ctx,
+       status = NT_STATUS_OK;
+ done:
++      if (gids != NULL) {
++              talloc_free(gids);
++      }
+       talloc_free(tmp_ctx);
+       return status;
+-- 
+2.5.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_setup_domain_child_logic.patch b/src/patches/samba/samba-3.6.99-fix_setup_domain_child_logic.patch
new file mode 100644 (file)
index 0000000..e31f75e
--- /dev/null
@@ -0,0 +1,186 @@
+commit 9dd0bb462b613a5f6f41d4130bfd31c0a64debd7
+Author:     Jeremy Allison <jra@samba.org>
+AuthorDate: Mon Jan 13 15:23:00 2014 +0100
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Wed Feb 5 11:45:44 2014 +0100
+
+    s3-winbind: Move setup_domain_child() into add_trusted_domain().
+    
+    Ensure it only gets called when a new domain is allocated
+    and added to the list.
+    
+    This should fix problems with the previous logic where
+    setup_domain_child() was called in places where an existing
+    domain was returned.
+    
+    BUG: https://bugzilla.samba.org/show_bug.cgi?id=10358
+---
+ source3/winbindd/winbindd_util.c | 74 ++++++++++++++++++----------------------
+ 1 file changed, 33 insertions(+), 41 deletions(-)
+
+diff --git a/source3/winbindd/winbindd_util.c b/source3/winbindd/winbindd_util.c
+index 37b6578..353722e 100644
+--- a/source3/winbindd/winbindd_util.c
++++ b/source3/winbindd/winbindd_util.c
+@@ -89,7 +89,10 @@ static bool is_in_internal_domain(const struct dom_sid *sid)
+ }
+-/* Add a trusted domain to our list of domains */
++/* Add a trusted domain to our list of domains.
++   If the domain already exists in the list,
++   return it and don't re-initialize.
++ */
+ static struct winbindd_domain *add_trusted_domain(const char *domain_name, const char *alt_name,
+                                                 struct winbindd_methods *methods,
+                                                 const struct dom_sid *sid)
+@@ -99,6 +102,7 @@ static struct winbindd_domain *add_trusted_domain(const char *domain_name, const
+       char *idmap_config_option;
+       const char *param;
+       const char **ignored_domains, **dom;
++      int role = lp_server_role();
+       ignored_domains = lp_parm_string_list(-1, "winbind", "ignore domains", NULL);
+       for (dom=ignored_domains; dom && *dom; dom++) {
+@@ -146,7 +150,10 @@ static struct winbindd_domain *add_trusted_domain(const char *domain_name, const
+       if (domain != NULL) {
+               /*
+-               * We found a match. Possibly update the SID
++               * We found a match on domain->name or
++               * domain->alt_name. Possibly update the SID
++               * if the stored SID was the NULL SID
++               * and return the matching entry.
+                */
+               if ((sid != NULL)
+                   && dom_sid_equal(&domain->sid, &global_sid_NULL)) {
+@@ -192,6 +199,15 @@ static struct winbindd_domain *add_trusted_domain(const char *domain_name, const
+               sid_copy(&domain->sid, sid);
+       }
++      /* Is this our primary domain ? */
++      if (strequal(domain_name, get_global_sam_name()) &&
++          (role != ROLE_DOMAIN_MEMBER)) {
++              domain->primary = true;
++      } else if (strequal(domain_name, lp_workgroup()) &&
++                 (role == ROLE_DOMAIN_MEMBER)) {
++              domain->primary = true;
++      }
++
+       /* Link to domain list */
+       DLIST_ADD_END(_domain_list, domain, struct winbindd_domain *);
+@@ -228,6 +244,8 @@ static struct winbindd_domain *add_trusted_domain(const char *domain_name, const
+ done:
++      setup_domain_child(domain);
++
+       DEBUG(2,("Added domain %s %s %s\n",
+                domain->name, domain->alt_name,
+                &domain->sid?sid_string_dbg(&domain->sid):""));
+@@ -341,18 +359,10 @@ static void trustdom_list_done(struct tevent_req *req)
+                  necessary.  This is important because we need the
+                  SID for sibling domains */
+-              if ( find_domain_from_name_noinit(p) != NULL ) {
+-                      domain = add_trusted_domain(p, alternate_name,
+-                                                  &cache_methods,
+-                                                  &sid);
+-              } else {
+-                      domain = add_trusted_domain(p, alternate_name,
+-                                                  &cache_methods,
+-                                                  &sid);
+-                      if (domain) {
+-                              setup_domain_child(domain);
+-                      }
+-              }
++              (void)add_trusted_domain(p, alternate_name,
++                                          &cache_methods,
++                                          &sid);
++
+               p=q;
+               if (p != NULL)
+                       p += 1;
+@@ -422,13 +432,10 @@ static void rescan_forest_root_trusts( void )
+               d = find_domain_from_name_noinit( dom_list[i].domain_name );
+               if ( !d ) {
+-                      d = add_trusted_domain( dom_list[i].domain_name,
++                      (void)add_trusted_domain( dom_list[i].domain_name,
+                                               dom_list[i].dns_name,
+                                               &cache_methods,
+-                                              &dom_list[i].sid );
+-                      if (d != NULL) {
+-                              setup_domain_child(d);
+-                      }
++                                              &dom_list[i].sid);
+               }
+               if (d == NULL) {
+@@ -494,13 +501,10 @@ static void rescan_forest_trusts( void )
+                          about it */
+                       if ( !d ) {
+-                              d = add_trusted_domain( dom_list[i].domain_name,
++                              (void)add_trusted_domain( dom_list[i].domain_name,
+                                                       dom_list[i].dns_name,
+                                                       &cache_methods,
+-                                                      &dom_list[i].sid );
+-                              if (d != NULL) {
+-                                      setup_domain_child(d);
+-                              }
++                                                      &dom_list[i].sid);
+                       }
+                       if (d == NULL) {
+@@ -601,7 +605,6 @@ enum winbindd_result winbindd_dual_init_connection(struct winbindd_domain *domai
+ /* Look up global info for the winbind daemon */
+ bool init_domain_list(void)
+ {
+-      struct winbindd_domain *domain;
+       int role = lp_server_role();
+       /* Free existing list */
+@@ -609,26 +612,18 @@ bool init_domain_list(void)
+       /* BUILTIN domain */
+-      domain = add_trusted_domain("BUILTIN", NULL, &cache_methods,
+-                                  &global_sid_Builtin);
+-      if (domain) {
+-              setup_domain_child(domain);
+-      }
++      (void)add_trusted_domain("BUILTIN", NULL, &cache_methods,
++                               &global_sid_Builtin);
+       /* Local SAM */
+-      domain = add_trusted_domain(get_global_sam_name(), NULL,
+-                                  &cache_methods, get_global_sam_sid());
+-      if (domain) {
+-              if ( role != ROLE_DOMAIN_MEMBER ) {
+-                      domain->primary = True;
+-              }
+-              setup_domain_child(domain);
+-      }
++      (void)add_trusted_domain(get_global_sam_name(), NULL,
++                               &cache_methods, get_global_sam_sid());
+       /* Add ourselves as the first entry. */
+       if ( role == ROLE_DOMAIN_MEMBER ) {
++              struct winbindd_domain *domain;
+               struct dom_sid our_sid;
+               if (!secrets_fetch_domain_sid(lp_workgroup(), &our_sid)) {
+@@ -639,9 +634,6 @@ bool init_domain_list(void)
+               domain = add_trusted_domain( lp_workgroup(), lp_realm(),
+                                            &cache_methods, &our_sid);
+               if (domain) {
+-                      domain->primary = True;
+-                      setup_domain_child(domain);
+-
+                       /* Even in the parent winbindd we'll need to
+                          talk to the DC, so try and see if we can
+                          contact it. Theoretically this isn't neccessary
diff --git a/src/patches/samba/samba-3.6.99-fix_smb_conf_doc.patch b/src/patches/samba/samba-3.6.99-fix_smb_conf_doc.patch
new file mode 100644 (file)
index 0000000..3b0d178
--- /dev/null
@@ -0,0 +1,51 @@
+From cea644fd24dbbf2e2359fd7b6d361a698660d5eb Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Mon, 2 Mar 2015 11:55:01 +0100
+Subject: [PATCH] PATCHSET20: doc-xml: Add 'sharesec' reference to 'access
+ based share enum'
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11127
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Michael Adam <obnox@samba.org>
+
+Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
+Autobuild-Date(master): Mon Mar  2 14:33:33 CET 2015 on sn-devel-104
+
+(cherry picked from commit e2ed224653985afa13e906e2a5f3656a18d622c0)
+Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
+---
+ docs-xml/smbdotconf/security/accessbasedshareenum.xml | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+Index: samba-3.6.23/docs-xml/smbdotconf/security/accessbasedshareenum.xml
+===================================================================
+--- samba-3.6.23.orig/docs-xml/smbdotconf/security/accessbasedshareenum.xml
++++ samba-3.6.23/docs-xml/smbdotconf/security/accessbasedshareenum.xml
+@@ -7,7 +7,10 @@
+      <para>If this parameter is <constant>yes</constant> for a
+     service, then the share hosted by the service will only be visible
+     to users who have read or write access to the share during share
+-    enumeration (for example net view \\sambaserver).  This has
++    enumeration (for example net view \\sambaserver). The share ACLs
++    which allow or deny the access to the share can be modified using
++    for example the <command moreinfo="none">sharesec</command> command
++    or using the appropriate Windows tools. This has
+     parallels to access based enumeration, the main difference being
+     that only share permissions are evaluated, and security
+     descriptors on files contained on the share are not used in
+Index: samba-3.6.23/docs/manpages/smb.conf.5
+===================================================================
+--- samba-3.6.23.orig/docs/manpages/smb.conf.5
++++ samba-3.6.23/docs/manpages/smb.conf.5
+@@ -784,7 +784,9 @@ access based share enum (S)
+ .RS 4
+ If this parameter is
+ \fByes\fR
+-for a service, then the share hosted by the service will only be visible to users who have read or write access to the share during share enumeration (for example net view \e\esambaserver)\&. This has parallels to access based enumeration, the main difference being that only share permissions are evaluated, and security descriptors on files contained on the share are not used in computing enumeration access rights\&.
++for a service, then the share hosted by the service will only be visible to users who have read or write access to the share during share enumeration (for example net view \e\esambaserver)\&. The share ACLs which allow or deny the access to the share can be modified using for example the
++sharesec
++command or using the appropriate Windows tools\&. This has parallels to access based enumeration, the main difference being that only share permissions are evaluated, and security descriptors on files contained on the share are not used in computing enumeration access rights\&.
+ .sp
+ Default:
+ \fI\fIaccess based share enum\fR\fR\fI = \fR\fIno\fR\fI \fR
diff --git a/src/patches/samba/samba-3.6.99-fix_smbclient_ntlmv2_auth.patch b/src/patches/samba/samba-3.6.99-fix_smbclient_ntlmv2_auth.patch
new file mode 100644 (file)
index 0000000..4f136e5
--- /dev/null
@@ -0,0 +1,116 @@
+From b413a09fa5b927102655a8332e95a64a80e57825 Mon Sep 17 00:00:00 2001
+From: Stefan Metzmacher <metze@samba.org>
+Date: Thu, 21 Jul 2011 21:15:38 +0200
+Subject: [PATCH 1/2] PATCHSET19: s3:libsmb: don't pass cli->called.name to
+ NTLMv2_generate_names_blob()
+
+cli->called.name is never initialized, so this change doesn't change
+the behavior. And this behavior seems to be correct, see
+commit 29c0c37691da10bf061ba90a5b31482bda2fa486
+s4/libcli: do not use netbios name in NTLMv2 blobs w/o spnego.
+
+metze
+
+(cherry picked from commit 392ddf970c8f8486e79eec5214ed49912e344e09)
+---
+ source3/libsmb/cliconnect.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
+index 8653ba7..38ae230 100644
+--- a/source3/libsmb/cliconnect.c
++++ b/source3/libsmb/cliconnect.c
+@@ -862,11 +862,11 @@ static struct tevent_req *cli_session_setup_nt1_send(
+                       /*
+                        * note that the 'workgroup' here is a best
+                        * guess - we don't know the server's domain
+-                       * at this point.  The 'server name' is also
+-                       * dodgy...
++                       * at this point. Windows clients also don't
++                       * use hostname...
+                        */
+                       names_blob = NTLMv2_generate_names_blob(
+-                              NULL, cli->called.name, workgroup);
++                              NULL, NULL, workgroup);
+                       if (tevent_req_nomem(names_blob.data, req)) {
+                               return tevent_req_post(req, ev);
+-- 
+2.1.0
+
+
+From 1415733b6cfeba129e1459ef55a0a12a5dec0fa3 Mon Sep 17 00:00:00 2001
+From: Christian Ambach <christian.ambach@de.ibm.com>
+Date: Thu, 7 Apr 2011 14:05:04 +0200
+Subject: [PATCH 2/2] PATCHSET19: s4/libcli: do not use netbios name in NTLMv2
+ blobs w/o spnego
+
+I have seen domain controllers rejecting NTLMv2 blobs presented to
+NetrLogonSamLogonEx with LOGON_FAILURE when the MsvAvNbComputerName
+was a FQDN or an IP address
+
+I have not seen this field in NTLMv2 blobs send by Windows clients
+when extended security was not available, so omitting the field
+makes Samba similar to Windows.
+
+This prevents errors with some smbtorture testcases that disable
+spnego and when a target name is specified that is not a valid
+netbios name.
+
+Signed-off-by: Andrew Bartlett <abartlet@samba.org>
+
+Autobuild-User: Andrew Bartlett <abartlet@samba.org>
+Autobuild-Date: Thu Apr 14 02:19:08 CEST 2011 on sn-devel-104
+(cherry picked from commit 29c0c37691da10bf061ba90a5b31482bda2fa486)
+---
+ source4/libcli/smb_composite/sesssetup.c | 26 ++++++++++++++++++++++----
+ 1 file changed, 22 insertions(+), 4 deletions(-)
+
+diff --git a/source4/libcli/smb_composite/sesssetup.c b/source4/libcli/smb_composite/sesssetup.c
+index e1159a4..ebc3598 100644
+--- a/source4/libcli/smb_composite/sesssetup.c
++++ b/source4/libcli/smb_composite/sesssetup.c
+@@ -280,8 +280,17 @@ static NTSTATUS session_setup_nt1(struct composite_context *c,
+                                 struct smbcli_request **req) 
+ {
+       NTSTATUS nt_status = NT_STATUS_INTERNAL_ERROR;
+-      struct sesssetup_state *state = talloc_get_type(c->private_data, struct sesssetup_state);
+-      DATA_BLOB names_blob = NTLMv2_generate_names_blob(state, session->transport->socket->hostname, cli_credentials_get_domain(io->in.credentials));
++      struct sesssetup_state *state = talloc_get_type(c->private_data,
++                                                      struct sesssetup_state);
++      const char *domain = cli_credentials_get_domain(io->in.credentials);
++
++      /*
++       * domain controllers tend to reject the NTLM v2 blob
++       * if the netbiosname is not valid (e.g. IP address or FQDN)
++       * so just leave it away (as Windows client do)
++       */
++      DATA_BLOB names_blob = NTLMv2_generate_names_blob(state, NULL, domain);
++
+       DATA_BLOB session_key = data_blob(NULL, 0);
+       int flags = CLI_CRED_NTLM_AUTH;
+@@ -353,9 +362,18 @@ static NTSTATUS session_setup_old(struct composite_context *c,
+                                 struct smbcli_request **req) 
+ {
+       NTSTATUS nt_status;
+-      struct sesssetup_state *state = talloc_get_type(c->private_data, struct sesssetup_state);
++      struct sesssetup_state *state = talloc_get_type(c->private_data,
++                                                      struct sesssetup_state);
+       const char *password = cli_credentials_get_password(io->in.credentials);
+-      DATA_BLOB names_blob = NTLMv2_generate_names_blob(state, session->transport->socket->hostname, cli_credentials_get_domain(io->in.credentials));
++      const char *domain = cli_credentials_get_domain(io->in.credentials);
++
++      /*
++       * domain controllers tend to reject the NTLM v2 blob
++       * if the netbiosname is not valid (e.g. IP address or FQDN)
++       * so just leave it away (as Windows client do)
++       */
++      DATA_BLOB names_blob = NTLMv2_generate_names_blob(state, NULL, domain);
++
+       DATA_BLOB session_key;
+       int flags = 0;
+       if (session->options.lanman_auth) {
+-- 
+2.1.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_stale_printer_entries_on_rename.patch b/src/patches/samba/samba-3.6.99-fix_stale_printer_entries_on_rename.patch
new file mode 100644 (file)
index 0000000..3ad3b62
--- /dev/null
@@ -0,0 +1,55 @@
+From 20d92c8a18beb4af2b9020efed15f5238d86d13c Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@samba.org>
+Date: Wed, 1 Apr 2015 01:03:13 +0200
+Subject: [PATCH] PATCHSET30 spoolss: purge the printer name cache on name
+ change
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Currently the name cache is only cleared on printer deletion. This means
+that if a printer undergoes a name change, the old name remains in the
+cache and can be subsequently used incorrecly if another printer takes
+the same name as the old.
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=11210
+
+Reported-by: Franz Pförtsch <franz.pfoertsch@brose.com>
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+
+Autobuild-User(master): Jeremy Allison <jra@samba.org>
+Autobuild-Date(master): Tue Apr 14 05:37:50 CEST 2015 on sn-devel-104
+
+(cherry picked from commit a97507a9a7ba01beead6a621e1210618e93a9f9c)
+---
+ source3/rpc_server/spoolss/srv_spoolss_nt.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+index fb8f61f..629bdc2 100644
+--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
++++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+@@ -6373,6 +6373,9 @@ static WERROR update_dsspooler(TALLOC_CTX *mem_ctx,
+                                                snum, printer->sharename ?
+                                                printer->sharename : "");
+               }
++
++              /* name change, purge any cache entries for the old */
++              prune_printername_cache();
+       }
+       if (force_update || !strequal(printer->printername, old_printer->printername)) {
+@@ -6398,6 +6401,9 @@ static WERROR update_dsspooler(TALLOC_CTX *mem_ctx,
+                       notify_printer_printername(server_event_context(),
+                                                  msg_ctx, snum, p ? p : "");
+               }
++
++              /* name change, purge any cache entries for the old */
++              prune_printername_cache();
+       }
+       if (force_update || !strequal(printer->portname, old_printer->portname)) {
+-- 
+2.5.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_symlink_verification.patch b/src/patches/samba/samba-3.6.99-fix_symlink_verification.patch
new file mode 100644 (file)
index 0000000..8819849
--- /dev/null
@@ -0,0 +1,111 @@
+From b6192b3cdeaa9eb719ec5da3977af9470504d294 Mon Sep 17 00:00:00 2001
+From: Michael Adam <obnox@samba.org>
+Date: Wed, 23 Dec 2015 18:01:23 +0100
+Subject: [PATCH] s3:smbd: fix a corner case of the symlink verification
+
+Commit 7606c0db257b3f9d84da5b2bf5fbb4034cc8d77d fixes the
+path checks in check_reduced_name[_with_privilege]() to
+prevent unintended access via wide links.
+
+The fix fails to correctly treat a corner case where the share
+path is "/". This case is important for some real world
+scenarios, notably the use of the glusterfs VFS module:
+
+For the share path "/", the newly introduced checks deny all
+operations in the share.
+
+This change fixes the checks for the corner case.
+The point is that the assumptions on which the original
+checks are based are not true for the rootdir "/" case.
+This is the case where the rootdir starts _and ends_ with
+a slash. Hence a subdirectory does not continue with a
+slash after the rootdir, since the candidate path has
+been normalized.
+
+This fix just omits the string comparison and the
+next character checks in the case of rootdir "/",
+which is correct because we know that the candidate
+path is normalized and hence starts with a '/'.
+
+The patch is fairly minimal, but changes indentation,
+hence best viewed with 'git show -w'.
+
+A side effect is that the rootdir="/" case needs
+one strncmp less.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11647
+
+Pair-Programmed-With: Jose A. Rivera <jarrpa@samba.org>
+
+Signed-off-by: Michael Adam <obnox@samba.org>
+Signed-off-by: Jose A. Rivera <jarrpa@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+
+Autobuild-User(master): Michael Adam <obnox@samba.org>
+Autobuild-Date(master): Thu Dec 24 00:57:31 CET 2015 on sn-devel-144
+
+(cherry picked from commit ada59ec7b3a5ed0478d11da2fe0c90991d137288)
+---
+ source3/smbd/vfs.c | 39 +++++++++++++++++++++++++++------------
+ 1 file changed, 27 insertions(+), 12 deletions(-)
+
+diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c
+index bd93b7f..2b8000d 100644
+--- a/source3/smbd/vfs.c
++++ b/source3/smbd/vfs.c
+@@ -982,7 +982,6 @@ NTSTATUS check_reduced_name(connection_struct *conn, const char *fname)
+       if (!allow_widelinks || !allow_symlinks) {
+               const char *conn_rootdir;
+               size_t rootdir_len;
+-              bool matched;
+               conn_rootdir = SMB_VFS_CONNECTPATH(conn, fname);
+               if (conn_rootdir == NULL) {
+@@ -993,17 +992,33 @@ NTSTATUS check_reduced_name(connection_struct *conn, const char *fname)
+               }
+               rootdir_len = strlen(conn_rootdir);
+-              matched = (strncmp(conn_rootdir, resolved_name,
+-                              rootdir_len) == 0);
+-              if (!matched || (resolved_name[rootdir_len] != '/' &&
+-                               resolved_name[rootdir_len] != '\0')) {
+-                      DEBUG(2, ("check_reduced_name: Bad access "
+-                              "attempt: %s is a symlink outside the "
+-                              "share path\n", fname));
+-                      DEBUGADD(2, ("conn_rootdir =%s\n", conn_rootdir));
+-                      DEBUGADD(2, ("resolved_name=%s\n", resolved_name));
+-                      SAFE_FREE(resolved_name);
+-                      return NT_STATUS_ACCESS_DENIED;
++
++              /*
++               * In the case of rootdir_len == 1, we know that
++               * conn_rootdir is "/", and we also know that
++               * resolved_name starts with a slash.  So, in this
++               * corner case, resolved_name is automatically a
++               * sub-directory of the conn_rootdir. Thus we can skip
++               * the string comparison and the next character checks
++               * (which are even wrong in this case).
++               */
++              if (rootdir_len != 1) {
++                      bool matched;
++
++                      matched = (strncmp(conn_rootdir, resolved_name,
++                                      rootdir_len) == 0);
++                      if (!matched || (resolved_name[rootdir_len] != '/' &&
++                                       resolved_name[rootdir_len] != '\0')) {
++                              DEBUG(2, ("check_reduced_name: Bad access "
++                                      "attempt: %s is a symlink outside the "
++                                      "share path\n", fname));
++                              DEBUGADD(2, ("conn_rootdir =%s\n",
++                                           conn_rootdir));
++                              DEBUGADD(2, ("resolved_name=%s\n",
++                                           resolved_name));
++                              SAFE_FREE(resolved_name);
++                              return NT_STATUS_ACCESS_DENIED;
++                      }
+               }
+               /* Extra checks if all symlinks are disallowed. */
+-- 
+2.5.0
+
diff --git a/src/patches/samba/samba-3.6.99-fix_usergroup_cache_lookup.patch b/src/patches/samba/samba-3.6.99-fix_usergroup_cache_lookup.patch
new file mode 100644 (file)
index 0000000..a30494e
--- /dev/null
@@ -0,0 +1,397 @@
+From 72494e601ee6027873494f7ee7aff03d9170e3eb Mon Sep 17 00:00:00 2001
+From: Jeremy Allison <jra@samba.org>
+Date: Mon, 16 Jun 2014 22:49:29 -0700
+Subject: [PATCH 1/5] PATCHSET21: s3: auth: Add some const to the struct
+ netr_SamInfo3 * arguments of copy_netr_SamInfo3() and
+ make_server_info_info3()
+
+Both functions only read from the struct netr_SamInfo3 * argument.
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+Reviewed-by: Richard Sharpe <realrichardsharpe@gmail.com>
+Reviewed-by: Simo Sorce <idra@samba.org>
+(cherry picked from commit c2411767adb5ce48a4619349075f6f8faae41aab)
+
+Conflicts:
+       source3/auth/proto.h
+---
+ source3/auth/auth_util.c   | 2 +-
+ source3/auth/proto.h       | 4 ++--
+ source3/auth/server_info.c | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c
+index 1f1fed9..a548b7b 100644
+--- a/source3/auth/auth_util.c
++++ b/source3/auth/auth_util.c
+@@ -1195,7 +1195,7 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx,
+                               const char *sent_nt_username,
+                               const char *domain,
+                               struct auth_serversupplied_info **server_info,
+-                              struct netr_SamInfo3 *info3)
++                              const struct netr_SamInfo3 *info3)
+ {
+       static const char zeros[16] = {0, };
+
+diff --git a/source3/auth/proto.h b/source3/auth/proto.h
+index fccabc4..c851722 100644
+--- a/source3/auth/proto.h
++++ b/source3/auth/proto.h
+@@ -173,7 +173,7 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx,
+                               const char *sent_nt_username,
+                               const char *domain,
+                               struct auth_serversupplied_info **server_info,
+-                              struct netr_SamInfo3 *info3);
++                              const struct netr_SamInfo3 *info3);
+ struct wbcAuthUserInfo;
+ NTSTATUS make_server_info_wbcAuthUserInfo(TALLOC_CTX *mem_ctx,
+                                         const char *sent_nt_username,
+@@ -233,7 +233,7 @@ NTSTATUS passwd_to_SamInfo3(TALLOC_CTX *mem_ctx,
+                           const struct passwd *pwd,
+                           struct netr_SamInfo3 **pinfo3);
+ struct netr_SamInfo3 *copy_netr_SamInfo3(TALLOC_CTX *mem_ctx,
+-                                       struct netr_SamInfo3 *orig);
++                                       const struct netr_SamInfo3 *orig);
+ struct netr_SamInfo3 *wbcAuthUserInfo_to_netr_SamInfo3(TALLOC_CTX *mem_ctx,
+                                       const struct wbcAuthUserInfo *info);
+
+diff --git a/source3/auth/server_info.c b/source3/auth/server_info.c
+index e627892..63b4989 100644
+--- a/source3/auth/server_info.c
++++ b/source3/auth/server_info.c
+@@ -632,7 +632,7 @@ done:
+       } } while(0)
+
+ struct netr_SamInfo3 *copy_netr_SamInfo3(TALLOC_CTX *mem_ctx,
+-                                       struct netr_SamInfo3 *orig)
++                                       const struct netr_SamInfo3 *orig)
+ {
+       struct netr_SamInfo3 *info3;
+       unsigned int i;
+--
+2.1.0
+
+
+From 1afd41a9cc31acdff66ab084ba89913c8a239a0f Mon Sep 17 00:00:00 2001
+From: Jeremy Allison <jra@samba.org>
+Date: Mon, 16 Jun 2014 22:54:45 -0700
+Subject: [PATCH 2/5] PATCHSET21: s3: auth: Change make_server_info_info3() to
+ take a const struct netr_SamInfo3 pointer instead of a struct PAC_LOGON_INFO.
+
+make_server_info_info3() only reads from the info3 pointer.
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+Reviewed-by: Richard Sharpe <realrichardsharpe@gmail.com>
+Reviewed-by: Simo Sorce <idra@samba.org>
+(cherry picked from commit 527f7b54388713acaaf7b66c718cc0f7114fc368)
+
+Conflicts:
+       source3/auth/auth_generic.c
+       source3/auth/proto.h
+       source3/auth/user_krb5.c
+---
+ source3/auth/proto.h     | 2 +-
+ source3/auth/user_krb5.c | 8 ++++----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/source3/auth/proto.h b/source3/auth/proto.h
+index c851722..0ab32a7 100644
+--- a/source3/auth/proto.h
++++ b/source3/auth/proto.h
+@@ -305,7 +305,7 @@ NTSTATUS make_server_info_krb5(TALLOC_CTX *mem_ctx,
+                               char *ntdomain,
+                               char *username,
+                               struct passwd *pw,
+-                              struct PAC_LOGON_INFO *logon_info,
++                              const struct netr_SamInfo3 *info3,
+                               bool mapped_to_guest,
+                               struct auth_serversupplied_info **server_info);
+
+diff --git a/source3/auth/user_krb5.c b/source3/auth/user_krb5.c
+index 1e5254e..fde2f48 100644
+--- a/source3/auth/user_krb5.c
++++ b/source3/auth/user_krb5.c
+@@ -184,7 +184,7 @@ NTSTATUS make_server_info_krb5(TALLOC_CTX *mem_ctx,
+                               char *ntdomain,
+                               char *username,
+                               struct passwd *pw,
+-                              struct PAC_LOGON_INFO *logon_info,
++                              const struct netr_SamInfo3 *info3,
+                               bool mapped_to_guest,
+                               struct auth_serversupplied_info **server_info)
+ {
+@@ -198,14 +198,14 @@ NTSTATUS make_server_info_krb5(TALLOC_CTX *mem_ctx,
+                       return status;
+               }
+
+-      } else if (logon_info) {
++      } else if (info3) {
+               /* pass the unmapped username here since map_username()
+                  will be called again in make_server_info_info3() */
+
+               status = make_server_info_info3(mem_ctx,
+                                               ntuser, ntdomain,
+                                               server_info,
+-                                              &logon_info->info3);
++                                              info3);
+               if (!NT_STATUS_IS_OK(status)) {
+                       DEBUG(1, ("make_server_info_info3 failed: %s!\n",
+                                 nt_errstr(status)));
+@@ -284,7 +284,7 @@ NTSTATUS make_server_info_krb5(TALLOC_CTX *mem_ctx,
+                               char *ntdomain,
+                               char *username,
+                               struct passwd *pw,
+-                              struct PAC_LOGON_INFO *logon_info,
++                              const struct netr_SamInfo3 *info3,
+                               bool mapped_to_guest,
+                               struct auth_serversupplied_info **server_info)
+ {
+--
+2.1.0
+
+
+From 08bf07ec03537aedbd7beb359cf9274be2882edf Mon Sep 17 00:00:00 2001
+From: Jeremy Allison <jra@samba.org>
+Date: Mon, 16 Jun 2014 23:11:58 -0700
+Subject: [PATCH 3/5] PATCHSET21: s3: auth: Add
+ create_info3_from_pac_logon_info() to create a new info3 and merge resource
+ group SIDs into it.
+
+Originally written by Richard Sharpe Richard Sharpe <realrichardsharpe@gmail.com>.
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+Reviewed-by: Richard Sharpe <realrichardsharpe@gmail.com>
+Reviewed-by: Simo Sorce <idra@samba.org>
+(cherry picked from commit db775c68ccbed0252abf092b5cb811e8f5fa9bb6)
+---
+ source3/auth/proto.h       |  5 ++-
+ source3/auth/server_info.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 82 insertions(+), 1 deletion(-)
+
+diff --git a/source3/auth/proto.h b/source3/auth/proto.h
+index 0ab32a7..4335cf8 100644
+--- a/source3/auth/proto.h
++++ b/source3/auth/proto.h
+@@ -209,6 +209,7 @@ NTSTATUS auth_winbind_init(void);
+ struct netr_SamInfo2;
+ struct netr_SamInfo3;
+ struct netr_SamInfo6;
++struct PAC_LOGON_INFO;
+
+ struct auth_serversupplied_info *make_server_info(TALLOC_CTX *mem_ctx);
+ NTSTATUS serverinfo_to_SamInfo2(struct auth_serversupplied_info *server_info,
+@@ -223,6 +224,9 @@ NTSTATUS serverinfo_to_SamInfo6(struct auth_serversupplied_info *server_info,
+                               uint8_t *pipe_session_key,
+                               size_t pipe_session_key_len,
+                               struct netr_SamInfo6 *sam6);
++NTSTATUS create_info3_from_pac_logon_info(TALLOC_CTX *mem_ctx,
++                                        const struct PAC_LOGON_INFO *logon_info,
++                                        struct netr_SamInfo3 **pp_info3);
+ NTSTATUS samu_to_SamInfo3(TALLOC_CTX *mem_ctx,
+                         struct samu *samu,
+                         const char *login_server,
+@@ -289,7 +293,6 @@ bool user_in_netgroup(TALLOC_CTX *ctx, const char *user, const char *ngname);
+ bool user_in_list(TALLOC_CTX *ctx, const char *user,const char **list);
+
+ /* The following definitions come from auth/user_krb5.c  */
+-struct PAC_LOGON_INFO;
+ NTSTATUS get_user_from_kerberos_info(TALLOC_CTX *mem_ctx,
+                                    const char *cli_name,
+                                    const char *princ_name,
+diff --git a/source3/auth/server_info.c b/source3/auth/server_info.c
+index 63b4989..1fd9317 100644
+--- a/source3/auth/server_info.c
++++ b/source3/auth/server_info.c
+@@ -21,6 +21,7 @@
+ #include "auth.h"
+ #include "../lib/crypto/arcfour.h"
+ #include "../librpc/gen_ndr/netlogon.h"
++#include "../librpc/gen_ndr/krb5pac.h"
+ #include "../libcli/security/security.h"
+ #include "rpc_client/util_netlogon.h"
+ #include "nsswitch/libwbclient/wbclient.h"
+@@ -293,6 +294,83 @@ static NTSTATUS group_sids_to_info3(struct netr_SamInfo3 *info3,
+       return NT_STATUS_OK;
+ }
+
++/*
++ * Merge resource SIDs, if any, into the passed in info3 structure.
++ */
++
++static NTSTATUS merge_resource_sids(const struct PAC_LOGON_INFO *logon_info,
++                              struct netr_SamInfo3 *info3)
++{
++      uint32_t i = 0;
++
++      if (!(logon_info->info3.base.user_flags & NETLOGON_RESOURCE_GROUPS)) {
++              return NT_STATUS_OK;
++      }
++
++      /*
++       * If there are any resource groups (SID Compression) add
++       * them to the extra sids portion of the info3 in the PAC.
++       *
++       * This makes the info3 look like it would if we got the info
++       * from the DC rather than the PAC.
++       */
++
++      /*
++       * Construct a SID for each RID in the list and then append it
++       * to the info3.
++       */
++      for (i = 0; i < logon_info->res_groups.count; i++) {
++              NTSTATUS status;
++              struct dom_sid new_sid;
++              uint32_t attributes = logon_info->res_groups.rids[i].attributes;
++
++              sid_compose(&new_sid,
++                      logon_info->res_group_dom_sid,
++                      logon_info->res_groups.rids[i].rid);
++
++              DEBUG(10, ("Adding SID %s to extra SIDS\n",
++                      sid_string_dbg(&new_sid)));
++
++              status = append_netr_SidAttr(info3, &info3->sids,
++                                      &info3->sidcount,
++                                      &new_sid,
++                                      attributes);
++              if (!NT_STATUS_IS_OK(status)) {
++                      DEBUG(1, ("failed to append SID %s to extra SIDS: %s\n",
++                              sid_string_dbg(&new_sid),
++                              nt_errstr(status)));
++                      return status;
++              }
++      }
++
++      return NT_STATUS_OK;
++}
++
++/*
++ * Create a copy of an info3 struct from the struct PAC_LOGON_INFO,
++ * then merge resource SIDs, if any, into it. If successful return
++ * the created info3 struct.
++ */
++
++NTSTATUS create_info3_from_pac_logon_info(TALLOC_CTX *mem_ctx,
++                                      const struct PAC_LOGON_INFO *logon_info,
++                                      struct netr_SamInfo3 **pp_info3)
++{
++      NTSTATUS status;
++      struct netr_SamInfo3 *info3 = copy_netr_SamInfo3(mem_ctx,
++                                      &logon_info->info3);
++      if (info3 == NULL) {
++              return NT_STATUS_NO_MEMORY;
++      }
++      status = merge_resource_sids(logon_info, info3);
++      if (!NT_STATUS_IS_OK(status)) {
++              TALLOC_FREE(info3);
++              return status;
++      }
++      *pp_info3 = info3;
++      return NT_STATUS_OK;
++}
++
+ #define RET_NOMEM(ptr) do { \
+       if (!ptr) { \
+               TALLOC_FREE(info3); \
+--
+2.1.0
+
+
+From 86d58108db53958f05d559b2d2a20185ef2deb55 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@cryptomilk.org>
+Date: Wed, 4 Mar 2015 17:45:39 +0100
+Subject: [PATCH 4/5] PATCHSET21: s3-winbind: Merge resource groups from a
+ trusted PAC into the sid array.
+
+This is a backport of db775c68ccbed0252abf092b5cb811e8f5fa9bb6.
+---
+ source3/winbindd/winbindd_pam.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c
+index 5316232..b1838a6 100644
+--- a/source3/winbindd/winbindd_pam.c
++++ b/source3/winbindd/winbindd_pam.c
+@@ -546,6 +546,7 @@ static NTSTATUS winbindd_raw_kerberos_login(TALLOC_CTX *mem_ctx,
+       time_t time_offset = 0;
+       const char *user_ccache_file;
+       struct PAC_LOGON_INFO *logon_info = NULL;
++      struct netr_SamInfo3 *info3_copy = NULL;
+
+       *info3 = NULL;
+
+@@ -624,7 +625,14 @@ static NTSTATUS winbindd_raw_kerberos_login(TALLOC_CTX *mem_ctx,
+               goto failed;
+       }
+
+-      *info3 = &logon_info->info3;
++      result = create_info3_from_pac_logon_info(mem_ctx,
++                                                logon_info,
++                                                &info3_copy);
++      if (!NT_STATUS_IS_OK(result)) {
++              return result;
++      }
++
++      *info3 = info3_copy;
+
+       DEBUG(10,("winbindd_raw_kerberos_login: winbindd validated ticket of %s\n",
+               principal_s));
+--
+2.1.0
+
+
+From 40731d512ba1ee0502bdbdd831c4154f967d9f3e Mon Sep 17 00:00:00 2001
+From: Michael Adam <obnox@samba.org>
+Date: Mon, 9 Mar 2015 15:15:37 +0100
+Subject: [PATCH 5/5] PATCHSET21: s3-winbind: Fix chached user group lookup of
+ trusted domains.
+
+If a user group lookup has aleady been done before with a machine
+account we did always return the incomplete information from the cache.
+This patch makes sure we return the correct group information from the
+netsamlogon cache.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11143
+
+Pair-Programmed-With: Andreas Schneider <asn@samba.org>
+Signed-off-by: Michael Adam <obnox@samba.org>
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Volker Lendecke <vl@samba.org>
+
+(cherry picked from commit f5d0204bfa1eb641fe7697613c1f773b6a7e65de)
+---
+ source3/winbindd/wb_lookupusergroups.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/source3/winbindd/wb_lookupusergroups.c b/source3/winbindd/wb_lookupusergroups.c
+index aeffc17..1bb7081 100644
+--- a/source3/winbindd/wb_lookupusergroups.c
++++ b/source3/winbindd/wb_lookupusergroups.c
+@@ -37,6 +37,7 @@ struct tevent_req *wb_lookupusergroups_send(TALLOC_CTX *mem_ctx,
+ {
+       struct tevent_req *req, *subreq;
+       struct wb_lookupusergroups_state *state;
++      NTSTATUS status;
+
+       req = tevent_req_create(mem_ctx, &state,
+                               struct wb_lookupusergroups_state);
+@@ -45,6 +46,16 @@ struct tevent_req *wb_lookupusergroups_send(TALLOC_CTX *mem_ctx,
+       }
+       sid_copy(&state->sid, sid);
+
++      status = lookup_usergroups_cached(NULL,
++                                        state,
++                                        &state->sid,
++                                        &state->sids.num_sids,
++                                        &state->sids.sids);
++      if (NT_STATUS_IS_OK(status)) {
++              tevent_req_done(req);
++              return tevent_req_post(req, ev);
++      }
++
+       subreq = dcerpc_wbint_LookupUserGroups_send(
+               state, ev, dom_child_handle(domain), &state->sid, &state->sids);
+       if (tevent_req_nomem(subreq, req)) {
+--
+2.1.0
diff --git a/src/patches/samba/samba-3.6.99-fix_winbind_cache_memory_leak.patch b/src/patches/samba/samba-3.6.99-fix_winbind_cache_memory_leak.patch
new file mode 100644 (file)
index 0000000..d25f9ff
--- /dev/null
@@ -0,0 +1,29 @@
+From 7aa2d48a4952980316dc0418d79053cfc9fea2ed Mon Sep 17 00:00:00 2001
+From: Volker Lendecke <vl@samba.org>
+Date: Sun, 20 Oct 2013 17:25:27 +0200
+Subject: [PATCH] winbind3: Fix CID 241468 Resource leak
+
+We were leaking centry in this error case
+
+Signed-off-by: Volker Lendecke <vl@samba.org>
+Reviewed-by: Jeremy Allison <jra@samba.org>
+(cherry picked from commit 71c8cd19cf079c7e1462a9ca4432725e3623f7cd)
+---
+ source3/winbindd/winbindd_cache.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/source3/winbindd/winbindd_cache.c b/source3/winbindd/winbindd_cache.c
+index 82c8087..00bd034 100644
+--- a/source3/winbindd/winbindd_cache.c
++++ b/source3/winbindd/winbindd_cache.c
+@@ -2076,6 +2076,7 @@ static NTSTATUS rids_to_names(struct winbindd_domain *domain,
+               } else {
+                       /* something's definitely wrong */
+                       result = centry->status;
++                      centry_free(centry);
+                       goto error;
+               }
+-- 
+2.5.5
+
diff --git a/src/patches/samba/samba-3.6.99-idmap_ad_memleak.patch b/src/patches/samba/samba-3.6.99-idmap_ad_memleak.patch
new file mode 100644 (file)
index 0000000..554a6c9
--- /dev/null
@@ -0,0 +1,28 @@
+commit d88c59d3690e7c14edfc99411479c245de62e3aa
+Author:     Andreas Schneider <asn@samba.org>
+AuthorDate: Wed Oct 5 10:32:16 2016 +0200
+Commit:     Andreas Schneider <asn@samba.org>
+CommitDate: Wed Oct 5 10:32:16 2016 +0200
+
+    s3-winbind: Fix memory leak in ad_idmap_cached_connection_internal()
+    
+    Signed-off-by: Andreas Schneider <asn@samba.org>
+---
+ source3/winbindd/idmap_ad.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/source3/winbindd/idmap_ad.c b/source3/winbindd/idmap_ad.c
+index 2b35a4f..2b21051 100644
+--- a/source3/winbindd/idmap_ad.c
++++ b/source3/winbindd/idmap_ad.c
+@@ -127,7 +127,9 @@ static ADS_STATUS ad_idmap_cached_connection_internal(struct idmap_domain *dom)
+               realm = wb_dom->alt_name;
+       }
+-      if ( (ads = ads_init(realm, dom->name, ldap_server)) == NULL ) {
++      ads = ads_init(realm, dom->name, ldap_server);
++      SAFE_FREE(ldap_server);
++      if (ads == NULL) {
+               DEBUG(1,("ads_init failed\n"));
+               return ADS_ERROR_NT(NT_STATUS_NO_MEMORY);
+       }
diff --git a/src/patches/samba/samba-3.6.99-libsmb_fix_dfs_connections.patch b/src/patches/samba/samba-3.6.99-libsmb_fix_dfs_connections.patch
new file mode 100644 (file)
index 0000000..dccd3a7
--- /dev/null
@@ -0,0 +1,47 @@
+From 8368c6336f557220d6b2a088e291c5ce61f80f9e Mon Sep 17 00:00:00 2001
+From: Jeremy Allison <jra@samba.org>
+Date: Wed, 16 Dec 2015 11:04:20 -0800
+Subject: [PATCH] s3: libsmb: Correctly initialize the list head when keeping a
+ list of primary followed by DFS connections.
+
+Greatly helped by <shargagan@novell.com> to
+track down this issue.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11624
+
+Signed-off-by: Jeremy Allison <jra@samba.org>
+Reviewed-by: Volker Lendecke <vl@samba.org>
+
+Autobuild-User(master): Volker Lendecke <vl@samba.org>
+Autobuild-Date(master): Fri Dec 18 01:02:55 CET 2015 on sn-devel-144
+
+(cherry picked from commit d7feb1879ee711598540049c2c5eccc80fd6f1e5)
+---
+ source3/libsmb/libsmb_server.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c
+index 45be660..e7416e0 100644
+--- a/source3/libsmb/libsmb_server.c
++++ b/source3/libsmb/libsmb_server.c
+@@ -634,7 +634,7 @@ again:
+       }
+       ZERO_STRUCTP(srv);
+-      srv->cli = c;
++      DLIST_ADD(srv->cli, c);
+       srv->dev = (dev_t)(str_checksum(server) ^ str_checksum(share));
+         srv->no_pathinfo = False;
+         srv->no_pathinfo2 = False;
+@@ -821,7 +821,7 @@ SMBC_attr_server(TALLOC_CTX *ctx,
+                 }
+                 ZERO_STRUCTP(ipc_srv);
+-                ipc_srv->cli = ipc_cli;
++                DLIST_ADD(ipc_srv->cli, ipc_cli);
+                 nt_status = cli_rpc_pipe_open_noauth(
+                       ipc_srv->cli, &ndr_table_lsarpc.syntax_id, &pipe_hnd);
+-- 
+2.7.4
+
diff --git a/src/patches/samba/samba-3.6.99-net_ads_join_no_dns_updates.patch b/src/patches/samba/samba-3.6.99-net_ads_join_no_dns_updates.patch
new file mode 100644 (file)
index 0000000..3d49697
--- /dev/null
@@ -0,0 +1,101 @@
+From df1da96d7f9a11ee1029c1bb55a40255ea63267c Mon Sep 17 00:00:00 2001
+From: Michael Adam <obnox@samba.org>
+Date: Wed, 6 Jan 2016 11:04:16 +0100
+Subject: [PATCH] PATCHSET35 net: add option --no-dns-updates for net ads join
+
+If called with this option, 'net ads join' will not attempt
+to perform dns updates.
+
+Backported for Samba 3.6 from master patches:
+
+ ae81a40b1193ef93add61666ace6fff1a1e0676a
+ d7a617f2f00c4a2b5294523fa651915c85de0d8b
+
+Signed-off-by: Michael Adam <obnox@samba.org>
+---
+ docs-xml/manpages-3/net.8.xml | 9 ++++++++-
+ source3/utils/net.c           | 2 ++
+ source3/utils/net.h           | 2 ++
+ source3/utils/net_ads.c       | 6 +++++-
+ 4 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/docs-xml/manpages-3/net.8.xml b/docs-xml/manpages-3/net.8.xml
+index 65f1272..cff3594 100644
+--- a/docs-xml/manpages-3/net.8.xml
++++ b/docs-xml/manpages-3/net.8.xml
+@@ -135,6 +135,13 @@
+               </para></listitem>
+               </varlistentry>
++              <varlistentry>
++              <term>--no-dns-updates</term>
++              <listitem><para>Do not perform DNS updates as part of
++              "net ads join".
++              </para></listitem>
++              </varlistentry>
++
+               &stdarg.server.debug;
+       </variablelist>
+ </refsect1>
+@@ -194,7 +201,7 @@ the remote server using <command>/bin/date</command>. </para>
+ </refsect2>
+ <refsect2>
+-<title>[RPC|ADS] JOIN [TYPE] [-U username[%password]] [createupn=UPN] [createcomputer=OU] [options]</title>
++<title>[RPC|ADS] JOIN [TYPE] [--no-dns-updates] [-U username[%password]] [createupn=UPN] [createcomputer=OU] [options]</title>
+ <para>
+ Join a domain.  If the account already exists on the server, and 
+diff --git a/source3/utils/net.c b/source3/utils/net.c
+index c53b285..3a95f7e 100644
+--- a/source3/utils/net.c
++++ b/source3/utils/net.c
+@@ -820,6 +820,8 @@ static struct functable net_func[] = {
+               {"lock", 0, POPT_ARG_NONE,   &c->opt_lock},
+               {"auto", 'a', POPT_ARG_NONE,   &c->opt_auto},
+               {"repair", 0, POPT_ARG_NONE,   &c->opt_repair},
++              /* Options for 'net ads join' */
++              {"no-dns-updates", 0, POPT_ARG_NONE, &c->opt_no_dns_updates},
+               POPT_COMMON_SAMBA
+               { 0, 0, 0, 0}
+       };
+diff --git a/source3/utils/net.h b/source3/utils/net.h
+index 1d1559f..adddf34 100644
+--- a/source3/utils/net.h
++++ b/source3/utils/net.h
+@@ -81,6 +81,8 @@ struct net_context {
+       int opt_auto;
+       int opt_repair;
++      int opt_no_dns_updates;
++
+       int opt_have_ip;
+       struct sockaddr_storage opt_dest_ip;
+       bool smb_encrypt;
+diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c
+index 816349d..5c541f3 100644
+--- a/source3/utils/net_ads.c
++++ b/source3/utils/net_ads.c
+@@ -1296,7 +1296,7 @@ static NTSTATUS net_update_dns(struct net_context *c, TALLOC_CTX *mem_ctx, ADS_S
+ static int net_ads_join_usage(struct net_context *c, int argc, const char **argv)
+ {
+-      d_printf(_("net ads join [options]\n"
++      d_printf(_("net ads join [--no-dns-updates] [options]\n"
+                  "Valid options:\n"));
+       d_printf(_("   createupn[=UPN]    Set the userPrincipalName attribute during the join.\n"
+                  "                      The deault UPN is in the form host/netbiosname@REALM.\n"));
+@@ -1455,6 +1455,10 @@ int net_ads_join(struct net_context *c, int argc, const char **argv)
+       }
+ #if defined(WITH_DNS_UPDATES)
++      if (c->opt_no_dns_updates) {
++              goto done;
++      }
++
+       /*
+        * In a clustered environment, don't do dynamic dns updates:
+        * Registering the set of ip addresses that are assigned to
+-- 
+2.5.0
+
diff --git a/src/patches/samba/samba-3.6.99-nt_printer_publish_guid.patch b/src/patches/samba/samba-3.6.99-nt_printer_publish_guid.patch
new file mode 100644 (file)
index 0000000..820d136
--- /dev/null
@@ -0,0 +1,620 @@
+From 892d163635563a3505fcde2d3439a2f6b1af92a7 Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@samba.org>
+Date: Thu, 18 Dec 2014 18:18:21 +0100
+Subject: [PATCH 1/4] PATCHSET16: printing: split out printer DN and GUID
+ retrieval
+
+This functions are used for printer publishing.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11018
+
+Pair-programmed-with: Andreas Schneider <asn@samba.org>
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Guenther Deschner <gd@samba.org>
+(cherry picked from commit 7cabd89789a50d37fc32735968c493092a37e69f)
+---
+ source3/printing/nt_printing_ads.c | 209 ++++++++++++++++++++++++-------------
+ 1 file changed, 137 insertions(+), 72 deletions(-)
+
+diff --git a/source3/printing/nt_printing_ads.c b/source3/printing/nt_printing_ads.c
+index bf309b0..25e1ab6 100644
+--- a/source3/printing/nt_printing_ads.c
++++ b/source3/printing/nt_printing_ads.c
+@@ -87,6 +87,128 @@ done:
+       talloc_free(tmp_ctx);
+ }
++static WERROR nt_printer_dn_lookup(TALLOC_CTX *mem_ctx,
++                                 ADS_STRUCT *ads,
++                                 const char *printer,
++                                 char **pprinter_dn)
++{
++      char *printer_dn = NULL;
++      char *srv_dn = NULL;
++      char *srv_cn_0 = NULL;
++      char *srv_cn_escaped = NULL;
++      char *sharename_escaped = NULL;
++      char *srv_dn_utf8 = NULL;
++      char **srv_cn_utf8 = NULL;
++      size_t converted_size;
++      ADS_STATUS ads_status;
++      LDAPMessage *res;
++      WERROR result;
++      bool ok;
++
++      ads_status = ads_find_machine_acct(ads, &res, global_myname());
++      if (!ADS_ERR_OK(ads_status)) {
++              DEBUG(2, ("Failed to find machine account for %s\n",
++                        global_myname()));
++              result = WERR_NOT_FOUND;
++              goto err_out;
++      }
++
++      /*
++       * We use ldap_get_dn here as we need the answer in utf8 to call
++       * ldap_explode_dn(). JRA.
++       */
++      srv_dn_utf8 = ldap_get_dn((LDAP *)ads->ldap.ld, (LDAPMessage *)res);
++      ads_msgfree(ads, res);
++      if (srv_dn_utf8 == NULL) {
++              result = WERR_SERVER_UNAVAILABLE;
++              goto err_out;
++      }
++
++      srv_cn_utf8 = ldap_explode_dn(srv_dn_utf8, 1);
++      if (srv_cn_utf8 == NULL) {
++              ldap_memfree(srv_dn_utf8);
++              result = WERR_SERVER_UNAVAILABLE;
++              goto err_out;
++      }
++
++      /* Now convert to CH_UNIX. */
++      ok = pull_utf8_talloc(mem_ctx, &srv_dn, srv_dn_utf8, &converted_size);
++      ldap_memfree(srv_dn_utf8);
++      if (!ok) {
++              ldap_memfree(srv_cn_utf8);
++              result = WERR_SERVER_UNAVAILABLE;
++              goto err_out;
++      }
++
++      ok = pull_utf8_talloc(mem_ctx, &srv_cn_0, srv_cn_utf8[0], &converted_size);
++      ldap_memfree(srv_cn_utf8);
++      if (!ok) {
++              result = WERR_SERVER_UNAVAILABLE;
++              goto err_out;
++      }
++
++      srv_cn_escaped = escape_rdn_val_string_alloc(srv_cn_0);
++      if (srv_cn_escaped == NULL) {
++              result = WERR_SERVER_UNAVAILABLE;
++              goto err_out;
++      }
++
++      sharename_escaped = escape_rdn_val_string_alloc(printer);
++      if (sharename_escaped == NULL) {
++              result = WERR_SERVER_UNAVAILABLE;
++              goto err_out;
++      }
++
++      printer_dn = talloc_asprintf(mem_ctx,
++                                   "cn=%s-%s,%s",
++                                   srv_cn_escaped,
++                                   sharename_escaped,
++                                   srv_dn);
++      if (printer_dn == NULL) {
++              result = WERR_NOMEM;
++              goto err_out;
++      }
++
++      *pprinter_dn = printer_dn;
++
++      result = WERR_OK;
++err_out:
++      SAFE_FREE(sharename_escaped);
++      SAFE_FREE(srv_cn_escaped);
++      TALLOC_FREE(srv_cn_0);
++      TALLOC_FREE(srv_dn);
++      return result;
++}
++
++static WERROR nt_printer_guid_retrieve_internal(ADS_STRUCT *ads,
++                                              const char *printer_dn,
++                                              struct GUID *pguid)
++{
++      ADS_STATUS ads_status;
++      LDAPMessage *res;
++      const char *attrs[] = {"objectGUID", NULL};
++      struct GUID guid;
++      bool ok;
++
++      ads_status = ads_search_dn(ads, &res, printer_dn, attrs);
++      if (!ADS_ERR_OK(ads_status)) {
++              DEBUG(2, ("Failed to retrieve GUID from DC - %s\n",
++                        ads_errstr(ads_status)));
++              return WERR_BADFILE;
++      }
++
++      ZERO_STRUCT(guid);
++      ok = ads_pull_guid(ads, res, &guid);
++      ads_msgfree(ads, res);
++      if (!ok) {
++              return WERR_NOMEM;
++      }
++
++      *pguid = guid;
++
++      return WERR_OK;
++}
++
+ WERROR nt_printer_guid_get(TALLOC_CTX *mem_ctx,
+                          const struct auth_serversupplied_info *session_info,
+                          struct messaging_context *msg_ctx,
+@@ -246,16 +368,12 @@ static WERROR nt_printer_publish_ads(struct messaging_context *msg_ctx,
+                                    struct spoolss_PrinterInfo2 *pinfo2)
+ {
+       ADS_STATUS ads_rc;
+-      LDAPMessage *res;
+-      char *prt_dn = NULL, *srv_dn, *srv_cn_0, *srv_cn_escaped, *sharename_escaped;
+-      char *srv_dn_utf8, **srv_cn_utf8;
+       TALLOC_CTX *ctx;
+       ADS_MODLIST mods;
+-      const char *attrs[] = {"objectGUID", NULL};
+       struct GUID guid;
+       WERROR win_rc = WERR_OK;
+-      size_t converted_size;
+       const char *printer = pinfo2->sharename;
++      char *printer_dn = NULL;
+       /* build the ads mods */
+       ctx = talloc_init("nt_printer_publish_ads");
+@@ -265,65 +383,13 @@ static WERROR nt_printer_publish_ads(struct messaging_context *msg_ctx,
+       DEBUG(5, ("publishing printer %s\n", printer));
+-      /* figure out where to publish */
+-      ads_rc = ads_find_machine_acct(ads, &res, global_myname());
+-      if (!ADS_ERR_OK(ads_rc)) {
+-              DEBUG(0, ("failed to find machine account for %s\n",
+-                        global_myname()));
+-              TALLOC_FREE(ctx);
+-              return WERR_NOT_FOUND;
+-      }
+-
+-      /* We use ldap_get_dn here as we need the answer
+-       * in utf8 to call ldap_explode_dn(). JRA. */
+-
+-      srv_dn_utf8 = ldap_get_dn((LDAP *)ads->ldap.ld, (LDAPMessage *)res);
+-      ads_msgfree(ads, res);
+-      if (!srv_dn_utf8) {
+-              TALLOC_FREE(ctx);
+-              return WERR_SERVER_UNAVAILABLE;
+-      }
+-      srv_cn_utf8 = ldap_explode_dn(srv_dn_utf8, 1);
+-      if (!srv_cn_utf8) {
+-              TALLOC_FREE(ctx);
+-              ldap_memfree(srv_dn_utf8);
+-              return WERR_SERVER_UNAVAILABLE;
+-      }
+-      /* Now convert to CH_UNIX. */
+-      if (!pull_utf8_talloc(ctx, &srv_dn, srv_dn_utf8, &converted_size)) {
+-              TALLOC_FREE(ctx);
+-              ldap_memfree(srv_dn_utf8);
+-              ldap_memfree(srv_cn_utf8);
+-              return WERR_SERVER_UNAVAILABLE;
+-      }
+-      if (!pull_utf8_talloc(ctx, &srv_cn_0, srv_cn_utf8[0], &converted_size)) {
+-              TALLOC_FREE(ctx);
+-              ldap_memfree(srv_dn_utf8);
+-              ldap_memfree(srv_cn_utf8);
+-              TALLOC_FREE(srv_dn);
+-              return WERR_SERVER_UNAVAILABLE;
+-      }
+-
+-      ldap_memfree(srv_dn_utf8);
+-      ldap_memfree(srv_cn_utf8);
+-
+-      srv_cn_escaped = escape_rdn_val_string_alloc(srv_cn_0);
+-      if (!srv_cn_escaped) {
+-              TALLOC_FREE(ctx);
+-              return WERR_SERVER_UNAVAILABLE;
+-      }
+-      sharename_escaped = escape_rdn_val_string_alloc(printer);
+-      if (!sharename_escaped) {
+-              SAFE_FREE(srv_cn_escaped);
++      win_rc = nt_printer_dn_lookup(ctx, ads, printer, &printer_dn);
++      if (!W_ERROR_IS_OK(win_rc)) {
++              DEBUG(2, ("Failed to create printer dn\n"));
+               TALLOC_FREE(ctx);
+-              return WERR_SERVER_UNAVAILABLE;
++              return win_rc;
+       }
+-      prt_dn = talloc_asprintf(ctx, "cn=%s-%s,%s", srv_cn_escaped, sharename_escaped, srv_dn);
+-
+-      SAFE_FREE(srv_cn_escaped);
+-      SAFE_FREE(sharename_escaped);
+-
+       mods = ads_init_mods(ctx);
+       if (mods == NULL) {
+@@ -338,13 +404,13 @@ static WERROR nt_printer_publish_ads(struct messaging_context *msg_ctx,
+       }
+       /* publish it */
+-      ads_rc = ads_mod_printer_entry(ads, prt_dn, ctx, &mods);
++      ads_rc = ads_mod_printer_entry(ads, printer_dn, ctx, &mods);
+       if (ads_rc.err.rc == LDAP_NO_SUCH_OBJECT) {
+               int i;
+               for (i=0; mods[i] != 0; i++)
+                       ;
+               mods[i] = (LDAPMod *)-1;
+-              ads_rc = ads_add_printer_entry(ads, prt_dn, ctx, &mods);
++              ads_rc = ads_add_printer_entry(ads, printer_dn, ctx, &mods);
+       }
+       if (!ADS_ERR_OK(ads_rc)) {
+@@ -352,16 +418,15 @@ static WERROR nt_printer_publish_ads(struct messaging_context *msg_ctx,
+                         printer, ads_errstr(ads_rc)));
+       }
+-      /* retreive the guid and store it locally */
+-      if (ADS_ERR_OK(ads_search_dn(ads, &res, prt_dn, attrs))) {
+-              bool guid_ok;
+-              ZERO_STRUCT(guid);
+-              guid_ok = ads_pull_guid(ads, res, &guid);
+-              ads_msgfree(ads, res);
+-              if (guid_ok) {
+-                      store_printer_guid(msg_ctx, printer, guid);
+-              }
++      win_rc = nt_printer_guid_retrieve_internal(ads, printer_dn, &guid);
++      if (!W_ERROR_IS_OK(win_rc)) {
++              TALLOC_FREE(ctx);
++              return win_rc;
+       }
++
++      /* TODO add a return value */
++      store_printer_guid(msg_ctx, printer, guid);
++
+       TALLOC_FREE(ctx);
+       return win_rc;
+-- 
+2.3.0
+
+
+From 45bb946d93deaf4926754cf57454f79869e8bfaf Mon Sep 17 00:00:00 2001
+From: David Disseldorp <ddiss@samba.org>
+Date: Thu, 18 Dec 2014 18:23:11 +0100
+Subject: [PATCH 2/4] PATCHSET16: printing: add nt_printer_guid_retrieve()
+ helper
+
+This function connects to the domain controller and retrieves the
+GUID for the corresponding printer DN.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11018
+
+Pair-programmed-with: Andreas Schneider <asn@samba.org>
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Guenther Deschner <gd@samba.org>
+(cherry picked from commit 38dbd054dc331a441b10fdebbdb4bd0fc51cfc0a)
+---
+ source3/include/nt_printing.h      |  3 ++
+ source3/printing/nt_printing_ads.c | 58 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 61 insertions(+)
+
+diff --git a/source3/include/nt_printing.h b/source3/include/nt_printing.h
+index cdbad87..67a0522 100644
+--- a/source3/include/nt_printing.h
++++ b/source3/include/nt_printing.h
+@@ -132,6 +132,9 @@ bool print_access_check(const struct auth_serversupplied_info *server_info,
+                       struct messaging_context *msg_ctx, int snum,
+                       int access_type);
++WERROR nt_printer_guid_retrieve(TALLOC_CTX *mem_ctx, const char *printer,
++                              struct GUID *pguid);
++
+ WERROR nt_printer_guid_get(TALLOC_CTX *mem_ctx,
+                          const struct auth_serversupplied_info *server_info,
+                          struct messaging_context *msg_ctx,
+diff --git a/source3/printing/nt_printing_ads.c b/source3/printing/nt_printing_ads.c
+index 25e1ab6..6fa4bfc 100644
+--- a/source3/printing/nt_printing_ads.c
++++ b/source3/printing/nt_printing_ads.c
+@@ -209,6 +209,58 @@ static WERROR nt_printer_guid_retrieve_internal(ADS_STRUCT *ads,
+       return WERR_OK;
+ }
++WERROR nt_printer_guid_retrieve(TALLOC_CTX *mem_ctx, const char *printer,
++                              struct GUID *pguid)
++{
++      ADS_STRUCT *ads = NULL;
++      char *old_krb5ccname = NULL;
++      char *printer_dn;
++      WERROR result;
++      ADS_STATUS ads_status;
++      TALLOC_CTX *tmp_ctx;
++
++      tmp_ctx = talloc_new(mem_ctx);
++      if (tmp_ctx == NULL) {
++              return WERR_NOMEM;
++      }
++
++      ads = ads_init(lp_realm(), lp_workgroup(), NULL);
++      if (ads == NULL) {
++              result = WERR_SERVER_UNAVAILABLE;
++              goto out;
++      }
++
++      old_krb5ccname = getenv(KRB5_ENV_CCNAME);
++      setenv(KRB5_ENV_CCNAME, "MEMORY:prtpub_cache", 1);
++      SAFE_FREE(ads->auth.password);
++      ads->auth.password = secrets_fetch_machine_password(lp_workgroup(),
++                                                          NULL, NULL);
++
++      ads_status = ads_connect(ads);
++      if (!ADS_ERR_OK(ads_status)) {
++              DEBUG(3, ("ads_connect failed: %s\n", ads_errstr(ads_status)));
++              result = WERR_ACCESS_DENIED;
++              goto out;
++      }
++
++      result = nt_printer_dn_lookup(tmp_ctx, ads, printer, &printer_dn);
++      if (!W_ERROR_IS_OK(result)) {
++              goto out;
++      }
++
++      result = nt_printer_guid_retrieve_internal(ads, printer_dn, pguid);
++out:
++      TALLOC_FREE(tmp_ctx);
++      ads_destroy(&ads);
++      ads_kdestroy("MEMORY:prtpub_cache");
++      unsetenv(KRB5_ENV_CCNAME);
++      if (old_krb5ccname != NULL) {
++              setenv(KRB5_ENV_CCNAME, old_krb5ccname, 0);
++      }
++
++      return result;
++}
++
+ WERROR nt_printer_guid_get(TALLOC_CTX *mem_ctx,
+                          const struct auth_serversupplied_info *session_info,
+                          struct messaging_context *msg_ctx,
+@@ -652,6 +704,12 @@ bool is_printer_published(TALLOC_CTX *mem_ctx,
+       return true;
+ }
+ #else
++WERROR nt_printer_guid_retrieve(TALLOC_CTX *mem_ctx, const char *printer,
++                              struct GUID *pguid)
++{
++      return WERR_NOT_SUPPORTED;
++}
++
+ WERROR nt_printer_guid_get(TALLOC_CTX *mem_ctx,
+                          const struct auth_serversupplied_info *session_info,
+                          struct messaging_context *msg_ctx,
+-- 
+2.3.0
+
+
+From 228323b1c846d6dfcd39e23c8ce850c79f339de9 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Thu, 18 Dec 2014 15:13:27 +0000
+Subject: [PATCH 3/4] PATCHSET16: printing: rework nt_printer_guid_store to
+ return errors
+
+Callers can now choose whether or not to ignore errors.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11018
+
+Pair-programmed-with: David Disseldorp <ddiss@samba.org>
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+Reviewed-by: Guenther Deschner <gd@samba.org>
+(cherry picked from commit 6595ced146a53dcef9bbd5d2deb82a44c8ce1a1a)
+---
+ source3/include/nt_printing.h      |  3 +++
+ source3/printing/nt_printing_ads.c | 49 +++++++++++++++++++++++++-------------
+ 2 files changed, 35 insertions(+), 17 deletions(-)
+
+diff --git a/source3/include/nt_printing.h b/source3/include/nt_printing.h
+index 67a0522..493f4ce 100644
+--- a/source3/include/nt_printing.h
++++ b/source3/include/nt_printing.h
+@@ -135,6 +135,9 @@ bool print_access_check(const struct auth_serversupplied_info *server_info,
+ WERROR nt_printer_guid_retrieve(TALLOC_CTX *mem_ctx, const char *printer,
+                               struct GUID *pguid);
++WERROR nt_printer_guid_store(struct messaging_context *msg_ctx,
++                           const char *printer, struct GUID guid);
++
+ WERROR nt_printer_guid_get(TALLOC_CTX *mem_ctx,
+                          const struct auth_serversupplied_info *server_info,
+                          struct messaging_context *msg_ctx,
+diff --git a/source3/printing/nt_printing_ads.c b/source3/printing/nt_printing_ads.c
+index 6fa4bfc..540a8a3 100644
+--- a/source3/printing/nt_printing_ads.c
++++ b/source3/printing/nt_printing_ads.c
+@@ -35,32 +35,32 @@
+ /*****************************************************************
+  ****************************************************************/
+-static void store_printer_guid(struct messaging_context *msg_ctx,
+-                             const char *printer, struct GUID guid)
++WERROR nt_printer_guid_store(struct messaging_context *msg_ctx,
++                           const char *printer, struct GUID guid)
+ {
+       TALLOC_CTX *tmp_ctx;
+-      struct auth_serversupplied_info *session_info = NULL;
++      const struct auth_serversupplied_info *session_info;
+       const char *guid_str;
+       DATA_BLOB blob;
+-      NTSTATUS status;
+       WERROR result;
+       tmp_ctx = talloc_new(NULL);
+       if (!tmp_ctx) {
+-              DEBUG(0, ("store_printer_guid: Out of memory?!\n"));
+-              return;
++              DEBUG(0, ("Out of memory?!\n"));
++              return WERR_NOMEM;
+       }
+-      status = make_session_info_system(tmp_ctx, &session_info);
+-      if (!NT_STATUS_IS_OK(status)) {
+-              DEBUG(0, ("store_printer_guid: "
+-                        "Could not create system session_info\n"));
++      session_info = get_session_info_system();
++      if (session_info == NULL) {
++              DEBUG(0, ("Could not get system session_info\n"));
++              result = WERR_NOMEM;
+               goto done;
+       }
+       guid_str = GUID_string(tmp_ctx, &guid);
+       if (!guid_str) {
+-              DEBUG(0, ("store_printer_guid: Out of memory?!\n"));
++              DEBUG(0, ("Out of memory?!\n"));
++              result = WERR_NOMEM;
+               goto done;
+       }
+@@ -68,9 +68,9 @@ static void store_printer_guid(struct messaging_context *msg_ctx,
+          Vista to whine */
+       if (!push_reg_sz(tmp_ctx, &blob, guid_str)) {
+-              DEBUG(0, ("store_printer_guid: "
+-                        "Could not marshall string %s for objectGUID\n",
++              DEBUG(0, ("Could not marshall string %s for objectGUID\n",
+                         guid_str));
++              result = WERR_NOMEM;
+               goto done;
+       }
+@@ -79,12 +79,15 @@ static void store_printer_guid(struct messaging_context *msg_ctx,
+                                          SPOOL_DSSPOOLER_KEY, "objectGUID",
+                                          REG_SZ, blob.data, blob.length);
+       if (!W_ERROR_IS_OK(result)) {
+-              DEBUG(0, ("store_printer_guid: "
+-                        "Failed to store GUID for printer %s\n", printer));
++              DEBUG(0, ("Failed to store GUID for printer %s\n", printer));
++              goto done;
+       }
++      result = WERR_OK;
+ done:
+       talloc_free(tmp_ctx);
++
++      return result;
+ }
+ static WERROR nt_printer_dn_lookup(TALLOC_CTX *mem_ctx,
+@@ -468,6 +471,7 @@ static WERROR nt_printer_publish_ads(struct messaging_context *msg_ctx,
+       if (!ADS_ERR_OK(ads_rc)) {
+               DEBUG(3, ("error publishing %s: %s\n",
+                         printer, ads_errstr(ads_rc)));
++              /* XXX failed to publish, so no guid to retrieve */
+       }
+       win_rc = nt_printer_guid_retrieve_internal(ads, printer_dn, &guid);
+@@ -476,8 +480,13 @@ static WERROR nt_printer_publish_ads(struct messaging_context *msg_ctx,
+               return win_rc;
+       }
+-      /* TODO add a return value */
+-      store_printer_guid(msg_ctx, printer, guid);
++      win_rc = nt_printer_guid_store(msg_ctx, printer, guid);
++      if (!W_ERROR_IS_OK(win_rc)) {
++              DEBUG(3, ("failed to store printer %s guid\n",
++                        printer));
++              /* not catastrophic, retrieve on next use */
++              win_rc = WERR_OK;
++      }
+       TALLOC_FREE(ctx);
+@@ -704,6 +713,12 @@ bool is_printer_published(TALLOC_CTX *mem_ctx,
+       return true;
+ }
+ #else
++WERROR nt_printer_guid_store(struct messaging_context *msg_ctx,
++                         const char *printer, struct GUID guid)
++{
++      return WERR_NOT_SUPPORTED;
++}
++
+ WERROR nt_printer_guid_retrieve(TALLOC_CTX *mem_ctx, const char *printer,
+                               struct GUID *pguid)
+ {
+-- 
+2.3.0
+
+
+From d4847deadc4cd6f4f8071fae16d05bc8ec4ed566 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Thu, 18 Dec 2014 15:14:36 +0000
+Subject: [PATCH 4/4] PATCHSET16: spoolss: retrieve published printer GUID if
+ not in registry
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When a printer is published, the GUID for the published DN is retrieved
+from the domain controller and stored in the registry.
+When handling a spoolss GetPrinter(level=7) request, the same GUID is
+obtained from the registry and returned to the client.
+
+This change sees the spoolss server query the DC for the published
+printer GUID if it is not present in the registry when handling a
+spoolss GetPrinter(level=7) request.
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11018
+
+Pair-Programmed-With: David Disseldorp <ddiss@samba.org>
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Signed-off-by: David Disseldorp <ddiss@samba.org>
+Reviewed-by: Guenther Deschner <gd@samba.org>
+
+Autobuild-User(master): Günther Deschner <gd@samba.org>
+Autobuild-Date(master): Wed Feb 18 12:43:44 CET 2015 on sn-devel-104
+
+(cherry picked from commit a4157e7c5d75be7003ad0b72fdfe9856a9e5ba8f)
+---
+ source3/rpc_server/spoolss/srv_spoolss_nt.c | 20 +++++++++++++++++++-
+ 1 file changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+index 0c4b582..516b7dc 100644
+--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
++++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+@@ -4213,7 +4213,25 @@ static WERROR construct_printer_info7(TALLOC_CTX *mem_ctx,
+               werr = nt_printer_guid_get(tmp_ctx, session_info, msg_ctx,
+                                          printer, &guid);
+               if (!W_ERROR_IS_OK(werr)) {
+-                      goto out_tmp_free;
++                      /*
++                       * If we do not have a GUID entry in the registry, then
++                       * try to retrieve it from AD and store it now.
++                       */
++                      werr = nt_printer_guid_retrieve(tmp_ctx, printer,
++                                                      &guid);
++                      if (!W_ERROR_IS_OK(werr)) {
++                              DEBUG(1, ("Failed to retrieve GUID for "
++                                        "printer [%s] from AD - "
++                                        "Is the the printer still "
++                                        "published ?\n", printer));
++                              goto out_tmp_free;
++                      }
++
++                      werr = nt_printer_guid_store(msg_ctx, printer, guid);
++                      if (!W_ERROR_IS_OK(werr)) {
++                              DEBUG(3, ("failed to store printer %s guid\n",
++                                        printer));
++                      }
+               }
+               r->guid = talloc_strdup_upper(mem_ctx, GUID_string2(mem_ctx, &guid));
+               r->action = DSPRINT_PUBLISH;
+-- 
+2.3.0
+
diff --git a/src/patches/samba/samba-3.6.99-nt_printer_unpublish_fix.patch b/src/patches/samba/samba-3.6.99-nt_printer_unpublish_fix.patch
new file mode 100644 (file)
index 0000000..641e62b
--- /dev/null
@@ -0,0 +1,75 @@
+From cd3082b03487eaeddb0105807b5ad39b47aa65f1 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@samba.org>
+Date: Tue, 8 Nov 2016 12:20:41 +0100
+Subject: [PATCH] s3-spoolss: Remove printer from registry if it is unpublished
+
+BUG: https://bugzilla.samba.org/show_bug.cgi?id=11665
+
+Signed-off-by: Andreas Schneider <asn@samba.org>
+Reviewed-by: Guenther Deschner <gd@samba.org>
+---
+ source3/rpc_server/spoolss/srv_spoolss_nt.c | 34 ++++++++++++++++++++++++-----
+ 1 file changed, 29 insertions(+), 5 deletions(-)
+
+diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+index 556cd4f..f1ab3fb 100644
+--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
++++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
+@@ -4194,6 +4194,7 @@ static WERROR construct_printer_info7(TALLOC_CTX *mem_ctx,
+                                     int snum)
+ {
+       struct auth_serversupplied_info *session_info;
++      struct spoolss_PrinterInfo2 *pinfo2 = NULL;
+       char *printer;
+       NTSTATUS status;
+       WERROR werr;
+@@ -4218,7 +4219,7 @@ static WERROR construct_printer_info7(TALLOC_CTX *mem_ctx,
+       }
+       if (is_printer_published(tmp_ctx, session_info, msg_ctx,
+-                               servername, printer, NULL)) {
++                               servername, printer, &pinfo2)) {
+               struct GUID guid;
+               werr = nt_printer_guid_get(tmp_ctx, session_info, msg_ctx,
+                                          printer, &guid);
+@@ -4230,10 +4231,33 @@ static WERROR construct_printer_info7(TALLOC_CTX *mem_ctx,
+                       werr = nt_printer_guid_retrieve(tmp_ctx, printer,
+                                                       &guid);
+                       if (!W_ERROR_IS_OK(werr)) {
+-                              DEBUG(1, ("Failed to retrieve GUID for "
+-                                        "printer [%s] from AD - "
+-                                        "Is the the printer still "
+-                                        "published ?\n", printer));
++                              DEBUG(3, ("Failed to retrieve GUID for "
++                                        "printer [%s] from AD - %s\n",
++                                        printer,
++                                        win_errstr(werr)));
++                              if (W_ERROR_EQUAL(werr, WERR_FILE_NOT_FOUND)) {
++                                      /*
++                                       * If we did not find it in AD, then it
++                                       * is unpublished and we should reflect
++                                       * this in the registry and return
++                                       * success.
++                                       */
++                                      DEBUG(1, ("Unpublish printer [%s]\n",
++                                                pinfo2->sharename));
++                                      nt_printer_publish(tmp_ctx,
++                                                         session_info,
++                                                         msg_ctx,
++                                                         pinfo2,
++                                                         DSPRINT_UNPUBLISH);
++                                      r->guid = talloc_strdup(mem_ctx, "");
++                                      r->action = DSPRINT_UNPUBLISH;
++
++                                      if (r->guid == NULL) {
++                                              werr = WERR_NOT_ENOUGH_MEMORY;
++                                      } else {
++                                              werr = WERR_OK;
++                                      }
++                              }
+                               goto out_tmp_free;
+                       }
+-- 
+2.10.1
+
diff --git a/src/patches/samba/samba-3.6.x-winbind_tevent_poll.patch b/src/patches/samba/samba-3.6.x-winbind_tevent_poll.patch
new file mode 100644 (file)
index 0000000..f38aabf
--- /dev/null
@@ -0,0 +1,308 @@
+From 1d94210adc6e0bb8a08fbfc1a516a0f958dbf744 Mon Sep 17 00:00:00 2001
+From: Volker Lendecke <vl@samba.org>
+Date: Wed, 16 Jan 2013 12:00:00 +0100
+Subject: [PATCH 1/2] winbind: Use standard tevent_context_init
+
+This makes winbind use epoll instead of poll
+---
+ source3/winbindd/winbindd.c       |   38 ++++++++++++++++++++++++++++++++-----
+ source3/winbindd/winbindd.h       |    2 --
+ source3/winbindd/winbindd_proto.h |    1 +
+ 3 files changed, 34 insertions(+), 7 deletions(-)
+
+Index: samba-3.6.22/source3/winbindd/winbindd.c
+===================================================================
+--- samba-3.6.22.orig/source3/winbindd/winbindd.c
++++ samba-3.6.22/source3/winbindd/winbindd.c
+@@ -48,14 +48,42 @@ static bool interactive = False;
+ extern bool override_logfile;
++struct tevent_context *winbind_event_context(void)
++{
++      static struct tevent_context *ev = NULL;
++
++      if (ev != NULL) {
++              return ev;
++      }
++
++      /*
++       * Note we MUST use the NULL context here, not the autofree context,
++       * to avoid side effects in forked children exiting.
++       */
++      ev = tevent_context_init(NULL);
++      if (ev == NULL) {
++              smb_panic("Could not init winbindd's messaging context.\n");
++      }
++      return ev;
++}
++
+ struct messaging_context *winbind_messaging_context(void)
+ {
+-      struct messaging_context *msg_ctx = server_messaging_context();
+-      if (likely(msg_ctx != NULL)) {
+-              return msg_ctx;
++      static struct messaging_context *msg = NULL;
++
++      if (msg != NULL) {
++              return msg;
++      }
++
++      /*
++       * Note we MUST use the NULL context here, not the autofree context,
++       * to avoid side effects in forked children exiting.
++       */
++      msg = messaging_init(NULL, procid_self(), winbind_event_context());
++      if (msg == NULL) {
++              smb_panic("Could not init winbindd's messaging context.\n");
+       }
+-      smb_panic("Could not init winbindd's messaging context.\n");
+-      return NULL;
++      return msg;
+ }
+ /* Reload configuration */
+Index: samba-3.6.22/source3/winbindd/winbindd.h
+===================================================================
+--- samba-3.6.22.orig/source3/winbindd/winbindd.h
++++ samba-3.6.22/source3/winbindd/winbindd.h
+@@ -397,6 +397,4 @@ struct WINBINDD_CCACHE_ENTRY {
+ #define WINBINDD_PAM_AUTH_KRB5_RENEW_TIME 2592000 /* one month */
+ #define DOM_SEQUENCE_NONE ((uint32)-1)
+-#define winbind_event_context server_event_context
+-
+ #endif /* _WINBINDD_H */
+Index: samba-3.6.22/source3/winbindd/winbindd_proto.h
+===================================================================
+--- samba-3.6.22.orig/source3/winbindd/winbindd_proto.h
++++ samba-3.6.22/source3/winbindd/winbindd_proto.h
+@@ -34,6 +34,7 @@ bool winbindd_use_cache(void);
+ void winbindd_register_handlers(void);
+ const char *get_winbind_pipe_dir(void);
+ char *get_winbind_priv_pipe_dir(void);
++struct tevent_context *winbind_event_context(void);
+ int main(int argc, char **argv, char **envp);
+ /* The following definitions come from winbindd/winbindd_ads.c  */
+Index: samba-3.6.22/source3/winbindd/winbindd_dual.c
+===================================================================
+--- samba-3.6.22.orig/source3/winbindd/winbindd_dual.c
++++ samba-3.6.22/source3/winbindd/winbindd_dual.c
+@@ -1284,6 +1284,66 @@ NTSTATUS winbindd_reinit_after_fork(cons
+       return NT_STATUS_OK;
+ }
++struct child_handler_state {
++      struct winbindd_child *child;
++      struct winbindd_cli_state *cli_state;
++};
++
++static void child_handler(struct tevent_context *ev, struct tevent_fd *fde,
++                        uint16_t flags, void *private_data)
++{
++      struct child_handler_state *ch_state =
++              (struct child_handler_state *)private_data;
++      struct winbindd_cli_state *state = ch_state->cli_state;
++      struct iovec iov[2];
++      int iov_count;
++      NTSTATUS status;
++
++      if ((flags & TEVENT_FD_READ) == 0) {
++              return;
++      }
++
++      /* fetch a request from the main daemon */
++      status = child_read_request(state);
++
++      if (!NT_STATUS_IS_OK(status)) {
++              /* we lost contact with our parent */
++              _exit(0);
++      }
++
++      DEBUG(4,("child daemon request %d\n", (int)state->request->cmd));
++
++      ZERO_STRUCTP(state->response);
++      state->request->null_term = '\0';
++      state->mem_ctx = talloc_tos();
++      child_process_request(ch_state->child, state);
++
++      DEBUG(4, ("Finished processing child request %d\n",
++                (int)state->request->cmd));
++
++      SAFE_FREE(state->request->extra_data.data);
++
++      iov[0].iov_base = (void *)state->response;
++      iov[0].iov_len = sizeof(struct winbindd_response);
++      iov_count = 1;
++
++      if (state->response->length > sizeof(struct winbindd_response)) {
++              iov[1].iov_base =
++                      (void *)state->response->extra_data.data;
++              iov[1].iov_len = state->response->length-iov[0].iov_len;
++              iov_count = 2;
++      }
++
++      DEBUG(10, ("Writing %d bytes to parent\n",
++                 (int)state->response->length));
++
++      if (write_data_iov(state->sock, iov, iov_count) !=
++          state->response->length) {
++              DEBUG(0, ("Could not write result\n"));
++              exit(1);
++      }
++}
++
+ /*
+  * In a child there will be only one domain, reference that here.
+  */
+@@ -1301,6 +1361,7 @@ static bool fork_domain_child(struct win
+       struct winbindd_request request;
+       struct winbindd_response response;
+       struct winbindd_domain *primary_domain = NULL;
++      struct child_handler_state ch_state;
+       NTSTATUS status;
+       ssize_t nwritten;
+@@ -1322,6 +1383,9 @@ static bool fork_domain_child(struct win
+       state.request = &request;
+       state.response = &response;
++      ch_state.child = child;
++      ch_state.cli_state = &state;
++
+       child->pid = sys_fork();
+       if (child->pid == -1) {
+@@ -1464,22 +1528,14 @@ static bool fork_domain_child(struct win
+               }
+       }
+-      while (1) {
++      if (tevent_add_fd(winbind_event_context(), NULL, state.sock,
++                        TEVENT_FD_READ, child_handler, &ch_state) == NULL) {
++              DEBUG(1, ("tevent_add_fd failed\n"));
++              exit(1);
++      }
+-              int ret;
+-              struct pollfd *pfds;
+-              int num_pfds;
+-              int timeout;
+-              struct timeval t;
+-              struct timeval *tp;
++      while (1) {
+               TALLOC_CTX *frame = talloc_stackframe();
+-              struct iovec iov[2];
+-              int iov_count;
+-
+-              if (run_events_poll(winbind_event_context(), 0, NULL, 0)) {
+-                      TALLOC_FREE(frame);
+-                      continue;
+-              }
+               if (child->domain && child->domain->startup &&
+                               (time_mono(NULL) > child->domain->startup_time + 30)) {
+@@ -1489,99 +1545,12 @@ static bool fork_domain_child(struct win
+                       child->domain->startup = False;
+               }
+-              pfds = TALLOC_ZERO_P(talloc_tos(), struct pollfd);
+-              if (pfds == NULL) {
+-                      DEBUG(1, ("talloc failed\n"));
+-                      _exit(1);
+-              }
+-
+-              pfds->fd = state.sock;
+-              pfds->events = POLLIN|POLLHUP;
+-              num_pfds = 1;
+-
+-              timeout = INT_MAX;
+-
+-              if (!event_add_to_poll_args(
+-                          winbind_event_context(), talloc_tos(),
+-                          &pfds, &num_pfds, &timeout)) {
+-                      DEBUG(1, ("event_add_to_poll_args failed\n"));
+-                      _exit(1);
+-              }
+-              tp = get_timed_events_timeout(winbind_event_context(), &t);
+-              if (tp) {
+-                      DEBUG(11,("select will use timeout of %u.%u seconds\n",
+-                              (unsigned int)tp->tv_sec, (unsigned int)tp->tv_usec ));
+-              }
+-
+-              ret = sys_poll(pfds, num_pfds, timeout);
+-
+-              if (run_events_poll(winbind_event_context(), ret,
+-                                  pfds, num_pfds)) {
+-                      /* We got a signal - continue. */
+-                      TALLOC_FREE(frame);
+-                      continue;
+-              }
+-
+-              TALLOC_FREE(pfds);
+-
+-              if (ret == 0) {
+-                      DEBUG(11,("nothing is ready yet, continue\n"));
+-                      TALLOC_FREE(frame);
+-                      continue;
+-              }
+-
+-              if (ret == -1 && errno == EINTR) {
+-                      /* We got a signal - continue. */
+-                      TALLOC_FREE(frame);
+-                      continue;
+-              }
+-
+-              if (ret == -1 && errno != EINTR) {
+-                      DEBUG(0,("poll error occured\n"));
+-                      TALLOC_FREE(frame);
+-                      perror("poll");
++              if (tevent_loop_once(winbind_event_context()) != 0) {
++                      DEBUG(1, ("tevent_loop_once failed: %s\n",
++                                strerror(errno)));
+                       _exit(1);
+               }
+-              /* fetch a request from the main daemon */
+-              status = child_read_request(&state);
+-
+-              if (!NT_STATUS_IS_OK(status)) {
+-                      /* we lost contact with our parent */
+-                      _exit(0);
+-              }
+-
+-              DEBUG(4,("child daemon request %d\n", (int)state.request->cmd));
+-
+-              ZERO_STRUCTP(state.response);
+-              state.request->null_term = '\0';
+-              state.mem_ctx = frame;
+-              child_process_request(child, &state);
+-
+-              DEBUG(4, ("Finished processing child request %d\n",
+-                        (int)state.request->cmd));
+-
+-              SAFE_FREE(state.request->extra_data.data);
+-
+-              iov[0].iov_base = (void *)state.response;
+-              iov[0].iov_len = sizeof(struct winbindd_response);
+-              iov_count = 1;
+-
+-              if (state.response->length > sizeof(struct winbindd_response)) {
+-                      iov[1].iov_base =
+-                              (void *)state.response->extra_data.data;
+-                      iov[1].iov_len = state.response->length-iov[0].iov_len;
+-                      iov_count = 2;
+-              }
+-
+-              DEBUG(10, ("Writing %d bytes to parent\n",
+-                         (int)state.response->length));
+-
+-              if (write_data_iov(state.sock, iov, iov_count) !=
+-                  state.response->length) {
+-                      DEBUG(0, ("Could not write result\n"));
+-                      exit(1);
+-              }
+               TALLOC_FREE(frame);
+       }
+ }
diff --git a/src/patches/strongswan-disable-ipv6.patch b/src/patches/strongswan-disable-ipv6.patch
new file mode 100644 (file)
index 0000000..e459941
--- /dev/null
@@ -0,0 +1,24 @@
+diff --git a/conf/plugins/socket-default.opt b/conf/plugins/socket-default.opt
+index 483a0f03d584..6fc7c2db47a7 100644
+--- a/conf/plugins/socket-default.opt
++++ b/conf/plugins/socket-default.opt
+@@ -7,5 +7,5 @@ charon.plugins.socket-default.set_source = yes
+ charon.plugins.socket-default.use_ipv4 = yes
+       Listen on IPv4, if possible.
+-charon.plugins.socket-default.use_ipv6 = yes
++charon.plugins.socket-default.use_ipv6 = no
+       Listen on IPv6, if possible.
+diff --git a/src/libcharon/plugins/socket_default/socket_default_socket.c b/src/libcharon/plugins/socket_default/socket_default_socket.c
+index ba22b0c2bdb6..da6989d81d7a 100644
+--- a/src/libcharon/plugins/socket_default/socket_default_socket.c
++++ b/src/libcharon/plugins/socket_default/socket_default_socket.c
+@@ -748,7 +748,7 @@ static bool use_family(int family)
+                                               "%s.plugins.socket-default.use_ipv4", TRUE, lib->ns);
+               case AF_INET6:
+                       return lib->settings->get_bool(lib->settings,
+-                                              "%s.plugins.socket-default.use_ipv6", TRUE, lib->ns);
++                                              "%s.plugins.socket-default.use_ipv6", FALSE, lib->ns);
+               default:
+                       return FALSE;
+       }
diff --git a/src/patches/u-boot-c99-inline-fix.patch b/src/patches/u-boot-c99-inline-fix.patch
new file mode 100644 (file)
index 0000000..5956e55
--- /dev/null
@@ -0,0 +1,20 @@
+diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
+index 9896e54..99c6dcc 100644
+--- a/include/linux/compiler-gcc.h
++++ b/include/linux/compiler-gcc.h
+@@ -44,9 +44,10 @@
+  */
+ #if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \
+     !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
+-# define inline               inline          __attribute__((always_inline))
+-# define __inline__   __inline__      __attribute__((always_inline))
+-# define __inline     __inline        __attribute__((always_inline))
++/* XXX: check __GNUC_STDC_INLINE__, fix line length */
++# define inline               inline          __attribute__((always_inline)) __attribute__((__gnu_inline__))
++# define __inline__   __inline__      __attribute__((always_inline)) __attribute__((__gnu_inline__))
++# define __inline     __inline        __attribute__((always_inline)) __attribute__((__gnu_inline__))
+ #endif
+ #define __deprecated                  __attribute__((deprecated))
+-- 
+1.8.3.2
diff --git a/src/patches/u-boot-support-gcc-6.patch b/src/patches/u-boot-support-gcc-6.patch
new file mode 100644 (file)
index 0000000..f6b4c30
--- /dev/null
@@ -0,0 +1,71 @@
+diff --git a/include/linux/compiler-gcc6.h b/include/linux/compiler-gcc6.h
+new file mode 100644
+index 0000000..622117b
+--- /dev/null
++++ b/include/linux/compiler-gcc6.h
+@@ -0,0 +1,65 @@
++#ifndef __LINUX_COMPILER_H
++#error "Please don't include <linux/compiler-gcc6.h> directly, include <linux/compiler.h> instead."
++#endif
++
++#define __used                                __attribute__((__used__))
++#define __must_check                  __attribute__((warn_unused_result))
++#define __compiler_offsetof(a, b)     __builtin_offsetof(a, b)
++
++/* Mark functions as cold. gcc will assume any path leading to a call
++   to them will be unlikely.  This means a lot of manual unlikely()s
++   are unnecessary now for any paths leading to the usual suspects
++   like BUG(), printk(), panic() etc. [but let's keep them for now for
++   older compilers]
++
++   Early snapshots of gcc 4.3 don't support this and we can't detect this
++   in the preprocessor, but we can live with this because they're unreleased.
++   Maketime probing would be overkill here.
++
++   gcc also has a __attribute__((__hot__)) to move hot functions into
++   a special section, but I don't see any sense in this right now in
++   the kernel context */
++#define __cold                        __attribute__((__cold__))
++
++#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
++
++#ifndef __CHECKER__
++# define __compiletime_warning(message) __attribute__((warning(message)))
++# define __compiletime_error(message) __attribute__((error(message)))
++#endif /* __CHECKER__ */
++
++/*
++ * Mark a position in code as unreachable.  This can be used to
++ * suppress control flow warnings after asm blocks that transfer
++ * control elsewhere.
++ *
++ * Early snapshots of gcc 4.5 don't support this and we can't detect
++ * this in the preprocessor, but we can live with this because they're
++ * unreleased.  Really, we need to have autoconf for the kernel.
++ */
++#define unreachable() __builtin_unreachable()
++
++/* Mark a function definition as prohibited from being cloned. */
++#define __noclone     __attribute__((__noclone__))
++
++/*
++ * Tell the optimizer that something else uses this function or variable.
++ */
++#define __visible __attribute__((externally_visible))
++
++/*
++ * GCC 'asm goto' miscompiles certain code sequences:
++ *
++ *   http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
++ *
++ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
++ *
++ * (asm goto is automatically volatile - the naming reflects this.)
++ */
++#define asm_volatile_goto(x...)       do { asm goto(x); asm (""); } while (0)
++
++#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
++#define __HAVE_BUILTIN_BSWAP32__
++#define __HAVE_BUILTIN_BSWAP64__
++#define __HAVE_BUILTIN_BSWAP16__
++#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
diff --git a/src/patches/unbound-allow-setting-validator-permissive-mode-at-runtime.patch b/src/patches/unbound-allow-setting-validator-permissive-mode-at-runtime.patch
new file mode 100644 (file)
index 0000000..f476d08
--- /dev/null
@@ -0,0 +1,43 @@
+diff --git a/validator/validator.c b/validator/validator.c
+index 676dcdf..7c19f3d 100644
+--- a/validator/validator.c
++++ b/validator/validator.c
+@@ -113,7 +113,7 @@ val_apply_cfg(struct module_env* env, struct val_env* val_env,
+       int c;
+       val_env->bogus_ttl = (uint32_t)cfg->bogus_ttl;
+       val_env->clean_additional = cfg->val_clean_additional;
+-      val_env->permissive_mode = cfg->val_permissive_mode;
++      val_env->permissive_mode = &cfg->val_permissive_mode;
+       if(!env->anchors)
+               env->anchors = anchors_create();
+       if(!env->anchors) {
+@@ -170,7 +170,6 @@ val_init(struct module_env* env, int id)
+       }
+       env->modinfo[id] = (void*)val_env;
+       env->need_to_validate = 1;
+-      val_env->permissive_mode = 0;
+       lock_basic_init(&val_env->bogus_lock);
+       lock_protect(&val_env->bogus_lock, &val_env->num_rrset_bogus,
+               sizeof(val_env->num_rrset_bogus));
+@@ -2084,7 +2083,7 @@ processFinished(struct module_qstate* qstate, struct val_qstate* vq,
+                       }
+               }
+               /* If we are in permissive mode, bogus gets indeterminate */
+-              if(ve->permissive_mode)
++              if(*ve->permissive_mode)
+                       vq->orig_msg->rep->security = sec_status_indeterminate;
+       }
+diff --git a/validator/validator.h b/validator/validator.h
+index 23d3072..f8464b8 100644
+--- a/validator/validator.h
++++ b/validator/validator.h
+@@ -104,7 +104,7 @@ struct val_env {
+        * This allows an operator to run validation 'shadow' without
+        * hurting responses to clients.
+        */
+-      int permissive_mode;
++      int* permissive_mode;
+       /**
+        * Number of entries in the NSEC3 maximum iteration count table.
index ca0ee51b6823c664e9c0a31571ac84177ce0ca80..45de8c78de61aceffad284893ed23532dfb2e582 100755 (executable)
 #                                                                             #
 ###############################################################################
 
+for i in BUILD_ARCH BUILDTARGET KVER; do
+       if [ -z "${!i}" ]; then
+               echo "${i} not set" >&2
+               exit 1
+       fi
+done
+
 FILELIST=
 
 for dir in $@; do
@@ -31,7 +38,7 @@ for dir in $@; do
                continue
        fi
 
-       for exclude in ${dir}/${MACHINE}/*; do
+       for exclude in ${dir}/${BUILD_ARCH}/*; do
                [ -f "${exclude}" ] || continue
                EXCLUDE="$EXCLUDE $exclude"
        done
@@ -52,4 +59,4 @@ for dir in $@; do
 done
 
 cat ${FILELIST} 2>/dev/null | grep -v ^# | sort | uniq | \
-       sed -e "s/KVER/${KVER}/g" -e "s/MACHINE/${MACHINE}/g" -e "s/BUILDTARGET/${BUILDTARGET}/g"
+       sed -e "s/KVER/${KVER}/g" -e "s/MACHINE/${BUILD_ARCH}/g" -e "s/BUILDTARGET/${BUILDTARGET}/g"
index 000411c75c1ce98033ad761c0910f0359c76ad10..66592bb94efb5bef84ee9e3cff7ed93d7554b570 100644 (file)
@@ -75,7 +75,8 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
        int startstatictype = 0;
        int startdhcptype = 0;
        int startpppoetype = 0;
-               
+       unsigned char buffer[sizeof(struct in_addr)];
+
        /* Build some key strings. */
        sprintf(addressfield, "%s_ADDRESS", colour);
        sprintf(netmaskfield, "%s_NETMASK", colour);
@@ -184,7 +185,7 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag,
                                        strcat(message, "\n");
                                        error = 1;
                                }
-                               if (inet_addr(netmaskresult) == INADDR_NONE)
+                               if (inet_pton(AF_INET, netmaskresult, &buffer) == 0)
                                {
                                        strcat(message, _("Network mask"));
                                        strcat(message, "\n");
index 2b4feafe9063c50bf0c01795bd8ea887fcf21e19..d73848fc6e7491e4b2d11a6889d3994e50f9853e 100755 (executable)
@@ -43,15 +43,15 @@ function _strip() {
 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' |
+               | file -N -f - | sed -n -e 's/^\(.*\):[   ]*.*ELF.*, not stripped.*/\1/p' |
                while read file; do
-                       _strip ${file}
-               done
+                       _strip ${file} || exit $?
+               done || exit $?
 
        # 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
+                       _strip ${file} || exit $?
+               done || exit $?
 done
index dd78a29652ebbf854651c4fadbfa7c1e838fa57d..abf4613fb39811c30107c8c6f475581fbe0e3c2a 100755 (executable)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2008  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2017  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        #
@@ -28,7 +28,7 @@ foreach(@FILES) {
 #      print $_."\n";
        my $Found = 0;
 
-       if ( $_ =~ /$\.log/ || $_ =~ /^\.+/  || $_=~ /-install/ || $_=~ /-tools/ || $_=~ /-config/ || $_=~ /-kmod-/|| $_=~ /coreutils/ || $_=~ /linux-xen/ || $_=~ /libsigc/ || $_ eq 'FILES' ){
+       if ( $_ =~ /$\.log/ || $_ =~ /^\.+/  || $_=~ /-install/ || $_=~ /-tools/ || $_=~ /-config/ || $_=~ /-kmod-/|| $_=~ /coreutils/ || $_=~ /cmake/ || $_=~ /libsigc/ || $_ eq 'FILES' ){
                next;
        } elsif ( $_=~ /missing_rootfile/ ){
                print "Rootfile for $_ missing!\n";
index d5f0a71262750a62a743314678c6159f9431b35a..b419253fa8cd9ea577d65c73e08f4cc811bec128 100644 (file)
@@ -60,69 +60,94 @@ WARN="\\033[1;35m"
 FAIL="\\033[1;31m"
 NORMAL="\\033[0;39m"
 
-configure_target() {
-       local target_arch="${1}"
+configure_build() {
+       local build_arch="${1}"
 
-       if [ "${target_arch}" = "default" ]; then
-               target_arch="$(configure_target_guess)"
+       if [ "${build_arch}" = "default" ]; then
+               build_arch="$(configure_build_guess)"
        fi
 
-       case "${target_arch}" in
+       case "${build_arch}" in
                x86_64)
-                       BUILDTARGET="${target_arch}-unknown-linux-gnu"
-                       CROSSTARGET="${target_arch}-cross-linux-gnu"
+                       BUILDTARGET="${build_arch}-unknown-linux-gnu"
+                       CROSSTARGET="${build_arch}-cross-linux-gnu"
+                       BUILD_PLATFORM="x86"
                        CFLAGS_ARCH="-m64 -mtune=generic"
                        ;;
 
                i586)
-                       BUILDTARGET="${target_arch}-pc-linux-gnu"
-                       CROSSTARGET="${target_arch}-cross-linux-gnu"
+                       BUILDTARGET="${build_arch}-pc-linux-gnu"
+                       CROSSTARGET="${build_arch}-cross-linux-gnu"
+                       BUILD_PLATFORM="x86"
                        CFLAGS_ARCH="-march=i586 -mtune=generic -fomit-frame-pointer"
                        ;;
 
+               aarch64)
+                       BUILDTARGET="${build_arch}-unknown-linux-gnu"
+                       CROSSTARGET="${build_arch}-cross-linux-gnu"
+                       BUILD_PLATFORM="arm"
+                       CFLAGS_ARCH=""
+                       ;;
+
+               armv7hl)
+                       BUILDTARGET="${build_arch}-unknown-linux-gnueabi"
+                       CROSSTARGET="${build_arch}-cross-linux-gnueabi"
+                       BUILD_PLATFORM="arm"
+                       CFLAGS_ARCH="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
+                       ;;
+
                armv5tel)
-                       BUILDTARGET="${target_arch}-unknown-linux-gnueabi"
-                       CROSSTARGET="${target_arch}-cross-linux-gnueabi"
+                       BUILDTARGET="${build_arch}-unknown-linux-gnueabi"
+                       CROSSTARGET="${build_arch}-cross-linux-gnueabi"
+                       BUILD_PLATFORM="arm"
                        CFLAGS_ARCH="-march=armv5te -mfloat-abi=soft -fomit-frame-pointer"
-                       MACHINE_TYPE="arm"
                        ;;
 
                *)
-                       exiterror "Cannot build for architure ${target_arch}"
+                       exiterror "Cannot build for architure ${build_arch}"
                        ;;
        esac
 
        # Check if the QEMU helper is available if needed.
-       if qemu_is_required "${target_arch}"; then
-               local qemu_target_helper="$(qemu_find_target_helper_name "${target_arch}")"
+       if qemu_is_required "${build_arch}"; then
+               local qemu_build_helper="$(qemu_find_build_helper_name "${build_arch}")"
 
-               if [ -n "${qemu_target_helper}" ]; then
-                       QEMU_TARGET_HELPER="${qemu_target_helper}"
+               if [ -n "${qemu_build_helper}" ]; then
+                       QEMU_TARGET_HELPER="${qemu_build_helper}"
                else
-                       exiterror "Could not find a binfmt_misc helper entry for ${target_arch}"
+                       exiterror "Could not find a binfmt_misc helper entry for ${build_arch}"
                fi
        fi
 
-       TARGET_ARCH="${target_arch}"
+       BUILD_ARCH="${build_arch}"
 
-       # Old variable names
-       MACHINE="${TARGET_ARCH}"
+       # Enables hardening
+       HARDENING_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4"
 
-       CFLAGS="-O2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fPIC"
-       CFLAGS="${CFLAGS} -fstack-protector-strong --param=ssp-buffer-size=4 ${CFLAGS_ARCH}"
+       CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
        CXXFLAGS="${CFLAGS}"
 }
 
-configure_target_guess() {
-       case "${BUILD_ARCH}" in
+configure_build_guess() {
+       case "${HOST_ARCH}" in
                x86_64|i686|i586)
                        echo "i586"
                        ;;
-               aarch64|armv7*|armv6*|armv5*)
+
+               aarch64)
+                       echo "aarch64"
+                       ;;
+
+               armv7*)
+                       echo "armv7hl"
+                       ;;
+
+               armv6*|armv5*)
                        echo "armv5tel"
                        ;;
+
                *)
-                       exiterror "Cannot guess target architecture"
+                       exiterror "Cannot guess build architecture"
                        ;;
        esac
 }
@@ -198,9 +223,9 @@ beautify()
                                LAST_STAGE_TIME=$[ `date +%s` - $STAGE_TIME_START ]
                        fi
                        STAGE_TIME_START=`date +%s`
-                       echo -ne "${BOLD}*** ${MESSAGE}${NORMAL}"
+                       echo -ne "${BOLD}*** (${BUILD_ARCH}) ${MESSAGE}${NORMAL}"
                        if [ "$LAST_STAGE_TIME" ]; then
-                               echo -ne "${DONE} (Last stage took $LAST_STAGE_TIME secs)${NORMAL}"
+                               echo -ne "${DONE} (Last stage took $LAST_STAGE_TIME secs)${NORMAL}\n"
                        fi
                        echo -ne "${BOLD}${SET_VER_COL}      version${SET_OPT_COL} options${SET_TIME_COL} time (sec)${SET_RESULT_COL} status${NORMAL}\n"
                        ;;
@@ -310,6 +335,16 @@ exiterror() {
                losetup -d /dev/loop${i} 2>/dev/null
            fi;
        done
+
+       if [ -n "${LOGFILE}" ]; then
+               echo # empty line
+
+               local line
+               while read -r line; do
+                       echo "    ${line}"
+               done <<< "$(tail -n30 ${LOGFILE})"
+       fi
+
        echo -e "\nERROR: $*"
        echo "       Check $LOGFILE for errors if applicable"
        exit 1
@@ -325,7 +360,7 @@ fake_environ() {
        env="${env} UTS_RELEASE=${KVER}"
 
        # Fake machine version.
-       env="${env} UTS_MACHINE=${TARGET_ARCH}"
+       env="${env} UTS_MACHINE=${BUILD_ARCH}"
 
        echo "${env}"
 }
@@ -339,7 +374,7 @@ qemu_environ() {
        fi
 
        # Set default qemu options
-       case "${TARGET_ARCH}" in
+       case "${BUILD_ARCH}" in
                arm*)
                        QEMU_CPU="${QEMU_CPU:-cortex-a9}"
 
@@ -354,13 +389,13 @@ qemu_environ() {
 }
 
 qemu_is_required() {
-       local target_arch="${1}"
+       local build_arch="${1}"
 
-       if [ -z "${target_arch}" ]; then
-               target_arch="${TARGET_ARCH}"
+       if [ -z "${build_arch}" ]; then
+               build_arch="${BUILD_ARCH}"
        fi
 
-       case "${BUILD_ARCH},${target_arch}" in
+       case "${HOST_ARCH},${build_arch}" in
                x86_64,arm*|i?86,arm*|i?86,x86_64)
                        return 0
                        ;;
@@ -414,11 +449,11 @@ qemu_install_helper() {
        exiterror "Could not find a statically-linked QEMU emulator: ${QEMU_TARGET_HELPER}"
 }
 
-qemu_find_target_helper_name() {
-       local target_arch="${1}"
+qemu_find_build_helper_name() {
+       local build_arch="${1}"
 
        local magic
-       case "${target_arch}" in
+       case "${build_arch}" in
                arm*)
                        magic="7f454c4601010100000000000000000002002800"
                        ;;
@@ -455,36 +490,53 @@ file_is_static() {
        file ${file} 2>/dev/null | grep -q "statically linked"
 }
 
-entershell() {
-       if [ ! -e $BASEDIR/build/usr/src/lfs/ ]; then
-               exiterror "No such file or directory: $BASEDIR/build/usr/src/lfs/"
-       fi
-
+enterchroot() {
        # Install QEMU helper, if needed
        qemu_install_helper
 
-       echo "Entering to a shell inside LFS chroot, go out with exit"
-       chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='ipfire build chroot ($(uname -m)) \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="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
+       local PATH="/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin"
+
+       PATH="${PATH}" chroot ${LFS} env -i \
+               HOME="/root" \
+               TERM="${TERM}" \
+               PS1="${PS1}" \
+               PATH="${PATH}" \
+               SYSTEM_RELEASE="${SYSTEM_RELEASE}" \
+               PAKFIRE_CORE="${PAKFIRE_CORE}" \
+               NAME="${NAME}" \
+               SNAME="${SNAME}" \
+               VERSION="${VERSION}" \
+               CORE="${CORE}" \
+               SLOGAN="${SLOGAN}" \
+               CONFIG_ROOT="${CONFIG_ROOT}" \
+               CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
+               CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
+               BUILDTARGET="${BUILDTARGET}" \
+               CROSSTARGET="${CROSSTARGET}" \
+               BUILD_ARCH="${BUILD_ARCH}" \
+               BUILD_PLATFORM="${BUILD_PLATFORM}" \
                CCACHE_DIR=/usr/src/ccache \
                CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
                CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
-               KVER=$KVER \
-               BUILDTARGET="$BUILDTARGET" \
-               CROSSTARGET="${CROSSTARGET}" \
-               MACHINE="$MACHINE" \
-               MACHINE_TYPE="$MACHINE_TYPE" \
+               KVER="${KVER}" \
                $(fake_environ) \
                $(qemu_environ) \
-               /tools/bin/bash -i
-       if [ $? -ne 0 ]; then
-                       beautify message FAIL
-                       exiterror "chroot error"
-       else
+               "$@"
+}
+
+entershell() {
+       if [ ! -e $BASEDIR/build/usr/src/lfs/ ]; then
+               exiterror "No such file or directory: $BASEDIR/build/usr/src/lfs/"
+       fi
+
+       echo "Entering to a shell inside LFS chroot, go out with exit"
+       local PS1="ipfire build chroot ($(uname -m)) \u:\w\$ "
+
+       if enterchroot bash -i; then
                stdumount
+       else
+               beautify message FAIL
+               exiterror "chroot error"
        fi
 }
 
@@ -513,8 +565,8 @@ lfsmakecommoncheck()
        # Check if this package is supported by our architecture.
        # If no SUP_ARCH is found, we assume the package can be built for all.
        if grep "^SUP_ARCH" ${BASEDIR}/lfs/${1} >/dev/null; then
-               # Check if package supports ${MACHINE} or all architectures.
-               if ! grep -E "^SUP_ARCH.*${MACHINE}|^SUP_ARCH.*all" ${BASEDIR}/lfs/${1} >/dev/null; then
+               # Check if package supports ${BUILD_ARCH} or all architectures.
+               if ! grep -E "^SUP_ARCH.*${BUILD_ARCH}|^SUP_ARCH.*all" ${BASEDIR}/lfs/${1} >/dev/null; then
                        beautify result SKIP
                        return 1
                fi
@@ -532,15 +584,13 @@ lfsmakecommoncheck()
 
        echo -ne "`date -u '+%b %e %T'`: Building $* " >> $LOGFILE
 
-       cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \
-               MACHINE_TYPE="$MACHINE_TYPE" \
+       cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR BUILD_ARCH="${BUILD_ARCH}" \
                MESSAGE="$1\t " download  >> $LOGFILE 2>&1
        if [ $? -ne 0 ]; then
                exiterror "Download error in $1"
        fi
 
-       cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \
-               MACHINE_TYPE="$MACHINE_TYPE" \
+       cd $BASEDIR/lfs && make -s -f $* LFS_BASEDIR=$BASEDIR BUILD_ARCH="${BUILD_ARCH}" \
                MESSAGE="$1\t md5sum" md5  >> $LOGFILE 2>&1
        if [ $? -ne 0 ]; then
                exiterror "md5sum error in $1, check file in cache or signature"
@@ -555,15 +605,25 @@ 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 \
-                                               install >> $LOGFILE 2>&1
+       cd $BASEDIR/lfs && env -i \
+               PATH="/tools/ccache/bin:/tools/bin:$PATH" \
+               CCACHE_DIR="${CCACHE_DIR}" \
+               CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
+               CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
+               CFLAGS="${CFLAGS}" \
+               CXXFLAGS="${CXXFLAGS}" \
+               MAKETUNING="${MAKETUNING}" \
+               make -f $* \
+                       TOOLCHAIN=1 \
+                       CROSSTARGET="${CROSSTARGET}" \
+                       BUILDTARGET="${BUILDTARGET}" \
+                       BUILD_ARCH="${BUILD_ARCH}" \
+                       BUILD_PLATFORM="${BUILD_PLATFORM}" \
+                       LFS_BASEDIR="${BASEDIR}" \
+                       ROOT="${LFS}" \
+                       KVER="${KVER}" \
+                       install >> $LOGFILE 2>&1
+
        local COMPILE_SUCCESS=$?
        local PKG_TIME_END=`date +%s`
 
@@ -581,72 +641,15 @@ lfsmake2() {
        lfsmakecommoncheck $*
        [ $? == 1 ] && return 0
 
-       # Install QEMU helper, if needed
-       qemu_install_helper
-
        local PKG_TIME_START=`date +%s`
-       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 PAKFIRE_CORE="${PAKFIRE_CORE}" \
-                                               SYSTEM_RELEASE="${SYSTEM_RELEASE}" \
-                                               CONFIG_ROOT=$CONFIG_ROOT \
-                                               NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
-                                               CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
-                                               CCACHE_DIR=/usr/src/ccache \
-                                               CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
-                                               CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
-                                               KVER=$KVER MAKETUNING=$MAKETUNING \
-                                               BUILDTARGET="$BUILDTARGET" \
-                                               CROSSTARGET="${CROSSTARGET}" \
-                                               MACHINE="$MACHINE" \
-                                               MACHINE_TYPE="$MACHINE_TYPE" \
-                                               $(qemu_environ) \
-                                               $(fake_environ) \
-                                               /tools/bin/bash -x -c "cd /usr/src/lfs && \
-                                               make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
-       local COMPILE_SUCCESS=$?
-       local PKG_TIME_END=`date +%s`
-
-       if [ $COMPILE_SUCCESS -ne 0 ]; then
-               beautify result FAIL $[ $PKG_TIME_END - $PKG_TIME_START ]
-               exiterror "Building $*";
-       else
-               beautify result DONE $[ $PKG_TIME_END - $PKG_TIME_START ]
-       fi
-
-       return 0
-}
-
-ipfiremake() {
-       lfsmakecommoncheck $*
-       [ $? == 1 ] && return 0
+       local PS1='\u:\w$ '
 
-       # Install QEMU helper, if needed
-       qemu_install_helper
-
-       local PKG_TIME_START=`date +%s`
-       chroot $LFS /tools/bin/env -i   HOME=/root \
-                                               TERM=$TERM PS1='\u:\w\$ ' \
-                                               PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
-                                               VERSION=$VERSION \
-                                               CORE=$CORE \
-                                               CONFIG_ROOT=$CONFIG_ROOT \
-                                               NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
-                                               SYSTEM_RELEASE="$SYSTEM_RELEASE" \
-                                               CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
-                                               CCACHE_DIR=/usr/src/ccache \
-                                               CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
-                                               CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
-                                               KVER=$KVER MAKETUNING=$MAKETUNING \
-                                               BUILDTARGET="$BUILDTARGET" \
-                                               CROSSTARGET="${CROSSTARGET}" \
-                                               MACHINE="$MACHINE" \
-                                               MACHINE_TYPE="$MACHINE_TYPE" \
-                                               $(qemu_environ) \
-                                               $(fake_environ) \
-                                               /bin/bash -x -c "cd /usr/src/lfs && \
-                                               make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
+       enterchroot \
+               bash -x -c "cd /usr/src/lfs && \
+                       MAKETUNING=${MAKETUNING} \
+                       make -f $* \
+                       LFS_BASEDIR=/usr/src install" \
+               >> ${LOGFILE} 2>&1
 
        local COMPILE_SUCCESS=$?
        local PKG_TIME_END=`date +%s`
@@ -657,81 +660,27 @@ ipfiremake() {
        else
                beautify result DONE $[ $PKG_TIME_END - $PKG_TIME_START ]
        fi
+
        return 0
 }
 
 ipfiredist() {
        lfsmakecommoncheck $*
        [ $? == 1 ] && return 0
-       
-       # Install QEMU helper, if needed
-       qemu_install_helper
 
        local PKG_TIME_START=`date +%s`
-       chroot $LFS /tools/bin/env -i   HOME=/root \
-                                       TERM=$TERM PS1='\u:\w\$ ' \
-                                       PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
-                                       VERSION=$VERSION \
-                                       CONFIG_ROOT=$CONFIG_ROOT \
-                                       NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
-                                       CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
-                                       CCACHE_DIR=/usr/src/ccache \
-                                       CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
-                                       CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
-                                       KVER=$KVER \
-                                       BUILDTARGET="$BUILDTARGET" \
-                                       CROSSTARGET="${CROSSTARGET}" \
-                                       MACHINE="$MACHINE" \
-                                       MACHINE_TYPE="$MACHINE_TYPE" \
-                                       $(qemu_environ) \
-                                       $(fake_environ) \
-                                       /bin/bash -x -c "cd /usr/src/lfs && \
-                                       make -f $1 LFS_BASEDIR=/usr/src dist" >>$LOGFILE 2>&1
+       local PS1='\u:\w$ '
 
-       local COMPILE_SUCCESS=$?
-       local PKG_TIME_END=`date +%s`
-
-       if [ $COMPILE_SUCCESS -ne 0 ]; then
-               beautify result FAIL $[ $PKG_TIME_END - $PKG_TIME_START ]
-               exiterror "Packaging $*";
-       else
-               beautify result DONE $[ $PKG_TIME_END - $PKG_TIME_START ]
-       fi
-       return 0
-}
-
-installmake() {
-       lfsmakecommoncheck $*
-       [ $? == 1 ] && return 0
-
-       # Install QEMU helper, if needed
-       qemu_install_helper
-
-       local PKG_TIME_START=`date +%s`
-       chroot $LFS /tools/bin/env -i   HOME=/root \
-                                               TERM=$TERM PS1='\u:\w\$ ' \
-                                               PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
-                                               VERSION=$VERSION \
-                                               SYSTEM_RELEASE="${SYSTEM_RELEASE}" \
-                                               CONFIG_ROOT=$CONFIG_ROOT \
-                                               NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
-                                               CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
-                                               CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
-                                               KVER=$KVER \
-                                               BUILDTARGET="$BUILDTARGET" \
-                                               CROSSTARGET="${CROSSTARGET}" \
-                                               MACHINE="$MACHINE" \
-                                               MACHINE_TYPE="$MACHINE_TYPE" \
-                                               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
+       enterchroot \
+               bash -x -c "cd /usr/src/lfs && make -f $* LFS_BASEDIR=/usr/src dist" \
+               >> ${LOGFILE} 2>&1
 
        local COMPILE_SUCCESS=$?
        local PKG_TIME_END=`date +%s`
 
        if [ $COMPILE_SUCCESS -ne 0 ]; then
                beautify result FAIL $[ $PKG_TIME_END - $PKG_TIME_START ]
-               exiterror "Building $*";
+               exiterror "Packaging $*";
        else
                beautify result DONE $[ $PKG_TIME_END - $PKG_TIME_START ]
        fi