summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cross/README20
-rw-r--r--cross/cross-mips64el-unknown-linux-gnu-gcc-core-shared/PKGBUILD4
-rw-r--r--cross/cross-mips64el-unknown-linux-gnu-gcc-core/PKGBUILD2
-rw-r--r--cross/cross-mips64el-unknown-linux-gnu-glibc-headers/PKGBUILD8
-rw-r--r--cross/mips64el-unknown-linux-gnu-binutils/PKGBUILD (renamed from cross/cross-mips64el-unknown-linux-gnu-binutils/PKGBUILD)12
-rw-r--r--cross/mips64el-unknown-linux-gnu-gcc/PKGBUILD292
-rw-r--r--cross/mips64el-unknown-linux-gnu-gcc/gcc-ada.install20
-rw-r--r--cross/mips64el-unknown-linux-gnu-gcc/gcc-fortran.install16
-rw-r--r--cross/mips64el-unknown-linux-gnu-gcc/gcc-go.install20
-rw-r--r--cross/mips64el-unknown-linux-gnu-gcc/gcc-hash-style-both.patch122
-rw-r--r--cross/mips64el-unknown-linux-gnu-gcc/gcc-libs.install16
-rw-r--r--cross/mips64el-unknown-linux-gnu-gcc/gcc.install20
-rw-r--r--cross/mips64el-unknown-linux-gnu-gcc/gcc_mips64el_lib.patch25
-rw-r--r--cross/mips64el-unknown-linux-gnu-gcc/gcc_pure64.patch26
-rw-r--r--cross/mips64el-unknown-linux-gnu-glibc/PKGBUILD24
-rw-r--r--kernels/linux-libre-rt/PKGBUILD103
-rw-r--r--kernels/linux-libre-rt/config.i6861245
-rw-r--r--kernels/linux-libre-rt/config.x86_641180
-rw-r--r--kernels/linux-libre-rt/i915-fix-ghost-tv-output.patch26
-rw-r--r--kernels/linux-libre-rt/i915-gpu-finish.patch55
-rw-r--r--kernels/linux-libre-rt/linux-libre-rt.install2
-rw-r--r--kernels/linux-libre-xen/PKGBUILD40
-rw-r--r--kernels/linux-libre-xen/config.i6861299
-rw-r--r--kernels/linux-libre-xen/config.x86_641183
-rw-r--r--kernels/linux-libre-xen/fix-i915.patch109
-rw-r--r--kernels/linux-libre-xen/i915-fix-ghost-tv-output.patch26
-rw-r--r--kernels/linux-libre-xen/i915-gpu-finish.patch55
-rw-r--r--kernels/linux-libre-xen/linux-libre-xen.install13
-rw-r--r--kernels/xe-guest-utilities/PKGBUILD45
-rw-r--r--kernels/xe-guest-utilities/ip_address.patch30
-rw-r--r--kernels/xe-guest-utilities/xe-guest-utilities-parabola.patch146
-rwxr-xr-xkernels/xen/09_xen123
-rw-r--r--kernels/xen/24341.patch11
-rw-r--r--kernels/xen/24344.patch33
-rw-r--r--kernels/xen/24345.patch31
-rw-r--r--kernels/xen/PKGBUILD104
-rw-r--r--kernels/xen/dom0_xz_decompression.patch3528
-rw-r--r--kernels/xen/parabolainit.patch423
-rw-r--r--kernels/xen/xen.patch21
-rw-r--r--libre/audacious-plugins-libre/PKGBUILD36
-rw-r--r--libre/bogofilter-libre/PKGBUILD46
-rw-r--r--libre/crosstool-ng/PKGBUILD4
-rw-r--r--libre/cups-libre/PKGBUILD32
-rw-r--r--libre/cups-libre/cups1
-rw-r--r--libre/cups-libre/cups-avahi-1-config.patch42
-rw-r--r--libre/cups-libre/cups-avahi-2-backend.patch1117
-rw-r--r--libre/cups-libre/cups-avahi-3-timeouts.patch381
-rw-r--r--libre/cups-libre/cups-avahi-4-poll.patch529
-rw-r--r--libre/cups-libre/cups-avahi-5-services.patch1191
-rw-r--r--libre/cups-libre/cups-avahi.patch3157
-rw-r--r--libre/cups-libre/cups-no-export-ssllibs.patch1
-rw-r--r--libre/cups-libre/cups-no-gcrypt.patch1
-rw-r--r--libre/cups-libre/cups.install1
-rw-r--r--libre/cups-libre/cups.logrotate1
-rw-r--r--libre/cups-libre/cups.pam1
-rw-r--r--libre/filesystem/PKGBUILD22
-rw-r--r--libre/filesystem/filesystem.install3
-rw-r--r--libre/filesystem/issue1
-rw-r--r--libre/filesystem/modprobe.d.usb-load-ehci-first4
-rw-r--r--libre/ghostscript-libre/PKGBUILD24
-rw-r--r--libre/ghostscript-libre/ghostscript-cups-rgbw.patch1
-rw-r--r--libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch12
-rw-r--r--libre/initscripts/PKGBUILD4
-rw-r--r--libre/kdebase-konqueror-libre/PKGBUILD51
-rw-r--r--libre/kdebase-konqueror-libre/kdebase-konqueror.install12
-rw-r--r--libre/kdebase-konqueror-libre/konq-about-fsdg.diff33
-rw-r--r--libre/kdelibs-libre/PKGBUILD66
-rw-r--r--libre/kdelibs-libre/fix-knotify-filepath.patch13
-rw-r--r--libre/kdelibs-libre/kde-applications-menu.patch22
-rw-r--r--libre/kdelibs-libre/kdelibs.install (renamed from libre/kdeutils-libre/kdeutils.install)2
-rw-r--r--libre/kdelibs-libre/khtml-fsdg.diff50
-rw-r--r--libre/kdenetwork-libre/PKGBUILD25
-rw-r--r--libre/kdenetwork-libre/kdenetwork-kget.install12
-rw-r--r--libre/kdenetwork-libre/kdenetwork-kopete.install12
-rw-r--r--libre/kdenetwork-libre/kdenetwork-kppp.install12
-rw-r--r--libre/kdeutils-ark-libre/PKGBUILD38
-rw-r--r--libre/kdeutils-ark-libre/kdeutils-ark.install11
-rw-r--r--libre/kdeutils-ark-libre/rePKGBUILD (renamed from libre/kdeutils-libre/rePKGBUILD)10
-rw-r--r--libre/kdeutils-libre/PKGBUILD194
-rw-r--r--libre/kdeutils-libre/fix-kcalc-keys.patch93
-rw-r--r--libre/kile-libre/PKGBUILD6
-rw-r--r--libre/linux-libre-lts/CVE-2012-0056.patch269
-rw-r--r--libre/linux-libre-lts/Kbuild19
-rw-r--r--libre/linux-libre-lts/Kbuild.platforms6
-rw-r--r--libre/linux-libre-lts/PKGBUILD353
-rw-r--r--libre/linux-libre-lts/boot-logo.patch23163
-rw-r--r--libre/linux-libre-lts/change-default-console-loglevel.patch12
-rw-r--r--libre/linux-libre-lts/config.i6865798
-rw-r--r--libre/linux-libre-lts/config.x86_645536
-rw-r--r--libre/linux-libre-lts/ext4-options.patch49
-rw-r--r--libre/linux-libre-lts/i915-fix-ghost-tv-output.patch26
-rw-r--r--libre/linux-libre-lts/linux-libre-lts.install61
-rw-r--r--libre/linux-libre-lts/linux-libre-lts.preset14
-rw-r--r--libre/linux-libre/CVE-2012-0056.patch268
-rw-r--r--libre/linux-libre/PKGBUILD29
-rw-r--r--libre/linux-libre/config.i68698
-rw-r--r--libre/linux-libre/config.x86_6497
-rw-r--r--libre/linux-libre/linux-libre.install2
-rw-r--r--libre/metalog/PKGBUILD2
-rw-r--r--libre/mplayer-libre/PKGBUILD33
-rw-r--r--libre/mplayer-libre/mplayer.desktop2
-rw-r--r--libre/mplayer-libre/mplayer.install4
-rw-r--r--libre/mplayer-vaapi-libre/PKGBUILD33
-rw-r--r--libre/pacman/PKGBUILD5
-rw-r--r--libre/pacman/rePKGBUILD2
-rw-r--r--libre/parabola-themes-slim/PKGBUILD23
-rw-r--r--libre/seamonkey-libre/PKGBUILD66
-rw-r--r--libre/seamonkey-libre/gnuzilla-addons.patch43
-rw-r--r--libre/seamonkey-libre/libvpx.patch12
-rw-r--r--libre/seamonkey-libre/mozconfig41
-rw-r--r--libre/seamonkey-libre/seamonkey-appversion.patch12
-rw-r--r--libre/seamonkey-libre/seamonkey.desktop2
-rw-r--r--libre/seamonkey-libre/seamonkey.install12
-rw-r--r--libre/texlive-bin-libre/PKGBUILD161
-rw-r--r--libre/texlive-bin-libre/texlive.install19
-rw-r--r--libre/thunderbird-libre/PKGBUILD16
-rw-r--r--libre/thunderbird-libre/libvpx.patch12
-rw-r--r--libre/virtualbox-libre/18-system-xorg.patch278
-rw-r--r--libre/virtualbox-libre/60-vboxguest.rules3
-rw-r--r--libre/virtualbox-libre/PKGBUILD55
-rw-r--r--libre/virtualbox-libre/vbox-service.rc4
-rw-r--r--libre/virtualbox-libre/vboxbuild18
-rw-r--r--libre/virtualbox-libre/vboxdrv-reference.patch56
-rw-r--r--libre/virtualbox-libre/virtualbox-4-makeself-check.patch11
-rw-r--r--libre/virtualbox-libre/virtualbox-4-mkisofs-check.patch11
-rw-r--r--libre/virtualbox-libre/virtualbox-parabola-modules.install25
-rw-r--r--libre/virtualbox-libre/virtualbox-source.install1
-rw-r--r--libre/virtualbox-libre/virtualbox.install6
-rw-r--r--libre/virtualbox-modules/60-vboxguest.rules (renamed from libre/virtualbox-parabola-modules/60-vboxguest.rules)0
-rw-r--r--libre/virtualbox-modules/LocalConfig.kmk (renamed from libre/virtualbox-parabola-modules/LocalConfig.kmk)0
-rw-r--r--libre/virtualbox-modules/PKGBUILD (renamed from libre/virtualbox-parabola-modules/PKGBUILD)25
-rw-r--r--libre/virtualbox-modules/virtualbox-modules.install (renamed from libre/virtualbox-parabola-modules/virtualbox-modules.install)6
-rw-r--r--libre/virtualbox-modules/virtualbox-parabola-modules.install (renamed from libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install)6
-rw-r--r--libre/your-freedom/PKGBUILD10
-rw-r--r--mozilla-testing/icecat/PKGBUILD15
-rw-r--r--mozilla-testing/icecat/libre.patch2
-rw-r--r--mozilla-testing/icecat/libvpx.patch12
-rw-r--r--mozilla-testing/iceweasel-i18n/PKGBUILD136
-rw-r--r--mozilla-testing/iceweasel-libre/PKGBUILD72
-rw-r--r--mozilla-testing/iceweasel-libre/libre.patch53
-rw-r--r--~aurelien/README5
-rw-r--r--~emulatorman/hunspell-gl/PKGBUILD30
-rw-r--r--~emulatorman/hunspell-pt-br/PKGBUILD27
-rw-r--r--~emulatorman/jitsi-stable/PKGBUILD65
-rw-r--r--~emulatorman/jitsi-stable/jitsi.desktop9
-rw-r--r--~emulatorman/jitsi-stable/jitsi.sh19
-rwxr-xr-x~emulatorman/mednafen-wip/PKGBUILD34
-rw-r--r--~emulatorman/mednafen-wip/build.patch31
-rw-r--r--~emulatorman/xonotic-data/PKGBUILD29
-rw-r--r--~emulatorman/xonotic/PKGBUILD50
-rw-r--r--~emulatorman/xonotic/xonotic-glx.desktop11
-rw-r--r--~emulatorman/xonotic/xonotic-sdl.desktop11
-rw-r--r--~fauno/notmuch/PKGBUILD22
-rw-r--r--~fauno/notmuch/SRCBUILD39
-rw-r--r--~mtjm/cups-usblp/PKGBUILD147
-rw-r--r--~mtjm/cups-usblp/cups68
-rw-r--r--~mtjm/cups-usblp/cups-avahi-1-config.patch42
-rw-r--r--~mtjm/cups-usblp/cups-avahi-2-backend.patch1117
-rw-r--r--~mtjm/cups-usblp/cups-avahi-3-timeouts.patch381
-rw-r--r--~mtjm/cups-usblp/cups-avahi-4-poll.patch529
-rw-r--r--~mtjm/cups-usblp/cups-avahi-5-services.patch1191
-rw-r--r--~mtjm/cups-usblp/cups-no-export-ssllibs.patch12
-rw-r--r--~mtjm/cups-usblp/cups-no-gcrypt.patch38
-rw-r--r--~mtjm/cups-usblp/cups.install26
-rw-r--r--~mtjm/cups-usblp/cups.logrotate8
-rw-r--r--~mtjm/cups-usblp/cups.pam3
-rw-r--r--~mtjm/python-getmediumurl/PKGBUILD27
-rw-r--r--~mtjm/python-urlreader/PKGBUILD27
-rw-r--r--~mtjm/python2-pydns/PKGBUILD4
-rw-r--r--~mtjm/python2-pyflakes/PKGBUILD33
-rw-r--r--~mtjm/python2-pyspf/PKGBUILD6
-rw-r--r--~mtjm/python3-lxml/PKGBUILD38
172 files changed, 52128 insertions, 6788 deletions
diff --git a/cross/README b/cross/README
new file mode 100644
index 000000000..004f01114
--- /dev/null
+++ b/cross/README
@@ -0,0 +1,20 @@
+# Build order
+
+* $target-binutils
+* cross-$target-gcc-core
+* $target-linux-api-headers
+* cross-$target-glibc-headers
+* cross-$target-gcc-core-shared
+* $target-glibc
+* $target-gcc
+
+cross-* packages are used to bootstrap the full toolchain for the first time,
+you'll only need binutils, linux-api-headers, glibc and gcc once you're done.
+
+
+# Create a new toolchain
+
+Copy the base PKGBUILDS from mips64el-unknown-linux-gnu and change this part of
+the names to your target. At the header of each PKGBUILD there're several
+variables to configure the target system. Take note some require other manual
+changes, like final gcc.
diff --git a/cross/cross-mips64el-unknown-linux-gnu-gcc-core-shared/PKGBUILD b/cross/cross-mips64el-unknown-linux-gnu-gcc-core-shared/PKGBUILD
index 3c61dbfca..ca0ca775e 100644
--- a/cross/cross-mips64el-unknown-linux-gnu-gcc-core-shared/PKGBUILD
+++ b/cross/cross-mips64el-unknown-linux-gnu-gcc-core-shared/PKGBUILD
@@ -16,7 +16,7 @@ pkgdesc="The GNU Compiler Collection for the MIPS/Loongson2f architecture (share
url="http://www.gnu.org/software/binutils/"
arch=('i686' 'x86_64')
license=('GPL')
-depends=('libmpc' 'sh' "cross-${_target}-binutils" 'cloog' 'ppl')
+depends=('libmpc' 'sh' "${_target}-binutils" 'cloog' 'ppl')
makedepends=("cross-${_target}-glibc-headers"
"cross-${_target}-gcc-core")
options=('!ccache' '!distcc' '!emptydirs' '!libtool' '!strip')
@@ -28,7 +28,7 @@ build() {
mkdir gcc-build && cd gcc-build
mkdir ${_target}
- Copy headers for libgcc2
+# Copy headers for libgcc2
cp -av /usr/${_target}/usr/include ${_target}/include
CC_FOR_BUILD=${CHOST}-gcc \
diff --git a/cross/cross-mips64el-unknown-linux-gnu-gcc-core/PKGBUILD b/cross/cross-mips64el-unknown-linux-gnu-gcc-core/PKGBUILD
index da49a903f..831236d42 100644
--- a/cross/cross-mips64el-unknown-linux-gnu-gcc-core/PKGBUILD
+++ b/cross/cross-mips64el-unknown-linux-gnu-gcc-core/PKGBUILD
@@ -16,7 +16,7 @@ pkgdesc="The GNU Compiler Collection for the MIPS/Loongson2f architecture (stati
url="http://www.gnu.org/software/binutils/"
arch=('i686' 'x86_64')
license=('GPL')
-depends=('libmpc' 'sh' "cross-${_target}-binutils" 'cloog' 'ppl')
+depends=('libmpc' 'sh' "${_target}-binutils" 'cloog' 'ppl')
options=('!ccache' '!distcc' '!emptydirs' '!libtool' '!strip')
source=("ftp://ftp.gnu.org/gnu/gcc/gcc-${pkgver}/${_pkgname}-${pkgver}.tar.bz2")
md5sums=('028115c4fbfb6cfd75d6369f4a90d87e')
diff --git a/cross/cross-mips64el-unknown-linux-gnu-glibc-headers/PKGBUILD b/cross/cross-mips64el-unknown-linux-gnu-glibc-headers/PKGBUILD
index a83a1238a..7fed7839a 100644
--- a/cross/cross-mips64el-unknown-linux-gnu-glibc-headers/PKGBUILD
+++ b/cross/cross-mips64el-unknown-linux-gnu-glibc-headers/PKGBUILD
@@ -21,7 +21,7 @@ url="http://www.gnu.org/software/libc"
license=('GPL' 'LGPL')
groups=("${_target}-devel")
depends=("${_target}-linux-api-headers>=3.1.6" 'tzdata')
-makedepends=("cross-${_target}-binutils"
+makedepends=("${_target}-binutils"
"cross-${_target}-gcc-core")
options=('!strip')
install=glibc.install
@@ -187,8 +187,12 @@ package() {
# This will help gcc-shared to find headers for libgcc2
msg2 "Symlinking headers"
- rm -r ${pkgdir}${_sysroot}/include
+# rm -r ${pkgdir}${_sysroot}/include
ln -s ${_sysroot}/usr/include ${pkgdir}${_sysroot}/include
+ ln -s ${_sysroot}/usr/lib/crt1.o ${pkgdir}${_sysroot}/lib/
+ ln -s ${_sysroot}/usr/lib/crti.o ${pkgdir}${_sysroot}/lib/
+ ln -s ${_sysroot}/usr/lib/crtn.o ${pkgdir}${_sysroot}/lib/
+ ln -s ${_sysroot}/usr/lib/libc.so ${pkgdir}${_sysroot}/lib/
}
md5sums=('6ffdf5832192b92f98bdd125317c0dfc'
diff --git a/cross/cross-mips64el-unknown-linux-gnu-binutils/PKGBUILD b/cross/mips64el-unknown-linux-gnu-binutils/PKGBUILD
index d4d3afe38..0349036ec 100644
--- a/cross/cross-mips64el-unknown-linux-gnu-binutils/PKGBUILD
+++ b/cross/mips64el-unknown-linux-gnu-binutils/PKGBUILD
@@ -6,14 +6,15 @@ _sysroot="/usr/${_target}"
unset CFLAGS CXXFLAGS LDFLAGS
-pkgname=cross-${_target}-binutils
+pkgname=${_target}-binutils
pkgver=2.22
-pkgrel=11
+pkgrel=1
pkgdesc="A set of programs to assemble and manipulate binary and object files for the MIPS architecture"
url="http://www.gnu.org/software/binutils/"
arch=('i686' 'x86_64')
license=('GPL')
depends=('zlib')
+provices=("cross-${pkgname}")
source=("ftp://ftp.gnu.org/gnu/binutils/${_pkgname}-${pkgver}.tar.bz2")
md5sums=('ee0f10756c84979622b992a4a61ea3f5')
@@ -37,9 +38,16 @@ build() {
}
package() {
+
cd ${srcdir}/${_pkgname}-${pkgver}
+# Compat symlinks
+ ln -s ${_sysroot}/usr/lib ${pkgdir}${_sysroot}/lib
+ ln -s ${_sysroot}/lib ${pkgdir}${_sysroot}/lib32
make DESTDIR=${pkgdir} install
rm -r ${pkgdir}/usr/{lib,share}
+
+# Create include dir so gcc-core doesn't complain
+ mkdir -p ${pkgdir}${_sysroot}/usr/include
}
diff --git a/cross/mips64el-unknown-linux-gnu-gcc/PKGBUILD b/cross/mips64el-unknown-linux-gnu-gcc/PKGBUILD
new file mode 100644
index 000000000..975db9f9d
--- /dev/null
+++ b/cross/mips64el-unknown-linux-gnu-gcc/PKGBUILD
@@ -0,0 +1,292 @@
+# $Id: PKGBUILD 145914 2012-01-04 01:24:56Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+_pkgname=gcc
+_target="mips64el-unknown-linux-gnu"
+_sysroot="/usr/${_target}"
+_ARCH=mips
+
+unset LDFLAGS CFLAGS CXXFLAGS
+
+# Split package names must be changed manually
+pkgname=("${_target}-gcc" "${_target}-gcc-libs" "${_target}-gcc-fortran" "${_target}-gcc-objc") # "gcc-ada" "gcc-go")
+pkgver=4.6.2
+pkgrel=5
+_snapshot=4.6-20111223
+_libstdcppmanver=20111215 # Note: check source directory name when updating this
+pkgdesc="The GNU Compiler Collection for MIPS/Loongson2f processors"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=("${_target}-binutils>=2.22" "libmpc" "cloog" "ppl"
+ "cross-${_target}-gcc-core-shared"
+ "${_target}-glibc")
+checkdepends=('dejagnu')
+options=('!libtool' '!emptydirs' '!strip')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man.${_libstdcppmanver}.tar.bz2
+ gcc_pure64.patch
+ gcc_mips64el_lib.patch
+ gcc-hash-style-both.patch)
+
+if [ -n "${_snapshot}" ]; then
+ _basedir="${srcdir}/gcc-${_snapshot}"
+else
+ _basedir="${srcdir}/gcc-${pkgver}"
+fi
+
+build() {
+ if [ ${NOEXTRACT} -eq 0 ]; then
+ cd ${_basedir}
+
+ # Do not install libiberty
+ sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
+
+ # Do not run fixincludes
+ sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ patch -Np1 -i ${srcdir}/gcc_pure64.patch
+ fi
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+ patch -Np0 -i ${srcdir}/gcc_mips64el_lib.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ mkdir ${srcdir}/gcc-build
+ fi
+
+ cd ${srcdir}/gcc-build
+
+ CC_FOR_BUILD=${CHOST}-gcc \
+ CFLAGS=" -pipe " \
+ LDFLAGS= \
+ CFLAGS_FOR_TARGET=" -EL -march=loongson2f -mabi=n32 " \
+ CXXFLAGS_FOR_TARGET=" -EL -march=loongson2f -mabi=n32 " \
+ LDFLAGS_FOR_TARGET=" -EL " \
+ ${_basedir}/configure --prefix=/usr \
+ --build=${CHOST} \
+ --host=${CHOST} \
+ --target=${_target} \
+ --libexecdir=/usr/lib \
+ --with-sysroot=${_sysroot} \
+ --with-arch=loongson2f \
+ --with-abi=n32 \
+ --with-bugurl=https://bugs.parabolagnulinux.org/ \
+ --enable-languages=c,c++,fortran,lto,objc,obj-c++ \
+ --enable-shared \
+ --enable-threads=posix \
+ --with-system-zlib \
+ --enable-__cxa_atexit \
+ --disable-libunwind-exceptions \
+ --enable-clocale=gnu \
+ --enable-gnu-unique-object \
+ --enable-linker-build-id \
+ --with-ppl \
+ --enable-cloog-backend=isl \
+ --enable-lto \
+ --enable-gold \
+ --enable-ld=default \
+ --enable-plugin \
+ --with-plugin-ld=ld.gold \
+ --disable-multilib \
+ --disable-libssp \
+ --disable-libstdcxx-pch \
+ --enable-checking=release
+
+ make
+}
+
+check() {
+ cd gcc-build
+
+ # increase stack size to prevent test failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
+ ulimit -s 32768
+
+ # do not abort on error as some are "expected"
+ make -k check || true
+ ${_basedir}/contrib/test_summary
+}
+
+
+package_mips64el-unknown-linux-gnu-gcc-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC"
+ groups=("${_target}-devel")
+ depends=("${_target}-glibc>=2.14")
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C ${_target}/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libstdc++-v3/src; do
+ make -j1 -C $_target/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+ make -j1 -C $_target/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $_target/libgomp DESTDIR=${pkgdir} install-info
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm -rf ${pkgdir}${_sysroot}/usr/lib{,32}/{gcc/,libgfortran.spec}
+
+ rm -rf ${pkgdir}/usr/share
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/${_target}-gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_mips64el-unknown-linux-gnu-gcc()
+{
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends"
+ depends=("${_target}-gcc-libs=$pkgver-$pkgrel" "${_target}-binutils>=2.22" 'libmpc' 'cloog' 'ppl')
+ groups=("${_target}-devel")
+ replaces=("cross-${_target}-gcc-core"
+ "cross-${_target}-gcc-core-shared")
+ install=gcc.install
+
+ cd gcc-build
+
+ # unfortunately it is much, much easier to install the lot and clean-up the mess...
+ make -j1 DESTDIR=${pkgdir} install
+
+ rm -rf ${pkgdir}/usr/share
+
+ rm -f $pkgdir/usr/bin/{{$_target-,}gfortran,{$_target-,}gccgo,gnat*}
+ rm -f $pkgdir${_sysroot}/lib{,32}/*.so*
+ rm -f $pkgdir${_sysroot}/lib{,32}/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
+ rm -f $pkgdir${_sysroot}/lib{,32}/libgfortran.spec
+ rm -rf $pkgdir/usr/lib{,32}/gcc/$_target/${pkgver}/{ada{include,lib},finclude,include/objc}
+ rm -f $pkgdir/usr/lib{,32}/gcc/$_target/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
+ rm -f $pkgdir/usr/lib{,32}/gcc/$_target/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,libgfortranbegin.a}
+ rm -rf $pkgdir/usr/lib{,32}/go
+
+ # many packages require these symlinks
+ install -dm755 ${pkgdir}/lib
+
+ ln -sf /usr/bin/cpp ${pkgdir}/lib/${_target}-cpp
+ ln -sf ${_target}-gcc ${pkgdir}/usr/bin/${_target}-cc
+ ln -sf ${_target}-g++ ${pkgdir}/usr/bin/${_target}-c++
+
+ # install gengtype for plugin support
+ install -m755 gcc/build/gengtype $pkgdir/usr/lib/gcc/$_target/${pkgver}/
+ install -m644 gcc/gtype.state $pkgdir/usr/lib/gcc/$_target/${pkgver}/
+
+ # POSIX conformance launcher scripts for c89 and c99
+ cat > $pkgdir/usr/bin/${_target}-c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+ case "$opt" in
+ -ansi|-std=c89|-std=iso9899:1990) fl="";;
+ -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+ exit 1;;
+ esac
+done
+exec mips64el-unknown-linux-gnu-gcc $fl ${1+"$@"}
+EOF
+
+ cat > $pkgdir/usr/bin/${_target}-c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+ case "$opt" in
+ -std=c99|-std=iso9899:1999) fl="";;
+ -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+ exit 1;;
+ esac
+done
+exec mips64el-unknown-linux-gnu-gcc $fl ${1+"$@"}
+EOF
+
+ chmod 755 $pkgdir/usr/bin/${_target}-c{8,9}9
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/${_target}-gcc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_mips64el-unknown-linux-gnu-gcc-fortran()
+{
+ pkgdesc="Fortran front-end for GCC"
+ depends=("${_target}-gcc=$pkgver-$pkgrel")
+ install=gcc-fortran.install
+
+ cd gcc-build
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=$pkgdir install-target-libgfortran
+ make -j1 -C $_target/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
+ make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
+ install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$_target/$pkgver/f951
+
+ # remove libraries included in gcc-libs
+ rm -f ${pkgdir}${_sysroot}/lib{,32}/lib{gfortran,quadmath}.so*
+ rm -fr ${pkgdir}/usr/share
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/${_target}-gcc-fortran/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_mips64el-unknown-linux-gnu-gcc-objc()
+{
+ pkgdesc="Objective-C front-end for GCC"
+ depends=("${_target}-gcc=$pkgver-$pkgrel")
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libobjc
+ install -dm755 $pkgdir/usr/lib/gcc/$_target/$pkgver/
+ install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$_target/$pkgver/
+
+ # remove libraries included in gcc-libs
+ rm -f ${pkgdir}${_sysroot}/lib{,32}/libobjc.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/${_target}-gcc-objc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-ada()
+{
+ pkgdesc="Ada front-end for GCC (GNAT)"
+ depends=("${_target}-gcc=$pkgver-$pkgrel")
+ install=gcc-ada.install
+
+ cd gcc-build/gcc
+ make -j1 DESTDIR=$pkgdir ada.install-{common,info}
+ install -m755 gnat1 $pkgdir/usr/lib/gcc/$_target/$pkgver
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-ada/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-go()
+{
+ pkgdesc="Go front-end for GCC"
+ depends=("${_target}-gcc=$pkgver-$pkgrel")
+ install=gcc-go.install
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libgo
+ make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
+ install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$_target/$pkgver/go1
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION
+}
+md5sums=('4755b9f6ac0abecbaa2097ed9738406a'
+ '450772ce32daed97d7383199f8797f33'
+ '4030ee1c08dd1e843c0225b772360e76'
+ '67e337993d821d72fccacbed52d48c34'
+ '4df25b623799b148a0703eaeec8fdf3f')
diff --git a/cross/mips64el-unknown-linux-gnu-gcc/gcc-ada.install b/cross/mips64el-unknown-linux-gnu-gcc/gcc-ada.install
new file mode 100644
index 000000000..df0553a4f
--- /dev/null
+++ b/cross/mips64el-unknown-linux-gnu-gcc/gcc-ada.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/cross/mips64el-unknown-linux-gnu-gcc/gcc-fortran.install b/cross/mips64el-unknown-linux-gnu-gcc/gcc-fortran.install
new file mode 100644
index 000000000..b15d89a97
--- /dev/null
+++ b/cross/mips64el-unknown-linux-gnu-gcc/gcc-fortran.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file="gfortran.info"
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
diff --git a/cross/mips64el-unknown-linux-gnu-gcc/gcc-go.install b/cross/mips64el-unknown-linux-gnu-gcc/gcc-go.install
new file mode 100644
index 000000000..7dc50dee5
--- /dev/null
+++ b/cross/mips64el-unknown-linux-gnu-gcc/gcc-go.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gccgo.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/cross/mips64el-unknown-linux-gnu-gcc/gcc-hash-style-both.patch b/cross/mips64el-unknown-linux-gnu-gcc/gcc-hash-style-both.patch
new file mode 100644
index 000000000..8b59f4535
--- /dev/null
+++ b/cross/mips64el-unknown-linux-gnu-gcc/gcc-hash-style-both.patch
@@ -0,0 +1,122 @@
+--- gcc/config/alpha/linux-elf.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/alpha/linux-elf.h 2011-03-11 10:01:47.770000457 +1000
+@@ -41,7 +41,7 @@
+
+ #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
+
+-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
+ %{O*:-O3} %{!O*:-O1} \
+ %{shared:-shared} \
+ %{!shared: \
+--- gcc/config/i386/linux64.h.orig 2011-03-03 08:35:36.000000000 +1000
++++ gcc/config/i386/linux64.h 2011-03-11 10:01:47.770000457 +1000
+@@ -78,7 +78,7 @@
+ %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/i386/linux.h.orig 2011-01-15 04:45:06.000000000 +1000
++++ gcc/config/i386/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -104,7 +104,7 @@
+ { "dynamic_linker", LINUX_DYNAMIC_LINKER }
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
++#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+--- gcc/config/ia64/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/ia64/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -64,7 +64,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "\
++#define LINK_SPEC "--hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/rs6000/linux64.h.orig 2011-02-11 03:30:10.000000000 +1000
++++ gcc/config/rs6000/linux64.h 2011-03-11 10:03:34.280000457 +1000
+@@ -389,11 +389,11 @@
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
+
+
+-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}"
+
+-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}"
+
+--- gcc/config/rs6000/sysv4.h.orig 2011-01-28 04:36:03.000000000 +1000
++++ gcc/config/rs6000/sysv4.h 2011-03-11 10:01:47.773333792 +1000
+@@ -830,7 +830,7 @@
+ #define LINUX_DYNAMIC_LINKER \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
+
+-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
+
+--- gcc/config/s390/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/s390/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -77,7 +77,7 @@
+
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{static:-static} \
+--- gcc/config/sparc/linux64.h.orig 2011-02-17 23:57:21.000000000 +1000
++++ gcc/config/sparc/linux64.h 2011-03-11 10:01:47.770000457 +1000
+@@ -113,7 +113,7 @@
+ { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
+ { "link_arch", LINK_ARCH_SPEC },
+
+-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+@@ -121,7 +121,7 @@
+ %{static:-static}} \
+ "
+
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+@@ -193,7 +193,7 @@
+ #else /* !SPARC_BI_ARCH */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+--- gcc/config/sparc/linux.h.orig 2011-01-27 06:30:12.000000000 +1000
++++ gcc/config/sparc/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -74,7 +74,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
+ %{!mno-relax:%{!r:-relax}} \
+ %{!shared: \
+ %{!static: \
diff --git a/cross/mips64el-unknown-linux-gnu-gcc/gcc-libs.install b/cross/mips64el-unknown-linux-gnu-gcc/gcc-libs.install
new file mode 100644
index 000000000..23553b8f0
--- /dev/null
+++ b/cross/mips64el-unknown-linux-gnu-gcc/gcc-libs.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+filelist=(libgomp.info libquadmath.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/cross/mips64el-unknown-linux-gnu-gcc/gcc.install b/cross/mips64el-unknown-linux-gnu-gcc/gcc.install
new file mode 100644
index 000000000..3407a5e1f
--- /dev/null
+++ b/cross/mips64el-unknown-linux-gnu-gcc/gcc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/cross/mips64el-unknown-linux-gnu-gcc/gcc_mips64el_lib.patch b/cross/mips64el-unknown-linux-gnu-gcc/gcc_mips64el_lib.patch
new file mode 100644
index 000000000..425758e88
--- /dev/null
+++ b/cross/mips64el-unknown-linux-gnu-gcc/gcc_mips64el_lib.patch
@@ -0,0 +1,25 @@
+--- gcc/config/mips/t-linux64.orig 2011-04-09 20:28:51.729723495 -0300
++++ gcc/config/mips/t-linux64 2011-04-09 20:29:06.913724013 -0300
+@@ -18,7 +18,7 @@
+
+ MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
+ MULTILIB_DIRNAMES = n32 32 64
+-MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64
++MULTILIB_OSDIRNAMES = ../lib ../lib32 ../lib64
+
+ EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
+
+--- gcc/config/mips/linux64.h.orig 2011-04-09 20:27:06.909723735 -0300
++++ gcc/config/mips/linux64.h 2011-04-09 20:28:16.033723803 -0300
+@@ -35,9 +35,9 @@
+ %{!shared: \
+ %{profile:-lc_p} %{!profile:-lc}}"
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld.so.1"
+ #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld.so.1"
+-#define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
++#define GLIBC_DYNAMIC_LINKERN32 "/lib/ld.so.1"
+ #define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
+ #define LINUX_DYNAMIC_LINKERN32 \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
diff --git a/cross/mips64el-unknown-linux-gnu-gcc/gcc_pure64.patch b/cross/mips64el-unknown-linux-gnu-gcc/gcc_pure64.patch
new file mode 100644
index 000000000..8c0baf8e2
--- /dev/null
+++ b/cross/mips64el-unknown-linux-gnu-gcc/gcc_pure64.patch
@@ -0,0 +1,26 @@
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
+--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
+@@ -49,8 +49,8 @@
+ When the -shared link option is used a final link is not being
+ done. */
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
+--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/cross/mips64el-unknown-linux-gnu-glibc/PKGBUILD b/cross/mips64el-unknown-linux-gnu-glibc/PKGBUILD
index e5e37beee..18de66776 100644
--- a/cross/mips64el-unknown-linux-gnu-glibc/PKGBUILD
+++ b/cross/mips64el-unknown-linux-gnu-glibc/PKGBUILD
@@ -4,11 +4,21 @@
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
# NOTE: valgrind requires rebuilt with each major glibc version
+# NOTE: I had to run this after installing target-glibc to build target-gcc:
+# for lib in /usr/${_target}/usr/lib/*; do
+# ln -s ${lib} /usr/${_target}/lib/$(basename ${lib}
+# done
+# gcc build should probably add a -B flag to usr/lib instead
+
_pkgname=glibc
_target="mips64el-unknown-linux-gnu"
_sysroot="/usr/${_target}"
_ARCH=mips
+# Disable this after building final gcc
+# Otherwise you'll get ld: missing libc.so errors
+BOOTSTRAPING=true
+
unset CFLAGS CXXFLAGS LDFLAGS
pkgname=${_target}-glibc
@@ -21,7 +31,7 @@ url="http://www.gnu.org/software/libc"
license=('GPL' 'LGPL')
groups=("${_target}-devel")
depends=("${_target}-linux-api-headers>=3.1.6" 'tzdata')
-makedepends=("cross-${_target}-binutils"
+makedepends=("${_target}-binutils"
"cross-${_target}-gcc-core-shared"
"cross-${_target}-glibc-headers")
backup=(etc/gai.conf
@@ -174,7 +184,7 @@ build() {
# --libdir=${_sysroot}/usr/lib \
# --libexecdir=${_sysroot}/usr/lib \
-
+
# build libraries with hardening disabled
echo "build-programs=no" >> configparms
make
@@ -202,6 +212,16 @@ package() {
rm -f ${pkgdir}${_sysroot}/etc/ld.so.{cache,conf}
+# Compat symlinks
+ ln -s ${_sysroot}/usr/lib ${pkgdir}${_sysroot}/lib
+ ln -s ${_sysroot}/lib ${pkgdir}${_sysroot}/lib32
+
+# Fix libc.so to find correct libraries
+ if ${BOOTSTRAPING}; then
+ sed -i "s|/lib|${_sysroot}&|g" ${pkgdir}${_sysroot}/usr/lib/libc.so
+ sed -i "s|/lib|${_sysroot}&|g" ${pkgdir}${_sysroot}/usr/lib/libpthreads.so
+ fi
+
install -dm755 ${pkgdir}${_sysroot}/etc/rc.d
install -dm755 ${pkgdir}${_sysroot}/usr/sbin
install -dm755 ${pkgdir}${_sysroot}/usr/lib/locale
diff --git a/kernels/linux-libre-rt/PKGBUILD b/kernels/linux-libre-rt/PKGBUILD
index 4e3775f57..336d58cb0 100644
--- a/kernels/linux-libre-rt/PKGBUILD
+++ b/kernels/linux-libre-rt/PKGBUILD
@@ -1,73 +1,86 @@
-# $Id: PKGBUILD 130991 2011-07-09 12:23:51Z thomas $
-# Maintainer (Parabola): Nicolás Reynolds <fauno@kiwwwi.com.ar>
-# Based on linux-libre
+# Maintainer: Joakim Hernberg <jbh@alchemy.lu>
+# Contributor: Ray Rashif <schiv@archlinux.org>
+# Contributor: timbosa <tinny_tim@dodo.com.au>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+# Contributor (Parabola): Nicolás Reynolds <fauno@kiwwwi.com.ar>
+# Contributor (Parabola): Jorge Lopez <jorginho@adinet.com.uy>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgbase=linux-libre-rt
pkgname=('linux-libre-rt' 'linux-libre-rt-headers' 'linux-libre-rt-docs') # Build stock -LIBRE kernel
# pkgname=linux-custom # Build kernel with a different name
_kernelname=${pkgname#linux-libre}
-_basekernel=3.0
-_rtpatch=rt11
-pkgver=${_basekernel}.1
+_basekernel=3.2
+_releasever=6
+_rtpatchver=rt13
+_pkgver=${_basekernel}.${_releasever}
+pkgver=${_basekernel}.${_releasever}_${_rtpatchver}
pkgrel=1
arch=('i686' 'x86_64')
-url="http://linux-libre.fsfla.org"
+url="http://linux-libre.fsfla.org/"
license=('GPL2')
makedepends=('xmlto' 'docbook-xsl')
options=('!strip')
source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-libre/linux-${_basekernel}-libre.tar.xz"
- "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-libre/patch-${_basekernel}-libre-${pkgver}-libre.xz"
- "ftp://ftp.kernel.org/pub/linux/kernel/projects/rt/patch-${pkgver}-${_rtpatch}.patch.bz2"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}-libre/patch-${_basekernel}-libre-${_pkgver}-libre.xz"
+ "http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-${_pkgver}-${_rtpatchver}.patch.xz"
# the main kernel config files
'config.i686' 'config.x86_64'
# standard config files for mkinitcpio ramdisk
"${pkgname}.preset"
'boot-logo.patch'
- 'fix-i915.patch'
- 'change-default-console-loglevel.patch')
-md5sums=('44e7bc20c235a193f9b6123a8d5e9509'
- 'af8d721036d89ed5500675c3289e3b48'
- 'cae25ea86cfa577ca180e547be82c249'
- '7a3bdd9e9a785a23a996cd78b79c3848'
- '4c2f492b4c91f3cac409804a33da3c29'
+ 'change-default-console-loglevel.patch'
+ 'i915-fix-ghost-tv-output.patch'
+ 'i915-gpu-finish.patch')
+md5sums=('27c641c4f6785fc647cdd3e44963a55c'
+ 'c4b411e90294fcb768d5242a6c21c0d7'
+ '28f2792000aa309437d8aefdcba65634'
+ 'b82b72aed2edc07797f7c29adf0b8793'
+ '92071f14b33bf6d18be512e61989d0c4'
'0d001b0277f318bc40a263aaa980d44e'
'04b21c79df0a952c22d681dd4f4562df'
+ '9d3c56a4b999c8bfbd4018089a62f662'
'263725f20c0b9eb9c353040792d644e5'
- '9d3c56a4b999c8bfbd4018089a62f662')
+ '4cd79aa147825837dc8bc9f6b736c0a0')
build() {
cd "${srcdir}/linux-${_basekernel}"
- patch -Np1 -i "${srcdir}/patch-${_basekernel}-libre-${pkgver}-libre"
+ patch -Np1 -i "${srcdir}/patch-${_basekernel}-libre-${_pkgver}-libre"
+
+ # add realtime patch
+ patch -Np1 -i "${srcdir}/patch-${_pkgver}-${_rtpatchver}.patch"
# Add freedo as boot logo
patch -Np1 -i "${srcdir}/boot-logo.patch"
- # fix #19234 i1915 display size
- patch -Np1 -i "${srcdir}/fix-i915.patch"
+ # fix FS#27883
+ # drm/i915: Only clear the GPU domains upon a successful finish
+ patch -Np1 -i "${srcdir}/i915-gpu-finish.patch"
+
+ # Some chips detect a ghost TV output
+ # mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html
+ # Arch Linux bug report: FS#19234
+ #
+ # It is unclear why this patch wasn't merged upstream, it was accepted,
+ # then dropped because the reasoning was unclear. However, it is clearly
+ # needed.
+ patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch"
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
- # Apply RT patches
- patch -Np1 -i "${srcdir}/patch-${pkgver}-${_rtpatch}.patch"
-
- cat "$srcdir/config.$CARCH" > ./.config # simpler
+ cat "${srcdir}/config.${CARCH}" > ./.config # simpler
if [ "${_kernelname}" != "" ]; then
sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
fi
- # remove the "-libre" extraversion from Makefile
- sed -i 's|^EXTRAVERSION =.*$|EXTRAVERSION =|g' Makefile
-
- # remove the sublevel from Makefile
- # this ensures our kernel version is always 3.X-LIBRE
- # this way, minor kernel updates will not break external modules
- # we need to change this soon, see FS#16702
- sed -ri 's|^(SUBLEVEL =).*|\1|' Makefile
+ # set extraversion to pkgrel
+ sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
# get kernel version
rm localversion-rt
@@ -88,7 +101,7 @@ build() {
#return 1
####################
- yes "" | make config
+ yes "" | make
# build!
make ${MAKEFLAGS} bzImage modules
@@ -99,11 +112,11 @@ package_linux-libre-rt() {
groups=('base')
depends=('coreutils' 'module-init-tools>=3.16' 'mkinitcpio>=0.7')
optdepends=('crda: to set the correct wireless channels of your country')
+ provides=('kernel26' "linux=$_pkgver")
+ conflicts=('kernel26' 'kernel26-libre' 'linux')
+ replaces=('kernel26' 'kernel26-libre' 'linux')
backup=("etc/mkinitcpio.d/${pkgname}.preset")
install=${pkgname}.install
- provides=("linux-rt=${pkgver}")
- replaces=('linux-rt')
- conflicts=('linux-rt')
cd "${srcdir}/linux-${_basekernel}"
@@ -137,12 +150,20 @@ package_linux-libre-rt() {
rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
# remove the firmware
rm -rf "${pkgdir}/lib/firmware"
- # gzip -9 all modules to safe 100MB of space
+ # gzip -9 all modules to save 100MB of space
find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+ # make room for external modules
+ ln -s "../extramodules-${_basekernel}${_kernelname:--LIBRE}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
+ # add real version for building modules and running depmod from post_install/upgrade
+ mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--LIBRE}"
+ echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--LIBRE}/version"
}
package_linux-libre-rt-headers() {
pkgdesc="Header files and scripts for building modules for linux-libre kernel"
+ provides=('kernel26-headers' "linux-headers=${_pkgver}")
+ conflicts=('kernel26-headers' 'kernel26-libre-headers' 'linux-headers')
+ replaces=('kernel26-headers' 'kernel26-libre-headers' 'linux-headers')
mkdir -p "${pkgdir}/lib/modules/${_kernver}"
@@ -271,17 +292,17 @@ package_linux-libre-rt-headers() {
package_linux-libre-rt-docs() {
pkgdesc="Kernel hackers manual - HTML documentation that comes with the Linux-libre kernel."
- provides=('kernel26-docs' "linux-docs=$pkgver")
+ provides=('kernel26-docs' "linux-docs=$_pkgver")
+ conflicts=('kernel26-docs' 'kernel26-libre-docs' 'linux-docs')
+ replaces=('kernel26-docs' 'kernel26-libre-docs' 'linux-docs')
cd "${srcdir}/linux-${_basekernel}"
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}"
- cp -r Documentation "${pkgdir}/usr/src/linux-${_kernver}"
+ cp -al Documentation "${pkgdir}/usr/src/linux-${_kernver}"
find "${pkgdir}" -type f -exec chmod 444 {} \;
find "${pkgdir}" -type d -exec chmod 755 {} \;
# remove a file already in linux package
rm -f "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile"
}
-
-# vim:set ts=2 sw=2 et:
diff --git a/kernels/linux-libre-rt/config.i686 b/kernels/linux-libre-rt/config.i686
index 5c8ba2782..dfb099e19 100644
--- a/kernels/linux-libre-rt/config.i686
+++ b/kernels/linux-libre-rt/config.i686
@@ -1,6 +1,6 @@
#
-# Automatically generated make config: don't edit
-# Linux/i386 3.0.0 Kernel Configuration
+# Automatically generated file; DO NOT EDIT.
+# Linux/i386 3.2.2 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -37,7 +37,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
@@ -68,10 +67,10 @@ CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
-# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
-CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_SWAP=y
@@ -100,12 +99,14 @@ CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_FORCED_THREADING=y
-# CONFIG_SPARSE_IRQ is not set
+CONFIG_SPARSE_IRQ=y
#
# RCU Subsystem
#
+# CONFIG_TREE_RCU is not set
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
@@ -131,6 +132,8 @@ CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
CONFIG_NAMESPACES=y
@@ -155,14 +158,14 @@ CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
@@ -179,11 +182,11 @@ CONFIG_HAVE_PERF_EVENTS=y
#
CONFIG_PERF_EVENTS=y
CONFIG_PERF_COUNTERS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
+# CONFIG_SLUB is not set
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_OPROFILE=y
@@ -205,6 +208,7 @@ CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
#
# GCOV-based kernel profiling
@@ -218,12 +222,13 @@ CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
+CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_LBDAF=y
CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLK_DEV_THROTTLING=y
@@ -234,10 +239,10 @@ CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_CFQ_GROUP_IOSCHED=y
-CONFIG_DEFAULT_DEADLINE=y
-# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
# CONFIG_INLINE_SPIN_TRYLOCK is not set
@@ -275,8 +280,10 @@ CONFIG_FREEZER=y
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
+# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_SMP=y
CONFIG_X86_MPPARSE=y
# CONFIG_X86_BIGSMP is not set
@@ -285,6 +292,7 @@ CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_X86_32_IRIS=m
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_PARAVIRT_GUEST=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
# CONFIG_XEN_PRIVILEGED_GUEST is not set
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
@@ -292,7 +300,6 @@ CONFIG_LGUEST_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_SPINLOCKS is not set
CONFIG_PARAVIRT_CLOCK=y
-# CONFIG_PARAVIRT_DEBUG is not set
CONFIG_NO_BOOTMEM=y
# CONFIG_MEMTEST is not set
# CONFIG_M386 is not set
@@ -324,6 +331,7 @@ CONFIG_X86_GENERIC=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_CMPXCHG=y
CONFIG_CMPXCHG_LOCAL=y
+CONFIG_CMPXCHG_DOUBLE=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
# CONFIG_X86_PPRO_FENCE is not set
@@ -348,7 +356,6 @@ CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
# CONFIG_IOMMU_HELPER is not set
-CONFIG_IOMMU_API=y
CONFIG_NR_CPUS=8
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
@@ -357,9 +364,10 @@ CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT_LL is not set
+# CONFIG_PREEMPT__LL is not set
# CONFIG_PREEMPT_RTB is not set
CONFIG_PREEMPT_RT_FULL=y
+CONFIG_PREEMPT_COUNT=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
@@ -411,7 +419,8 @@ CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
-CONFIG_HWPOISON_INJECT=m
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_CLEANCACHE=y
# CONFIG_HIGHPTE is not set
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
@@ -424,6 +433,7 @@ CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
CONFIG_EFI=y
CONFIG_SECCOMP=y
CONFIG_CC_STACKPROTECTOR=y
@@ -464,10 +474,10 @@ CONFIG_CAN_PM_TRACE=y
# CONFIG_PM_TRACE_RTC is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
-CONFIG_ACPI_PROCFS_POWER=y
+# CONFIG_ACPI_PROCFS is not set
+# CONFIG_ACPI_PROCFS_POWER is not set
CONFIG_ACPI_EC_DEBUGFS=m
-CONFIG_ACPI_PROC_EVENT=y
+# CONFIG_ACPI_PROC_EVENT is not set
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
@@ -486,15 +496,22 @@ CONFIG_ACPI_PCI_SLOT=m
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=m
CONFIG_ACPI_SBS=m
-CONFIG_ACPI_HED=m
+CONFIG_ACPI_HED=y
CONFIG_ACPI_CUSTOM_METHOD=m
CONFIG_ACPI_APEI=y
-CONFIG_ACPI_APEI_GHES=m
+CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_ACPI_APEI_EINJ=m
CONFIG_ACPI_APEI_ERST_DEBUG=m
CONFIG_SFI=y
-# CONFIG_APM is not set
+CONFIG_X86_APM_BOOT=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_DO_ENABLE=y
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
#
# CPU Frequency scaling
@@ -556,9 +573,6 @@ CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_OLPC=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_CNB20LE_QUIRK is not set
-CONFIG_DMAR=y
-# CONFIG_DMAR_DEFAULT_ON is not set
-CONFIG_DMAR_FLOPPY_WA=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=m
CONFIG_PCIEAER=y
@@ -569,10 +583,12 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_PME=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
-# CONFIG_PCI_DEBUG is not set
CONFIG_PCI_STUB=m
CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
CONFIG_PCI_IOAPIC=y
CONFIG_PCI_LABEL=y
CONFIG_ISA_DMA_API=y
@@ -581,7 +597,11 @@ CONFIG_ISA=y
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
CONFIG_OLPC=y
-CONFIG_OLPC_XO1=m
+CONFIG_OLPC_XO1_PM=y
+CONFIG_OLPC_XO1_RTC=y
+CONFIG_OLPC_XO1_SCI=y
+CONFIG_OLPC_XO15_SCI=y
+CONFIG_ALIX=y
CONFIG_AMD_NB=y
CONFIG_PCCARD=m
CONFIG_PCMCIA=m
@@ -615,14 +635,15 @@ CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m
CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_TSI721=y
CONFIG_RAPIDIO_DISC_TIMEOUT=30
# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_DEBUG=y
CONFIG_RAPIDIO_TSI57X=y
CONFIG_RAPIDIO_CPS_XX=y
CONFIG_RAPIDIO_TSI568=y
CONFIG_RAPIDIO_CPS_GEN2=y
CONFIG_RAPIDIO_TSI500=y
-CONFIG_RAPIDIO_DEBUG=y
#
# Executable file formats / Emulations
@@ -842,6 +863,7 @@ CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
CONFIG_IP_VS=m
# CONFIG_IP_VS_IPV6 is not set
@@ -975,11 +997,6 @@ CONFIG_INET_DCCP_DIAG=m
CONFIG_IP_DCCP_CCID3=y
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
CONFIG_IP_DCCP_TFRC_LIB=y
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -1026,6 +1043,7 @@ CONFIG_IPDDP_DECAP=y
# CONFIG_WAN_ROUTER is not set
CONFIG_PHONET=m
CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
CONFIG_NET_SCHED=y
#
@@ -1233,6 +1251,16 @@ CONFIG_CAIF=m
CONFIG_CAIF_NETDEV=m
CONFIG_CEPH_LIB=m
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_NFC=m
+CONFIG_NFC_NCI=m
+
+#
+# Near Field Communication (NFC) devices
+#
+CONFIG_PN544_NFC=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_WILINK=m
#
# Device Drivers
@@ -1249,16 +1277,20 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_CONNECTOR=m
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
+CONFIG_REGMAP_SPI=y
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_TESTS=m
-# CONFIG_MTD_REDBOOT_PARTS is not set
-CONFIG_MTD_OF_PARTS=y
-# CONFIG_MTD_AR7_PARTS is not set
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MTD_AR7_PARTS=m
#
# User Modules And Translation Layers
@@ -1266,21 +1298,24 @@ CONFIG_MTD_OF_PARTS=y
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
-# CONFIG_MTD_BLOCK_RO is not set
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-CONFIG_SM_FTL=m
-# CONFIG_MTD_OOPS is not set
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
CONFIG_MTD_SWAP=m
#
# RAM/ROM/Flash chip drivers
#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -1291,29 +1326,53 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
CONFIG_MTD_RAM=m
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
#
# Mapping drivers for chip access
#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_TS5500 is not set
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_PHYSMAP_OF=m
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_TS5500=m
+# CONFIG_MTD_SBC_GXX is not set
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_SCB2_FLASH=m
+# CONFIG_MTD_NETtel is not set
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+# CONFIG_MTD_GPIO_ADDR is not set
# CONFIG_MTD_INTEL_VR_NOR is not set
CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
#
# Self-contained MTD device drivers
#
-# CONFIG_MTD_PMC551 is not set
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
-CONFIG_MTD_SST25L=m
-CONFIG_MTD_SLRAM=m
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
CONFIG_MTD_PHRAM=m
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
@@ -1321,16 +1380,38 @@ CONFIG_MTD_PHRAM=m
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_DOCG3=m
CONFIG_MTD_NAND_ECC=m
CONFIG_MTD_NAND_ECC_SMC=y
-# CONFIG_MTD_NAND is not set
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_CS553X=m
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_ALAUDA=m
# CONFIG_MTD_ONENAND is not set
#
# LPDDR flash memory drivers
#
-# CONFIG_MTD_LPDDR is not set
-# CONFIG_MTD_UBI is not set
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
CONFIG_OF=y
#
@@ -1347,6 +1428,7 @@ CONFIG_OF_NET=y
CONFIG_OF_SPI=y
CONFIG_OF_MDIO=m
CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
@@ -1377,6 +1459,7 @@ CONFIG_BLK_DEV_DAC960=m
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
@@ -1426,6 +1509,7 @@ CONFIG_TI_DAC7512=m
CONFIG_VMWARE_BALLOON=m
CONFIG_BMP085=m
# CONFIG_PCH_PHUB is not set
+CONFIG_USB_SWITCH_FSA9480=m
CONFIG_C2PORT=m
CONFIG_C2PORT_DURAMAR_2150=m
@@ -1437,6 +1521,7 @@ CONFIG_EEPROM_AT25=m
CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_93XX46=m
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
CONFIG_CB710_DEBUG_ASSUMPTIONS=y
@@ -1449,90 +1534,13 @@ CONFIG_IWMC3200TOP=m
#
CONFIG_TI_ST=m
CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
CONFIG_HAVE_IDE=y
-CONFIG_IDE=m
-
-#
-# Please see Documentation/ide/ide.txt for help/info on IDE drives
-#
-CONFIG_IDE_XFER_MODE=y
-CONFIG_IDE_TIMINGS=y
-CONFIG_IDE_ATAPI=y
-CONFIG_IDE_LEGACY=y
-# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_IDE_GD=m
-CONFIG_IDE_GD_ATA=y
-CONFIG_IDE_GD_ATAPI=y
-CONFIG_BLK_DEV_IDECS=m
-CONFIG_BLK_DEV_DELKIN=m
-CONFIG_BLK_DEV_IDECD=m
-CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
-CONFIG_BLK_DEV_IDETAPE=m
-CONFIG_BLK_DEV_IDEACPI=y
-# CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_PROC_FS=y
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=m
-CONFIG_BLK_DEV_PLATFORM=m
-CONFIG_BLK_DEV_CMD640=m
-# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-CONFIG_BLK_DEV_IDEPNP=m
-CONFIG_BLK_DEV_IDEDMA_SFF=y
-
-#
-# PCI IDE chipsets support
-#
-CONFIG_BLK_DEV_IDEPCI=y
-# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=m
-CONFIG_BLK_DEV_OPTI621=m
-CONFIG_BLK_DEV_RZ1000=m
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-CONFIG_BLK_DEV_AEC62XX=m
-CONFIG_BLK_DEV_ALI15X3=m
-CONFIG_BLK_DEV_AMD74XX=m
-CONFIG_BLK_DEV_ATIIXP=m
-CONFIG_BLK_DEV_CMD64X=m
-CONFIG_BLK_DEV_TRIFLEX=m
-CONFIG_BLK_DEV_CS5520=m
-CONFIG_BLK_DEV_CS5530=m
-CONFIG_BLK_DEV_CS5535=m
-CONFIG_BLK_DEV_CS5536=m
-CONFIG_BLK_DEV_HPT366=m
-CONFIG_BLK_DEV_JMICRON=m
-CONFIG_BLK_DEV_SC1200=m
-CONFIG_BLK_DEV_PIIX=m
-CONFIG_BLK_DEV_IT8172=m
-CONFIG_BLK_DEV_IT8213=m
-CONFIG_BLK_DEV_IT821X=m
-CONFIG_BLK_DEV_NS87415=m
-CONFIG_BLK_DEV_PDC202XX_OLD=m
-CONFIG_BLK_DEV_PDC202XX_NEW=m
-CONFIG_BLK_DEV_SVWKS=m
-CONFIG_BLK_DEV_SIIMAGE=m
-CONFIG_BLK_DEV_SIS5513=m
-CONFIG_BLK_DEV_SLC90E66=m
-CONFIG_BLK_DEV_TRM290=m
-CONFIG_BLK_DEV_VIA82CXXX=m
-CONFIG_BLK_DEV_TC86C001=m
-
-#
-# Other IDE chipsets support
-#
-
-#
-# Note: most of these also require special kernel boot parameters
-#
-CONFIG_BLK_DEV_4DRIVES=m
-CONFIG_BLK_DEV_ALI14XX=m
-CONFIG_BLK_DEV_DTC2278=m
-CONFIG_BLK_DEV_HT6560B=m
-CONFIG_BLK_DEV_QD65XX=m
-CONFIG_BLK_DEV_UMC8672=m
-CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDE is not set
#
# SCSI device support
@@ -1609,11 +1617,12 @@ CONFIG_SCSI_AIC94XX=m
# CONFIG_AIC94XX_DEBUG is not set
CONFIG_SCSI_MVSAS=m
# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
CONFIG_SCSI_DPT_I2O=m
CONFIG_SCSI_ADVANSYS=m
CONFIG_SCSI_IN2000=m
CONFIG_SCSI_ARCMSR=m
-CONFIG_SCSI_ARCMSR_AER=y
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
@@ -1809,8 +1818,13 @@ CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m
CONFIG_DM_LOG_USERSPACE=m
@@ -1826,8 +1840,8 @@ CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
CONFIG_TCM_PSCSI=m
CONFIG_LOOPBACK_TARGET=m
-# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
CONFIG_TCM_FC=m
+CONFIG_ISCSI_TARGET=m
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_FC=m
@@ -1857,62 +1871,116 @@ CONFIG_I2O_PROC=m
CONFIG_MACINTOSH_DRIVERS=y
CONFIG_MAC_EMUMOUSEBTN=y
CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
-CONFIG_EQUALIZER=m
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
CONFIG_TUN=m
CONFIG_VETH=m
-CONFIG_NET_SB1000=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SUNGEM_PHY=m
# CONFIG_ARCNET is not set
-CONFIG_MII=m
-CONFIG_PHYLIB=m
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
#
-# MII PHY device drivers
+# CAIF transport drivers
#
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MICREL_PHY=m
-# CONFIG_MDIO_BITBANG is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_CAIF_HSI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
CONFIG_NET_VENDOR_3COM=y
CONFIG_EL1=m
-CONFIG_EL2=m
-CONFIG_ELPLUS=m
-CONFIG_EL16=m
CONFIG_EL3=m
CONFIG_3C515=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
CONFIG_VORTEX=m
CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
CONFIG_LANCE=m
-CONFIG_NET_VENDOR_SMC=y
-CONFIG_WD80x3=m
-CONFIG_ULTRA=m
-CONFIG_SMC9194=m
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_RACAL=y
-CONFIG_NI52=m
+CONFIG_PCNET32=m
+CONFIG_DEPCA=m
+CONFIG_PCMCIA_NMCLAN=m
CONFIG_NI65=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_EWRK3=m
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_DE2104X_DSL=0
@@ -1925,132 +1993,222 @@ CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
CONFIG_AT1700=m
-CONFIG_DEPCA=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_ETH16I=m
+CONFIG_NET_VENDOR_HP=y
CONFIG_HP100=m
-CONFIG_NET_ISA=y
-CONFIG_E2100=m
-CONFIG_EWRK3=m
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_APRICOT=m
CONFIG_EEXPRESS=m
CONFIG_EEXPRESS_PRO=m
-CONFIG_HPLAN_PLUS=m
-CONFIG_HPLAN=m
CONFIG_LP486E=m
-CONFIG_ETH16I=m
-CONFIG_NE2000=m
+CONFIG_NI52=m
CONFIG_ZNET=m
-CONFIG_SEEQ8005=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_AC3200=m
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
CONFIG_KSZ884X_PCI=m
-CONFIG_APRICOT=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-CONFIG_CS89x0=m
-CONFIG_E100=m
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_EL2=m
+CONFIG_AC3200=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_E2100=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_NE2000=m
CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_ULTRA=m
+CONFIG_WD80x3=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
CONFIG_8139CP=m
CONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
CONFIG_8139TOO_TUNE_TWISTER=y
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC9194=m
+CONFIG_PCMCIA_SMC91C92=m
CONFIG_EPIC100=m
CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_VIA_RHINE=m
-# CONFIG_VIA_RHINE_MMIO is not set
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
+CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DEBUG_FS is not set
# CONFIG_STMMAC_DA is not set
-CONFIG_STMMAC_DUAL_MAC=y
-CONFIG_PCH_GBE=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4VF=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGBEVF=m
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_TEHUTI=y
CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLCNIC=m
-CONFIG_QLGE=m
-CONFIG_BNA=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_TI=y
+CONFIG_TLAN=m
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+# CONFIG_SLIP_COMPRESSED is not set
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
# CONFIG_TR is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
CONFIG_WLAN=y
CONFIG_PCMCIA_RAYCS=m
CONFIG_LIBERTAS_THINFIRM=m
@@ -2090,7 +2248,11 @@ CONFIG_ATH9K_HTC=m
CONFIG_CARL9170=m
CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG is not set
CONFIG_B43=m
+CONFIG_B43_SSB=y
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
CONFIG_B43_PCMCIA=y
@@ -2098,6 +2260,7 @@ CONFIG_B43_SDIO=y
CONFIG_B43_PIO=y
CONFIG_B43_PHY_N=y
CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
CONFIG_B43_LEDS=y
CONFIG_B43_HWRNG=y
# CONFIG_B43_DEBUG is not set
@@ -2112,6 +2275,10 @@ CONFIG_B43LEGACY_PIO=y
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
# CONFIG_B43LEGACY_DMA_MODE is not set
# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+# CONFIG_BRCMDBG is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
@@ -2129,7 +2296,7 @@ CONFIG_IPW2200_QOS=y
# CONFIG_IPW2200_DEBUG is not set
CONFIG_LIBIPW=m
# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLAGN=m
+CONFIG_IWLWIFI=m
#
# Debugging Options
@@ -2137,7 +2304,6 @@ CONFIG_IWLAGN=m
# CONFIG_IWLWIFI_DEBUG is not set
CONFIG_IWLWIFI_DEVICE_TRACING=y
CONFIG_IWLWIFI_DEVICE_SVTOOL=y
-CONFIG_IWL_P2P=y
CONFIG_IWLWIFI_LEGACY=m
#
@@ -2198,6 +2364,7 @@ CONFIG_RT2X00_LIB_LEDS=y
# CONFIG_RT2X00_DEBUG is not set
CONFIG_RTL8192CE=m
CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
CONFIG_RTL8192C_COMMON=m
@@ -2206,7 +2373,6 @@ CONFIG_WL1251_SPI=m
CONFIG_WL1251_SDIO=m
CONFIG_WL12XX_MENU=m
CONFIG_WL12XX=m
-CONFIG_WL12XX_HT=y
CONFIG_WL12XX_SPI=m
CONFIG_WL12XX_SDIO=m
CONFIG_WL12XX_SDIO_TEST=m
@@ -2215,6 +2381,7 @@ CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
#
# WiMAX Wireless Broadband devices
@@ -2224,119 +2391,7 @@ CONFIG_WIMAX_I2400M_USB=m
CONFIG_WIMAX_I2400M_SDIO=m
# CONFIG_WIMAX_IWMC3200_SDIO is not set
CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
# CONFIG_WAN is not set
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-# CONFIG_ATM_FORE200E_USE_TASKLET is not set
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-# CONFIG_ATM_HE_USE_SUNI is not set
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-
-#
-# CAIF transport drivers
-#
-CONFIG_CAIF_TTY=m
-CONFIG_CAIF_SPI_SLAVE=m
-CONFIG_CAIF_SPI_SYNC=y
-CONFIG_RIONET=m
-CONFIG_RIONET_TX_SIZE=128
-CONFIG_RIONET_RX_SIZE=128
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-CONFIG_PLIP=m
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-# CONFIG_SLIP_COMPRESSED is not set
-CONFIG_SLHC=m
-# CONFIG_SLIP_SMART is not set
-# CONFIG_SLIP_MODE_SLIP6 is not set
-# CONFIG_NET_FC is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-CONFIG_VIRTIO_NET=m
CONFIG_VMXNET3=m
CONFIG_ISDN=y
CONFIG_ISDN_I4L=m
@@ -2637,6 +2692,7 @@ CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_TSC2005=m
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_PCAP=m
@@ -2647,13 +2703,18 @@ CONFIG_INPUT_AB8500_PONKEY=m
CONFIG_INPUT_AD714X=m
CONFIG_INPUT_AD714X_I2C=m
CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_BMA150=m
CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_MC13783_PWRBUTTON=m
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_APANEL=m
CONFIG_INPUT_WISTRON_BTNS=m
CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_YEALINK=m
CONFIG_INPUT_CM109=m
@@ -2694,6 +2755,7 @@ CONFIG_GAMEPORT_FM801=m
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
@@ -2729,6 +2791,7 @@ CONFIG_SERIAL_8250_CS=m
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set
+CONFIG_SERIAL_8250_DW=m
#
# Non-8250 serial port support
@@ -2740,7 +2803,7 @@ CONFIG_SERIAL_UARTLITE=m
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_JSM=m
-# CONFIG_SERIAL_OF_PLATFORM is not set
+CONFIG_SERIAL_OF_PLATFORM=m
CONFIG_SERIAL_TIMBERDALE=m
CONFIG_SERIAL_ALTERA_JTAGUART=m
CONFIG_SERIAL_ALTERA_UART=m
@@ -2844,6 +2907,7 @@ CONFIG_I2C_SCMI=m
#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
+CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_INTEL_MID=m
CONFIG_I2C_OCORES=m
@@ -2873,7 +2937,6 @@ CONFIG_SCx200_ACB=m
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
#
@@ -2910,6 +2973,7 @@ CONFIG_PPS=m
CONFIG_PPS_CLIENT_KTIMER=m
CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
#
# PPS generators support
@@ -2922,15 +2986,14 @@ CONFIG_PTP_1588_CLOCK=m
CONFIG_DP83640_PHY=m
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
-# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=m
CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers:
#
-CONFIG_GPIO_BASIC_MMIO_CORE=m
-CONFIG_GPIO_BASIC_MMIO=m
+CONFIG_GPIO_GENERIC_PLATFORM=m
CONFIG_GPIO_IT8761E=m
CONFIG_GPIO_SCH=m
CONFIG_GPIO_VX855=m
@@ -2942,13 +3005,14 @@ CONFIG_GPIO_MAX7300=m
CONFIG_GPIO_MAX732X=m
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_TPS65912=m
CONFIG_GPIO_WM831X=m
CONFIG_GPIO_ADP5588=m
#
# PCI GPIO expanders:
#
-CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_CS5535=y
CONFIG_GPIO_LANGWELL=y
CONFIG_GPIO_PCH=m
CONFIG_GPIO_ML_IOH=m
@@ -3026,6 +3090,7 @@ CONFIG_HWMON_VID=m
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
CONFIG_SENSORS_ADCXX=m
@@ -3077,26 +3142,32 @@ CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_LM93=m
CONFIG_SENSORS_LTC4151=m
CONFIG_SENSORS_LTC4215=m
-# CONFIG_SENSORS_LTC4245 is not set
+CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4261=m
CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
CONFIG_SENSORS_MAX1111=m
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX6639=m
CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_MAX16064=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_UCD9000=m
CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
CONFIG_SENSORS_SHT15=m
CONFIG_SENSORS_SHT21=m
CONFIG_SENSORS_SIS5595=m
@@ -3108,7 +3179,9 @@ CONFIG_SENSORS_EMC6W201=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
CONFIG_SENSORS_ADS1015=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
@@ -3143,6 +3216,7 @@ CONFIG_SENSORS_ATK0110=m
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
@@ -3227,11 +3301,11 @@ CONFIG_BCMA_POSSIBLE=y
#
# Broadcom specific AMBA
#
-CONFIG_BCMA=m
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-# CONFIG_BCMA_DEBUG is not set
-CONFIG_MFD_SUPPORT=y
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
CONFIG_MFD_CORE=y
CONFIG_MFD_SM501=m
CONFIG_MFD_SM501_GPIO=y
@@ -3240,6 +3314,8 @@ CONFIG_UCB1400_CORE=m
CONFIG_TPS6105X=m
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
+CONFIG_MFD_TPS65912=y
+CONFIG_MFD_TPS65912_SPI=y
# CONFIG_MFD_TMIO is not set
CONFIG_MFD_WM8400=m
CONFIG_MFD_WM831X=y
@@ -3267,6 +3343,7 @@ CONFIG_REGULATOR_DUMMY=y
CONFIG_REGULATOR_FIXED_VOLTAGE=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_BQ24022=m
CONFIG_REGULATOR_MAX1586=m
CONFIG_REGULATOR_MAX8649=m
@@ -3284,6 +3361,7 @@ CONFIG_REGULATOR_MC13892=m
CONFIG_REGULATOR_TPS6105X=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_TPS65912=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_AD5398=m
CONFIG_REGULATOR_AB8500=y
@@ -3298,6 +3376,7 @@ CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2_COMMON=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
CONFIG_VIDEO_MEDIA=m
#
@@ -3314,7 +3393,9 @@ CONFIG_IR_RC6_DECODER=m
CONFIG_IR_JVC_DECODER=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_LIRC_CODEC=m
+CONFIG_RC_ATI_REMOTE=m
CONFIG_IR_ENE=m
CONFIG_IR_IMON=m
CONFIG_IR_MCEUSB=m
@@ -3342,6 +3423,7 @@ CONFIG_MEDIA_TUNER_MT2131=m
CONFIG_MEDIA_TUNER_QT1010=m
CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
CONFIG_MEDIA_TUNER_MXL5005S=m
CONFIG_MEDIA_TUNER_MXL5007T=m
CONFIG_MEDIA_TUNER_MC44S803=m
@@ -3360,6 +3442,7 @@ CONFIG_VIDEO_TUNER=m
CONFIG_V4L2_MEM2MEM_DEV=m
CONFIG_VIDEOBUF2_CORE=m
CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
@@ -3433,9 +3516,20 @@ CONFIG_VIDEO_AK881X=m
# Camera sensor devices
#
CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9P031=m
+CONFIG_VIDEO_MT9T001=m
CONFIG_VIDEO_MT9V011=m
CONFIG_VIDEO_MT9V032=m
CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_S5K6AA=m
+
+#
+# Flash devices
+#
+CONFIG_VIDEO_ADP1653=m
#
# Video improvement chips
@@ -3481,6 +3575,8 @@ CONFIG_VIDEO_CX88_MPEG=m
CONFIG_VIDEO_CX88_VP3054=m
CONFIG_VIDEO_CX23885=m
CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
CONFIG_VIDEO_AU0828=m
CONFIG_VIDEO_IVTV=m
CONFIG_VIDEO_FB_IVTV=m
@@ -3488,10 +3584,7 @@ CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_SAA7164=m
CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_VIA_CAMERA=m
-CONFIG_VIDEO_NOON010PC30=m
-CONFIG_VIDEO_M5MOLS=m
CONFIG_SOC_CAMERA=m
CONFIG_SOC_CAMERA_IMX074=m
CONFIG_SOC_CAMERA_MT9M001=m
@@ -3503,6 +3596,7 @@ CONFIG_SOC_CAMERA_RJ54N1=m
CONFIG_SOC_CAMERA_TW9910=m
CONFIG_SOC_CAMERA_PLATFORM=m
CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV5642=m
CONFIG_SOC_CAMERA_OV6650=m
CONFIG_SOC_CAMERA_OV772X=m
CONFIG_SOC_CAMERA_OV9640=m
@@ -3531,6 +3625,7 @@ CONFIG_USB_GSPCA_OV534_9=m
CONFIG_USB_GSPCA_PAC207=m
CONFIG_USB_GSPCA_PAC7302=m
CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
CONFIG_USB_GSPCA_SN9C2028=m
CONFIG_USB_GSPCA_SN9C20X=m
CONFIG_USB_GSPCA_SONIXB=m
@@ -3549,6 +3644,7 @@ CONFIG_USB_GSPCA_STK014=m
CONFIG_USB_GSPCA_STV0680=m
CONFIG_USB_GSPCA_SUNPLUS=m
CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
@@ -3562,11 +3658,15 @@ CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=y
CONFIG_VIDEO_TLG2300=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_RC=y
CONFIG_VIDEO_CX231XX_ALSA=m
CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_USBVISION=m
CONFIG_USB_ET61X251=m
CONFIG_USB_SN9C102=m
@@ -3650,6 +3750,7 @@ CONFIG_DVB_USB_DTT200U=m
CONFIG_DVB_USB_OPERA1=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
CONFIG_DVB_USB_DW2102=m
CONFIG_DVB_USB_CINERGY_T2=m
CONFIG_DVB_USB_ANYSEE=m
@@ -3661,6 +3762,8 @@ CONFIG_DVB_USB_EC168=m
CONFIG_DVB_USB_AZ6027=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_IT913X=m
+CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_SMS_SIANO_MDTV=m
@@ -3718,6 +3821,11 @@ CONFIG_DVB_HOPPER=m
CONFIG_DVB_NGENE=m
#
+# Supported ddbridge ('Octopus') Adapters
+#
+CONFIG_DVB_DDBRIDGE=m
+
+#
# Supported DVB Frontends
#
# CONFIG_DVB_FE_CUSTOMISE is not set
@@ -3731,6 +3839,12 @@ CONFIG_DVB_STV090x=m
CONFIG_DVB_STV6110x=m
#
+# Multistandard (cable + terrestrial) frontends
+#
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_TDA18271C2DD=m
+
+#
# DVB-S (satellite) frontends
#
CONFIG_DVB_CX24110=m
@@ -3756,6 +3870,7 @@ CONFIG_DVB_CX24116=m
CONFIG_DVB_SI21XX=m
CONFIG_DVB_DS3000=m
CONFIG_DVB_MB86A16=m
+CONFIG_DVB_TDA10071=m
#
# DVB-T (terrestrial) frontends
@@ -3819,13 +3934,16 @@ CONFIG_DVB_TUNER_DIB0090=m
# SEC control devices for DVB-S
#
CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
CONFIG_DVB_ISL6405=m
CONFIG_DVB_ISL6421=m
CONFIG_DVB_ISL6423=m
+CONFIG_DVB_A8293=m
CONFIG_DVB_LGS8GXX=m
CONFIG_DVB_ATBM8830=m
CONFIG_DVB_TDA665x=m
CONFIG_DVB_IX2505V=m
+CONFIG_DVB_IT913X_FE=m
#
# Tools to develop new frontends
@@ -3862,6 +3980,7 @@ CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
CONFIG_STUB_POULSBO=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -3953,6 +4072,7 @@ CONFIG_FB_TRIDENT=m
# CONFIG_FB_GEODE is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_SM501 is not set
+CONFIG_FB_SMSCUFX=m
CONFIG_FB_UDL=m
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
@@ -3969,6 +4089,7 @@ CONFIG_LCD_VGG2432A4=m
CONFIG_LCD_PLATFORM=m
CONFIG_LCD_S6E63M0=m
CONFIG_LCD_LD9040=m
+CONFIG_LCD_AMS369FG06=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_PROGEAR=m
@@ -4095,6 +4216,7 @@ CONFIG_SND_SSCAPE=m
CONFIG_SND_WAVEFRONT=m
CONFIG_SND_MSND_PINNACLE=m
CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_TEA575X=m
CONFIG_SND_PCI=y
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
@@ -4144,8 +4266,8 @@ CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968_RADIO=y
CONFIG_SND_FM801=m
CONFIG_SND_FM801_TEA575X_BOOL=y
-CONFIG_SND_TEA575X=m
CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PREALLOC_SIZE=4096
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
@@ -4153,6 +4275,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=1
CONFIG_SND_HDA_INPUT_JACK=y
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
@@ -4160,6 +4283,7 @@ CONFIG_SND_HDA_CODEC_HDMI=y
CONFIG_SND_HDA_CODEC_CIRRUS=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
@@ -4229,7 +4353,7 @@ CONFIG_USB_HIDDEV=y
#
CONFIG_HID_A4TECH=m
CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=m
+CONFIG_HID_ACRUX_FF=y
CONFIG_HID_APPLE=m
CONFIG_HID_BELKIN=m
CONFIG_HID_CHERRY=m
@@ -4241,6 +4365,8 @@ CONFIG_DRAGONRISE_FF=y
CONFIG_HID_EMS_FF=m
CONFIG_HID_ELECOM=m
CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HOLTEK_FF=y
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
CONFIG_HID_UCLOGIC=m
@@ -4250,10 +4376,11 @@ CONFIG_HID_TWINHAN=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWII_FF=y
+CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
@@ -4268,6 +4395,7 @@ CONFIG_HID_PICOLCD_FB=y
CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
CONFIG_HID_QUANTA=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_ROCCAT_COMMON=m
@@ -4278,6 +4406,7 @@ CONFIG_HID_ROCCAT_KOVAPLUS=m
CONFIG_HID_ROCCAT_PYRA=m
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_GREENASIA=m
CONFIG_GREENASIA_FF=y
@@ -4288,13 +4417,16 @@ CONFIG_HID_THRUSTMASTER=m
CONFIG_THRUSTMASTER_FF=y
CONFIG_HID_WACOM=m
CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_WIIMOTE=m
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=m
CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=m
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -4304,9 +4436,11 @@ CONFIG_USB=m
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -4336,8 +4470,10 @@ CONFIG_USB_SL811_HCD=m
# CONFIG_USB_SL811_HCD_ISO is not set
CONFIG_USB_SL811_CS=m
CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RENESAS_USBHS_HCD=m
CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
+CONFIG_USB_RENESAS_USBHS=m
#
# USB Device Class drivers
@@ -4357,6 +4493,7 @@ CONFIG_USB_TMC=m
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
CONFIG_USB_STORAGE_DATAFAB=m
CONFIG_USB_STORAGE_FREECOM=m
CONFIG_USB_STORAGE_ISD200=m
@@ -4479,24 +4616,25 @@ CONFIG_USB_CXACRU=m
CONFIG_USB_UEAGLEATM=m
CONFIG_USB_XUSBATM=m
CONFIG_USB_GADGET=m
-# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_SELECTED=y
-# CONFIG_USB_GADGET_FUSB300 is not set
-# CONFIG_USB_GADGET_R8A66597 is not set
-# CONFIG_USB_GADGET_PXA_U2O is not set
-# CONFIG_USB_GADGET_M66592 is not set
-# CONFIG_USB_GADGET_AMD5536UDC is not set
-# CONFIG_USB_GADGET_CI13XXX_PCI is not set
-CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_FUSB300=m
+CONFIG_USB_R8A66597=m
+CONFIG_USB_GADGET_DWC3=m
+CONFIG_USB_M66592=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_CI13XXX_PCI=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
CONFIG_USB_NET2280=m
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGET_LANGWELL is not set
-# CONFIG_USB_GADGET_EG20T is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GOKU=m
+CONFIG_USB_LANGWELL=m
+CONFIG_USB_EG20T=m
+CONFIG_USB_DUMMY_HCD=m
CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_GADGET_SUPERSPEED=y
# CONFIG_USB_ZERO is not set
CONFIG_USB_AUDIO=m
CONFIG_USB_ETH=m
@@ -4516,6 +4654,7 @@ CONFIG_USB_MIDI_GADGET=m
CONFIG_USB_G_PRINTER=m
# CONFIG_USB_CDC_COMPOSITE is not set
# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_ACM_MS is not set
# CONFIG_USB_G_MULTI is not set
CONFIG_USB_G_HID=m
CONFIG_USB_G_DBGP=m
@@ -4554,7 +4693,6 @@ CONFIG_SDIO_UART=m
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_RICOH_MMC=y
-CONFIG_MMC_SDHCI_OF=m
CONFIG_MMC_SDHCI_PLTFM=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
@@ -4586,12 +4724,9 @@ CONFIG_LEDS_CLASS=y
#
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_NET5501=m
-# CONFIG_LEDS_ALIX2 is not set
CONFIG_LEDS_PCA9532=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_GPIO_PLATFORM=y
-CONFIG_LEDS_GPIO_OF=y
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
@@ -4611,7 +4746,6 @@ CONFIG_LEDS_TRIGGERS=y
# LED Triggers
#
CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_IDE_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_GPIO=m
@@ -4620,8 +4754,6 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
#
# iptables trigger is under Netfilter config (LED target)
#
-CONFIG_NFC_DEVICES=y
-CONFIG_PN544_NFC=m
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
# CONFIG_INFINIBAND is not set
@@ -4634,7 +4766,6 @@ CONFIG_EDAC=y
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_MCE_INJ=m
CONFIG_EDAC_MM_EDAC=m
-CONFIG_EDAC_MCE=y
CONFIG_EDAC_AMD76X=m
CONFIG_EDAC_E7XXX=m
CONFIG_EDAC_E752X=m
@@ -4760,30 +4891,18 @@ CONFIG_UIO_AEC=m
CONFIG_UIO_SERCOS3=m
CONFIG_UIO_PCI_GENERIC=m
CONFIG_UIO_NETX=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
CONFIG_STAGING=y
-# CONFIG_DIGIEPCA is not set
-# CONFIG_RISCOM8 is not set
-# CONFIG_SPECIALIX is not set
-# CONFIG_COMPUTONE is not set
CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
CONFIG_SLICOSS=m
-CONFIG_VIDEO_GO7007=m
-CONFIG_VIDEO_GO7007_USB=m
-# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
-CONFIG_VIDEO_GO7007_OV7640=m
-CONFIG_VIDEO_GO7007_SAA7113=m
-CONFIG_VIDEO_GO7007_SAA7115=m
-CONFIG_VIDEO_GO7007_TW9903=m
-CONFIG_VIDEO_GO7007_UDA1342=m
-CONFIG_VIDEO_GO7007_SONY_TUNER=m
-CONFIG_VIDEO_GO7007_TW2804=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-CONFIG_DVB_CXD2099=m
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_HOST=m
@@ -4791,10 +4910,6 @@ CONFIG_USBIP_HOST=m
CONFIG_W35UND=m
CONFIG_PRISM2_USB=m
CONFIG_ECHO=m
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-# CONFIG_BRCMFMAC is not set
-# CONFIG_BRCMDBG is not set
CONFIG_COMEDI=m
# CONFIG_COMEDI_DEBUG is not set
CONFIG_COMEDI_MISC_DRIVERS=m
@@ -4877,6 +4992,7 @@ CONFIG_COMEDI_AMPLC_PCI224=m
CONFIG_COMEDI_AMPLC_PCI230=m
CONFIG_COMEDI_CONTEC_PCI_DIO=m
CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
CONFIG_COMEDI_UNIOXX5=m
CONFIG_COMEDI_GSC_HPDI=m
CONFIG_COMEDI_ICP_MULTI=m
@@ -4914,6 +5030,7 @@ CONFIG_COMEDI_USB_DRIVERS=m
CONFIG_COMEDI_DT9812=m
CONFIG_COMEDI_USBDUX=m
CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
CONFIG_COMEDI_VMK80XX=m
CONFIG_COMEDI_NI_COMMON=m
CONFIG_COMEDI_MITE=m
@@ -4934,10 +5051,11 @@ CONFIG_R8712U=m
CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
+CONFIG_RTS5139=m
+# CONFIG_RTS5139_DEBUG is not set
# CONFIG_TRANZPORT is not set
CONFIG_POHMELFS=m
# CONFIG_POHMELFS_DEBUG is not set
-CONFIG_POHMELFS_CRYPTO=y
CONFIG_IDE_PHISON=m
CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DEBUG is not set
@@ -4946,7 +5064,6 @@ CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DUMP_PCM is not set
# CONFIG_LINE6_USB_RAW is not set
# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
-CONFIG_DRM_VMWGFX=m
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU_DEBUG=y
@@ -4960,16 +5077,12 @@ CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_USB_SERIAL_QUATECH_USB2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
-CONFIG_HYPERV=m
CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_BLOCK=m
CONFIG_HYPERV_NET=m
-CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_MOUSE=m
# CONFIG_VME_BUS is not set
CONFIG_DX_SEP=m
# CONFIG_IIO is not set
-CONFIG_CS5535_GPIO=m
CONFIG_XVMALLOC=y
CONFIG_ZRAM=m
# CONFIG_ZRAM_DEBUG is not set
@@ -4977,46 +5090,9 @@ CONFIG_ZCACHE=m
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
-CONFIG_VIDEO_DT3155=m
-CONFIG_DT3155_CCIR=y
CONFIG_CRYSTALHD=m
CONFIG_FB_XGI=m
-CONFIG_LIRC_STAGING=y
-CONFIG_LIRC_BT829=m
-CONFIG_LIRC_IGORPLUGUSB=m
-CONFIG_LIRC_IMON=m
-CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
-CONFIG_LIRC_SERIAL=m
-CONFIG_LIRC_SERIAL_TRANSMITTER=y
-CONFIG_LIRC_SIR=m
-CONFIG_LIRC_TTUSBIR=m
-CONFIG_LIRC_ZILOG=m
-CONFIG_EASYCAP=m
-CONFIG_EASYCAP_SND=y
-# CONFIG_EASYCAP_OSS is not set
-# CONFIG_EASYCAP_DEBUG is not set
-CONFIG_SOLO6X10=m
CONFIG_ACPI_QUICKSTART=m
-CONFIG_MACH_NO_WESTBRIDGE=y
-CONFIG_ATH6K_LEGACY=m
-CONFIG_AR600x_SD31_XXX=y
-# CONFIG_AR600x_WB31_XXX is not set
-# CONFIG_AR600x_SD32_XXX is not set
-# CONFIG_AR600x_CUSTOM_XXX is not set
-CONFIG_ATH6KL_ENABLE_COEXISTENCE=y
-CONFIG_AR600x_DUAL_ANTENNA=y
-# CONFIG_AR600x_SINGLE_ANTENNA is not set
-# CONFIG_AR600x_BT_QCOM is not set
-# CONFIG_AR600x_BT_CSR is not set
-CONFIG_AR600x_BT_AR3001=y
-CONFIG_ATH6KL_HCI_BRIDGE=y
-CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET=y
-CONFIG_AR600x_BT_RESET_PIN=22
-CONFIG_ATH6KL_HTC_RAW_INTERFACE=y
-CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
-CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK=y
-# CONFIG_ATH6KL_DEBUG is not set
CONFIG_USB_ENESTORAGE=m
CONFIG_BCM_WIMAX=m
CONFIG_FT1000=m
@@ -5045,12 +5121,40 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_DRM_PSB=m
-
-#
-# Altera FPGA firmware download module
-#
-CONFIG_ALTERA_STAPL=m
+CONFIG_DRM_PSB_MRST=y
+CONFIG_DRM_PSB_MFLD=y
+CONFIG_DRM_PSB_CDV=y
CONFIG_INTEL_MEI=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_DVB_AS102=m
+CONFIG_DVB_CXD2099=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_DT3155_STREAMING=y
+CONFIG_EASYCAP=m
+# CONFIG_EASYCAP_DEBUG is not set
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_SOLO6X10=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -5096,7 +5200,25 @@ CONFIG_XO15_EBOOK=m
CONFIG_SAMSUNG_LAPTOP=m
CONFIG_MXM_WMI=m
CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+
+#
+# Hardware Spinlock drivers
+#
CONFIG_CLKSRC_I8253=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+# CONFIG_PM_DEVFREQ is not set
#
# Firmware Drivers
@@ -5252,16 +5374,24 @@ CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_XATTR=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
CONFIG_LOGFS=m
CONFIG_CRAMFS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
+CONFIG_MINIX_FS=m
CONFIG_OMFS_FS=m
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
@@ -5273,6 +5403,7 @@ CONFIG_UFS_FS=m
# CONFIG_UFS_DEBUG is not set
CONFIG_EXOFS_FS=m
# CONFIG_EXOFS_DEBUG is not set
+CONFIG_ORE=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
@@ -5284,7 +5415,6 @@ CONFIG_NFS_FSCACHE=y
CONFIG_NFS_USE_KERNEL_DNS=y
# CONFIG_NFS_USE_NEW_IDMAPPER is not set
CONFIG_NFSD=m
-# CONFIG_NFSD_DEPRECATED is not set
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
@@ -5336,7 +5466,7 @@ CONFIG_PARTITION_ADVANCED=y
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
-# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_LDM_PARTITION=y
@@ -5400,70 +5530,24 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
+# CONFIG_MAGIC_SYSRQ_FORCE_PRINTK is not set
CONFIG_STRIP_ASM_SYMS=y
CONFIG_UNUSED_SYMBOLS=y
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_DEBUG_KERNEL=y
-CONFIG_LOCKUP_DETECTOR=y
-CONFIG_HARDLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_PREEMPT is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_DEBUG_MUTEXES=y
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_VIRTUAL is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
CONFIG_DEBUG_MEMORY_INIT=y
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_FRAME_POINTER=y
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_VERBOSE is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
CONFIG_LKDTM=m
-CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
CONFIG_SYSCTL_SYSCALL_CHECK=y
-# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FTRACE_NMI_ENTER=y
@@ -5513,19 +5597,13 @@ CONFIG_RING_BUFFER_BENCHMARK=m
CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
CONFIG_TEST_KSTRTOX=m
CONFIG_STRICT_DEVMEM=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_X86_PTDUMP is not set
-CONFIG_DEBUG_RODATA=y
-# CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_SET_MODULE_RONX is not set
-# CONFIG_DEBUG_NX_TEST is not set
CONFIG_DOUBLEFAULT=y
# CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
@@ -5538,10 +5616,7 @@ CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
-# CONFIG_DEBUG_BOOT_PARAMS is not set
-# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
#
# Security options
@@ -5560,6 +5635,11 @@ CONFIG_SECURITY_PATH=y
# CONFIG_SECURITY_SELINUX is not set
# CONFIG_SECURITY_SMACK is not set
CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
CONFIG_SECURITY_APPARMOR=y
CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
# CONFIG_IMA is not set
@@ -5594,6 +5674,7 @@ CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
@@ -5656,6 +5737,7 @@ CONFIG_CRYPTO_AES_NI_INTEL=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
@@ -5705,10 +5787,6 @@ CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
CONFIG_VHOST_NET=m
CONFIG_LGUEST=m
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_RING=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
CONFIG_BINARY_PRINTF=y
#
@@ -5724,6 +5802,7 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
@@ -5743,6 +5822,9 @@ CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
@@ -5756,3 +5838,4 @@ CONFIG_CPU_RMAP=y
CONFIG_NLATTR=y
CONFIG_LRU_CACHE=m
CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
diff --git a/kernels/linux-libre-rt/config.x86_64 b/kernels/linux-libre-rt/config.x86_64
index bc4e8bce5..37cea6fa0 100644
--- a/kernels/linux-libre-rt/config.x86_64
+++ b/kernels/linux-libre-rt/config.x86_64
@@ -1,6 +1,6 @@
#
-# Automatically generated make config: don't edit
-# Linux/x86_64 3.0.0 Kernel Configuration
+# Automatically generated file; DO NOT EDIT.
+# Linux/x86_64 3.2.2 Kernel Configuration
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
@@ -12,6 +12,7 @@ CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
@@ -38,7 +39,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ZONE_DMA32=y
@@ -69,10 +69,10 @@ CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
-# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
-CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_SWAP=y
@@ -101,12 +101,14 @@ CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_FORCED_THREADING=y
-# CONFIG_SPARSE_IRQ is not set
+CONFIG_SPARSE_IRQ=y
#
# RCU Subsystem
#
+# CONFIG_TREE_RCU is not set
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
@@ -132,6 +134,8 @@ CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
CONFIG_NAMESPACES=y
@@ -156,14 +160,14 @@ CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
@@ -180,11 +184,11 @@ CONFIG_HAVE_PERF_EVENTS=y
#
CONFIG_PERF_EVENTS=y
CONFIG_PERF_COUNTERS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
+# CONFIG_SLUB is not set
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_OPROFILE=y
@@ -206,6 +210,7 @@ CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
#
# GCOV-based kernel profiling
@@ -219,11 +224,12 @@ CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
+CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLOCK_COMPAT=y
@@ -235,10 +241,10 @@ CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_CFQ_GROUP_IOSCHED=y
-CONFIG_DEFAULT_DEADLINE=y
-# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
# CONFIG_INLINE_SPIN_TRYLOCK is not set
@@ -276,14 +282,18 @@ CONFIG_FREEZER=y
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
+# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_SMP=y
+CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
# CONFIG_X86_EXTENDED_PLATFORM is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_PARAVIRT_GUEST=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
@@ -291,13 +301,11 @@ CONFIG_XEN_PVHVM=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=128
CONFIG_XEN_SAVE_RESTORE=y
# CONFIG_XEN_DEBUG_FS is not set
-# CONFIG_XEN_DEBUG is not set
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_SPINLOCKS is not set
CONFIG_PARAVIRT_CLOCK=y
-# CONFIG_PARAVIRT_DEBUG is not set
CONFIG_NO_BOOTMEM=y
# CONFIG_MEMTEST is not set
# CONFIG_MK8 is not set
@@ -308,6 +316,7 @@ CONFIG_GENERIC_CPU=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=7
CONFIG_X86_CMPXCHG=y
CONFIG_CMPXCHG_LOCAL=y
+CONFIG_CMPXCHG_DOUBLE=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
@@ -325,12 +334,8 @@ CONFIG_DMI=y
CONFIG_GART_IOMMU=y
CONFIG_CALGARY_IOMMU=y
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
-CONFIG_AMD_IOMMU=y
-# CONFIG_AMD_IOMMU_STATS is not set
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
-CONFIG_IOMMU_API=y
-# CONFIG_MAXSMP is not set
CONFIG_NR_CPUS=64
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
@@ -339,9 +344,10 @@ CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT_LL is not set
+# CONFIG_PREEMPT__LL is not set
# CONFIG_PREEMPT_RTB is not set
CONFIG_PREEMPT_RT_FULL=y
+CONFIG_PREEMPT_COUNT=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
@@ -399,7 +405,8 @@ CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
-CONFIG_HWPOISON_INJECT=m
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_CLEANCACHE=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -410,6 +417,7 @@ CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
CONFIG_EFI=y
CONFIG_SECCOMP=y
CONFIG_CC_STACKPROTECTOR=y
@@ -452,10 +460,10 @@ CONFIG_CAN_PM_TRACE=y
# CONFIG_PM_TRACE_RTC is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
-CONFIG_ACPI_PROCFS_POWER=y
+# CONFIG_ACPI_PROCFS is not set
+# CONFIG_ACPI_PROCFS_POWER is not set
CONFIG_ACPI_EC_DEBUGFS=m
-CONFIG_ACPI_PROC_EVENT=y
+# CONFIG_ACPI_PROC_EVENT is not set
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
@@ -476,11 +484,12 @@ CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=m
CONFIG_ACPI_HOTPLUG_MEMORY=m
CONFIG_ACPI_SBS=m
-CONFIG_ACPI_HED=m
+CONFIG_ACPI_HED=y
CONFIG_ACPI_CUSTOM_METHOD=m
CONFIG_ACPI_APEI=y
-CONFIG_ACPI_APEI_GHES=m
+CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_ACPI_APEI_EINJ=m
CONFIG_ACPI_APEI_ERST_DEBUG=m
CONFIG_SFI=y
@@ -534,10 +543,6 @@ CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_XEN=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_CNB20LE_QUIRK is not set
-CONFIG_DMAR=y
-# CONFIG_DMAR_DEFAULT_ON is not set
-CONFIG_DMAR_FLOPPY_WA=y
-# CONFIG_INTR_REMAP is not set
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=m
CONFIG_PCIEAER=y
@@ -548,11 +553,13 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_PME=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
-# CONFIG_PCI_DEBUG is not set
CONFIG_PCI_STUB=m
CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
CONFIG_PCI_IOAPIC=y
CONFIG_PCI_LABEL=y
CONFIG_ISA_DMA_API=y
@@ -583,14 +590,15 @@ CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m
CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_TSI721=y
CONFIG_RAPIDIO_DISC_TIMEOUT=30
# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_DEBUG=y
CONFIG_RAPIDIO_TSI57X=y
CONFIG_RAPIDIO_CPS_XX=y
CONFIG_RAPIDIO_TSI568=y
CONFIG_RAPIDIO_CPS_GEN2=y
CONFIG_RAPIDIO_TSI500=y
-CONFIG_RAPIDIO_DEBUG=y
#
# Executable file formats / Emulations
@@ -816,6 +824,7 @@ CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
CONFIG_IP_VS=m
# CONFIG_IP_VS_IPV6 is not set
@@ -949,11 +958,6 @@ CONFIG_INET_DCCP_DIAG=m
CONFIG_IP_DCCP_CCID3=y
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
CONFIG_IP_DCCP_TFRC_LIB=y
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
@@ -996,6 +1000,7 @@ CONFIG_IPDDP_DECAP=y
# CONFIG_WAN_ROUTER is not set
CONFIG_PHONET=m
CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
CONFIG_NET_SCHED=y
#
@@ -1204,6 +1209,16 @@ CONFIG_CAIF=m
CONFIG_CAIF_NETDEV=m
CONFIG_CEPH_LIB=m
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_NFC=m
+CONFIG_NFC_NCI=m
+
+#
+# Near Field Communication (NFC) devices
+#
+CONFIG_PN544_NFC=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_WILINK=m
#
# Device Drivers
@@ -1220,15 +1235,19 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
CONFIG_SYS_HYPERVISOR=y
-CONFIG_CONNECTOR=m
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
+CONFIG_REGMAP_SPI=y
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_TESTS=m
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_AR7_PARTS is not set
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_AR7_PARTS=m
#
# User Modules And Translation Layers
@@ -1236,21 +1255,24 @@ CONFIG_MTD_TESTS=m
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
-# CONFIG_MTD_BLOCK_RO is not set
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-CONFIG_SM_FTL=m
-# CONFIG_MTD_OOPS is not set
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
CONFIG_MTD_SWAP=m
#
# RAM/ROM/Flash chip drivers
#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -1261,29 +1283,52 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
CONFIG_MTD_RAM=m
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
#
# Mapping drivers for chip access
#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_TS5500 is not set
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_TS5500=m
+# CONFIG_MTD_SBC_GXX is not set
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_SCB2_FLASH=m
+# CONFIG_MTD_NETtel is not set
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+# CONFIG_MTD_GPIO_ADDR is not set
# CONFIG_MTD_INTEL_VR_NOR is not set
CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
#
# Self-contained MTD device drivers
#
-# CONFIG_MTD_PMC551 is not set
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
-CONFIG_MTD_SST25L=m
-CONFIG_MTD_SLRAM=m
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
CONFIG_MTD_PHRAM=m
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
@@ -1291,16 +1336,37 @@ CONFIG_MTD_PHRAM=m
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_DOCG3=m
CONFIG_MTD_NAND_ECC=m
CONFIG_MTD_NAND_ECC_SMC=y
-# CONFIG_MTD_NAND is not set
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_ALAUDA=m
# CONFIG_MTD_ONENAND is not set
#
# LPDDR flash memory drivers
#
-# CONFIG_MTD_LPDDR is not set
-# CONFIG_MTD_UBI is not set
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
@@ -1328,6 +1394,7 @@ CONFIG_BLK_DEV_DAC960=m
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
@@ -1379,6 +1446,7 @@ CONFIG_TI_DAC7512=m
CONFIG_VMWARE_BALLOON=m
CONFIG_BMP085=m
CONFIG_PCH_PHUB=m
+CONFIG_USB_SWITCH_FSA9480=m
CONFIG_C2PORT=m
CONFIG_C2PORT_DURAMAR_2150=m
@@ -1390,6 +1458,7 @@ CONFIG_EEPROM_AT25=m
CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_93XX46=m
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
CONFIG_CB710_DEBUG_ASSUMPTIONS=y
@@ -1402,73 +1471,13 @@ CONFIG_IWMC3200TOP=m
#
CONFIG_TI_ST=m
CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
CONFIG_HAVE_IDE=y
-CONFIG_IDE=m
-
-#
-# Please see Documentation/ide/ide.txt for help/info on IDE drives
-#
-CONFIG_IDE_XFER_MODE=y
-CONFIG_IDE_TIMINGS=y
-CONFIG_IDE_ATAPI=y
-# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_IDE_GD=m
-CONFIG_IDE_GD_ATA=y
-CONFIG_IDE_GD_ATAPI=y
-CONFIG_BLK_DEV_IDECS=m
-CONFIG_BLK_DEV_DELKIN=m
-CONFIG_BLK_DEV_IDECD=m
-CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
-CONFIG_BLK_DEV_IDETAPE=m
-CONFIG_BLK_DEV_IDEACPI=y
-# CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_PROC_FS=y
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=m
-CONFIG_BLK_DEV_PLATFORM=m
-CONFIG_BLK_DEV_CMD640=m
-# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-CONFIG_BLK_DEV_IDEPNP=m
-CONFIG_BLK_DEV_IDEDMA_SFF=y
-
-#
-# PCI IDE chipsets support
-#
-CONFIG_BLK_DEV_IDEPCI=y
-# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=m
-CONFIG_BLK_DEV_OPTI621=m
-CONFIG_BLK_DEV_RZ1000=m
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-CONFIG_BLK_DEV_AEC62XX=m
-CONFIG_BLK_DEV_ALI15X3=m
-CONFIG_BLK_DEV_AMD74XX=m
-CONFIG_BLK_DEV_ATIIXP=m
-CONFIG_BLK_DEV_CMD64X=m
-CONFIG_BLK_DEV_TRIFLEX=m
-CONFIG_BLK_DEV_CS5520=m
-CONFIG_BLK_DEV_CS5530=m
-CONFIG_BLK_DEV_HPT366=m
-CONFIG_BLK_DEV_JMICRON=m
-CONFIG_BLK_DEV_SC1200=m
-CONFIG_BLK_DEV_PIIX=m
-CONFIG_BLK_DEV_IT8172=m
-CONFIG_BLK_DEV_IT8213=m
-CONFIG_BLK_DEV_IT821X=m
-CONFIG_BLK_DEV_NS87415=m
-CONFIG_BLK_DEV_PDC202XX_OLD=m
-CONFIG_BLK_DEV_PDC202XX_NEW=m
-CONFIG_BLK_DEV_SVWKS=m
-CONFIG_BLK_DEV_SIIMAGE=m
-CONFIG_BLK_DEV_SIS5513=m
-CONFIG_BLK_DEV_SLC90E66=m
-CONFIG_BLK_DEV_TRM290=m
-CONFIG_BLK_DEV_VIA82CXXX=m
-CONFIG_BLK_DEV_TC86C001=m
-CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDE is not set
#
# SCSI device support
@@ -1542,10 +1551,11 @@ CONFIG_SCSI_AIC94XX=m
# CONFIG_AIC94XX_DEBUG is not set
CONFIG_SCSI_MVSAS=m
# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
CONFIG_SCSI_DPT_I2O=m
CONFIG_SCSI_ADVANSYS=m
CONFIG_SCSI_ARCMSR=m
-CONFIG_SCSI_ARCMSR_AER=y
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
@@ -1720,8 +1730,13 @@ CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m
CONFIG_DM_LOG_USERSPACE=m
@@ -1737,8 +1752,8 @@ CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
CONFIG_TCM_PSCSI=m
CONFIG_LOOPBACK_TARGET=m
-# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
CONFIG_TCM_FC=m
+CONFIG_ISCSI_TARGET=m
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_FC=m
@@ -1769,48 +1784,107 @@ CONFIG_I2O_PROC=m
CONFIG_MACINTOSH_DRIVERS=y
CONFIG_MAC_EMUMOUSEBTN=y
CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
-CONFIG_EQUALIZER=m
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
CONFIG_TUN=m
CONFIG_VETH=m
-CONFIG_NET_SB1000=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SUNGEM_PHY=m
# CONFIG_ARCNET is not set
-CONFIG_MII=m
-CONFIG_PHYLIB=m
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
#
-# MII PHY device drivers
+# CAIF transport drivers
#
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MICREL_PHY=m
-# CONFIG_MDIO_BITBANG is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_CAIF_HSI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
CONFIG_VORTEX=m
CONFIG_TYPHOON=m
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_PCNET32=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_DE2104X_DSL=0
@@ -1823,115 +1897,203 @@ CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
-CONFIG_HP100=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_KSZ884X_PCI=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-CONFIG_E100=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
-CONFIG_NE2K_PCI=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-# CONFIG_8139TOO_PIO is not set
-CONFIG_8139TOO_TUNE_TWISTER=y
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R6040=m
-CONFIG_SIS900=m
-CONFIG_EPIC100=m
-CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_VIA_RHINE=m
-# CONFIG_VIA_RHINE_MMIO is not set
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
+CONFIG_NET_VENDOR_DLINK=y
CONFIG_DE600=m
CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_NET_VENDOR_HP=y
+CONFIG_HP100=m
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
CONFIG_E1000=m
CONFIG_E1000E=m
-CONFIG_IP1000=m
CONFIG_IGB=m
CONFIG_IGB_DCA=y
CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_SIS190=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_ZNET=m
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
CONFIG_SKGE=m
# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
CONFIG_SKY2=m
# CONFIG_SKY2_DEBUG is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_DA is not set
-CONFIG_STMMAC_DUAL_MAC=y
-CONFIG_PCH_GBE=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4VF=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGBEVF=m
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
+CONFIG_NET_VENDOR_MELLANOX=y
CONFIG_MLX4_EN=m
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
CONFIG_QLCNIC=m
CONFIG_QLGE=m
-CONFIG_BNA=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_SIS900=m
+CONFIG_SIS190=m
CONFIG_SFC=m
CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DEBUG_FS is not set
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
+CONFIG_TLAN=m
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+# CONFIG_SLIP_COMPRESSED is not set
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
# CONFIG_TR is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
CONFIG_WLAN=y
CONFIG_PCMCIA_RAYCS=m
CONFIG_LIBERTAS_THINFIRM=m
@@ -1971,7 +2133,11 @@ CONFIG_ATH9K_HTC=m
CONFIG_CARL9170=m
CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG is not set
CONFIG_B43=m
+CONFIG_B43_SSB=y
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
CONFIG_B43_PCMCIA=y
@@ -1979,6 +2145,7 @@ CONFIG_B43_SDIO=y
CONFIG_B43_PIO=y
CONFIG_B43_PHY_N=y
CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
CONFIG_B43_LEDS=y
CONFIG_B43_HWRNG=y
# CONFIG_B43_DEBUG is not set
@@ -1993,6 +2160,10 @@ CONFIG_B43LEGACY_PIO=y
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
# CONFIG_B43LEGACY_DMA_MODE is not set
# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+# CONFIG_BRCMDBG is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
@@ -2010,7 +2181,7 @@ CONFIG_IPW2200_QOS=y
# CONFIG_IPW2200_DEBUG is not set
CONFIG_LIBIPW=m
# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLAGN=m
+CONFIG_IWLWIFI=m
#
# Debugging Options
@@ -2018,7 +2189,6 @@ CONFIG_IWLAGN=m
# CONFIG_IWLWIFI_DEBUG is not set
CONFIG_IWLWIFI_DEVICE_TRACING=y
CONFIG_IWLWIFI_DEVICE_SVTOOL=y
-CONFIG_IWL_P2P=y
CONFIG_IWLWIFI_LEGACY=m
#
@@ -2079,6 +2249,7 @@ CONFIG_RT2X00_LIB_LEDS=y
# CONFIG_RT2X00_DEBUG is not set
CONFIG_RTL8192CE=m
CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
CONFIG_RTL8192C_COMMON=m
@@ -2087,7 +2258,6 @@ CONFIG_WL1251_SPI=m
CONFIG_WL1251_SDIO=m
CONFIG_WL12XX_MENU=m
CONFIG_WL12XX=m
-CONFIG_WL12XX_HT=y
CONFIG_WL12XX_SPI=m
CONFIG_WL12XX_SDIO=m
CONFIG_WL12XX_SDIO_TEST=m
@@ -2096,6 +2266,7 @@ CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
#
# WiMAX Wireless Broadband devices
@@ -2105,121 +2276,9 @@ CONFIG_WIMAX_I2400M_USB=m
CONFIG_WIMAX_I2400M_SDIO=m
# CONFIG_WIMAX_IWMC3200_SDIO is not set
CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
# CONFIG_WAN is not set
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-# CONFIG_ATM_FORE200E_USE_TASKLET is not set
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-# CONFIG_ATM_HE_USE_SUNI is not set
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-
-#
-# CAIF transport drivers
-#
-CONFIG_CAIF_TTY=m
-CONFIG_CAIF_SPI_SLAVE=m
-CONFIG_CAIF_SPI_SYNC=y
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_NETDEV_BACKEND=m
-CONFIG_RIONET=m
-CONFIG_RIONET_TX_SIZE=128
-CONFIG_RIONET_RX_SIZE=128
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-CONFIG_PLIP=m
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-# CONFIG_SLIP_COMPRESSED is not set
-CONFIG_SLHC=m
-# CONFIG_SLIP_SMART is not set
-# CONFIG_SLIP_MODE_SLIP6 is not set
-# CONFIG_NET_FC is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-CONFIG_VIRTIO_NET=m
CONFIG_VMXNET3=m
CONFIG_ISDN=y
CONFIG_ISDN_I4L=m
@@ -2498,6 +2557,7 @@ CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_TSC2005=m
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_PCAP=m
@@ -2508,12 +2568,17 @@ CONFIG_INPUT_AB8500_PONKEY=m
CONFIG_INPUT_AD714X=m
CONFIG_INPUT_AD714X_I2C=m
CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_BMA150=m
CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_MC13783_PWRBUTTON=m
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_APANEL=m
CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_YEALINK=m
CONFIG_INPUT_CM109=m
@@ -2555,6 +2620,7 @@ CONFIG_GAMEPORT_FM801=m
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
@@ -2701,6 +2767,7 @@ CONFIG_I2C_SCMI=m
#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
+CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_INTEL_MID=m
CONFIG_I2C_OCORES=m
@@ -2727,7 +2794,6 @@ CONFIG_I2C_TINY_USB=m
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
#
@@ -2763,6 +2829,7 @@ CONFIG_PPS=m
CONFIG_PPS_CLIENT_KTIMER=m
CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
#
# PPS generators support
@@ -2775,15 +2842,14 @@ CONFIG_PTP_1588_CLOCK=m
CONFIG_DP83640_PHY=m
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
-# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=m
CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers:
#
-CONFIG_GPIO_BASIC_MMIO_CORE=m
-CONFIG_GPIO_BASIC_MMIO=m
+CONFIG_GPIO_GENERIC_PLATFORM=m
CONFIG_GPIO_IT8761E=m
CONFIG_GPIO_SCH=m
CONFIG_GPIO_VX855=m
@@ -2795,6 +2861,7 @@ CONFIG_GPIO_MAX7300=m
CONFIG_GPIO_MAX732X=m
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_TPS65912=m
CONFIG_GPIO_WM831X=m
CONFIG_GPIO_ADP5588=m
@@ -2878,6 +2945,7 @@ CONFIG_HWMON_VID=m
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
CONFIG_SENSORS_ADCXX=m
@@ -2929,26 +2997,32 @@ CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_LM93=m
CONFIG_SENSORS_LTC4151=m
CONFIG_SENSORS_LTC4215=m
-# CONFIG_SENSORS_LTC4245 is not set
+CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4261=m
CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
CONFIG_SENSORS_MAX1111=m
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX6639=m
CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_MAX16064=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_UCD9000=m
CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
CONFIG_SENSORS_SHT15=m
CONFIG_SENSORS_SHT21=m
CONFIG_SENSORS_SIS5595=m
@@ -2960,7 +3034,9 @@ CONFIG_SENSORS_EMC6W201=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
CONFIG_SENSORS_ADS1015=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
@@ -2995,6 +3071,7 @@ CONFIG_SENSORS_ATK0110=m
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
@@ -3072,11 +3149,11 @@ CONFIG_BCMA_POSSIBLE=y
#
# Broadcom specific AMBA
#
-CONFIG_BCMA=m
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-# CONFIG_BCMA_DEBUG is not set
-CONFIG_MFD_SUPPORT=y
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
CONFIG_MFD_CORE=y
CONFIG_MFD_SM501=m
CONFIG_MFD_SM501_GPIO=y
@@ -3085,6 +3162,8 @@ CONFIG_UCB1400_CORE=m
CONFIG_TPS6105X=m
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
+CONFIG_MFD_TPS65912=y
+CONFIG_MFD_TPS65912_SPI=y
# CONFIG_MFD_TMIO is not set
CONFIG_MFD_WM8400=m
CONFIG_MFD_WM831X=y
@@ -3112,6 +3191,7 @@ CONFIG_REGULATOR_DUMMY=y
CONFIG_REGULATOR_FIXED_VOLTAGE=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_BQ24022=m
CONFIG_REGULATOR_MAX1586=m
CONFIG_REGULATOR_MAX8649=m
@@ -3129,6 +3209,7 @@ CONFIG_REGULATOR_MC13892=m
CONFIG_REGULATOR_TPS6105X=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_TPS65912=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_AD5398=m
CONFIG_REGULATOR_AB8500=y
@@ -3143,6 +3224,7 @@ CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2_COMMON=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
CONFIG_VIDEO_MEDIA=m
#
@@ -3159,7 +3241,9 @@ CONFIG_IR_RC6_DECODER=m
CONFIG_IR_JVC_DECODER=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_LIRC_CODEC=m
+CONFIG_RC_ATI_REMOTE=m
CONFIG_IR_ENE=m
CONFIG_IR_IMON=m
CONFIG_IR_MCEUSB=m
@@ -3187,6 +3271,7 @@ CONFIG_MEDIA_TUNER_MT2131=m
CONFIG_MEDIA_TUNER_QT1010=m
CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
CONFIG_MEDIA_TUNER_MXL5005S=m
CONFIG_MEDIA_TUNER_MXL5007T=m
CONFIG_MEDIA_TUNER_MC44S803=m
@@ -3205,6 +3290,7 @@ CONFIG_VIDEO_TUNER=m
CONFIG_V4L2_MEM2MEM_DEV=m
CONFIG_VIDEOBUF2_CORE=m
CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
@@ -3278,9 +3364,20 @@ CONFIG_VIDEO_AK881X=m
# Camera sensor devices
#
CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9P031=m
+CONFIG_VIDEO_MT9T001=m
CONFIG_VIDEO_MT9V011=m
CONFIG_VIDEO_MT9V032=m
CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_S5K6AA=m
+
+#
+# Flash devices
+#
+CONFIG_VIDEO_ADP1653=m
#
# Video improvement chips
@@ -3325,6 +3422,8 @@ CONFIG_VIDEO_CX88_MPEG=m
CONFIG_VIDEO_CX88_VP3054=m
CONFIG_VIDEO_CX23885=m
CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
CONFIG_VIDEO_AU0828=m
CONFIG_VIDEO_IVTV=m
CONFIG_VIDEO_FB_IVTV=m
@@ -3332,10 +3431,7 @@ CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_SAA7164=m
CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_VIA_CAMERA=m
-CONFIG_VIDEO_NOON010PC30=m
-CONFIG_VIDEO_M5MOLS=m
CONFIG_SOC_CAMERA=m
CONFIG_SOC_CAMERA_IMX074=m
CONFIG_SOC_CAMERA_MT9M001=m
@@ -3347,6 +3443,7 @@ CONFIG_SOC_CAMERA_RJ54N1=m
CONFIG_SOC_CAMERA_TW9910=m
CONFIG_SOC_CAMERA_PLATFORM=m
CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV5642=m
CONFIG_SOC_CAMERA_OV6650=m
CONFIG_SOC_CAMERA_OV772X=m
CONFIG_SOC_CAMERA_OV9640=m
@@ -3375,6 +3472,7 @@ CONFIG_USB_GSPCA_OV534_9=m
CONFIG_USB_GSPCA_PAC207=m
CONFIG_USB_GSPCA_PAC7302=m
CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
CONFIG_USB_GSPCA_SN9C2028=m
CONFIG_USB_GSPCA_SN9C20X=m
CONFIG_USB_GSPCA_SONIXB=m
@@ -3393,6 +3491,7 @@ CONFIG_USB_GSPCA_STK014=m
CONFIG_USB_GSPCA_STV0680=m
CONFIG_USB_GSPCA_SUNPLUS=m
CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
@@ -3406,11 +3505,15 @@ CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=y
CONFIG_VIDEO_TLG2300=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_RC=y
CONFIG_VIDEO_CX231XX_ALSA=m
CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_USBVISION=m
CONFIG_USB_ET61X251=m
CONFIG_USB_SN9C102=m
@@ -3482,6 +3585,7 @@ CONFIG_DVB_USB_DTT200U=m
CONFIG_DVB_USB_OPERA1=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
CONFIG_DVB_USB_DW2102=m
CONFIG_DVB_USB_CINERGY_T2=m
CONFIG_DVB_USB_ANYSEE=m
@@ -3493,6 +3597,8 @@ CONFIG_DVB_USB_EC168=m
CONFIG_DVB_USB_AZ6027=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_IT913X=m
+CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_SMS_SIANO_MDTV=m
@@ -3550,6 +3656,11 @@ CONFIG_DVB_HOPPER=m
CONFIG_DVB_NGENE=m
#
+# Supported ddbridge ('Octopus') Adapters
+#
+CONFIG_DVB_DDBRIDGE=m
+
+#
# Supported DVB Frontends
#
# CONFIG_DVB_FE_CUSTOMISE is not set
@@ -3563,6 +3674,12 @@ CONFIG_DVB_STV090x=m
CONFIG_DVB_STV6110x=m
#
+# Multistandard (cable + terrestrial) frontends
+#
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_TDA18271C2DD=m
+
+#
# DVB-S (satellite) frontends
#
CONFIG_DVB_CX24110=m
@@ -3588,6 +3705,7 @@ CONFIG_DVB_CX24116=m
CONFIG_DVB_SI21XX=m
CONFIG_DVB_DS3000=m
CONFIG_DVB_MB86A16=m
+CONFIG_DVB_TDA10071=m
#
# DVB-T (terrestrial) frontends
@@ -3651,13 +3769,16 @@ CONFIG_DVB_TUNER_DIB0090=m
# SEC control devices for DVB-S
#
CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
CONFIG_DVB_ISL6405=m
CONFIG_DVB_ISL6421=m
CONFIG_DVB_ISL6423=m
+CONFIG_DVB_A8293=m
CONFIG_DVB_LGS8GXX=m
CONFIG_DVB_ATBM8830=m
CONFIG_DVB_TDA665x=m
CONFIG_DVB_IX2505V=m
+CONFIG_DVB_IT913X_FE=m
#
# Tools to develop new frontends
@@ -3688,6 +3809,7 @@ CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
CONFIG_STUB_POULSBO=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -3777,6 +3899,7 @@ CONFIG_FB_TRIDENT=m
# CONFIG_FB_GEODE is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_SM501 is not set
+CONFIG_FB_SMSCUFX=m
CONFIG_FB_UDL=m
# CONFIG_FB_VIRTUAL is not set
CONFIG_XEN_FBDEV_FRONTEND=m
@@ -3794,6 +3917,7 @@ CONFIG_LCD_VGG2432A4=m
CONFIG_LCD_PLATFORM=m
CONFIG_LCD_S6E63M0=m
CONFIG_LCD_LD9040=m
+CONFIG_LCD_AMS369FG06=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_PROGEAR=m
@@ -3883,6 +4007,7 @@ CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_SB_COMMON=m
CONFIG_SND_SB16_DSP=m
+CONFIG_SND_TEA575X=m
CONFIG_SND_PCI=y
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
@@ -3932,8 +4057,8 @@ CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968_RADIO=y
CONFIG_SND_FM801=m
CONFIG_SND_FM801_TEA575X_BOOL=y
-CONFIG_SND_TEA575X=m
CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PREALLOC_SIZE=4096
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
@@ -3941,6 +4066,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=1
CONFIG_SND_HDA_INPUT_JACK=y
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
@@ -3948,6 +4074,7 @@ CONFIG_SND_HDA_CODEC_HDMI=y
CONFIG_SND_HDA_CODEC_CIRRUS=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
@@ -4016,7 +4143,7 @@ CONFIG_USB_HIDDEV=y
#
CONFIG_HID_A4TECH=m
CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=m
+CONFIG_HID_ACRUX_FF=y
CONFIG_HID_APPLE=m
CONFIG_HID_BELKIN=m
CONFIG_HID_CHERRY=m
@@ -4028,6 +4155,8 @@ CONFIG_DRAGONRISE_FF=y
CONFIG_HID_EMS_FF=m
CONFIG_HID_ELECOM=m
CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HOLTEK_FF=y
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
CONFIG_HID_UCLOGIC=m
@@ -4037,10 +4166,11 @@ CONFIG_HID_TWINHAN=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWII_FF=y
+CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
@@ -4055,6 +4185,7 @@ CONFIG_HID_PICOLCD_FB=y
CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
CONFIG_HID_QUANTA=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_ROCCAT_COMMON=m
@@ -4065,6 +4196,7 @@ CONFIG_HID_ROCCAT_KOVAPLUS=m
CONFIG_HID_ROCCAT_PYRA=m
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_GREENASIA=m
CONFIG_GREENASIA_FF=y
@@ -4075,13 +4207,16 @@ CONFIG_HID_THRUSTMASTER=m
CONFIG_THRUSTMASTER_FF=y
CONFIG_HID_WACOM=m
CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_WIIMOTE=m
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=m
CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=m
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -4091,9 +4226,11 @@ CONFIG_USB=m
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -4123,8 +4260,10 @@ CONFIG_USB_SL811_HCD=m
# CONFIG_USB_SL811_HCD_ISO is not set
CONFIG_USB_SL811_CS=m
CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RENESAS_USBHS_HCD=m
CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
+CONFIG_USB_RENESAS_USBHS=m
#
# USB Device Class drivers
@@ -4144,6 +4283,7 @@ CONFIG_USB_TMC=m
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
CONFIG_USB_STORAGE_DATAFAB=m
CONFIG_USB_STORAGE_FREECOM=m
CONFIG_USB_STORAGE_ISD200=m
@@ -4266,24 +4406,23 @@ CONFIG_USB_CXACRU=m
CONFIG_USB_UEAGLEATM=m
CONFIG_USB_XUSBATM=m
CONFIG_USB_GADGET=m
-# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_SELECTED=y
-# CONFIG_USB_GADGET_FUSB300 is not set
-# CONFIG_USB_GADGET_R8A66597 is not set
-# CONFIG_USB_GADGET_PXA_U2O is not set
-# CONFIG_USB_GADGET_M66592 is not set
-# CONFIG_USB_GADGET_AMD5536UDC is not set
-# CONFIG_USB_GADGET_CI13XXX_PCI is not set
-CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_R8A66597=m
+CONFIG_USB_GADGET_DWC3=m
+CONFIG_USB_M66592=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_CI13XXX_PCI=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
CONFIG_USB_NET2280=m
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGET_LANGWELL is not set
-# CONFIG_USB_GADGET_EG20T is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GOKU=m
+CONFIG_USB_EG20T=m
+CONFIG_USB_DUMMY_HCD=m
CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_GADGET_SUPERSPEED=y
# CONFIG_USB_ZERO is not set
CONFIG_USB_AUDIO=m
CONFIG_USB_ETH=m
@@ -4303,6 +4442,7 @@ CONFIG_USB_MIDI_GADGET=m
CONFIG_USB_G_PRINTER=m
# CONFIG_USB_CDC_COMPOSITE is not set
# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_ACM_MS is not set
# CONFIG_USB_G_MULTI is not set
CONFIG_USB_G_HID=m
CONFIG_USB_G_DBGP=m
@@ -4373,11 +4513,9 @@ CONFIG_LEDS_CLASS=y
#
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_NET5501=m
-# CONFIG_LEDS_ALIX2 is not set
CONFIG_LEDS_PCA9532=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_GPIO_PLATFORM=y
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
@@ -4397,7 +4535,6 @@ CONFIG_LEDS_TRIGGERS=y
# LED Triggers
#
CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_IDE_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_GPIO=m
@@ -4406,8 +4543,6 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
#
# iptables trigger is under Netfilter config (LED target)
#
-CONFIG_NFC_DEVICES=y
-CONFIG_PN544_NFC=m
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
# CONFIG_INFINIBAND is not set
@@ -4420,7 +4555,6 @@ CONFIG_EDAC=y
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_MCE_INJ=m
CONFIG_EDAC_MM_EDAC=m
-CONFIG_EDAC_MCE=y
CONFIG_EDAC_AMD64=m
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
CONFIG_EDAC_E752X=m
@@ -4433,6 +4567,7 @@ CONFIG_EDAC_I7CORE=m
CONFIG_EDAC_I5000=m
CONFIG_EDAC_I5100=m
CONFIG_EDAC_I7300=m
+CONFIG_EDAC_SBRIDGE=m
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
@@ -4543,11 +4678,22 @@ CONFIG_UIO_AEC=m
CONFIG_UIO_SERCOS3=m
CONFIG_UIO_PCI_GENERIC=m
CONFIG_UIO_NETX=m
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
#
# Xen driver support
#
CONFIG_XEN_BALLOON=y
+# CONFIG_XEN_SELFBALLOONING is not set
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
@@ -4557,32 +4703,12 @@ CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_XENBUS_FRONTEND=m
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_GRANT_DEV_ALLOC=m
-CONFIG_XEN_PLATFORM_PCI=m
CONFIG_SWIOTLB_XEN=y
+CONFIG_XEN_TMEM=y
+CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_STAGING=y
-# CONFIG_DIGIEPCA is not set
-# CONFIG_RISCOM8 is not set
-# CONFIG_SPECIALIX is not set
-# CONFIG_COMPUTONE is not set
CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
CONFIG_SLICOSS=m
-CONFIG_VIDEO_GO7007=m
-CONFIG_VIDEO_GO7007_USB=m
-# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
-CONFIG_VIDEO_GO7007_OV7640=m
-CONFIG_VIDEO_GO7007_SAA7113=m
-CONFIG_VIDEO_GO7007_SAA7115=m
-CONFIG_VIDEO_GO7007_TW9903=m
-CONFIG_VIDEO_GO7007_UDA1342=m
-CONFIG_VIDEO_GO7007_SONY_TUNER=m
-CONFIG_VIDEO_GO7007_TW2804=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-CONFIG_DVB_CXD2099=m
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_HOST=m
@@ -4590,10 +4716,6 @@ CONFIG_USBIP_HOST=m
CONFIG_W35UND=m
CONFIG_PRISM2_USB=m
CONFIG_ECHO=m
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-# CONFIG_BRCMFMAC is not set
-# CONFIG_BRCMDBG is not set
CONFIG_COMEDI=m
# CONFIG_COMEDI_DEBUG is not set
CONFIG_COMEDI_MISC_DRIVERS=m
@@ -4634,6 +4756,7 @@ CONFIG_COMEDI_AMPLC_PCI224=m
CONFIG_COMEDI_AMPLC_PCI230=m
CONFIG_COMEDI_CONTEC_PCI_DIO=m
CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
CONFIG_COMEDI_UNIOXX5=m
CONFIG_COMEDI_GSC_HPDI=m
CONFIG_COMEDI_ICP_MULTI=m
@@ -4671,6 +4794,7 @@ CONFIG_COMEDI_USB_DRIVERS=m
CONFIG_COMEDI_DT9812=m
CONFIG_COMEDI_USBDUX=m
CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
CONFIG_COMEDI_VMK80XX=m
CONFIG_COMEDI_NI_COMMON=m
CONFIG_COMEDI_MITE=m
@@ -4688,10 +4812,11 @@ CONFIG_R8712U=m
CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
+CONFIG_RTS5139=m
+# CONFIG_RTS5139_DEBUG is not set
# CONFIG_TRANZPORT is not set
CONFIG_POHMELFS=m
# CONFIG_POHMELFS_DEBUG is not set
-CONFIG_POHMELFS_CRYPTO=y
CONFIG_IDE_PHISON=m
CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DEBUG is not set
@@ -4700,7 +4825,6 @@ CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DUMP_PCM is not set
# CONFIG_LINE6_USB_RAW is not set
# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
-CONFIG_DRM_VMWGFX=m
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU_DEBUG=y
@@ -4714,11 +4838,8 @@ CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_USB_SERIAL_QUATECH_USB2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
-CONFIG_HYPERV=m
CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_BLOCK=m
CONFIG_HYPERV_NET=m
-CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_MOUSE=m
# CONFIG_VME_BUS is not set
CONFIG_DX_SEP=m
@@ -4730,46 +4851,9 @@ CONFIG_ZCACHE=m
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
-CONFIG_VIDEO_DT3155=m
-CONFIG_DT3155_CCIR=y
CONFIG_CRYSTALHD=m
CONFIG_FB_XGI=m
-CONFIG_LIRC_STAGING=y
-CONFIG_LIRC_BT829=m
-CONFIG_LIRC_IGORPLUGUSB=m
-CONFIG_LIRC_IMON=m
-CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
-CONFIG_LIRC_SERIAL=m
-CONFIG_LIRC_SERIAL_TRANSMITTER=y
-CONFIG_LIRC_SIR=m
-CONFIG_LIRC_TTUSBIR=m
-CONFIG_LIRC_ZILOG=m
-CONFIG_EASYCAP=m
-CONFIG_EASYCAP_SND=y
-# CONFIG_EASYCAP_OSS is not set
-# CONFIG_EASYCAP_DEBUG is not set
-CONFIG_SOLO6X10=m
CONFIG_ACPI_QUICKSTART=m
-CONFIG_MACH_NO_WESTBRIDGE=y
-CONFIG_ATH6K_LEGACY=m
-CONFIG_AR600x_SD31_XXX=y
-# CONFIG_AR600x_WB31_XXX is not set
-# CONFIG_AR600x_SD32_XXX is not set
-# CONFIG_AR600x_CUSTOM_XXX is not set
-CONFIG_ATH6KL_ENABLE_COEXISTENCE=y
-CONFIG_AR600x_DUAL_ANTENNA=y
-# CONFIG_AR600x_SINGLE_ANTENNA is not set
-# CONFIG_AR600x_BT_QCOM is not set
-# CONFIG_AR600x_BT_CSR is not set
-CONFIG_AR600x_BT_AR3001=y
-CONFIG_ATH6KL_HCI_BRIDGE=y
-CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET=y
-CONFIG_AR600x_BT_RESET_PIN=22
-CONFIG_ATH6KL_HTC_RAW_INTERFACE=y
-CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
-CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK=y
-# CONFIG_ATH6KL_DEBUG is not set
CONFIG_USB_ENESTORAGE=m
CONFIG_BCM_WIMAX=m
CONFIG_FT1000=m
@@ -4798,12 +4882,40 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_DRM_PSB=m
-
-#
-# Altera FPGA firmware download module
-#
-CONFIG_ALTERA_STAPL=m
+CONFIG_DRM_PSB_MRST=y
+CONFIG_DRM_PSB_MFLD=y
+CONFIG_DRM_PSB_CDV=y
CONFIG_INTEL_MEI=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_DVB_AS102=m
+CONFIG_DVB_CXD2099=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_DT3155_STREAMING=y
+CONFIG_EASYCAP=m
+# CONFIG_EASYCAP_DEBUG is not set
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_SOLO6X10=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -4847,6 +4959,27 @@ CONFIG_XO15_EBOOK=m
CONFIG_SAMSUNG_LAPTOP=m
CONFIG_MXM_WMI=m
CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_AMD_IOMMU=y
+# CONFIG_AMD_IOMMU_STATS is not set
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_IRQ_REMAP=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+# CONFIG_PM_DEVFREQ is not set
#
# Firmware Drivers
@@ -5003,16 +5136,24 @@ CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_XATTR=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
CONFIG_LOGFS=m
CONFIG_CRAMFS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
+CONFIG_MINIX_FS=m
CONFIG_OMFS_FS=m
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
@@ -5024,6 +5165,7 @@ CONFIG_UFS_FS=m
# CONFIG_UFS_DEBUG is not set
CONFIG_EXOFS_FS=m
# CONFIG_EXOFS_DEBUG is not set
+CONFIG_ORE=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
@@ -5035,7 +5177,6 @@ CONFIG_NFS_FSCACHE=y
CONFIG_NFS_USE_KERNEL_DNS=y
# CONFIG_NFS_USE_NEW_IDMAPPER is not set
CONFIG_NFSD=m
-# CONFIG_NFSD_DEPRECATED is not set
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
@@ -5087,7 +5228,7 @@ CONFIG_PARTITION_ADVANCED=y
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
-# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_LDM_PARTITION=y
@@ -5151,68 +5292,24 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=2048
CONFIG_MAGIC_SYSRQ=y
+# CONFIG_MAGIC_SYSRQ_FORCE_PRINTK is not set
CONFIG_STRIP_ASM_SYMS=y
CONFIG_UNUSED_SYMBOLS=y
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_DEBUG_KERNEL=y
-CONFIG_LOCKUP_DETECTOR=y
-CONFIG_HARDLOCKUP_DETECTOR=y
-# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_PREEMPT is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_DEBUG_MUTEXES=y
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_VIRTUAL is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
CONFIG_DEBUG_MEMORY_INIT=y
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_FRAME_POINTER=y
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_VERBOSE is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
CONFIG_LKDTM=m
-CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
CONFIG_SYSCTL_SYSCALL_CHECK=y
-# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FTRACE_NMI_ENTER=y
@@ -5262,20 +5359,13 @@ CONFIG_RING_BUFFER_BENCHMARK=m
CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
CONFIG_TEST_KSTRTOX=m
CONFIG_STRICT_DEVMEM=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_X86_PTDUMP is not set
-CONFIG_DEBUG_RODATA=y
-# CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_SET_MODULE_RONX is not set
-# CONFIG_DEBUG_NX_TEST is not set
-# CONFIG_IOMMU_DEBUG is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
@@ -5287,10 +5377,7 @@ CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
-# CONFIG_DEBUG_BOOT_PARAMS is not set
-# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
#
# Security options
@@ -5309,6 +5396,11 @@ CONFIG_SECURITY_PATH=y
# CONFIG_SECURITY_SELINUX is not set
# CONFIG_SECURITY_SMACK is not set
CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
CONFIG_SECURITY_APPARMOR=y
CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
# CONFIG_IMA is not set
@@ -5343,6 +5435,7 @@ CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
@@ -5391,6 +5484,7 @@ CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA1_SSSE3=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TGR192=m
@@ -5406,6 +5500,8 @@ CONFIG_CRYPTO_AES_NI_INTEL=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
@@ -5420,6 +5516,7 @@ CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
#
# Compression
@@ -5439,8 +5536,6 @@ CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_EVENTFD=y
@@ -5453,10 +5548,6 @@ CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
CONFIG_VHOST_NET=m
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_RING=m
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
CONFIG_BINARY_PRINTF=y
#
@@ -5472,6 +5563,7 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_LZO_COMPRESS=y
@@ -5490,6 +5582,9 @@ CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
@@ -5503,3 +5598,4 @@ CONFIG_CPU_RMAP=y
CONFIG_NLATTR=y
CONFIG_LRU_CACHE=m
CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
diff --git a/kernels/linux-libre-rt/i915-fix-ghost-tv-output.patch b/kernels/linux-libre-rt/i915-fix-ghost-tv-output.patch
new file mode 100644
index 000000000..3b631361a
--- /dev/null
+++ b/kernels/linux-libre-rt/i915-fix-ghost-tv-output.patch
@@ -0,0 +1,26 @@
+Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
+Tested-by: Santi <santi@agolina.net>
+---
+ drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
+index dc83b7a..c8f67bf 100644
+--- a/drivers/gpu/drm/i915/intel_tv.c
++++ b/drivers/gpu/drm/i915/intel_tv.c
+@@ -1267,6 +1267,15 @@
+ DAC_B_0_7_V |
+ DAC_C_0_7_V);
+
++ /*
++ * The TV sense state should be cleared to zero on cantiga platform. Otherwise
++ * the TV is misdetected. This is hardware requirement.
++ */
++ if (IS_GM45(dev))
++ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
++ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
++
++
+ I915_WRITE(TV_CTL, tv_ctl);
+ I915_WRITE(TV_DAC, tv_dac);
+ POSTING_READ(TV_DAC);
diff --git a/kernels/linux-libre-rt/i915-gpu-finish.patch b/kernels/linux-libre-rt/i915-gpu-finish.patch
new file mode 100644
index 000000000..5840c9181
--- /dev/null
+++ b/kernels/linux-libre-rt/i915-gpu-finish.patch
@@ -0,0 +1,55 @@
+commit 389a55581e30607af0fcde6cdb4e54f189cf46cf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 29 15:12:16 2011 +0000
+
+ drm/i915: Only clear the GPU domains upon a successful finish
+
+ By clearing the GPU read domains before waiting upon the buffer, we run
+ the risk of the wait being interrupted and the domains prematurely
+ cleared. The next time we attempt to wait upon the buffer (after
+ userspace handles the signal), we believe that the buffer is idle and so
+ skip the wait.
+
+ There are a number of bugs across all generations which show signs of an
+ overly haste reuse of active buffers.
+
+ Such as:
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=29046
+ https://bugs.freedesktop.org/show_bug.cgi?id=35863
+ https://bugs.freedesktop.org/show_bug.cgi?id=38952
+ https://bugs.freedesktop.org/show_bug.cgi?id=40282
+ https://bugs.freedesktop.org/show_bug.cgi?id=41098
+ https://bugs.freedesktop.org/show_bug.cgi?id=41102
+ https://bugs.freedesktop.org/show_bug.cgi?id=41284
+ https://bugs.freedesktop.org/show_bug.cgi?id=42141
+
+ A couple of those pre-date i915_gem_object_finish_gpu(), so may be
+ unrelated (such as a wild write from a userspace command buffer), but
+ this does look like a convincing cause for most of those bugs.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+ Cc: stable@kernel.org
+ Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+ Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
+
+diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
+index d560175..036bc58 100644
+--- a/drivers/gpu/drm/i915/i915_gem.c
++++ b/drivers/gpu/drm/i915/i915_gem.c
+@@ -3087,10 +3087,13 @@ i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj)
+ return ret;
+ }
+
++ ret = i915_gem_object_wait_rendering(obj);
++ if (ret)
++ return ret;
++
+ /* Ensure that we invalidate the GPU's caches and TLBs. */
+ obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS;
+-
+- return i915_gem_object_wait_rendering(obj);
++ return 0;
+ }
+
+ /**
diff --git a/kernels/linux-libre-rt/linux-libre-rt.install b/kernels/linux-libre-rt/linux-libre-rt.install
index 6f7ae815a..5c40a32e9 100644
--- a/kernels/linux-libre-rt/linux-libre-rt.install
+++ b/kernels/linux-libre-rt/linux-libre-rt.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=
-KERNEL_VERSION=3.0-LIBRE
+KERNEL_VERSION=3.2.2-LIBRE
post_install () {
# updating module dependencies
diff --git a/kernels/linux-libre-xen/PKGBUILD b/kernels/linux-libre-xen/PKGBUILD
index 94fd22800..c84aa9217 100644
--- a/kernels/linux-libre-xen/PKGBUILD
+++ b/kernels/linux-libre-xen/PKGBUILD
@@ -1,15 +1,16 @@
-# $Id: PKGBUILD 130991 2011-07-09 12:23:51Z thomas $
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
-# Maintainer (Parabola): Nicolás Reynolds <fauno@kiwwwi.com.ar>
-# Maintainer (Parabola): Sorin-Mihai Vârgolici <smv@yobicore.org>
+# Maintainer: Si Feng <sci.feng at gmail.com>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+# Contributor (Parabola): Nicolás Reynolds <fauno@kiwwwi.com.ar>
+# Contributor (Parabola): Sorin-Mihai Vârgolici <smv@yobicore.org>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgbase=linux-libre-xen
pkgname=('linux-libre-xen' 'linux-libre-xen-headers' 'linux-libre-xen-docs') # Build stock -LIBRE kernel
# pkgname=linux-custom # Build kernel with a different name
_kernelname=${pkgname#linux-libre}
-_basekernel=3.1
-pkgver=${_basekernel}.5
+_basekernel=3.2
+pkgver=${_basekernel}.7
pkgrel=1
arch=('i686' 'x86_64')
url="http://linux-libre.fsfla.org/"
@@ -25,8 +26,16 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-li
'boot-logo.patch'
'change-default-console-loglevel.patch'
'i915-fix-ghost-tv-output.patch'
- 'i915-fix-incorrect-error-message.patch'
- 'usb-add-reset-resume-quirk-for-several-webcams.patch')
+ 'i915-gpu-finish.patch')
+md5sums=('27c641c4f6785fc647cdd3e44963a55c'
+ '37a0fdc7ad19c9489faf09925b4fae5b'
+ 'a56e949b6c872d0d40ee3fd6969e0352'
+ '6685fcb15d021dff6e02667c60113577'
+ '67463f7a6e88305d7cd14a430e9efe92'
+ '04b21c79df0a952c22d681dd4f4562df'
+ '9d3c56a4b999c8bfbd4018089a62f662'
+ '263725f20c0b9eb9c353040792d644e5'
+ '4cd79aa147825837dc8bc9f6b736c0a0')
build() {
cd "${srcdir}/linux-${_basekernel}"
@@ -36,6 +45,10 @@ build() {
# Add freedo as boot logo
patch -Np1 -i "${srcdir}/boot-logo.patch"
+ # fix FS#27883
+ # drm/i915: Only clear the GPU domains upon a successful finish
+ patch -Np1 -i "${srcdir}/i915-gpu-finish.patch"
+
# Some chips detect a ghost TV output
# mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html
# Arch Linux bug report: FS#19234
@@ -45,15 +58,6 @@ build() {
# needed.
patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch"
- # In 3.1.1, a DRM_DEBUG message is falsely declared as DRM_ERROR. This
- # worries users, as this message is displayed even at loglevel 4. Fix
- # this.
- patch -Np1 -i "${srcdir}/i915-fix-incorrect-error-message.patch"
-
- # Add the USB_QUIRK_RESET_RESUME for several webcams
- # FS#26528
- patch -Np1 -i "${srcdir}/usb-add-reset-resume-quirk-for-several-webcams.patch"
-
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
diff --git a/kernels/linux-libre-xen/config.i686 b/kernels/linux-libre-xen/config.i686
index 6762f896e..0e11985ee 100644
--- a/kernels/linux-libre-xen/config.i686
+++ b/kernels/linux-libre-xen/config.i686
@@ -1,6 +1,6 @@
#
-# Automatically generated make config: don't edit
-# Linux/i386 3.0.0 Kernel Configuration
+# Automatically generated file; DO NOT EDIT.
+# Linux/i386 3.2.7-libre Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -37,7 +37,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
@@ -100,20 +99,20 @@ CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_FORCED_THREADING=y
-# CONFIG_SPARSE_IRQ is not set
+CONFIG_SPARSE_IRQ=y
#
# RCU Subsystem
#
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set
-# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_BOOST is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=19
@@ -132,6 +131,7 @@ CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
@@ -157,7 +157,7 @@ CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_HOTPLUG=y
@@ -165,6 +165,7 @@ CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
@@ -211,6 +212,7 @@ CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
#
# GCOV-based kernel profiling
@@ -224,12 +226,13 @@ CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
+CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_LBDAF=y
CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLK_DEV_THROTTLING=y
@@ -252,27 +255,27 @@ CONFIG_PADATA=y
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK is not set
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_TRYLOCK is not set
# CONFIG_INLINE_READ_LOCK is not set
# CONFIG_INLINE_READ_LOCK_BH is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
-CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK is not set
# CONFIG_INLINE_READ_UNLOCK_BH is not set
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_TRYLOCK is not set
# CONFIG_INLINE_WRITE_LOCK is not set
# CONFIG_INLINE_WRITE_LOCK_BH is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
-CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK is not set
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
CONFIG_FREEZER=y
@@ -284,6 +287,7 @@ CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_SMP=y
CONFIG_X86_MPPARSE=y
# CONFIG_X86_BIGSMP is not set
@@ -292,6 +296,7 @@ CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_X86_32_IRIS=m
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_PARAVIRT_GUEST=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
@@ -299,7 +304,6 @@ CONFIG_XEN_PVHVM=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=128
CONFIG_XEN_SAVE_RESTORE=y
# CONFIG_XEN_DEBUG_FS is not set
-# CONFIG_XEN_DEBUG is not set
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_LGUEST_GUEST=y
@@ -338,6 +342,7 @@ CONFIG_X86_GENERIC=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_CMPXCHG=y
CONFIG_CMPXCHG_LOCAL=y
+CONFIG_CMPXCHG_DOUBLE=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
# CONFIG_X86_PPRO_FENCE is not set
@@ -363,14 +368,14 @@ CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
-CONFIG_IOMMU_API=y
CONFIG_NR_CPUS=8
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_IRQ_TIME_ACCOUNTING is not set
-CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
@@ -391,13 +396,14 @@ CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
-CONFIG_NOHIGHMEM=y
+# CONFIG_NOHIGHMEM is not set
# CONFIG_HIGHMEM4G is not set
-# CONFIG_HIGHMEM64G is not set
+CONFIG_HIGHMEM64G=y
CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_HIGHMEM=y
CONFIG_X86_PAE=y
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
-# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@@ -424,9 +430,10 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
CONFIG_HWPOISON_INJECT=m
CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
CONFIG_CLEANCACHE=y
+# CONFIG_HIGHPTE is not set
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
CONFIG_X86_RESERVE_LOW=64
@@ -437,6 +444,7 @@ CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
CONFIG_EFI=y
CONFIG_SECCOMP=y
CONFIG_CC_STACKPROTECTOR=y
@@ -447,6 +455,7 @@ CONFIG_HZ_300=y
CONFIG_HZ=300
CONFIG_SCHED_HRTICK=y
CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
# CONFIG_KEXEC_JUMP is not set
CONFIG_PHYSICAL_START=0x1000000
CONFIG_RELOCATABLE=y
@@ -455,6 +464,7 @@ CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
#
# Power management and ACPI options
@@ -475,10 +485,10 @@ CONFIG_CAN_PM_TRACE=y
# CONFIG_PM_TRACE_RTC is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
-CONFIG_ACPI_PROCFS_POWER=y
+# CONFIG_ACPI_PROCFS is not set
+# CONFIG_ACPI_PROCFS_POWER is not set
CONFIG_ACPI_EC_DEBUGFS=m
-CONFIG_ACPI_PROC_EVENT=y
+# CONFIG_ACPI_PROC_EVENT is not set
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
@@ -497,11 +507,12 @@ CONFIG_ACPI_PCI_SLOT=m
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=m
CONFIG_ACPI_SBS=m
-CONFIG_ACPI_HED=m
+CONFIG_ACPI_HED=y
CONFIG_ACPI_CUSTOM_METHOD=m
CONFIG_ACPI_APEI=y
-CONFIG_ACPI_APEI_GHES=m
+CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_ACPI_APEI_EINJ=m
CONFIG_ACPI_APEI_ERST_DEBUG=m
CONFIG_SFI=y
@@ -566,7 +577,6 @@ CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
-# CONFIG_PCI_GOOLPC is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
@@ -574,9 +584,6 @@ CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_XEN=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_CNB20LE_QUIRK is not set
-CONFIG_DMAR=y
-# CONFIG_DMAR_DEFAULT_ON is not set
-CONFIG_DMAR_FLOPPY_WA=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=m
CONFIG_PCIEAER=y
@@ -589,9 +596,12 @@ CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCI_STUB=m
-CONFIG_XEN_PCIDEV_FRONTEND=y
+CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
CONFIG_PCI_IOAPIC=y
CONFIG_PCI_LABEL=y
CONFIG_ISA_DMA_API=y
@@ -599,6 +609,7 @@ CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
+CONFIG_ALIX=y
CONFIG_AMD_NB=y
CONFIG_PCCARD=m
CONFIG_PCMCIA=m
@@ -632,14 +643,15 @@ CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m
CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_TSI721=y
CONFIG_RAPIDIO_DISC_TIMEOUT=30
# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_DEBUG=y
CONFIG_RAPIDIO_TSI57X=y
CONFIG_RAPIDIO_CPS_XX=y
CONFIG_RAPIDIO_TSI568=y
CONFIG_RAPIDIO_CPS_GEN2=y
CONFIG_RAPIDIO_TSI500=y
-CONFIG_RAPIDIO_DEBUG=y
#
# Executable file formats / Emulations
@@ -713,7 +725,7 @@ CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
+CONFIG_IPV6=y
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
@@ -859,6 +871,7 @@ CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
CONFIG_IP_VS=m
# CONFIG_IP_VS_IPV6 is not set
@@ -1043,6 +1056,7 @@ CONFIG_IPDDP_DECAP=y
# CONFIG_WAN_ROUTER is not set
CONFIG_PHONET=m
CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
CONFIG_NET_SCHED=y
#
@@ -1250,6 +1264,16 @@ CONFIG_CAIF=m
CONFIG_CAIF_NETDEV=m
CONFIG_CEPH_LIB=m
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_NFC=m
+CONFIG_NFC_NCI=m
+
+#
+# Near Field Communication (NFC) devices
+#
+CONFIG_PN544_NFC=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_WILINK=m
#
# Device Drivers
@@ -1269,12 +1293,18 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
CONFIG_SYS_HYPERVISOR=y
-CONFIG_CONNECTOR=m
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
+CONFIG_REGMAP_SPI=y
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_TESTS=m
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_AR7_PARTS is not set
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_AR7_PARTS=m
#
# User Modules And Translation Layers
@@ -1282,21 +1312,24 @@ CONFIG_MTD_TESTS=m
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
-# CONFIG_MTD_BLOCK_RO is not set
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-CONFIG_SM_FTL=m
-# CONFIG_MTD_OOPS is not set
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
CONFIG_MTD_SWAP=m
#
# RAM/ROM/Flash chip drivers
#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -1307,29 +1340,52 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
CONFIG_MTD_RAM=m
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
#
# Mapping drivers for chip access
#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_TS5500 is not set
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_TS5500=m
+# CONFIG_MTD_SBC_GXX is not set
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_SCB2_FLASH=m
+# CONFIG_MTD_NETtel is not set
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+# CONFIG_MTD_GPIO_ADDR is not set
# CONFIG_MTD_INTEL_VR_NOR is not set
CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
#
# Self-contained MTD device drivers
#
-# CONFIG_MTD_PMC551 is not set
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
-CONFIG_MTD_SST25L=m
-CONFIG_MTD_SLRAM=m
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
CONFIG_MTD_PHRAM=m
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
@@ -1337,16 +1393,38 @@ CONFIG_MTD_PHRAM=m
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_DOCG3=m
CONFIG_MTD_NAND_ECC=m
CONFIG_MTD_NAND_ECC_SMC=y
-# CONFIG_MTD_NAND is not set
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_CS553X=m
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_ALAUDA=m
# CONFIG_MTD_ONENAND is not set
#
# LPDDR flash memory drivers
#
-# CONFIG_MTD_LPDDR is not set
-# CONFIG_MTD_UBI is not set
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
@@ -1377,6 +1455,7 @@ CONFIG_BLK_DEV_DAC960=m
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
@@ -1392,8 +1471,8 @@ CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
CONFIG_ATA_OVER_ETH=m
-CONFIG_XEN_BLKDEV_FRONTEND=y
-# CONFIG_XEN_BLKDEV_BACKEND is not set
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_XEN_BLKDEV_BACKEND=m
CONFIG_VIRTIO_BLK=m
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_RBD=m
@@ -1427,6 +1506,7 @@ CONFIG_TI_DAC7512=m
CONFIG_VMWARE_BALLOON=m
CONFIG_BMP085=m
# CONFIG_PCH_PHUB is not set
+CONFIG_USB_SWITCH_FSA9480=m
CONFIG_C2PORT=m
CONFIG_C2PORT_DURAMAR_2150=m
@@ -1438,6 +1518,7 @@ CONFIG_EEPROM_AT25=m
CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_93XX46=m
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
CONFIG_CB710_DEBUG_ASSUMPTIONS=y
@@ -1450,90 +1531,13 @@ CONFIG_IWMC3200TOP=m
#
CONFIG_TI_ST=m
CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
CONFIG_HAVE_IDE=y
-CONFIG_IDE=m
-
-#
-# Please see Documentation/ide/ide.txt for help/info on IDE drives
-#
-CONFIG_IDE_XFER_MODE=y
-CONFIG_IDE_TIMINGS=y
-CONFIG_IDE_ATAPI=y
-CONFIG_IDE_LEGACY=y
-# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_IDE_GD=m
-CONFIG_IDE_GD_ATA=y
-CONFIG_IDE_GD_ATAPI=y
-CONFIG_BLK_DEV_IDECS=m
-CONFIG_BLK_DEV_DELKIN=m
-CONFIG_BLK_DEV_IDECD=m
-CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
-CONFIG_BLK_DEV_IDETAPE=m
-CONFIG_BLK_DEV_IDEACPI=y
-# CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_PROC_FS=y
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=m
-CONFIG_BLK_DEV_PLATFORM=m
-CONFIG_BLK_DEV_CMD640=m
-# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-CONFIG_BLK_DEV_IDEPNP=m
-CONFIG_BLK_DEV_IDEDMA_SFF=y
-
-#
-# PCI IDE chipsets support
-#
-CONFIG_BLK_DEV_IDEPCI=y
-# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=m
-CONFIG_BLK_DEV_OPTI621=m
-CONFIG_BLK_DEV_RZ1000=m
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-CONFIG_BLK_DEV_AEC62XX=m
-CONFIG_BLK_DEV_ALI15X3=m
-CONFIG_BLK_DEV_AMD74XX=m
-CONFIG_BLK_DEV_ATIIXP=m
-CONFIG_BLK_DEV_CMD64X=m
-CONFIG_BLK_DEV_TRIFLEX=m
-CONFIG_BLK_DEV_CS5520=m
-CONFIG_BLK_DEV_CS5530=m
-CONFIG_BLK_DEV_CS5535=m
-CONFIG_BLK_DEV_CS5536=m
-CONFIG_BLK_DEV_HPT366=m
-CONFIG_BLK_DEV_JMICRON=m
-CONFIG_BLK_DEV_SC1200=m
-CONFIG_BLK_DEV_PIIX=m
-CONFIG_BLK_DEV_IT8172=m
-CONFIG_BLK_DEV_IT8213=m
-CONFIG_BLK_DEV_IT821X=m
-CONFIG_BLK_DEV_NS87415=m
-CONFIG_BLK_DEV_PDC202XX_OLD=m
-CONFIG_BLK_DEV_PDC202XX_NEW=m
-CONFIG_BLK_DEV_SVWKS=m
-CONFIG_BLK_DEV_SIIMAGE=m
-CONFIG_BLK_DEV_SIS5513=m
-CONFIG_BLK_DEV_SLC90E66=m
-CONFIG_BLK_DEV_TRM290=m
-CONFIG_BLK_DEV_VIA82CXXX=m
-CONFIG_BLK_DEV_TC86C001=m
-
-#
-# Other IDE chipsets support
-#
-
-#
-# Note: most of these also require special kernel boot parameters
-#
-CONFIG_BLK_DEV_4DRIVES=m
-CONFIG_BLK_DEV_ALI14XX=m
-CONFIG_BLK_DEV_DTC2278=m
-CONFIG_BLK_DEV_HT6560B=m
-CONFIG_BLK_DEV_QD65XX=m
-CONFIG_BLK_DEV_UMC8672=m
-CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDE is not set
#
# SCSI device support
@@ -1610,11 +1614,12 @@ CONFIG_SCSI_AIC94XX=m
# CONFIG_AIC94XX_DEBUG is not set
CONFIG_SCSI_MVSAS=m
# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
CONFIG_SCSI_DPT_I2O=m
CONFIG_SCSI_ADVANSYS=m
CONFIG_SCSI_IN2000=m
CONFIG_SCSI_ARCMSR=m
-CONFIG_SCSI_ARCMSR_AER=y
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
@@ -1810,8 +1815,13 @@ CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m
CONFIG_DM_LOG_USERSPACE=m
@@ -1827,8 +1837,8 @@ CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
CONFIG_TCM_PSCSI=m
CONFIG_LOOPBACK_TARGET=m
-# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
CONFIG_TCM_FC=m
+CONFIG_ISCSI_TARGET=m
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_FC=m
@@ -1849,6 +1859,7 @@ CONFIG_FIREWIRE_NOSY=m
CONFIG_I2O=m
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
CONFIG_I2O_CONFIG=m
CONFIG_I2O_CONFIG_OLD_IOCTL=y
CONFIG_I2O_BUS=m
@@ -1858,62 +1869,119 @@ CONFIG_I2O_PROC=m
CONFIG_MACINTOSH_DRIVERS=y
CONFIG_MAC_EMUMOUSEBTN=y
CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
-CONFIG_EQUALIZER=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
CONFIG_TUN=m
CONFIG_VETH=m
-CONFIG_NET_SB1000=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SUNGEM_PHY=m
# CONFIG_ARCNET is not set
-CONFIG_MII=m
-CONFIG_PHYLIB=m
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
#
-# MII PHY device drivers
+# CAIF transport drivers
#
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MICREL_PHY=m
-# CONFIG_MDIO_BITBANG is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_CAIF_HSI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
CONFIG_NET_VENDOR_3COM=y
CONFIG_EL1=m
-CONFIG_EL2=m
-CONFIG_ELPLUS=m
-CONFIG_EL16=m
CONFIG_EL3=m
CONFIG_3C515=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
CONFIG_VORTEX=m
CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
CONFIG_LANCE=m
-CONFIG_NET_VENDOR_SMC=y
-CONFIG_WD80x3=m
-CONFIG_ULTRA=m
-CONFIG_SMC9194=m
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_RACAL=y
-CONFIG_NI52=m
+CONFIG_PCNET32=m
+CONFIG_DEPCA=m
+CONFIG_PCMCIA_NMCLAN=m
CONFIG_NI65=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_EWRK3=m
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_DE2104X_DSL=0
@@ -1926,132 +1994,222 @@ CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
CONFIG_AT1700=m
-CONFIG_DEPCA=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_ETH16I=m
+CONFIG_NET_VENDOR_HP=y
CONFIG_HP100=m
-CONFIG_NET_ISA=y
-CONFIG_E2100=m
-CONFIG_EWRK3=m
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_APRICOT=m
CONFIG_EEXPRESS=m
CONFIG_EEXPRESS_PRO=m
-CONFIG_HPLAN_PLUS=m
-CONFIG_HPLAN=m
CONFIG_LP486E=m
-CONFIG_ETH16I=m
-CONFIG_NE2000=m
+CONFIG_NI52=m
CONFIG_ZNET=m
-CONFIG_SEEQ8005=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_AC3200=m
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
CONFIG_KSZ884X_PCI=m
-CONFIG_APRICOT=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-CONFIG_CS89x0=m
-CONFIG_E100=m
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_EL2=m
+CONFIG_AC3200=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_E2100=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_NE2000=m
CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_ULTRA=m
+CONFIG_WD80x3=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
CONFIG_8139CP=m
CONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
CONFIG_8139TOO_TUNE_TWISTER=y
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC9194=m
+CONFIG_PCMCIA_SMC91C92=m
CONFIG_EPIC100=m
CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_VIA_RHINE=m
-# CONFIG_VIA_RHINE_MMIO is not set
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-# CONFIG_SKGE_DEBUG is not set
-CONFIG_SKY2=m
-# CONFIG_SKY2_DEBUG is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
+CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DEBUG_FS is not set
# CONFIG_STMMAC_DA is not set
-CONFIG_STMMAC_DUAL_MAC=y
-CONFIG_PCH_GBE=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4VF=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGBEVF=m
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_TEHUTI=y
CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLCNIC=m
-CONFIG_QLGE=m
-CONFIG_BNA=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_TI=y
+CONFIG_TLAN=m
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+# CONFIG_SLIP_COMPRESSED is not set
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
# CONFIG_TR is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
CONFIG_WLAN=y
CONFIG_PCMCIA_RAYCS=m
CONFIG_LIBERTAS_THINFIRM=m
@@ -2091,7 +2249,11 @@ CONFIG_ATH9K_HTC=m
CONFIG_CARL9170=m
CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG is not set
CONFIG_B43=m
+CONFIG_B43_SSB=y
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
CONFIG_B43_PCMCIA=y
@@ -2099,6 +2261,7 @@ CONFIG_B43_SDIO=y
CONFIG_B43_PIO=y
CONFIG_B43_PHY_N=y
CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
CONFIG_B43_LEDS=y
CONFIG_B43_HWRNG=y
# CONFIG_B43_DEBUG is not set
@@ -2113,6 +2276,10 @@ CONFIG_B43LEGACY_PIO=y
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
# CONFIG_B43LEGACY_DMA_MODE is not set
# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+# CONFIG_BRCMDBG is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
@@ -2130,7 +2297,7 @@ CONFIG_IPW2200_QOS=y
# CONFIG_IPW2200_DEBUG is not set
CONFIG_LIBIPW=m
# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLAGN=m
+CONFIG_IWLWIFI=m
#
# Debugging Options
@@ -2138,7 +2305,6 @@ CONFIG_IWLAGN=m
# CONFIG_IWLWIFI_DEBUG is not set
CONFIG_IWLWIFI_DEVICE_TRACING=y
CONFIG_IWLWIFI_DEVICE_SVTOOL=y
-CONFIG_IWL_P2P=y
CONFIG_IWLWIFI_LEGACY=m
#
@@ -2199,6 +2365,7 @@ CONFIG_RT2X00_LIB_LEDS=y
# CONFIG_RT2X00_DEBUG is not set
CONFIG_RTL8192CE=m
CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
CONFIG_RTL8192C_COMMON=m
@@ -2207,7 +2374,6 @@ CONFIG_WL1251_SPI=m
CONFIG_WL1251_SDIO=m
CONFIG_WL12XX_MENU=m
CONFIG_WL12XX=m
-CONFIG_WL12XX_HT=y
CONFIG_WL12XX_SPI=m
CONFIG_WL12XX_SDIO=m
CONFIG_WL12XX_SDIO_TEST=m
@@ -2216,6 +2382,7 @@ CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
#
# WiMAX Wireless Broadband devices
@@ -2225,124 +2392,9 @@ CONFIG_WIMAX_I2400M_USB=m
CONFIG_WIMAX_I2400M_SDIO=m
# CONFIG_WIMAX_IWMC3200_SDIO is not set
CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
# CONFIG_WAN is not set
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-# CONFIG_ATM_FORE200E_USE_TASKLET is not set
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-# CONFIG_ATM_HE_USE_SUNI is not set
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-
-#
-# CAIF transport drivers
-#
-CONFIG_CAIF_TTY=m
-CONFIG_CAIF_SPI_SLAVE=m
-CONFIG_CAIF_SPI_SYNC=y
-CONFIG_XEN_NETDEV_FRONTEND=y
-# CONFIG_XEN_NETDEV_BACKEND is not set
-CONFIG_RIONET=m
-CONFIG_RIONET_TX_SIZE=128
-CONFIG_RIONET_RX_SIZE=128
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-CONFIG_PLIP=m
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-# CONFIG_SLIP_COMPRESSED is not set
-CONFIG_SLHC=m
-# CONFIG_SLIP_SMART is not set
-# CONFIG_SLIP_MODE_SLIP6 is not set
-# CONFIG_NET_FC is not set
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-# CONFIG_NETPOLL_TRAP is not set
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_VIRTIO_NET=m
+CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_VMXNET3=m
CONFIG_ISDN=y
CONFIG_ISDN_I4L=m
@@ -2642,6 +2694,7 @@ CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_TSC2005=m
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_PCAP=m
@@ -2652,13 +2705,18 @@ CONFIG_INPUT_AB8500_PONKEY=m
CONFIG_INPUT_AD714X=m
CONFIG_INPUT_AD714X_I2C=m
CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_BMA150=m
CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_MC13783_PWRBUTTON=m
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_APANEL=m
CONFIG_INPUT_WISTRON_BTNS=m
CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_YEALINK=m
CONFIG_INPUT_CM109=m
@@ -2673,7 +2731,7 @@ CONFIG_INPUT_ADXL34X_I2C=m
CONFIG_INPUT_ADXL34X_SPI=m
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m
-CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
#
# Hardware I/O ports
@@ -2700,6 +2758,7 @@ CONFIG_GAMEPORT_FM801=m
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
@@ -2851,6 +2910,7 @@ CONFIG_I2C_SCMI=m
#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
+CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_INTEL_MID=m
CONFIG_I2C_OCORES=m
@@ -2915,6 +2975,7 @@ CONFIG_PPS=m
CONFIG_PPS_CLIENT_KTIMER=m
CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
#
# PPS generators support
@@ -2929,13 +2990,13 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=m
CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers:
#
-CONFIG_GPIO_BASIC_MMIO_CORE=m
-CONFIG_GPIO_BASIC_MMIO=m
+CONFIG_GPIO_GENERIC_PLATFORM=m
CONFIG_GPIO_IT8761E=m
CONFIG_GPIO_SCH=m
CONFIG_GPIO_VX855=m
@@ -2947,6 +3008,7 @@ CONFIG_GPIO_MAX7300=m
CONFIG_GPIO_MAX732X=m
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_TPS65912=m
CONFIG_GPIO_WM831X=m
CONFIG_GPIO_ADP5588=m
@@ -3030,6 +3092,7 @@ CONFIG_HWMON_VID=m
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
CONFIG_SENSORS_ADCXX=m
@@ -3084,23 +3147,29 @@ CONFIG_SENSORS_LTC4215=m
CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4261=m
CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
CONFIG_SENSORS_MAX1111=m
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX6639=m
CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_MAX16064=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_UCD9000=m
CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
CONFIG_SENSORS_SHT15=m
CONFIG_SENSORS_SHT21=m
CONFIG_SENSORS_SIS5595=m
@@ -3112,7 +3181,9 @@ CONFIG_SENSORS_EMC6W201=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
CONFIG_SENSORS_ADS1015=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
@@ -3147,6 +3218,7 @@ CONFIG_SENSORS_ATK0110=m
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
@@ -3232,11 +3304,11 @@ CONFIG_BCMA_POSSIBLE=y
#
# Broadcom specific AMBA
#
-CONFIG_BCMA=m
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-# CONFIG_BCMA_DEBUG is not set
-CONFIG_MFD_SUPPORT=y
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
CONFIG_MFD_CORE=y
CONFIG_MFD_SM501=m
CONFIG_MFD_SM501_GPIO=y
@@ -3245,6 +3317,8 @@ CONFIG_UCB1400_CORE=m
CONFIG_TPS6105X=m
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
+CONFIG_MFD_TPS65912=y
+CONFIG_MFD_TPS65912_SPI=y
# CONFIG_MFD_TMIO is not set
CONFIG_MFD_WM8400=m
CONFIG_MFD_WM831X=y
@@ -3272,6 +3346,7 @@ CONFIG_REGULATOR_DUMMY=y
CONFIG_REGULATOR_FIXED_VOLTAGE=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_BQ24022=m
CONFIG_REGULATOR_MAX1586=m
CONFIG_REGULATOR_MAX8649=m
@@ -3289,6 +3364,7 @@ CONFIG_REGULATOR_MC13892=m
CONFIG_REGULATOR_TPS6105X=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_TPS65912=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_AD5398=m
CONFIG_REGULATOR_AB8500=y
@@ -3303,6 +3379,7 @@ CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2_COMMON=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
CONFIG_VIDEO_MEDIA=m
#
@@ -3319,7 +3396,9 @@ CONFIG_IR_RC6_DECODER=m
CONFIG_IR_JVC_DECODER=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_LIRC_CODEC=m
+CONFIG_RC_ATI_REMOTE=m
CONFIG_IR_ENE=m
CONFIG_IR_IMON=m
CONFIG_IR_MCEUSB=m
@@ -3347,6 +3426,7 @@ CONFIG_MEDIA_TUNER_MT2131=m
CONFIG_MEDIA_TUNER_QT1010=m
CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
CONFIG_MEDIA_TUNER_MXL5005S=m
CONFIG_MEDIA_TUNER_MXL5007T=m
CONFIG_MEDIA_TUNER_MC44S803=m
@@ -3365,6 +3445,7 @@ CONFIG_VIDEO_TUNER=m
CONFIG_V4L2_MEM2MEM_DEV=m
CONFIG_VIDEOBUF2_CORE=m
CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
@@ -3438,9 +3519,20 @@ CONFIG_VIDEO_AK881X=m
# Camera sensor devices
#
CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9P031=m
+CONFIG_VIDEO_MT9T001=m
CONFIG_VIDEO_MT9V011=m
CONFIG_VIDEO_MT9V032=m
CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_S5K6AA=m
+
+#
+# Flash devices
+#
+CONFIG_VIDEO_ADP1653=m
#
# Video improvement chips
@@ -3486,6 +3578,8 @@ CONFIG_VIDEO_CX88_MPEG=m
CONFIG_VIDEO_CX88_VP3054=m
CONFIG_VIDEO_CX23885=m
CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
CONFIG_VIDEO_AU0828=m
CONFIG_VIDEO_IVTV=m
CONFIG_VIDEO_FB_IVTV=m
@@ -3493,10 +3587,6 @@ CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_SAA7164=m
CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_SR030PC30=m
-CONFIG_VIDEO_VIA_CAMERA=m
-CONFIG_VIDEO_NOON010PC30=m
-CONFIG_VIDEO_M5MOLS=m
CONFIG_SOC_CAMERA=m
CONFIG_SOC_CAMERA_IMX074=m
CONFIG_SOC_CAMERA_MT9M001=m
@@ -3508,6 +3598,7 @@ CONFIG_SOC_CAMERA_RJ54N1=m
CONFIG_SOC_CAMERA_TW9910=m
CONFIG_SOC_CAMERA_PLATFORM=m
CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV5642=m
CONFIG_SOC_CAMERA_OV6650=m
CONFIG_SOC_CAMERA_OV772X=m
CONFIG_SOC_CAMERA_OV9640=m
@@ -3536,6 +3627,7 @@ CONFIG_USB_GSPCA_OV534_9=m
CONFIG_USB_GSPCA_PAC207=m
CONFIG_USB_GSPCA_PAC7302=m
CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
CONFIG_USB_GSPCA_SN9C2028=m
CONFIG_USB_GSPCA_SN9C20X=m
CONFIG_USB_GSPCA_SONIXB=m
@@ -3554,6 +3646,7 @@ CONFIG_USB_GSPCA_STK014=m
CONFIG_USB_GSPCA_STV0680=m
CONFIG_USB_GSPCA_SUNPLUS=m
CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
@@ -3567,11 +3660,15 @@ CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=y
CONFIG_VIDEO_TLG2300=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_RC=y
CONFIG_VIDEO_CX231XX_ALSA=m
CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_USBVISION=m
CONFIG_USB_ET61X251=m
CONFIG_USB_SN9C102=m
@@ -3655,6 +3752,7 @@ CONFIG_DVB_USB_DTT200U=m
CONFIG_DVB_USB_OPERA1=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
CONFIG_DVB_USB_DW2102=m
CONFIG_DVB_USB_CINERGY_T2=m
CONFIG_DVB_USB_ANYSEE=m
@@ -3666,6 +3764,8 @@ CONFIG_DVB_USB_EC168=m
CONFIG_DVB_USB_AZ6027=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_IT913X=m
+CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_SMS_SIANO_MDTV=m
@@ -3723,6 +3823,11 @@ CONFIG_DVB_HOPPER=m
CONFIG_DVB_NGENE=m
#
+# Supported ddbridge ('Octopus') Adapters
+#
+CONFIG_DVB_DDBRIDGE=m
+
+#
# Supported DVB Frontends
#
# CONFIG_DVB_FE_CUSTOMISE is not set
@@ -3736,6 +3841,12 @@ CONFIG_DVB_STV090x=m
CONFIG_DVB_STV6110x=m
#
+# Multistandard (cable + terrestrial) frontends
+#
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_TDA18271C2DD=m
+
+#
# DVB-S (satellite) frontends
#
CONFIG_DVB_CX24110=m
@@ -3761,6 +3872,7 @@ CONFIG_DVB_CX24116=m
CONFIG_DVB_SI21XX=m
CONFIG_DVB_DS3000=m
CONFIG_DVB_MB86A16=m
+CONFIG_DVB_TDA10071=m
#
# DVB-T (terrestrial) frontends
@@ -3824,13 +3936,16 @@ CONFIG_DVB_TUNER_DIB0090=m
# SEC control devices for DVB-S
#
CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
CONFIG_DVB_ISL6405=m
CONFIG_DVB_ISL6421=m
CONFIG_DVB_ISL6423=m
+CONFIG_DVB_A8293=m
CONFIG_DVB_LGS8GXX=m
CONFIG_DVB_ATBM8830=m
CONFIG_DVB_TDA665x=m
CONFIG_DVB_IX2505V=m
+CONFIG_DVB_IT913X_FE=m
#
# Tools to develop new frontends
@@ -3861,13 +3976,13 @@ CONFIG_DRM_TDFX=m
CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_KMS=y
-# CONFIG_DRM_I810 is not set
CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
CONFIG_STUB_POULSBO=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -3879,14 +3994,14 @@ CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_SYS_FOPS=m
# CONFIG_FB_WMT_GE_ROPS is not set
CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
+# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
@@ -3895,73 +4010,49 @@ CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_CYBER2000_DDC=y
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_VGA16 is not set
+CONFIG_FB_VGA16=m
CONFIG_FB_UVESA=m
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
CONFIG_FB_I810=m
-# CONFIG_FB_I810_GTF is not set
-CONFIG_FB_LE80578=m
-CONFIG_FB_CARILLO_RANCH=m
+CONFIG_FB_I810_GTF=y
+CONFIG_FB_I810_I2C=y
+# CONFIG_FB_LE80578 is not set
# CONFIG_FB_MATROX is not set
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-CONFIG_FB_ATY_GENERIC_LCD=y
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-CONFIG_FB_SAVAGE_ACCEL=y
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
-# CONFIG_FB_VIA_DIRECT_PROCFS is not set
-CONFIG_FB_VIA_X_COMPATIBILITY=y
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_VIA is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_SM501 is not set
+# CONFIG_FB_SMSCUFX is not set
CONFIG_FB_UDL=m
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_XEN_FBDEV_FRONTEND=y
+CONFIG_FB_VIRTUAL=m
+CONFIG_XEN_FBDEV_FRONTEND=m
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
@@ -3976,10 +4067,10 @@ CONFIG_LCD_VGG2432A4=m
CONFIG_LCD_PLATFORM=m
CONFIG_LCD_S6E63M0=m
CONFIG_LCD_LD9040=m
+CONFIG_LCD_AMS369FG06=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_PROGEAR=m
-CONFIG_BACKLIGHT_CARILLO_RANCH=m
CONFIG_BACKLIGHT_APPLE=m
CONFIG_BACKLIGHT_SAHARA=m
CONFIG_BACKLIGHT_WM831X=m
@@ -4102,6 +4193,7 @@ CONFIG_SND_SSCAPE=m
CONFIG_SND_WAVEFRONT=m
CONFIG_SND_MSND_PINNACLE=m
CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_TEA575X=m
CONFIG_SND_PCI=y
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
@@ -4151,8 +4243,8 @@ CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968_RADIO=y
CONFIG_SND_FM801=m
CONFIG_SND_FM801_TEA575X_BOOL=y
-CONFIG_SND_TEA575X=m
CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PREALLOC_SIZE=4096
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
@@ -4160,6 +4252,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=1
CONFIG_SND_HDA_INPUT_JACK=y
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
@@ -4167,6 +4260,7 @@ CONFIG_SND_HDA_CODEC_HDMI=y
CONFIG_SND_HDA_CODEC_CIRRUS=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
@@ -4236,7 +4330,7 @@ CONFIG_USB_HIDDEV=y
#
CONFIG_HID_A4TECH=m
CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=m
+CONFIG_HID_ACRUX_FF=y
CONFIG_HID_APPLE=m
CONFIG_HID_BELKIN=m
CONFIG_HID_CHERRY=m
@@ -4248,6 +4342,8 @@ CONFIG_DRAGONRISE_FF=y
CONFIG_HID_EMS_FF=m
CONFIG_HID_ELECOM=m
CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HOLTEK_FF=y
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
CONFIG_HID_UCLOGIC=m
@@ -4257,10 +4353,11 @@ CONFIG_HID_TWINHAN=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWII_FF=y
+CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
@@ -4275,6 +4372,7 @@ CONFIG_HID_PICOLCD_FB=y
CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
CONFIG_HID_QUANTA=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_ROCCAT_COMMON=m
@@ -4285,6 +4383,7 @@ CONFIG_HID_ROCCAT_KOVAPLUS=m
CONFIG_HID_ROCCAT_PYRA=m
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_GREENASIA=m
CONFIG_GREENASIA_FF=y
@@ -4295,13 +4394,16 @@ CONFIG_HID_THRUSTMASTER=m
CONFIG_THRUSTMASTER_FF=y
CONFIG_HID_WACOM=m
CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_WIIMOTE=m
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=m
CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=m
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -4314,6 +4416,8 @@ CONFIG_USB_DEVICEFS=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -4343,8 +4447,10 @@ CONFIG_USB_SL811_HCD=m
# CONFIG_USB_SL811_HCD_ISO is not set
CONFIG_USB_SL811_CS=m
CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RENESAS_USBHS_HCD=m
CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
+CONFIG_USB_RENESAS_USBHS=m
#
# USB Device Class drivers
@@ -4364,6 +4470,7 @@ CONFIG_USB_TMC=m
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
CONFIG_USB_STORAGE_DATAFAB=m
CONFIG_USB_STORAGE_FREECOM=m
CONFIG_USB_STORAGE_ISD200=m
@@ -4490,20 +4597,20 @@ CONFIG_USB_GADGET=m
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_SELECTED=y
-# CONFIG_USB_GADGET_FUSB300 is not set
-# CONFIG_USB_GADGET_R8A66597 is not set
-# CONFIG_USB_GADGET_PXA_U2O is not set
-# CONFIG_USB_GADGET_M66592 is not set
-# CONFIG_USB_GADGET_AMD5536UDC is not set
-# CONFIG_USB_GADGET_CI13XXX_PCI is not set
-CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_R8A66597=m
+CONFIG_USB_GADGET_DWC3=m
+CONFIG_USB_M66592=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_CI13XXX_PCI=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
CONFIG_USB_NET2280=m
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGET_LANGWELL is not set
-# CONFIG_USB_GADGET_EG20T is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GOKU=m
+CONFIG_USB_EG20T=m
+CONFIG_USB_DUMMY_HCD=m
CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_GADGET_SUPERSPEED=y
# CONFIG_USB_ZERO is not set
CONFIG_USB_AUDIO=m
CONFIG_USB_ETH=m
@@ -4523,6 +4630,7 @@ CONFIG_USB_MIDI_GADGET=m
CONFIG_USB_G_PRINTER=m
# CONFIG_USB_CDC_COMPOSITE is not set
# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_ACM_MS is not set
# CONFIG_USB_G_MULTI is not set
CONFIG_USB_G_HID=m
CONFIG_USB_G_DBGP=m
@@ -4564,7 +4672,6 @@ CONFIG_MMC_RICOH_MMC=y
CONFIG_MMC_SDHCI_PLTFM=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
-# CONFIG_MMC_SPI is not set
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_CB710=m
CONFIG_MMC_VIA_SDMMC=m
@@ -4593,11 +4700,9 @@ CONFIG_LEDS_CLASS=y
#
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_NET5501=m
-# CONFIG_LEDS_ALIX2 is not set
CONFIG_LEDS_PCA9532=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_GPIO_PLATFORM=y
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
@@ -4617,7 +4722,6 @@ CONFIG_LEDS_TRIGGERS=y
# LED Triggers
#
CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_IDE_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_GPIO=m
@@ -4626,8 +4730,6 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
#
# iptables trigger is under Netfilter config (LED target)
#
-CONFIG_NFC_DEVICES=y
-CONFIG_PN544_NFC=m
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
# CONFIG_INFINIBAND is not set
@@ -4640,7 +4742,6 @@ CONFIG_EDAC=y
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_MCE_INJ=m
CONFIG_EDAC_MM_EDAC=m
-CONFIG_EDAC_MCE=y
CONFIG_EDAC_AMD76X=m
CONFIG_EDAC_E7XXX=m
CONFIG_EDAC_E752X=m
@@ -4766,46 +4867,36 @@ CONFIG_UIO_AEC=m
CONFIG_UIO_SERCOS3=m
CONFIG_UIO_PCI_GENERIC=m
CONFIG_UIO_NETX=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
#
# Xen driver support
#
CONFIG_XEN_BALLOON=y
+# CONFIG_XEN_SELFBALLOONING is not set
CONFIG_XEN_SCRUB_PAGES=y
-CONFIG_XEN_DEV_EVTCHN=y
+CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
-CONFIG_XENFS=y
+CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XEN_XENBUS_FRONTEND=m
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_GRANT_DEV_ALLOC=m
-CONFIG_XEN_PLATFORM_PCI=m
CONFIG_SWIOTLB_XEN=y
+CONFIG_XEN_TMEM=y
+CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_STAGING=y
-# CONFIG_DIGIEPCA is not set
-# CONFIG_RISCOM8 is not set
-# CONFIG_SPECIALIX is not set
-# CONFIG_COMPUTONE is not set
CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
CONFIG_SLICOSS=m
-CONFIG_VIDEO_GO7007=m
-CONFIG_VIDEO_GO7007_USB=m
-# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
-CONFIG_VIDEO_GO7007_OV7640=m
-CONFIG_VIDEO_GO7007_SAA7113=m
-CONFIG_VIDEO_GO7007_SAA7115=m
-CONFIG_VIDEO_GO7007_TW9903=m
-CONFIG_VIDEO_GO7007_UDA1342=m
-CONFIG_VIDEO_GO7007_SONY_TUNER=m
-CONFIG_VIDEO_GO7007_TW2804=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-CONFIG_DVB_CXD2099=m
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_HOST=m
@@ -4813,10 +4904,6 @@ CONFIG_USBIP_HOST=m
CONFIG_W35UND=m
CONFIG_PRISM2_USB=m
CONFIG_ECHO=m
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-# CONFIG_BRCMFMAC is not set
-# CONFIG_BRCMDBG is not set
CONFIG_COMEDI=m
# CONFIG_COMEDI_DEBUG is not set
CONFIG_COMEDI_MISC_DRIVERS=m
@@ -4899,6 +4986,7 @@ CONFIG_COMEDI_AMPLC_PCI224=m
CONFIG_COMEDI_AMPLC_PCI230=m
CONFIG_COMEDI_CONTEC_PCI_DIO=m
CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
CONFIG_COMEDI_UNIOXX5=m
CONFIG_COMEDI_GSC_HPDI=m
CONFIG_COMEDI_ICP_MULTI=m
@@ -4936,6 +5024,7 @@ CONFIG_COMEDI_USB_DRIVERS=m
CONFIG_COMEDI_DT9812=m
CONFIG_COMEDI_USBDUX=m
CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
CONFIG_COMEDI_VMK80XX=m
CONFIG_COMEDI_NI_COMMON=m
CONFIG_COMEDI_MITE=m
@@ -4953,10 +5042,11 @@ CONFIG_R8712U=m
CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
+CONFIG_RTS5139=m
+# CONFIG_RTS5139_DEBUG is not set
# CONFIG_TRANZPORT is not set
CONFIG_POHMELFS=m
# CONFIG_POHMELFS_DEBUG is not set
-CONFIG_POHMELFS_CRYPTO=y
CONFIG_IDE_PHISON=m
CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DEBUG is not set
@@ -4965,7 +5055,6 @@ CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DUMP_PCM is not set
# CONFIG_LINE6_USB_RAW is not set
# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
-CONFIG_DRM_VMWGFX=m
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU_DEBUG=y
@@ -4979,16 +5068,12 @@ CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_USB_SERIAL_QUATECH_USB2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
-CONFIG_HYPERV=m
CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_BLOCK=m
CONFIG_HYPERV_NET=m
-CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_MOUSE=m
# CONFIG_VME_BUS is not set
CONFIG_DX_SEP=m
# CONFIG_IIO is not set
-CONFIG_CS5535_GPIO=m
CONFIG_XVMALLOC=y
CONFIG_ZRAM=m
# CONFIG_ZRAM_DEBUG is not set
@@ -4996,46 +5081,9 @@ CONFIG_ZCACHE=m
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
-CONFIG_VIDEO_DT3155=m
-CONFIG_DT3155_CCIR=y
CONFIG_CRYSTALHD=m
CONFIG_FB_XGI=m
-CONFIG_LIRC_STAGING=y
-CONFIG_LIRC_BT829=m
-CONFIG_LIRC_IGORPLUGUSB=m
-CONFIG_LIRC_IMON=m
-CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
-CONFIG_LIRC_SERIAL=m
-CONFIG_LIRC_SERIAL_TRANSMITTER=y
-CONFIG_LIRC_SIR=m
-CONFIG_LIRC_TTUSBIR=m
-CONFIG_LIRC_ZILOG=m
-CONFIG_EASYCAP=m
-CONFIG_EASYCAP_SND=y
-# CONFIG_EASYCAP_OSS is not set
-# CONFIG_EASYCAP_DEBUG is not set
-CONFIG_SOLO6X10=m
CONFIG_ACPI_QUICKSTART=m
-CONFIG_MACH_NO_WESTBRIDGE=y
-CONFIG_ATH6K_LEGACY=m
-CONFIG_AR600x_SD31_XXX=y
-# CONFIG_AR600x_WB31_XXX is not set
-# CONFIG_AR600x_SD32_XXX is not set
-# CONFIG_AR600x_CUSTOM_XXX is not set
-CONFIG_ATH6KL_ENABLE_COEXISTENCE=y
-CONFIG_AR600x_DUAL_ANTENNA=y
-# CONFIG_AR600x_SINGLE_ANTENNA is not set
-# CONFIG_AR600x_BT_QCOM is not set
-# CONFIG_AR600x_BT_CSR is not set
-CONFIG_AR600x_BT_AR3001=y
-CONFIG_ATH6KL_HCI_BRIDGE=y
-CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET=y
-CONFIG_AR600x_BT_RESET_PIN=22
-CONFIG_ATH6KL_HTC_RAW_INTERFACE=y
-CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
-CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK=y
-# CONFIG_ATH6KL_DEBUG is not set
CONFIG_USB_ENESTORAGE=m
CONFIG_BCM_WIMAX=m
CONFIG_FT1000=m
@@ -5064,12 +5112,40 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_DRM_PSB=m
-
-#
-# Altera FPGA firmware download module
-#
-CONFIG_ALTERA_STAPL=m
+CONFIG_DRM_PSB_MRST=y
+CONFIG_DRM_PSB_MFLD=y
+CONFIG_DRM_PSB_CDV=y
CONFIG_INTEL_MEI=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_DVB_AS102=m
+CONFIG_DVB_CXD2099=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_DT3155_STREAMING=y
+CONFIG_EASYCAP=m
+# CONFIG_EASYCAP_DEBUG is not set
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_SOLO6X10=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -5114,7 +5190,25 @@ CONFIG_XO15_EBOOK=m
CONFIG_SAMSUNG_LAPTOP=m
CONFIG_MXM_WMI=m
CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+
+#
+# Hardware Spinlock drivers
+#
CONFIG_CLKSRC_I8253=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+# CONFIG_PM_DEVFREQ is not set
#
# Firmware Drivers
@@ -5134,23 +5228,14 @@ CONFIG_SIGMA=m
#
# File systems
#
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT23=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=m
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=m
@@ -5270,16 +5355,24 @@ CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_XATTR=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
CONFIG_LOGFS=m
CONFIG_CRAMFS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
+CONFIG_MINIX_FS=m
CONFIG_OMFS_FS=m
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
@@ -5291,6 +5384,7 @@ CONFIG_UFS_FS=m
# CONFIG_UFS_DEBUG is not set
CONFIG_EXOFS_FS=m
# CONFIG_EXOFS_DEBUG is not set
+CONFIG_ORE=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
@@ -5302,7 +5396,6 @@ CONFIG_NFS_FSCACHE=y
CONFIG_NFS_USE_KERNEL_DNS=y
# CONFIG_NFS_USE_NEW_IDMAPPER is not set
CONFIG_NFSD=m
-# CONFIG_NFSD_DEPRECATED is not set
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
@@ -5354,7 +5447,7 @@ CONFIG_PARTITION_ADVANCED=y
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
-# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_LDM_PARTITION=y
@@ -5442,6 +5535,7 @@ CONFIG_TIMER_STATS=y
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
@@ -5450,11 +5544,12 @@ CONFIG_DEBUG_MUTEXES=y
# CONFIG_PROVE_LOCKING is not set
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
@@ -5471,6 +5566,7 @@ CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_CPU_STALL_VERBOSE is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
@@ -5506,6 +5602,7 @@ CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
CONFIG_SCHED_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_BRANCH_PROFILE_NONE=y
@@ -5575,6 +5672,11 @@ CONFIG_SECURITY_PATH=y
# CONFIG_SECURITY_SELINUX is not set
# CONFIG_SECURITY_SMACK is not set
CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
CONFIG_SECURITY_APPARMOR=y
CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
# CONFIG_IMA is not set
@@ -5609,6 +5711,7 @@ CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
@@ -5671,6 +5774,7 @@ CONFIG_CRYPTO_AES_NI_INTEL=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
@@ -5705,8 +5809,6 @@ CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
CONFIG_CRYPTO_DEV_GEODE=m
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_EVENTFD=y
@@ -5720,10 +5822,6 @@ CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
CONFIG_VHOST_NET=m
CONFIG_LGUEST=m
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_RING=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
CONFIG_BINARY_PRINTF=y
#
@@ -5739,6 +5837,7 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
CONFIG_AUDIT_GENERIC=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
@@ -5758,6 +5857,9 @@ CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
@@ -5771,3 +5873,4 @@ CONFIG_CPU_RMAP=y
CONFIG_NLATTR=y
CONFIG_LRU_CACHE=m
CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
diff --git a/kernels/linux-libre-xen/config.x86_64 b/kernels/linux-libre-xen/config.x86_64
index f377084cb..7bc5bd2e7 100644
--- a/kernels/linux-libre-xen/config.x86_64
+++ b/kernels/linux-libre-xen/config.x86_64
@@ -1,6 +1,6 @@
#
-# Automatically generated make config: don't edit
-# Linux/x86_64 3.0.0 Kernel Configuration
+# Automatically generated file; DO NOT EDIT.
+# Linux/x86_64 3.2.7-libre Kernel Configuration
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
@@ -12,6 +12,7 @@ CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
@@ -38,7 +39,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ZONE_DMA32=y
@@ -101,12 +101,14 @@ CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_FORCED_THREADING=y
-# CONFIG_SPARSE_IRQ is not set
+CONFIG_SPARSE_IRQ=y
#
# RCU Subsystem
#
+# CONFIG_TREE_RCU is not set
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
@@ -132,6 +134,7 @@ CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
@@ -157,7 +160,7 @@ CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_HOTPLUG=y
@@ -165,6 +168,7 @@ CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
@@ -211,6 +215,7 @@ CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
#
# GCOV-based kernel profiling
@@ -224,11 +229,12 @@ CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
+CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLOCK_COMPAT=y
@@ -284,12 +290,15 @@ CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_SMP=y
+# CONFIG_X86_X2APIC is not set
CONFIG_X86_MPPARSE=y
# CONFIG_X86_EXTENDED_PLATFORM is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_PARAVIRT_GUEST=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
@@ -297,7 +306,6 @@ CONFIG_XEN_PVHVM=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=128
CONFIG_XEN_SAVE_RESTORE=y
# CONFIG_XEN_DEBUG_FS is not set
-# CONFIG_XEN_DEBUG is not set
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_PARAVIRT=y
@@ -314,6 +322,7 @@ CONFIG_GENERIC_CPU=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=7
CONFIG_X86_CMPXCHG=y
CONFIG_CMPXCHG_LOCAL=y
+CONFIG_CMPXCHG_DOUBLE=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
@@ -331,11 +340,8 @@ CONFIG_DMI=y
CONFIG_GART_IOMMU=y
CONFIG_CALGARY_IOMMU=y
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
-CONFIG_AMD_IOMMU=y
-# CONFIG_AMD_IOMMU_STATS is not set
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
-CONFIG_IOMMU_API=y
# CONFIG_MAXSMP is not set
CONFIG_NR_CPUS=64
CONFIG_SCHED_SMT=y
@@ -344,6 +350,7 @@ CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
@@ -403,8 +410,8 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
CONFIG_HWPOISON_INJECT=m
CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
CONFIG_CLEANCACHE=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -415,6 +422,7 @@ CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
CONFIG_EFI=y
CONFIG_SECCOMP=y
CONFIG_CC_STACKPROTECTOR=y
@@ -457,10 +465,10 @@ CONFIG_CAN_PM_TRACE=y
# CONFIG_PM_TRACE_RTC is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
-CONFIG_ACPI_PROCFS=y
+# CONFIG_ACPI_PROCFS is not set
# CONFIG_ACPI_PROCFS_POWER is not set
CONFIG_ACPI_EC_DEBUGFS=m
-CONFIG_ACPI_PROC_EVENT=y
+# CONFIG_ACPI_PROC_EVENT is not set
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
@@ -481,11 +489,12 @@ CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=m
CONFIG_ACPI_HOTPLUG_MEMORY=m
CONFIG_ACPI_SBS=m
-CONFIG_ACPI_HED=m
+CONFIG_ACPI_HED=y
CONFIG_ACPI_CUSTOM_METHOD=m
CONFIG_ACPI_APEI=y
-CONFIG_ACPI_APEI_GHES=m
+CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_ACPI_APEI_EINJ=m
CONFIG_ACPI_APEI_ERST_DEBUG=m
CONFIG_SFI=y
@@ -540,10 +549,6 @@ CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_XEN=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_CNB20LE_QUIRK is not set
-CONFIG_DMAR=y
-# CONFIG_DMAR_DEFAULT_ON is not set
-CONFIG_DMAR_FLOPPY_WA=y
-# CONFIG_INTR_REMAP is not set
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=m
CONFIG_PCIEAER=y
@@ -558,7 +563,10 @@ CONFIG_PCI_MSI=y
CONFIG_PCI_STUB=m
CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
CONFIG_PCI_IOAPIC=y
CONFIG_PCI_LABEL=y
CONFIG_ISA_DMA_API=y
@@ -589,14 +597,15 @@ CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_SHPC=m
CONFIG_RAPIDIO=y
+# CONFIG_RAPIDIO_TSI721 is not set
CONFIG_RAPIDIO_DISC_TIMEOUT=30
# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_DEBUG=y
CONFIG_RAPIDIO_TSI57X=y
CONFIG_RAPIDIO_CPS_XX=y
CONFIG_RAPIDIO_TSI568=y
CONFIG_RAPIDIO_CPS_GEN2=y
CONFIG_RAPIDIO_TSI500=y
-CONFIG_RAPIDIO_DEBUG=y
#
# Executable file formats / Emulations
@@ -676,7 +685,7 @@ CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
+CONFIG_IPV6=y
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
@@ -822,6 +831,7 @@ CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
CONFIG_IP_VS=m
# CONFIG_IP_VS_IPV6 is not set
@@ -1002,6 +1012,7 @@ CONFIG_IPDDP_DECAP=y
# CONFIG_WAN_ROUTER is not set
CONFIG_PHONET=m
CONFIG_IEEE802154=m
+# CONFIG_IEEE802154_6LOWPAN is not set
CONFIG_NET_SCHED=y
#
@@ -1210,6 +1221,16 @@ CONFIG_CAIF=m
CONFIG_CAIF_NETDEV=m
CONFIG_CEPH_LIB=m
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_NFC=m
+CONFIG_NFC_NCI=m
+
+#
+# Near Field Communication (NFC) devices
+#
+CONFIG_PN544_NFC=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_WILINK=m
#
# Device Drivers
@@ -1229,11 +1250,17 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
CONFIG_SYS_HYPERVISOR=y
-CONFIG_CONNECTOR=m
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
+CONFIG_REGMAP_SPI=y
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
CONFIG_MTD_TESTS=m
-# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
# CONFIG_MTD_AR7_PARTS is not set
#
@@ -1242,21 +1269,24 @@ CONFIG_MTD_TESTS=m
CONFIG_MTD_CHAR=m
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
-# CONFIG_MTD_BLOCK_RO is not set
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-CONFIG_SM_FTL=m
-# CONFIG_MTD_OOPS is not set
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
CONFIG_MTD_SWAP=m
#
# RAM/ROM/Flash chip drivers
#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -1267,29 +1297,52 @@ CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
CONFIG_MTD_RAM=m
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
#
# Mapping drivers for chip access
#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_TS5500 is not set
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_TS5500=m
+# CONFIG_MTD_SBC_GXX is not set
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_SCB2_FLASH=m
+# CONFIG_MTD_NETtel is not set
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+# CONFIG_MTD_GPIO_ADDR is not set
# CONFIG_MTD_INTEL_VR_NOR is not set
CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
#
# Self-contained MTD device drivers
#
-# CONFIG_MTD_PMC551 is not set
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
# CONFIG_MTD_DATAFLASH is not set
# CONFIG_MTD_M25P80 is not set
-CONFIG_MTD_SST25L=m
-CONFIG_MTD_SLRAM=m
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
CONFIG_MTD_PHRAM=m
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
@@ -1297,16 +1350,37 @@ CONFIG_MTD_PHRAM=m
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_DOCG3=m
CONFIG_MTD_NAND_ECC=m
CONFIG_MTD_NAND_ECC_SMC=y
-# CONFIG_MTD_NAND is not set
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_ALAUDA=m
# CONFIG_MTD_ONENAND is not set
#
# LPDDR flash memory drivers
#
-# CONFIG_MTD_LPDDR is not set
-# CONFIG_MTD_UBI is not set
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
@@ -1334,6 +1408,7 @@ CONFIG_BLK_DEV_DAC960=m
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
@@ -1384,6 +1459,7 @@ CONFIG_TI_DAC7512=m
CONFIG_VMWARE_BALLOON=m
CONFIG_BMP085=m
CONFIG_PCH_PHUB=m
+CONFIG_USB_SWITCH_FSA9480=m
CONFIG_C2PORT=m
CONFIG_C2PORT_DURAMAR_2150=m
@@ -1395,6 +1471,7 @@ CONFIG_EEPROM_AT25=m
CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_93XX46=m
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
CONFIG_CB710_DEBUG_ASSUMPTIONS=y
@@ -1407,73 +1484,13 @@ CONFIG_IWMC3200TOP=m
#
CONFIG_TI_ST=m
CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
CONFIG_HAVE_IDE=y
-CONFIG_IDE=m
-
-#
-# Please see Documentation/ide/ide.txt for help/info on IDE drives
-#
-CONFIG_IDE_XFER_MODE=y
-CONFIG_IDE_TIMINGS=y
-CONFIG_IDE_ATAPI=y
-# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_IDE_GD=m
-CONFIG_IDE_GD_ATA=y
-CONFIG_IDE_GD_ATAPI=y
-CONFIG_BLK_DEV_IDECS=m
-CONFIG_BLK_DEV_DELKIN=m
-CONFIG_BLK_DEV_IDECD=m
-CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
-CONFIG_BLK_DEV_IDETAPE=m
-CONFIG_BLK_DEV_IDEACPI=y
-# CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_PROC_FS=y
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=m
-CONFIG_BLK_DEV_PLATFORM=m
-CONFIG_BLK_DEV_CMD640=m
-# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-CONFIG_BLK_DEV_IDEPNP=m
-CONFIG_BLK_DEV_IDEDMA_SFF=y
-
-#
-# PCI IDE chipsets support
-#
-CONFIG_BLK_DEV_IDEPCI=y
-# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=m
-CONFIG_BLK_DEV_OPTI621=m
-CONFIG_BLK_DEV_RZ1000=m
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-CONFIG_BLK_DEV_AEC62XX=m
-CONFIG_BLK_DEV_ALI15X3=m
-CONFIG_BLK_DEV_AMD74XX=m
-CONFIG_BLK_DEV_ATIIXP=m
-CONFIG_BLK_DEV_CMD64X=m
-CONFIG_BLK_DEV_TRIFLEX=m
-CONFIG_BLK_DEV_CS5520=m
-CONFIG_BLK_DEV_CS5530=m
-CONFIG_BLK_DEV_HPT366=m
-CONFIG_BLK_DEV_JMICRON=m
-CONFIG_BLK_DEV_SC1200=m
-CONFIG_BLK_DEV_PIIX=m
-CONFIG_BLK_DEV_IT8172=m
-CONFIG_BLK_DEV_IT8213=m
-CONFIG_BLK_DEV_IT821X=m
-CONFIG_BLK_DEV_NS87415=m
-CONFIG_BLK_DEV_PDC202XX_OLD=m
-CONFIG_BLK_DEV_PDC202XX_NEW=m
-CONFIG_BLK_DEV_SVWKS=m
-CONFIG_BLK_DEV_SIIMAGE=m
-CONFIG_BLK_DEV_SIS5513=m
-CONFIG_BLK_DEV_SLC90E66=m
-CONFIG_BLK_DEV_TRM290=m
-CONFIG_BLK_DEV_VIA82CXXX=m
-CONFIG_BLK_DEV_TC86C001=m
-CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDE is not set
#
# SCSI device support
@@ -1547,10 +1564,11 @@ CONFIG_SCSI_AIC94XX=m
# CONFIG_AIC94XX_DEBUG is not set
CONFIG_SCSI_MVSAS=m
# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
CONFIG_SCSI_DPT_I2O=m
CONFIG_SCSI_ADVANSYS=m
CONFIG_SCSI_ARCMSR=m
-CONFIG_SCSI_ARCMSR_AER=y
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
@@ -1725,8 +1743,13 @@ CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m
CONFIG_DM_LOG_USERSPACE=m
@@ -1742,8 +1765,8 @@ CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
CONFIG_TCM_PSCSI=m
CONFIG_LOOPBACK_TARGET=m
-# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
CONFIG_TCM_FC=m
+CONFIG_ISCSI_TARGET=m
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_FC=m
@@ -1774,48 +1797,110 @@ CONFIG_I2O_PROC=m
CONFIG_MACINTOSH_DRIVERS=y
CONFIG_MAC_EMUMOUSEBTN=y
CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
-CONFIG_EQUALIZER=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
CONFIG_TUN=m
CONFIG_VETH=m
-CONFIG_NET_SB1000=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SUNGEM_PHY=m
# CONFIG_ARCNET is not set
-CONFIG_MII=m
-CONFIG_PHYLIB=m
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
#
-# MII PHY device drivers
+# CAIF transport drivers
#
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_MICREL_PHY=m
-# CONFIG_MDIO_BITBANG is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+# CONFIG_CAIF_HSI is not set
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
CONFIG_VORTEX=m
CONFIG_TYPHOON=m
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_PCNET32=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_DE2104X_DSL=0
@@ -1828,115 +1913,203 @@ CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
-CONFIG_HP100=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_KSZ884X_PCI=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-CONFIG_E100=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
-CONFIG_NE2K_PCI=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-# CONFIG_8139TOO_PIO is not set
-CONFIG_8139TOO_TUNE_TWISTER=y
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R6040=m
-CONFIG_SIS900=m
-CONFIG_EPIC100=m
-CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_VIA_RHINE=m
-# CONFIG_VIA_RHINE_MMIO is not set
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
+CONFIG_NET_VENDOR_DLINK=y
CONFIG_DE600=m
CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_NET_VENDOR_HP=y
+CONFIG_HP100=m
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
CONFIG_E1000=m
CONFIG_E1000E=m
-CONFIG_IP1000=m
CONFIG_IGB=m
CONFIG_IGB_DCA=y
CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_SIS190=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_NET_VENDOR_I825XX=y
+# CONFIG_ZNET is not set
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
CONFIG_SKGE=m
# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
CONFIG_SKY2=m
# CONFIG_SKY2_DEBUG is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_DA is not set
-CONFIG_STMMAC_DUAL_MAC=y
-CONFIG_PCH_GBE=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4VF=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGBEVF=m
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
+CONFIG_NET_VENDOR_MELLANOX=y
CONFIG_MLX4_EN=m
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
CONFIG_QLCNIC=m
CONFIG_QLGE=m
-CONFIG_BNA=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+# CONFIG_SEEQ8005 is not set
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_SIS900=m
+CONFIG_SIS190=m
CONFIG_SFC=m
CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DEBUG_FS is not set
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
+CONFIG_TLAN=m
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+# CONFIG_SLIP_COMPRESSED is not set
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
# CONFIG_TR is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
CONFIG_WLAN=y
CONFIG_PCMCIA_RAYCS=m
CONFIG_LIBERTAS_THINFIRM=m
@@ -1976,7 +2149,11 @@ CONFIG_ATH9K_HTC=m
CONFIG_CARL9170=m
CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG is not set
CONFIG_B43=m
+CONFIG_B43_SSB=y
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
CONFIG_B43_PCMCIA=y
@@ -1984,6 +2161,7 @@ CONFIG_B43_SDIO=y
CONFIG_B43_PIO=y
CONFIG_B43_PHY_N=y
CONFIG_B43_PHY_LP=y
+# CONFIG_B43_PHY_HT is not set
CONFIG_B43_LEDS=y
CONFIG_B43_HWRNG=y
# CONFIG_B43_DEBUG is not set
@@ -1998,6 +2176,10 @@ CONFIG_B43LEGACY_PIO=y
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
# CONFIG_B43LEGACY_DMA_MODE is not set
# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+# CONFIG_BRCMDBG is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
@@ -2015,7 +2197,7 @@ CONFIG_IPW2200_QOS=y
# CONFIG_IPW2200_DEBUG is not set
CONFIG_LIBIPW=m
# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLAGN=m
+CONFIG_IWLWIFI=m
#
# Debugging Options
@@ -2023,7 +2205,6 @@ CONFIG_IWLAGN=m
# CONFIG_IWLWIFI_DEBUG is not set
CONFIG_IWLWIFI_DEVICE_TRACING=y
CONFIG_IWLWIFI_DEVICE_SVTOOL=y
-CONFIG_IWL_P2P=y
CONFIG_IWLWIFI_LEGACY=m
#
@@ -2084,6 +2265,7 @@ CONFIG_RT2X00_LIB_LEDS=y
# CONFIG_RT2X00_DEBUG is not set
CONFIG_RTL8192CE=m
CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
CONFIG_RTL8192C_COMMON=m
@@ -2092,7 +2274,6 @@ CONFIG_WL1251_SPI=m
CONFIG_WL1251_SDIO=m
CONFIG_WL12XX_MENU=m
CONFIG_WL12XX=m
-CONFIG_WL12XX_HT=y
CONFIG_WL12XX_SPI=m
CONFIG_WL12XX_SDIO=m
CONFIG_WL12XX_SDIO_TEST=m
@@ -2101,6 +2282,7 @@ CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
#
# WiMAX Wireless Broadband devices
@@ -2110,124 +2292,9 @@ CONFIG_WIMAX_I2400M_USB=m
CONFIG_WIMAX_I2400M_SDIO=m
# CONFIG_WIMAX_IWMC3200_SDIO is not set
CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
# CONFIG_WAN is not set
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-# CONFIG_ATM_FORE200E_USE_TASKLET is not set
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-# CONFIG_ATM_HE_USE_SUNI is not set
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-
-#
-# CAIF transport drivers
-#
-CONFIG_CAIF_TTY=m
-CONFIG_CAIF_SPI_SLAVE=m
-CONFIG_CAIF_SPI_SYNC=y
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_NETDEV_BACKEND=m
-CONFIG_RIONET=m
-CONFIG_RIONET_TX_SIZE=128
-CONFIG_RIONET_RX_SIZE=128
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-CONFIG_PLIP=m
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-# CONFIG_SLIP_COMPRESSED is not set
-CONFIG_SLHC=m
-# CONFIG_SLIP_SMART is not set
-# CONFIG_SLIP_MODE_SLIP6 is not set
-# CONFIG_NET_FC is not set
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-# CONFIG_NETPOLL_TRAP is not set
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_VIRTIO_NET=m
CONFIG_VMXNET3=m
CONFIG_ISDN=y
CONFIG_ISDN_I4L=m
@@ -2506,6 +2573,7 @@ CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_TSC2005=m
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_PCAP=m
@@ -2516,12 +2584,17 @@ CONFIG_INPUT_AB8500_PONKEY=m
CONFIG_INPUT_AD714X=m
CONFIG_INPUT_AD714X_I2C=m
CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_BMA150=m
CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_MC13783_PWRBUTTON=m
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_APANEL=m
CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_YEALINK=m
CONFIG_INPUT_CM109=m
@@ -2530,7 +2603,7 @@ CONFIG_INPUT_PCF50633_PMU=m
CONFIG_INPUT_PCF8574=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
CONFIG_INPUT_WM831X_ON=m
-# CONFIG_INPUT_PCAP is not set
+CONFIG_INPUT_PCAP=m
CONFIG_INPUT_ADXL34X=m
CONFIG_INPUT_ADXL34X_I2C=m
CONFIG_INPUT_ADXL34X_SPI=m
@@ -2563,6 +2636,7 @@ CONFIG_GAMEPORT_FM801=m
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
@@ -2709,6 +2783,7 @@ CONFIG_I2C_SCMI=m
#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
+CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_INTEL_MID=m
CONFIG_I2C_OCORES=m
@@ -2770,6 +2845,7 @@ CONFIG_PPS=m
CONFIG_PPS_CLIENT_KTIMER=m
CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
#
# PPS generators support
@@ -2784,13 +2860,13 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=m
CONFIG_GPIO_MAX730X=m
#
# Memory mapped GPIO drivers:
#
-CONFIG_GPIO_BASIC_MMIO_CORE=m
-CONFIG_GPIO_BASIC_MMIO=m
+CONFIG_GPIO_GENERIC_PLATFORM=m
CONFIG_GPIO_IT8761E=m
CONFIG_GPIO_SCH=m
CONFIG_GPIO_VX855=m
@@ -2885,6 +2961,7 @@ CONFIG_HWMON_VID=m
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
CONFIG_SENSORS_ADCXX=m
@@ -2939,23 +3016,29 @@ CONFIG_SENSORS_LTC4215=m
CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4261=m
CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
CONFIG_SENSORS_MAX1111=m
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX6639=m
CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_MAX16064=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_UCD9000=m
CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
CONFIG_SENSORS_SHT15=m
CONFIG_SENSORS_SHT21=m
CONFIG_SENSORS_SIS5595=m
@@ -2967,7 +3050,9 @@ CONFIG_SENSORS_EMC6W201=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
CONFIG_SENSORS_ADS1015=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
@@ -3002,6 +3087,7 @@ CONFIG_SENSORS_ATK0110=m
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
@@ -3044,7 +3130,7 @@ CONFIG_W83877F_WDT=m
CONFIG_W83977F_WDT=m
CONFIG_MACHZ_WDT=m
CONFIG_SBC_EPX_C3_WATCHDOG=m
-CONFIG_XEN_WDT=m
+# CONFIG_XEN_WDT is not set
#
# PCI-based Watchdog Cards
@@ -3079,11 +3165,11 @@ CONFIG_BCMA_POSSIBLE=y
#
# Broadcom specific AMBA
#
-CONFIG_BCMA=m
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-# CONFIG_BCMA_DEBUG is not set
-CONFIG_MFD_SUPPORT=y
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
CONFIG_MFD_CORE=y
CONFIG_MFD_SM501=m
CONFIG_MFD_SM501_GPIO=y
@@ -3092,6 +3178,7 @@ CONFIG_UCB1400_CORE=m
CONFIG_TPS6105X=m
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
+# CONFIG_MFD_TPS65912_SPI is not set
# CONFIG_MFD_TMIO is not set
CONFIG_MFD_WM8400=m
CONFIG_MFD_WM831X=y
@@ -3119,6 +3206,7 @@ CONFIG_REGULATOR_DUMMY=y
CONFIG_REGULATOR_FIXED_VOLTAGE=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+# CONFIG_REGULATOR_GPIO is not set
CONFIG_REGULATOR_BQ24022=m
CONFIG_REGULATOR_MAX1586=m
CONFIG_REGULATOR_MAX8649=m
@@ -3150,6 +3238,7 @@ CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2_COMMON=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
CONFIG_VIDEO_MEDIA=m
#
@@ -3166,7 +3255,9 @@ CONFIG_IR_RC6_DECODER=m
CONFIG_IR_JVC_DECODER=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_LIRC_CODEC=m
+CONFIG_RC_ATI_REMOTE=m
CONFIG_IR_ENE=m
CONFIG_IR_IMON=m
CONFIG_IR_MCEUSB=m
@@ -3194,6 +3285,7 @@ CONFIG_MEDIA_TUNER_MT2131=m
CONFIG_MEDIA_TUNER_QT1010=m
CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
CONFIG_MEDIA_TUNER_MXL5005S=m
CONFIG_MEDIA_TUNER_MXL5007T=m
CONFIG_MEDIA_TUNER_MC44S803=m
@@ -3212,6 +3304,7 @@ CONFIG_VIDEO_TUNER=m
CONFIG_V4L2_MEM2MEM_DEV=m
CONFIG_VIDEOBUF2_CORE=m
CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
@@ -3285,9 +3378,20 @@ CONFIG_VIDEO_AK881X=m
# Camera sensor devices
#
CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9P031=m
+CONFIG_VIDEO_MT9T001=m
CONFIG_VIDEO_MT9V011=m
CONFIG_VIDEO_MT9V032=m
CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_VIDEO_S5K6AA=m
+
+#
+# Flash devices
+#
+CONFIG_VIDEO_ADP1653=m
#
# Video improvement chips
@@ -3332,6 +3436,8 @@ CONFIG_VIDEO_CX88_MPEG=m
CONFIG_VIDEO_CX88_VP3054=m
CONFIG_VIDEO_CX23885=m
CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
CONFIG_VIDEO_AU0828=m
CONFIG_VIDEO_IVTV=m
CONFIG_VIDEO_FB_IVTV=m
@@ -3339,10 +3445,6 @@ CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_SAA7164=m
CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_SR030PC30=m
-CONFIG_VIDEO_VIA_CAMERA=m
-CONFIG_VIDEO_NOON010PC30=m
-CONFIG_VIDEO_M5MOLS=m
CONFIG_SOC_CAMERA=m
CONFIG_SOC_CAMERA_IMX074=m
CONFIG_SOC_CAMERA_MT9M001=m
@@ -3354,6 +3456,7 @@ CONFIG_SOC_CAMERA_RJ54N1=m
CONFIG_SOC_CAMERA_TW9910=m
CONFIG_SOC_CAMERA_PLATFORM=m
CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV5642=m
CONFIG_SOC_CAMERA_OV6650=m
CONFIG_SOC_CAMERA_OV772X=m
CONFIG_SOC_CAMERA_OV9640=m
@@ -3382,6 +3485,7 @@ CONFIG_USB_GSPCA_OV534_9=m
CONFIG_USB_GSPCA_PAC207=m
CONFIG_USB_GSPCA_PAC7302=m
CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
CONFIG_USB_GSPCA_SN9C2028=m
CONFIG_USB_GSPCA_SN9C20X=m
CONFIG_USB_GSPCA_SONIXB=m
@@ -3400,6 +3504,7 @@ CONFIG_USB_GSPCA_STK014=m
CONFIG_USB_GSPCA_STV0680=m
CONFIG_USB_GSPCA_SUNPLUS=m
CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
@@ -3413,11 +3518,15 @@ CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=y
CONFIG_VIDEO_TLG2300=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_RC=y
CONFIG_VIDEO_CX231XX_ALSA=m
CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_USBVISION=m
CONFIG_USB_ET61X251=m
CONFIG_USB_SN9C102=m
@@ -3489,6 +3598,7 @@ CONFIG_DVB_USB_DTT200U=m
CONFIG_DVB_USB_OPERA1=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
CONFIG_DVB_USB_DW2102=m
CONFIG_DVB_USB_CINERGY_T2=m
CONFIG_DVB_USB_ANYSEE=m
@@ -3500,6 +3610,8 @@ CONFIG_DVB_USB_EC168=m
CONFIG_DVB_USB_AZ6027=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_IT913X=m
+CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_SMS_SIANO_MDTV=m
@@ -3557,6 +3669,11 @@ CONFIG_DVB_HOPPER=m
CONFIG_DVB_NGENE=m
#
+# Supported ddbridge ('Octopus') Adapters
+#
+CONFIG_DVB_DDBRIDGE=m
+
+#
# Supported DVB Frontends
#
# CONFIG_DVB_FE_CUSTOMISE is not set
@@ -3570,6 +3687,12 @@ CONFIG_DVB_STV090x=m
CONFIG_DVB_STV6110x=m
#
+# Multistandard (cable + terrestrial) frontends
+#
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_TDA18271C2DD=m
+
+#
# DVB-S (satellite) frontends
#
CONFIG_DVB_CX24110=m
@@ -3595,6 +3718,7 @@ CONFIG_DVB_CX24116=m
CONFIG_DVB_SI21XX=m
CONFIG_DVB_DS3000=m
CONFIG_DVB_MB86A16=m
+CONFIG_DVB_TDA10071=m
#
# DVB-T (terrestrial) frontends
@@ -3658,13 +3782,16 @@ CONFIG_DVB_TUNER_DIB0090=m
# SEC control devices for DVB-S
#
CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
CONFIG_DVB_ISL6405=m
CONFIG_DVB_ISL6421=m
CONFIG_DVB_ISL6423=m
+CONFIG_DVB_A8293=m
CONFIG_DVB_LGS8GXX=m
CONFIG_DVB_ATBM8830=m
CONFIG_DVB_TDA665x=m
CONFIG_DVB_IX2505V=m
+CONFIG_DVB_IT913X_FE=m
#
# Tools to develop new frontends
@@ -3695,6 +3822,7 @@ CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
CONFIG_STUB_POULSBO=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -3713,7 +3841,7 @@ CONFIG_FB_SYS_IMAGEBLIT=m
CONFIG_FB_SYS_FOPS=m
# CONFIG_FB_WMT_GE_ROPS is not set
CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
+# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
@@ -3722,70 +3850,48 @@ CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_CYBER2000_DDC=y
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_VGA16 is not set
+CONFIG_FB_VGA16=m
CONFIG_FB_UVESA=m
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_LE80578=m
-CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+CONFIG_FB_I810=m
+CONFIG_FB_I810_GTF=y
+CONFIG_FB_I810_I2C=y
+# CONFIG_FB_LE80578 is not set
# CONFIG_FB_MATROX is not set
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-CONFIG_FB_ATY_GENERIC_LCD=y
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-CONFIG_FB_SAVAGE_ACCEL=y
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
-# CONFIG_FB_VIA_DIRECT_PROCFS is not set
-CONFIG_FB_VIA_X_COMPATIBILITY=y
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_VIA is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_SM501 is not set
+# CONFIG_FB_SMSCUFX is not set
CONFIG_FB_UDL=m
-# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_VIRTUAL=m
CONFIG_XEN_FBDEV_FRONTEND=m
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
@@ -3801,10 +3907,10 @@ CONFIG_LCD_VGG2432A4=m
CONFIG_LCD_PLATFORM=m
CONFIG_LCD_S6E63M0=m
CONFIG_LCD_LD9040=m
+CONFIG_LCD_AMS369FG06=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_PROGEAR=m
-CONFIG_BACKLIGHT_CARILLO_RANCH=m
CONFIG_BACKLIGHT_APPLE=m
CONFIG_BACKLIGHT_SAHARA=m
CONFIG_BACKLIGHT_WM831X=m
@@ -3890,6 +3996,7 @@ CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_SB_COMMON=m
CONFIG_SND_SB16_DSP=m
+CONFIG_SND_TEA575X=m
CONFIG_SND_PCI=y
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
@@ -3939,8 +4046,8 @@ CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968_RADIO=y
CONFIG_SND_FM801=m
CONFIG_SND_FM801_TEA575X_BOOL=y
-CONFIG_SND_TEA575X=m
CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PREALLOC_SIZE=4096
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
@@ -3948,6 +4055,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=1
CONFIG_SND_HDA_INPUT_JACK=y
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
@@ -3955,6 +4063,7 @@ CONFIG_SND_HDA_CODEC_HDMI=y
CONFIG_SND_HDA_CODEC_CIRRUS=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
@@ -4023,7 +4132,7 @@ CONFIG_USB_HIDDEV=y
#
CONFIG_HID_A4TECH=m
CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=m
+CONFIG_HID_ACRUX_FF=y
CONFIG_HID_APPLE=m
CONFIG_HID_BELKIN=m
CONFIG_HID_CHERRY=m
@@ -4035,6 +4144,8 @@ CONFIG_DRAGONRISE_FF=y
CONFIG_HID_EMS_FF=m
CONFIG_HID_ELECOM=m
CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HOLTEK_FF=y
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
CONFIG_HID_UCLOGIC=m
@@ -4044,10 +4155,11 @@ CONFIG_HID_TWINHAN=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWII_FF=y
+CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
@@ -4062,6 +4174,7 @@ CONFIG_HID_PICOLCD_FB=y
CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
CONFIG_HID_QUANTA=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_ROCCAT_COMMON=m
@@ -4072,6 +4185,7 @@ CONFIG_HID_ROCCAT_KOVAPLUS=m
CONFIG_HID_ROCCAT_PYRA=m
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_GREENASIA=m
CONFIG_GREENASIA_FF=y
@@ -4082,13 +4196,16 @@ CONFIG_HID_THRUSTMASTER=m
CONFIG_THRUSTMASTER_FF=y
CONFIG_HID_WACOM=m
CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_WIIMOTE=m
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=m
CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=m
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
@@ -4101,6 +4218,7 @@ CONFIG_USB_DEVICEFS=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
+# CONFIG_USB_DWC3 is not set
CONFIG_USB_MON=m
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
@@ -4130,8 +4248,10 @@ CONFIG_USB_SL811_HCD=m
# CONFIG_USB_SL811_HCD_ISO is not set
CONFIG_USB_SL811_CS=m
CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RENESAS_USBHS_HCD=m
CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
+CONFIG_USB_RENESAS_USBHS=m
#
# USB Device Class drivers
@@ -4151,6 +4271,7 @@ CONFIG_USB_TMC=m
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
CONFIG_USB_STORAGE_DATAFAB=m
CONFIG_USB_STORAGE_FREECOM=m
CONFIG_USB_STORAGE_ISD200=m
@@ -4277,20 +4398,19 @@ CONFIG_USB_GADGET=m
# CONFIG_USB_GADGET_DEBUG_FILES is not set
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_SELECTED=y
-# CONFIG_USB_GADGET_FUSB300 is not set
-# CONFIG_USB_GADGET_R8A66597 is not set
-# CONFIG_USB_GADGET_PXA_U2O is not set
-# CONFIG_USB_GADGET_M66592 is not set
-# CONFIG_USB_GADGET_AMD5536UDC is not set
-# CONFIG_USB_GADGET_CI13XXX_PCI is not set
-CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_R8A66597=m
+CONFIG_USB_M66592=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_CI13XXX_PCI=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
CONFIG_USB_NET2280=m
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGET_LANGWELL is not set
-# CONFIG_USB_GADGET_EG20T is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GOKU=m
+CONFIG_USB_EG20T=m
+CONFIG_USB_DUMMY_HCD=m
CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_GADGET_SUPERSPEED=y
# CONFIG_USB_ZERO is not set
CONFIG_USB_AUDIO=m
CONFIG_USB_ETH=m
@@ -4310,6 +4430,7 @@ CONFIG_USB_MIDI_GADGET=m
CONFIG_USB_G_PRINTER=m
# CONFIG_USB_CDC_COMPOSITE is not set
# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_ACM_MS is not set
# CONFIG_USB_G_MULTI is not set
CONFIG_USB_G_HID=m
CONFIG_USB_G_DBGP=m
@@ -4380,11 +4501,9 @@ CONFIG_LEDS_CLASS=y
#
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_NET5501=m
-# CONFIG_LEDS_ALIX2 is not set
CONFIG_LEDS_PCA9532=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_GPIO_PLATFORM=y
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
@@ -4404,7 +4523,6 @@ CONFIG_LEDS_TRIGGERS=y
# LED Triggers
#
CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_IDE_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_GPIO=m
@@ -4413,8 +4531,6 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
#
# iptables trigger is under Netfilter config (LED target)
#
-CONFIG_NFC_DEVICES=y
-CONFIG_PN544_NFC=m
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
# CONFIG_INFINIBAND is not set
@@ -4427,7 +4543,6 @@ CONFIG_EDAC=y
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_MCE_INJ=m
CONFIG_EDAC_MM_EDAC=m
-CONFIG_EDAC_MCE=y
CONFIG_EDAC_AMD64=m
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
CONFIG_EDAC_E752X=m
@@ -4440,6 +4555,7 @@ CONFIG_EDAC_I7CORE=m
CONFIG_EDAC_I5000=m
CONFIG_EDAC_I5100=m
CONFIG_EDAC_I7300=m
+CONFIG_EDAC_SBRIDGE=m
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
@@ -4550,11 +4666,22 @@ CONFIG_UIO_AEC=m
CONFIG_UIO_SERCOS3=m
CONFIG_UIO_PCI_GENERIC=m
CONFIG_UIO_NETX=m
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
#
# Xen driver support
#
CONFIG_XEN_BALLOON=y
+# CONFIG_XEN_SELFBALLOONING is not set
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
@@ -4564,32 +4691,12 @@ CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_XENBUS_FRONTEND=m
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_GRANT_DEV_ALLOC=m
-CONFIG_XEN_PLATFORM_PCI=m
CONFIG_SWIOTLB_XEN=y
+CONFIG_XEN_TMEM=y
+CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_STAGING=y
-# CONFIG_DIGIEPCA is not set
-# CONFIG_RISCOM8 is not set
-# CONFIG_SPECIALIX is not set
-# CONFIG_COMPUTONE is not set
CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
CONFIG_SLICOSS=m
-CONFIG_VIDEO_GO7007=m
-CONFIG_VIDEO_GO7007_USB=m
-# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
-CONFIG_VIDEO_GO7007_OV7640=m
-CONFIG_VIDEO_GO7007_SAA7113=m
-CONFIG_VIDEO_GO7007_SAA7115=m
-CONFIG_VIDEO_GO7007_TW9903=m
-CONFIG_VIDEO_GO7007_UDA1342=m
-CONFIG_VIDEO_GO7007_SONY_TUNER=m
-CONFIG_VIDEO_GO7007_TW2804=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-CONFIG_DVB_CXD2099=m
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_HOST=m
@@ -4597,10 +4704,6 @@ CONFIG_USBIP_HOST=m
CONFIG_W35UND=m
CONFIG_PRISM2_USB=m
CONFIG_ECHO=m
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-# CONFIG_BRCMFMAC is not set
-# CONFIG_BRCMDBG is not set
CONFIG_COMEDI=m
# CONFIG_COMEDI_DEBUG is not set
CONFIG_COMEDI_MISC_DRIVERS=m
@@ -4641,6 +4744,7 @@ CONFIG_COMEDI_AMPLC_PCI224=m
CONFIG_COMEDI_AMPLC_PCI230=m
CONFIG_COMEDI_CONTEC_PCI_DIO=m
CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DYNA_PCI10XX=m
CONFIG_COMEDI_UNIOXX5=m
CONFIG_COMEDI_GSC_HPDI=m
CONFIG_COMEDI_ICP_MULTI=m
@@ -4652,7 +4756,7 @@ CONFIG_COMEDI_CB_PCIDAS64=m
CONFIG_COMEDI_CB_PCIDAS=m
CONFIG_COMEDI_CB_PCIDDA=m
CONFIG_COMEDI_CB_PCIDIO=m
-CONFIG_COMEDI_CB_PCIMDAS=m
+# CONFIG_COMEDI_CB_PCIMDAS is not set
CONFIG_COMEDI_CB_PCIMDDA=m
CONFIG_COMEDI_ME4000=m
CONFIG_COMEDI_ME_DAQ=m
@@ -4678,6 +4782,7 @@ CONFIG_COMEDI_USB_DRIVERS=m
CONFIG_COMEDI_DT9812=m
CONFIG_COMEDI_USBDUX=m
CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USBDUXSIGMA=m
CONFIG_COMEDI_VMK80XX=m
CONFIG_COMEDI_NI_COMMON=m
CONFIG_COMEDI_MITE=m
@@ -4695,10 +4800,11 @@ CONFIG_R8712U=m
CONFIG_R8712_AP=y
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
+CONFIG_RTS5139=m
+# CONFIG_RTS5139_DEBUG is not set
# CONFIG_TRANZPORT is not set
CONFIG_POHMELFS=m
# CONFIG_POHMELFS_DEBUG is not set
-CONFIG_POHMELFS_CRYPTO=y
CONFIG_IDE_PHISON=m
CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DEBUG is not set
@@ -4707,7 +4813,6 @@ CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DUMP_PCM is not set
# CONFIG_LINE6_USB_RAW is not set
# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
-CONFIG_DRM_VMWGFX=m
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU_DEBUG=y
@@ -4721,11 +4826,8 @@ CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_USB_SERIAL_QUATECH_USB2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
-CONFIG_HYPERV=m
CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_BLOCK=m
CONFIG_HYPERV_NET=m
-CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_MOUSE=m
# CONFIG_VME_BUS is not set
CONFIG_DX_SEP=m
@@ -4737,46 +4839,9 @@ CONFIG_ZCACHE=m
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
-CONFIG_VIDEO_DT3155=m
-CONFIG_DT3155_CCIR=y
CONFIG_CRYSTALHD=m
CONFIG_FB_XGI=m
-CONFIG_LIRC_STAGING=y
-CONFIG_LIRC_BT829=m
-CONFIG_LIRC_IGORPLUGUSB=m
-CONFIG_LIRC_IMON=m
-CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
-CONFIG_LIRC_SERIAL=m
-CONFIG_LIRC_SERIAL_TRANSMITTER=y
-CONFIG_LIRC_SIR=m
-CONFIG_LIRC_TTUSBIR=m
-CONFIG_LIRC_ZILOG=m
-CONFIG_EASYCAP=m
-CONFIG_EASYCAP_SND=y
-# CONFIG_EASYCAP_OSS is not set
-# CONFIG_EASYCAP_DEBUG is not set
-CONFIG_SOLO6X10=m
CONFIG_ACPI_QUICKSTART=m
-CONFIG_MACH_NO_WESTBRIDGE=y
-CONFIG_ATH6K_LEGACY=m
-CONFIG_AR600x_SD31_XXX=y
-# CONFIG_AR600x_WB31_XXX is not set
-# CONFIG_AR600x_SD32_XXX is not set
-# CONFIG_AR600x_CUSTOM_XXX is not set
-CONFIG_ATH6KL_ENABLE_COEXISTENCE=y
-CONFIG_AR600x_DUAL_ANTENNA=y
-# CONFIG_AR600x_SINGLE_ANTENNA is not set
-# CONFIG_AR600x_BT_QCOM is not set
-# CONFIG_AR600x_BT_CSR is not set
-CONFIG_AR600x_BT_AR3001=y
-CONFIG_ATH6KL_HCI_BRIDGE=y
-CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET=y
-CONFIG_AR600x_BT_RESET_PIN=22
-CONFIG_ATH6KL_HTC_RAW_INTERFACE=y
-CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
-CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK=y
-# CONFIG_ATH6KL_DEBUG is not set
CONFIG_USB_ENESTORAGE=m
CONFIG_BCM_WIMAX=m
CONFIG_FT1000=m
@@ -4805,12 +4870,40 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_DRM_PSB=m
-
-#
-# Altera FPGA firmware download module
-#
-CONFIG_ALTERA_STAPL=m
+CONFIG_DRM_PSB_MRST=y
+CONFIG_DRM_PSB_MFLD=y
+CONFIG_DRM_PSB_CDV=y
CONFIG_INTEL_MEI=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_DVB_AS102=m
+CONFIG_DVB_CXD2099=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_DT3155_STREAMING=y
+CONFIG_EASYCAP=m
+# CONFIG_EASYCAP_DEBUG is not set
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_SOLO6X10=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -4854,6 +4947,27 @@ CONFIG_XO15_EBOOK=m
CONFIG_SAMSUNG_LAPTOP=m
CONFIG_MXM_WMI=m
CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_AMD_IOMMU=y
+# CONFIG_AMD_IOMMU_STATS is not set
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_IRQ_REMAP=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+# CONFIG_PM_DEVFREQ is not set
#
# Firmware Drivers
@@ -4873,23 +4987,14 @@ CONFIG_SIGMA=m
#
# File systems
#
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT23=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=m
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=m
@@ -5010,16 +5115,24 @@ CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_XATTR=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
CONFIG_LOGFS=m
CONFIG_CRAMFS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
+CONFIG_MINIX_FS=m
CONFIG_OMFS_FS=m
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
@@ -5031,6 +5144,7 @@ CONFIG_UFS_FS=m
# CONFIG_UFS_DEBUG is not set
CONFIG_EXOFS_FS=m
# CONFIG_EXOFS_DEBUG is not set
+CONFIG_ORE=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
@@ -5042,7 +5156,6 @@ CONFIG_NFS_FSCACHE=y
CONFIG_NFS_USE_KERNEL_DNS=y
# CONFIG_NFS_USE_NEW_IDMAPPER is not set
CONFIG_NFSD=m
-# CONFIG_NFSD_DEPRECATED is not set
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
@@ -5094,7 +5207,7 @@ CONFIG_PARTITION_ADVANCED=y
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
-# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_LDM_PARTITION=y
@@ -5190,7 +5303,7 @@ CONFIG_DEBUG_MUTEXES=y
# CONFIG_PROVE_LOCKING is not set
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_STACK_USAGE is not set
@@ -5317,9 +5430,15 @@ CONFIG_SECURITY_PATH=y
# CONFIG_SECURITY_SELINUX is not set
# CONFIG_SECURITY_SMACK is not set
CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
CONFIG_SECURITY_APPARMOR=y
CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
CONFIG_DEFAULT_SECURITY_DAC=y
@@ -5351,6 +5470,7 @@ CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
@@ -5399,6 +5519,7 @@ CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA1_SSSE3=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TGR192=m
@@ -5414,6 +5535,8 @@ CONFIG_CRYPTO_AES_NI_INTEL=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
@@ -5428,6 +5551,7 @@ CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
#
# Compression
@@ -5447,8 +5571,6 @@ CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_EVENTFD=y
@@ -5461,10 +5583,6 @@ CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
CONFIG_VHOST_NET=m
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_RING=m
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
CONFIG_BINARY_PRINTF=y
#
@@ -5480,6 +5598,7 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_LZO_COMPRESS=y
@@ -5498,6 +5617,9 @@ CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
@@ -5511,3 +5633,4 @@ CONFIG_CPU_RMAP=y
CONFIG_NLATTR=y
CONFIG_LRU_CACHE=m
CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
diff --git a/kernels/linux-libre-xen/fix-i915.patch b/kernels/linux-libre-xen/fix-i915.patch
index 3b631361a..25d4bca87 100644
--- a/kernels/linux-libre-xen/fix-i915.patch
+++ b/kernels/linux-libre-xen/fix-i915.patch
@@ -1,26 +1,105 @@
-Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
-Tested-by: Santi <santi@agolina.net>
----
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
+<head>
+<title>abslibre.git - Libre PKGBUILDs repository</title>
+<meta name='generator' content='cgit v0.9.0.2'/>
+<meta name='robots' content='index, nofollow'/>
+<link rel='stylesheet' type='text/css' href='/cgit.css'/>
+<link rel='shortcut icon' href='/favicon.ico'/>
+<link rel='alternate' title='Atom feed' href='http://projects.parabolagnulinux.org/abslibre.git/atom/kernels/linux-libre-xen/fix-i915.patch?h=master' type='application/atom+xml'/>
+</head>
+<body>
+ <div id="archnavbar" class="">
+ <div id="archnavbarlogo"><h1><a href="/" title="Return to the main page">Parabola</a></h1></div>
+ <div id="archnavbarmenu">
+ <ul id="archnavbarlist">
+ <li id="anb-home"><a href="//parabolagnulinux.org" title="Parabola news, packages, projects and more">Home</a></li>
+ <li id="anb-packages"><a href="//parabolagnulinux.org/packages/" title="Parabola Package Database">Packages</a></li>
+ <li id="anb-wiki"><a href="//wiki.parabolagnulinux.org" title="Community documentation">Wiki</a></li>
+ <li id="anb-bugs"><a href="//bugs.parabolagnulinux.org" title="Issue Tracker">Bugs</a></li>
+ <li id="anb-projects"><a href="//projects.parabolagnulinux.org" title="Our Code">Projects</a></li>
+ <li id="anb-download"><a href="//parabolagnulinux.org/download" title="Get Parabola">Download</a></li>
+ </ul>
+ </div>
+ </div><!-- #archnavbar -->
+<div id='cgit'><table id='header'>
+<tr>
+<td class='main'><a href='/'>index</a> : <a title='abslibre.git' href='/abslibre.git/'>abslibre.git</a></td><td class='form'><form method='get' action=''>
+<select name='h' onchange='this.form.submit();'>
+<option value='master' selected='selected'>master</option>
+</select> <input type='submit' name='' value='switch'/></form></td></tr>
+<tr><td class='sub'>Libre PKGBUILDs repository</td><td class='sub right'>packages@list.parabolagnulinux.org</td></tr></table>
+<table class='tabs'><tr><td>
+<a href='/abslibre.git/'>summary</a><a href='/abslibre.git/refs/'>refs</a><a href='/abslibre.git/log/kernels/linux-libre-xen/fix-i915.patch'>log</a><a class='active' href='/abslibre.git/tree/kernels/linux-libre-xen/fix-i915.patch'>tree</a><a href='/abslibre.git/commit/kernels/linux-libre-xen/fix-i915.patch'>commit</a><a href='/abslibre.git/diff/kernels/linux-libre-xen/fix-i915.patch'>diff</a><a href='/abslibre.git/stats/kernels/linux-libre-xen/fix-i915.patch'>stats</a></td><td class='form'><form class='right' method='get' action='/abslibre.git/log/kernels/linux-libre-xen/fix-i915.patch'>
+<select name='qt'>
+<option value='grep'>log msg</option>
+<option value='author'>author</option>
+<option value='committer'>committer</option>
+<option value='range'>range</option>
+</select>
+<input class='txt' type='text' size='10' name='q' value=''/>
+<input type='submit' value='search'/>
+</form>
+</td></tr></table>
+<div class='path'>path: <a href='/abslibre.git/tree/'>root</a>/<a href='/abslibre.git/tree/kernels'>kernels</a>/<a href='/abslibre.git/tree/kernels/linux-libre-xen'>linux-libre-xen</a>/<a href='/abslibre.git/tree/kernels/linux-libre-xen/fix-i915.patch'>fix-i915.patch</a></div><div class='content'>blob: 3b631361a15ee4ba6491f0b8960f0e18044e2cf0 (<a href='/abslibre.git/plain/kernels/linux-libre-xen/fix-i915.patch'>plain</a>)
+<table summary='blob content' class='blob'>
+<tr><td class='linenumbers'><pre><a class='no' id='n1' name='n1' href='#n1'>1</a>
+<a class='no' id='n2' name='n2' href='#n2'>2</a>
+<a class='no' id='n3' name='n3' href='#n3'>3</a>
+<a class='no' id='n4' name='n4' href='#n4'>4</a>
+<a class='no' id='n5' name='n5' href='#n5'>5</a>
+<a class='no' id='n6' name='n6' href='#n6'>6</a>
+<a class='no' id='n7' name='n7' href='#n7'>7</a>
+<a class='no' id='n8' name='n8' href='#n8'>8</a>
+<a class='no' id='n9' name='n9' href='#n9'>9</a>
+<a class='no' id='n10' name='n10' href='#n10'>10</a>
+<a class='no' id='n11' name='n11' href='#n11'>11</a>
+<a class='no' id='n12' name='n12' href='#n12'>12</a>
+<a class='no' id='n13' name='n13' href='#n13'>13</a>
+<a class='no' id='n14' name='n14' href='#n14'>14</a>
+<a class='no' id='n15' name='n15' href='#n15'>15</a>
+<a class='no' id='n16' name='n16' href='#n16'>16</a>
+<a class='no' id='n17' name='n17' href='#n17'>17</a>
+<a class='no' id='n18' name='n18' href='#n18'>18</a>
+<a class='no' id='n19' name='n19' href='#n19'>19</a>
+<a class='no' id='n20' name='n20' href='#n20'>20</a>
+<a class='no' id='n21' name='n21' href='#n21'>21</a>
+<a class='no' id='n22' name='n22' href='#n22'>22</a>
+<a class='no' id='n23' name='n23' href='#n23'>23</a>
+<a class='no' id='n24' name='n24' href='#n24'>24</a>
+<a class='no' id='n25' name='n25' href='#n25'>25</a>
+<a class='no' id='n26' name='n26' href='#n26'>26</a>
+</pre></td>
+<td class='lines'><pre><code>Signed-off-by: Zhao Yakui &lt;yakui.zhao&#64;intel.com&gt;
+Tested-by: Santi &lt;santi&#64;agolina.net&gt;
+<span class="hl kwb">---</span>
drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index dc83b7a..c8f67bf 100644
---- a/drivers/gpu/drm/i915/intel_tv.c
-+++ b/drivers/gpu/drm/i915/intel_tv.c
-@@ -1267,6 +1267,15 @@
+<span class="hl kwb">--- a/drivers/gpu/drm/i915/intel_tv.c</span>
+<span class="hl kwa">+++ b/drivers/gpu/drm/i915/intel_tv.c</span>
+<span class="hl kwd">&#64;&#64; -1267,6 +1267,15 &#64;&#64;</span>
DAC_B_0_7_V |
DAC_C_0_7_V);
-+ /*
-+ * The TV sense state should be cleared to zero on cantiga platform. Otherwise
-+ * the TV is misdetected. This is hardware requirement.
-+ */
-+ if (IS_GM45(dev))
-+ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
-+ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
-+
-+
+<span class="hl kwa">+ /*</span>
+<span class="hl kwa">+ * The TV sense state should be cleared to zero on cantiga platform. Otherwise</span>
+<span class="hl kwa">+ * the TV is misdetected. This is hardware requirement.</span>
+<span class="hl kwa">+ */</span>
+<span class="hl kwa">+ if (IS_GM45(dev))</span>
+<span class="hl kwa">+ tv_dac &amp;= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |</span>
+<span class="hl kwa">+ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);</span>
+<span class="hl kwa">+</span>
+<span class="hl kwa">+ </span>
I915_WRITE(TV_CTL, tv_ctl);
I915_WRITE(TV_DAC, tv_dac);
POSTING_READ(TV_DAC);
+</code></pre></td></tr></table>
+</div> <!-- class=content -->
+<div class='footer'>generated by cgit v0.9.0.2 at 2012-02-21 13:29:45 (GMT)</div>
+</div> <!-- id=cgit -->
+</body>
+</html>
diff --git a/kernels/linux-libre-xen/i915-fix-ghost-tv-output.patch b/kernels/linux-libre-xen/i915-fix-ghost-tv-output.patch
new file mode 100644
index 000000000..3b631361a
--- /dev/null
+++ b/kernels/linux-libre-xen/i915-fix-ghost-tv-output.patch
@@ -0,0 +1,26 @@
+Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
+Tested-by: Santi <santi@agolina.net>
+---
+ drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
+index dc83b7a..c8f67bf 100644
+--- a/drivers/gpu/drm/i915/intel_tv.c
++++ b/drivers/gpu/drm/i915/intel_tv.c
+@@ -1267,6 +1267,15 @@
+ DAC_B_0_7_V |
+ DAC_C_0_7_V);
+
++ /*
++ * The TV sense state should be cleared to zero on cantiga platform. Otherwise
++ * the TV is misdetected. This is hardware requirement.
++ */
++ if (IS_GM45(dev))
++ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
++ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
++
++
+ I915_WRITE(TV_CTL, tv_ctl);
+ I915_WRITE(TV_DAC, tv_dac);
+ POSTING_READ(TV_DAC);
diff --git a/kernels/linux-libre-xen/i915-gpu-finish.patch b/kernels/linux-libre-xen/i915-gpu-finish.patch
new file mode 100644
index 000000000..5840c9181
--- /dev/null
+++ b/kernels/linux-libre-xen/i915-gpu-finish.patch
@@ -0,0 +1,55 @@
+commit 389a55581e30607af0fcde6cdb4e54f189cf46cf
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue Nov 29 15:12:16 2011 +0000
+
+ drm/i915: Only clear the GPU domains upon a successful finish
+
+ By clearing the GPU read domains before waiting upon the buffer, we run
+ the risk of the wait being interrupted and the domains prematurely
+ cleared. The next time we attempt to wait upon the buffer (after
+ userspace handles the signal), we believe that the buffer is idle and so
+ skip the wait.
+
+ There are a number of bugs across all generations which show signs of an
+ overly haste reuse of active buffers.
+
+ Such as:
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=29046
+ https://bugs.freedesktop.org/show_bug.cgi?id=35863
+ https://bugs.freedesktop.org/show_bug.cgi?id=38952
+ https://bugs.freedesktop.org/show_bug.cgi?id=40282
+ https://bugs.freedesktop.org/show_bug.cgi?id=41098
+ https://bugs.freedesktop.org/show_bug.cgi?id=41102
+ https://bugs.freedesktop.org/show_bug.cgi?id=41284
+ https://bugs.freedesktop.org/show_bug.cgi?id=42141
+
+ A couple of those pre-date i915_gem_object_finish_gpu(), so may be
+ unrelated (such as a wild write from a userspace command buffer), but
+ this does look like a convincing cause for most of those bugs.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+ Cc: stable@kernel.org
+ Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+ Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
+
+diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
+index d560175..036bc58 100644
+--- a/drivers/gpu/drm/i915/i915_gem.c
++++ b/drivers/gpu/drm/i915/i915_gem.c
+@@ -3087,10 +3087,13 @@ i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj)
+ return ret;
+ }
+
++ ret = i915_gem_object_wait_rendering(obj);
++ if (ret)
++ return ret;
++
+ /* Ensure that we invalidate the GPU's caches and TLBs. */
+ obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS;
+-
+- return i915_gem_object_wait_rendering(obj);
++ return 0;
+ }
+
+ /**
diff --git a/kernels/linux-libre-xen/linux-libre-xen.install b/kernels/linux-libre-xen/linux-libre-xen.install
index 2b9ef501b..16b877724 100644
--- a/kernels/linux-libre-xen/linux-libre-xen.install
+++ b/kernels/linux-libre-xen/linux-libre-xen.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-xen
-KERNEL_VERSION=3.1.5-1-LIBRE-XEN
+KERNEL_VERSION=3.2.7-1-LIBRE-XEN
post_install () {
# updating module dependencies
@@ -18,7 +18,8 @@ post_install () {
if [ -n "${loaders}" ] && grep -q -e vmlinuz26 -e kernel26.img -e kernel26-fallback.img $loaders; then
# add compat symlinks for the initramfs images
ln -sf initramfs-linux-libre${KERNEL_NAME}.img /boot/kernel26${KERNEL_NAME}.img
- ln -sf initramfs-linux-libre${KERNEL_NAME}-fallback.img /boot/kernel26${KERNEL_NAME}-fallback.img
+ ln -sf initramfs-linux-libre${KERNEL_NAME}-fallback.img \
+ boot/kernel26${KERNEL_NAME}-fallback.img
ln -sf vmlinuz-linux-libre${KERNEL_NAME} /boot/vmlinuz26${KERNEL_NAME}
fi
fi
@@ -43,12 +44,8 @@ post_upgrade() {
echo ">>>"
fi
- if grep "^[^#]*[[:space:]]/boot" etc/fstab 2>&1 >/dev/null; then
- if ! grep "[[:space:]]/boot" etc/mtab 2>&1 >/dev/null; then
- echo "WARNING: /boot appears to be a seperate partition but is not mounted"
- echo " This is most likely not what you want. Please mount your /boot"
- echo " partition and reinstall the kernel unless you are sure this is OK"
- fi
+ if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then
+ echo "WARNING: /boot appears to be a separate partition but is not mounted."
fi
# updating module dependencies
diff --git a/kernels/xe-guest-utilities/PKGBUILD b/kernels/xe-guest-utilities/PKGBUILD
new file mode 100644
index 000000000..b866a6f58
--- /dev/null
+++ b/kernels/xe-guest-utilities/PKGBUILD
@@ -0,0 +1,45 @@
+# Contributor: Krzysztof Raczkowski <raczkow@gnu-tech.pl>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgname=xe-guest-utilities
+pkgver=6.0.0
+pkgrel=5
+pkgdesc="Citrix XenServer Tools"
+arch=('i686' 'x86_64')
+url="http://citrix.com/English/ps2/products/product.asp?contentID=683148&ntref=hp_nav_US"
+license=('GPL' 'LGPL')
+optdepends=('linux-libre: DomU kernel for x86_64'
+ 'linux-libre-xen: DomU kernel for i686'
+ 'kernel-libre-lts: DomU kernel for i686 (long time supported)')
+makedepends=('rpmextract')
+source=(ftp://ftp.prz.edu.pl/pub/archlinux/archrak/src/xe-guest-utilities-${pkgver}-743.i386.rpm
+ ftp://ftp.prz.edu.pl/pub/archlinux/archrak/src/xe-guest-utilities-xenstore-${pkgver}-743.i386.rpm
+ ftp://ftp.prz.edu.pl/pub/archlinux/archrak/src/xe-guest-utilities-${pkgver}-743.x86_64.rpm
+ ftp://ftp.prz.edu.pl/pub/archlinux/archrak/src/xe-guest-utilities-xenstore-${pkgver}-743.x86_64.rpm
+ xe-guest-utilities-parabola.patch
+ ip_address.patch)
+
+md5sums=('894d33028b2712650be324b7ba01c6c4'
+ 'e100f97421ff522cb228aa749881a082'
+ 'ffaf02afa2105d32e011a32c80921256'
+ '9b9570b5cc27832df303c8ef9cd11d36'
+ '0d8a8ebe124d585a2b101150df8f5ff7'
+ '86b4a69b412f874bf5b4db8ac8858644')
+
+build() {
+ cd $startdir/src
+ [ $CARCH == "i686" ] && (
+ rpmextract.sh xe-guest-utilities-*.i386.rpm && \
+ rpmextract.sh xe-guest-utilities-xenstore-*.i386.rpm || return 1
+ )
+ [ $CARCH == "x86_64" ] && (
+ rpmextract.sh xe-guest-utilities-*.x86_64.rpm && \
+ rpmextract.sh xe-guest-utilities-xenstore-*.x86_64.rpm || return 1
+ )
+
+ patch -Np1 -i ${srcdir}/xe-guest-utilities-parabola.patch || return 1
+ patch -Np1 -i ${srcdir}/ip_address.patch || return 1
+
+ cp -ra ${srcdir}/{etc,usr} ${pkgdir}/ || return 1
+ mv ${pkgdir}/etc/init.d ${pkgdir}/etc/rc.d
+}
diff --git a/kernels/xe-guest-utilities/ip_address.patch b/kernels/xe-guest-utilities/ip_address.patch
new file mode 100644
index 000000000..1e589ef37
--- /dev/null
+++ b/kernels/xe-guest-utilities/ip_address.patch
@@ -0,0 +1,30 @@
+--- src.orig/usr/sbin/xe-update-guest-attrs 2011-12-28 21:05:13.055346917 -0600
++++ src/usr/sbin/xe-update-guest-attrs 2011-12-28 21:04:02.545354603 -0600
+@@ -151,9 +151,9 @@
+ # 3: sit0: <NOARP> mtu 1480 qdisc noop
+ # link/sit 0.0.0.0 brd 0.0.0.0
+
+-#eval $(ip addr show | \
+-# sed -n -e 's/^[[:digit:]]*: \([a-z0-9]*\): .*/ifs="\$ifs \1"; current="\1"; /gp;' \
+-# -e 's/^[[:space:]]\{4\}inet \('${IPADDR_RE}'\)\/.*/eval inet_\${current}="\1"; /gp;')
++eval $(ip addr show | \
++ sed -n -e 's/^[[:digit:]]*: \([a-z0-9]*\): .*/ifs="\$ifs \1"; current="\1"; /gp;' \
++ -e 's/^[[:space:]]\{4\}inet \('${IPADDR_RE}'\)\/.*/eval inet_\${current}="\1"; /gp;')
+
+ # e.g.
+ # eth0 Link encap:Ethernet HWaddr 00:13:20:95:E8:74
+@@ -175,10 +175,10 @@
+ # collisions:0 txqueuelen:0
+ # RX bytes:3604609 (3.4 MiB) TX bytes:3604609 (3.4 MiB)
+
+-eval $(/sbin/ifconfig | \
+- sed -n -e '/^[0-9a-z][0-9a-z]*\:/,/^$/d' \
+- -e 's/^\([0-9a-z][0-9a-z]*\) .*/ifs="\$ifs \1"; current="\1"; /gp;' \
+- -e 's/ *inet addr:\('$IPADDR_RE'\) .*/eval inet_\${current}="\1"; /gp;')
++#eval $(/sbin/ifconfig | \
++# sed -n -e '/^[0-9a-z][0-9a-z]*\:/,/^$/d' \
++# -e 's/^\([0-9a-z][0-9a-z]*\) .*/ifs="\$ifs \1"; current="\1"; /gp;' \
++# -e 's/ *inet addr:\('$IPADDR_RE'\) .*/eval inet_\${current}="\1"; /gp;')
+
+ # network
+ for if in $ifs ; do \ No newline at end of file
diff --git a/kernels/xe-guest-utilities/xe-guest-utilities-parabola.patch b/kernels/xe-guest-utilities/xe-guest-utilities-parabola.patch
new file mode 100644
index 000000000..a433f6887
--- /dev/null
+++ b/kernels/xe-guest-utilities/xe-guest-utilities-parabola.patch
@@ -0,0 +1,146 @@
+diff -uNr src.orig//etc/init.d/xe-linux-distribution src/etc/init.d/xe-linux-distribution
+--- src.orig//etc/init.d/xe-linux-distribution 2010-05-20 13:19:02.000000000 +0200
++++ src/etc/init.d/xe-linux-distribution 2010-10-04 14:45:11.000000000 +0200
+@@ -18,24 +18,8 @@
+ LANG="C"
+ export LANG
+
+-if [ -f /etc/init.d/functions ] ; then
+-. /etc/init.d/functions
+-else
+-action()
+-{
+- descr=$1 ; shift
+- cmd=$@
+- echo -n "$descr "
+- $cmd
+- ret=$?
+- if [ $ret -eq 0 ] ; then
+- echo "OK"
+- else
+- echo "Failed"
+- fi
+- return $ret
+-}
+-fi
++. /etc/rc.conf
++. /etc/rc.d/functions
+
+ XE_LINUX_DISTRIBUTION=/usr/sbin/xe-linux-distribution
+ XE_LINUX_DISTRIBUTION_CACHE=/var/cache/xe-linux-distribution
+@@ -48,35 +32,59 @@
+
+ start()
+ {
++ if [ -e /proc/xen/capabilities ] && grep -q control_d /proc/xen/capabilities ; then
++ # Do not want daemon in domain 0
++ exit 0
++ fi
++
++ stat_busy "Detecting GNU/Linux distribution version"
++ ${XE_LINUX_DISTRIBUTION} ${XE_LINUX_DISTRIBUTION_CACHE}
++ if [ $? -gt 0 ]; then
++ stat_fail
++ else
++ stat_done
++ fi
++
+ if [ ! -e /proc/xen/xenbus ] ; then
+ if [ ! -d /proc/xen ] ; then
+- action $"Mounting xenfs on /proc/xen:" /bin/false
++ stat_busy "Mounting xenfs on /proc/xen"
+ echo "Could not find /proc/xen directory."
+ echo "You need a post 2.6.29-rc1 kernel with CONFIG_XEN_COMPAT_XENFS=y and CONFIG_XENFS=y|m"
+- exit 1
++ stat_die 1
+ else
+ # This is needed post 2.6.29-rc1 when /proc/xen support was pushed upstream as a xen filesystem
+- action $"Mounting xenfs on /proc/xen:" mount -t xenfs none /proc/xen
++ stat_busy "Mounting xenfs on /proc/xen"
++ mount -t xenfs none /proc/xen
++ if [ $? -gt 0 ]; then
++ stat_fail
++ else
++ stat_done
++ fi
+ fi
+ fi
+
+- if [ -e /proc/xen/capabilities ] && grep -q control_d /proc/xen/capabilities ; then
+- # Do not want daemon in domain 0
+- exit 0
+- fi
+-
+- action $"Detecting Linux distribution version:" \
+- ${XE_LINUX_DISTRIBUTION} ${XE_LINUX_DISTRIBUTION_CACHE}
+-
+- action $"Starting xe daemon: " /bin/true
++ stat_busy "Starting xe daemon"
+ mkdir -p $(dirname ${XE_DAEMON_PIDFILE})
+ # This is equivalent to daemon() in C
+ ( exec &>/dev/null ; ${XE_DAEMON} -p ${XE_DAEMON_PIDFILE} & )
++ if [ $? -gt 0 ]; then
++ stat_fail
++ else
++ add_daemon xe-linux-distribution
++ stat_done
++ fi
+ }
+
+ stop()
+ {
+- action $"Stopping xe daemon: " kill -TERM $(cat ${XE_DAEMON_PIDFILE})
++ stat_busy "Stopping xe daemon"
++ killall $(basename ${XE_DAEMON}) -TERM
++ if [ $? -gt 0 ]; then
++ stat_fail
++ else
++ rm_daemon xe-linux-distribution
++ stat_done
++ fi
+ }
+
+ # fail silently if not running xen
+@@ -91,7 +99,7 @@
+ stop)
+ stop
+ ;;
+- force-reload|restart)
++ restart)
+ stop
+ start
+ ;;
+diff -uNr src.orig//usr/sbin/xe-linux-distribution src/usr/sbin/xe-linux-distribution
+--- src.orig//usr/sbin/xe-linux-distribution 2010-05-20 13:19:02.000000000 +0200
++++ src/usr/sbin/xe-linux-distribution 2010-10-04 14:44:37.000000000 +0200
+@@ -51,6 +51,22 @@
+ return 0
+ }
+
++identify_parabola()
++{
++ local parabola_version="$1"
++ local major
++ local minor
++
++ if [ ! -f "${parabola_version}" ] ; then
++ return 1
++ fi
++
++ eval $(LC_ALL=C pacman -Qi initscripts |grep Version |sed "s/^.*: //" | \
++ awk -F. '{print "major="$1 ; print "minor="$2 ; exit 0 }' )
++ write_to_output "parabola" "${major}" "${minor}" "Parabola GNU/Linux-Libre ${major}.${minor}"
++
++}
++
+ identify_debian()
+ {
+ local debian_version="$1"
+@@ -258,6 +274,7 @@
+ identify_sles /etc/SuSE-release && exit 0
+ identify_lsb lsb_release && exit 0
+ identify_debian /etc/debian_version && exit 0
++ identify_parabola /etc/arch-release && exit 0
+
+ if [ $# -eq 1 ] ; then
+ rm -f "$1"
diff --git a/kernels/xen/09_xen b/kernels/xen/09_xen
new file mode 100755
index 000000000..094b7f427
--- /dev/null
+++ b/kernels/xen/09_xen
@@ -0,0 +1,123 @@
+#! /bin/sh -e
+
+if [ -f /usr/lib/grub/grub-mkconfig_lib ]; then
+ . /usr/lib/grub/grub-mkconfig_lib
+else
+ # no grub file, so we notify and exit gracefully
+ echo "Cannot find grub config file, exiting." >&2
+ exit 0
+fi
+
+XEN_HYPERVISOR_CMDLINE=
+XEN_LINUX_CMDLINE="console=tty0"
+[ -r /etc/xen/grub.conf ] && . /etc/xen/grub.conf
+
+CLASS="--class gnu-linux --class gnu --class os"
+
+if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
+ OS=GNU/Linux
+else
+ OS="${GRUB_DISTRIBUTOR}"
+ CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1) ${CLASS}"
+fi
+
+# loop-AES arranges things so that /dev/loop/X can be our root device, but
+# the initrds that Linux uses don't like that.
+case ${GRUB_DEVICE} in
+ /dev/loop/*|/dev/loop[0-9])
+ GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
+ ;;
+esac
+
+if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
+ || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
+ || [ "`grub-probe -t abstraction --device ${GRUB_DEVICE} | sed -e 's,.*\(lvm\).*,\1,'`" = "lvm" ] ; then
+ LINUX_ROOT_DEVICE=${GRUB_DEVICE}
+else
+ LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
+fi
+
+xen_entry ()
+{
+ os="$1"
+ xen_version="$2"
+ version="$3"
+ xen_args="$4"
+ args="$5"
+ printf "menuentry 'Xen %s / %s, with Linux %s' --class xen ${CLASS} {\n" "${xen_version}" "${os}" "${version}"
+ save_default_entry | sed -e "s/^/\t/"
+
+ if [ -z "${prepare_boot_cache}" ]; then
+ prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/")"
+ fi
+ printf '%s\n' "${prepare_boot_cache}"
+ cat << EOF
+ echo '$(printf "Loading Xen %s ..." ${xen_version})'
+ multiboot ${rel_dirname}/${xen_basename} ${rel_dirname}/${xen_basename} ${xen_args}
+ echo $(printf "$(gettext "Loading Linux %s ...")" ${version})
+ module ${rel_dirname}/${basename} ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
+EOF
+ if test -n "${initrd}" ; then
+ cat << EOF
+ echo "Loading initial ramdisk ..."
+ module ${rel_dirname}/${initrd}
+EOF
+ fi
+ cat << EOF
+}
+EOF
+}
+
+xen_list=`for i in /boot/xen-*.gz /xen-*.gz ; do
+ if grub_file_is_not_garbage "$i" ; then echo -n "$i "; fi
+done`
+prepare_boot_cache=
+
+while [ "x$xen_list" != "x" ] ; do
+ xen=`version_find_latest $xen_list`
+ echo "Found Xen hypervisor image: $xen" >&2
+ xen_basename=`basename $xen`
+ xen_dirname=`dirname $xen`
+ rel_xen_dirname=`make_system_path_relative_to_its_root $xen_dirname`
+ xen_version=`echo $xen_basename | sed -e "s,^[^0-9]*-,,g" | sed -e "s,.gz,,g"`
+ alt_xen_version=`echo $xen_version | sed -e "s,\.old$,,g"`
+
+ xen_configfiles=`grep -l 'CONFIG_XEN_PRIVILEGED_GUEST=y' /boot/config-*`
+
+ list="/boot/vmlinuz-linux-libre";
+
+ while [ "x$list" != "x" ] ; do
+ linux=`version_find_latest $list`
+ echo -e "\tFound linux image: $linux" >&2
+ basename=`basename $linux`
+ dirname=`dirname $linux`
+ rel_dirname=`make_system_path_relative_to_its_root $dirname`
+ version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
+ base_init=`echo $basename | sed -e "s,vmlinuz,initramfs,g"`
+ alt_version="${base_init}-fallback"
+ linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+ initrd=
+
+ for i in "${base_init}.img"; do
+ if test -e "${dirname}/${i}" ; then
+ initrd="$i"
+ break
+ fi
+ done
+ if test -n "${initrd}" ; then
+ echo -e "\tFound initrd image: ${dirname}/${initrd}" >&2
+ else
+ # "UUID=" magic is parsed by initrds. Since there's no initrd, it can't work here.
+ linux_root_device_thisversion=${GRUB_DEVICE}
+ fi
+
+ xen_entry "${OS}" "${xen_version}" "${version}" \
+ "${XEN_HYPERVISOR_CMDLINE}" \
+ "${XEN_LINUX_CMDLINE}"
+
+ list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
+ done
+
+ xen_list=`echo $xen_list | tr ' ' '\n' | grep -vx $xen | tr '\n' ' '`
+done
+
diff --git a/kernels/xen/24341.patch b/kernels/xen/24341.patch
new file mode 100644
index 000000000..5554004d3
--- /dev/null
+++ b/kernels/xen/24341.patch
@@ -0,0 +1,11 @@
+--- a/xen/arch/x86/x86_64/mmconfig_64.c 2011-10-20 15:05:49.000000000 -0200
++++ b/xen/arch/x86/x86_64/mmconfig_64.c 2012-02-14 23:45:47.481729733 -0200
+@@ -23,7 +23,7 @@
+ char __iomem *virt;
+ };
+ static struct mmcfg_virt *pci_mmcfg_virt;
+-static int __initdata mmcfg_pci_segment_shift;
++static unsigned int mmcfg_pci_segment_shift;
+
+ static char __iomem *get_virt(unsigned int seg, unsigned bus)
+ {
diff --git a/kernels/xen/24344.patch b/kernels/xen/24344.patch
new file mode 100644
index 000000000..642b90867
--- /dev/null
+++ b/kernels/xen/24344.patch
@@ -0,0 +1,33 @@
+--- a/tools/libxc/xc_cpuid_x86.c 2011-10-20 15:05:42.000000000 -0200
++++ b/tools/libxc/xc_cpuid_x86.c 2012-02-15 00:01:46.307514813 -0200
+@@ -42,23 +42,23 @@
+ static void cpuid(const unsigned int *input, unsigned int *regs)
+ {
+ unsigned int count = (input[1] == XEN_CPUID_INPUT_UNUSED) ? 0 : input[1];
+- asm (
+ #ifdef __i386__
++/* Use the stack to avoid reg constraint failures with some gcc flags */
++ asm (
+ "push %%ebx; push %%edx\n\t"
+-#else
+- "push %%rbx; push %%rdx\n\t"
+-#endif
+ "cpuid\n\t"
+ "mov %%ebx,4(%4)\n\t"
+ "mov %%edx,12(%4)\n\t"
+-#ifdef __i386__
+ "pop %%edx; pop %%ebx\n\t"
++ : "=a" (regs[0]), "=c" (regs[2])
++ : "0" (input[0]), "1" (count), "S" (regs)
++ : "memory" );
+ #else
+- "pop %%rdx; pop %%rbx\n\t"
++ asm (
++ "cpuid"
++ : "=a" (regs[0]), "=b" (regs[1]), "=c" (regs[2]), "=d" (regs[3])
++ : "0" (input[0]), "2" (count) );
+ #endif
+- : "=a" (regs[0]), "=c" (regs[2])
+- : "0" (input[0]), "1" (count), "S" (regs)
+- : "memory" );
+ }
diff --git a/kernels/xen/24345.patch b/kernels/xen/24345.patch
new file mode 100644
index 000000000..e75a1b38c
--- /dev/null
+++ b/kernels/xen/24345.patch
@@ -0,0 +1,31 @@
+--- a/tools/misc/xen-detect.c 2011-10-20 15:05:43.000000000 -0200
++++ b/tools/misc/xen-detect.c 2012-02-15 00:05:55.524455578 -0200
+@@ -35,18 +35,21 @@
+
+ static void cpuid(uint32_t idx, uint32_t *regs, int pv_context)
+ {
+- asm volatile (
+ #ifdef __i386__
+-#define R(x) "%%e"#x"x"
+-#else
+-#define R(x) "%%r"#x"x"
+-#endif
+- "push "R(a)"; push "R(b)"; push "R(c)"; push "R(d)"\n\t"
++/* Use the stack to avoid reg constraint failures with some gcc flags */
++ asm volatile (
++ "push %%eax; push %%ebx; push %%ecx; push %%edx\n\t"
+ "test %1,%1 ; jz 1f ; ud2a ; .ascii \"xen\" ; 1: cpuid\n\t"
+ "mov %%eax,(%2); mov %%ebx,4(%2)\n\t"
+ "mov %%ecx,8(%2); mov %%edx,12(%2)\n\t"
+- "pop "R(d)"; pop "R(c)"; pop "R(b)"; pop "R(a)"\n\t"
++ "pop %%edx; pop %%ecx; pop %%ebx; pop %%eax\n\t"
+ : : "a" (idx), "c" (pv_context), "S" (regs) : "memory" );
++#else
++ asm volatile (
++ "test %5,%5 ; jz 1f ; ud2a ; .ascii \"xen\" ; 1: cpuid\n\t"
++ : "=a" (regs[0]), "=b" (regs[1]), "=c" (regs[2]), "=d" (regs[3])
++ : "0" (idx), "1" (pv_context), "2" (0) );
++#endif
+ }
+
+ static int check_for_xen(int pv_context)
diff --git a/kernels/xen/PKGBUILD b/kernels/xen/PKGBUILD
new file mode 100644
index 000000000..4f4a1218b
--- /dev/null
+++ b/kernels/xen/PKGBUILD
@@ -0,0 +1,104 @@
+# Mantainer M0Rf30
+# Contributor WaxyMouthfeel
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+pkgname=xen
+pkgver=4.1.2
+pkgrel=3
+pkgdesc="Xen 4 (hypervisor and tools)"
+arch=(i686 x86_64)
+url="http://xen.org/"
+license="GPL"
+
+if [[ $CARCH == "x86_64" ]]; then
+ depends=('xz-utils' 'bzip2' 'iproute' 'net-tools' 'bridge-utils' 'python2' 'sdl' 'zlib' 'e2fsprogs' 'bin86' 'pkgconfig' 'gnutls' 'lzo2' 'lib32-glibc')
+else
+ depends=('xz-utils' 'bzip2' 'iproute' 'net-tools' 'bridge-utils' 'python2' 'sdl' 'zlib' 'e2fsprogs' 'bin86' 'pkgconfig' 'gnutls' 'lzo2' 'glibc')
+fi
+
+optdepends=('xen-docs: Xen Official Documentation')
+makedepends=('dev86' 'ocaml-findlib' 'iasl')
+conflicts=('xen4' 'xen3' 'xen-hv-tools' 'libxen4')
+provides=('xen')
+backup=('etc/xen/xend-config.sxp' 'etc/xen/xend-pci-permissive.sxp' 'etc/xen/xend-pci-quirks.sxp')
+options=(!strip)
+optional=(xen-docs)
+source=(http://bits.xensource.com/oss-xen/release/${pkgver}/xen-${pkgver}.tar.gz
+ 09_xen
+ xen.patch
+ parabolainit.patch
+ dom0_xz_decompression.patch
+ 24341.patch
+ 24344.patch
+ 24345.patch)
+
+build() {
+
+
+ cd $srcdir/xen-${pkgver}
+
+ patch -p1 -i ../xen.patch
+ patch -p1 -i ../parabolainit.patch
+ patch -p1 -i ../dom0_xz_decompression.patch
+ patch -p1 -i ../24341.patch
+ patch -p1 -i ../24344.patch
+ patch -p1 -i ../24345.patch
+
+unset CFLAGS LDFLAGS
+
+make PYTHON=python2 DESTDIR=$pkgdir install-xen
+make PYTHON=python2 DESTDIR=$pkgdir install-tools
+#make PYTHON=python2 DESTDIR=$pkgdir install-stubdom
+
+ sed -i 's#XENDOM_CONFIG=/etc/sysconfig/xendomains#XENDOM_CONFIG=/etc/conf.d/xendomains#' $pkgdir/etc/init.d/xendomains
+ sed -i "s#touch /var/lock/subsys/xend#mkdir -p /var/lock/subsys\n touch /var/lock/subsys/xend#" $pkgdir/etc/init.d/xend
+
+ [ -d $pkgdir/usr/lib64 ] && ( cd $pkgdir/usr && cp -R lib64/* lib/ && rm -R lib64 )
+ ( cd $pkgdir/etc && mv init.d rc.d ) || return 1
+ rm -f $pkgdir/usr/share/man/man1/qemu-img.1* \
+ $pkgdir/usr/share/man/man1/qemu.1*
+ # First experiment to generate grub2.cfg entry
+ mkdir -p $pkgdir/etc/grub.d
+ chmod +x $srcdir/09_xen
+ cp $srcdir/09_xen $pkgdir/etc/grub.d
+
+ ############ kill unwanted stuff ############
+
+# stubdom: newlib
+rm -rf $pkgdir/usr/*-xen-elf
+
+# hypervisor symlinks
+rm -rf $pkgdir/boot/xen-4.1.gz
+rm -rf $pkgdir/boot/xen-4.gz
+rm -rf $pkgdir/boot/xen.gz
+
+# silly doc dir fun
+rm -fr $pkgdir/usr/share/doc/xen
+rm -rf $pkgdir/usr/share/doc/qemu
+
+# Pointless helper
+rm -f $pkgdir/usr/sbin/xen-python-path
+
+# qemu stuff (unused or available from upstream)
+rm -rf $pkgdir/usr/share/xen/man
+rm -rf $pkgdir/usr/bin/qemu-*-xen
+for file in bios.bin openbios-sparc32 openbios-sparc64 ppc_rom.bin \
+ pxe-e1000.bin pxe-ne2k_pci.bin pxe-pcnet.bin pxe-rtl8139.bin \
+ vgabios.bin vgabios-cirrus.bin video.x openbios-ppc bamboo.dtb
+do
+ rm -f $pkgdir/usr/share/xen/qemu/$file
+done
+
+# adhere to Static Library Packaging Guidelines
+rm -rf $pkgdir/usr/lib/*.a
+
+
+}
+
+md5sums=('73561faf3c1b5e36ec5c089b5db848ad'
+ '8d50beba46ffd89a3b959176245b676e'
+ 'f149bae1a6b420e49c51b9f3a74338a4'
+ '7a1ed81ecc828037724bb3280058c9fc'
+ '4aebccf16b578ed97aa8bab945011f35'
+ '1b0c05a555bc99fc8416dd52b6c6ae95'
+ 'b6225be5bec3fe462f9166f9fde9c347'
+ 'd282946a2873a78b2b2c3944571eb2fe')
diff --git a/kernels/xen/dom0_xz_decompression.patch b/kernels/xen/dom0_xz_decompression.patch
new file mode 100644
index 000000000..277ebcfd2
--- /dev/null
+++ b/kernels/xen/dom0_xz_decompression.patch
@@ -0,0 +1,3528 @@
+diff --git a/xen/common/Makefile b/xen/common/Makefile
+--- a/xen/common/Makefile
++++ b/xen/common/Makefile
+@@ -43,7 +43,7 @@
+ obj-y += rbtree.o
+ obj-y += lzo.o
+
+-obj-$(CONFIG_X86) += decompress.o bunzip2.o unlzma.o unlzo.o
++obj-$(CONFIG_X86) += decompress.o bunzip2.o unxz.o unlzma.o unlzo.o
+
+ obj-$(perfc) += perfc.o
+ obj-$(crash_debug) += gdbstub.o
+diff --git a/xen/common/decompress.c b/xen/common/decompress.c
+--- a/xen/common/decompress.c
++++ b/xen/common/decompress.c
+@@ -20,6 +20,9 @@
+ if ( len >= 3 && !memcmp(inbuf, "\x42\x5a\x68", 3) )
+ return bunzip2(inbuf, len, NULL, NULL, outbuf, NULL, error);
+
++ if ( len >= 6 && !memcmp(inbuf, "\3757zXZ", 6) )
++ return unxz(inbuf, len, NULL, NULL, outbuf, NULL, error);
++
+ if ( len >= 2 && !memcmp(inbuf, "\135\000", 2) )
+ return unlzma(inbuf, len, NULL, NULL, outbuf, NULL, error);
+
+diff --git a/xen/common/decompress.h b/xen/common/decompress.h
+--- a/xen/common/decompress.h
++++ b/xen/common/decompress.h
+@@ -8,6 +8,7 @@
+
+ #define STATIC
+ #define INIT __init
++#define INITDATA __initdata
+
+ static void(*__initdata error)(const char *);
+ #define set_error_fn(x) error = x;
+diff --git a/xen/common/unxz.c b/xen/common/unxz.c
+new file mode 100644
+--- /dev/null
++++ b/xen/common/unxz.c
+@@ -0,0 +1,306 @@
++/*
++ * Wrapper for decompressing XZ-compressed kernel, initramfs, and initrd
++ *
++ * Author: Lasse Collin <lasse.collin@tukaani.org>
++ *
++ * This file has been put into the public domain.
++ * You can do whatever you want with this file.
++ */
++
++/*
++ * Important notes about in-place decompression
++ *
++ * At least on x86, the kernel is decompressed in place: the compressed data
++ * is placed to the end of the output buffer, and the decompressor overwrites
++ * most of the compressed data. There must be enough safety margin to
++ * guarantee that the write position is always behind the read position.
++ *
++ * The safety margin for XZ with LZMA2 or BCJ+LZMA2 is calculated below.
++ * Note that the margin with XZ is bigger than with Deflate (gzip)!
++ *
++ * The worst case for in-place decompression is that the beginning of
++ * the file is compressed extremely well, and the rest of the file is
++ * uncompressible. Thus, we must look for worst-case expansion when the
++ * compressor is encoding uncompressible data.
++ *
++ * The structure of the .xz file in case of a compresed kernel is as follows.
++ * Sizes (as bytes) of the fields are in parenthesis.
++ *
++ * Stream Header (12)
++ * Block Header:
++ * Block Header (8-12)
++ * Compressed Data (N)
++ * Block Padding (0-3)
++ * CRC32 (4)
++ * Index (8-20)
++ * Stream Footer (12)
++ *
++ * Normally there is exactly one Block, but let's assume that there are
++ * 2-4 Blocks just in case. Because Stream Header and also Block Header
++ * of the first Block don't make the decompressor produce any uncompressed
++ * data, we can ignore them from our calculations. Block Headers of possible
++ * additional Blocks have to be taken into account still. With these
++ * assumptions, it is safe to assume that the total header overhead is
++ * less than 128 bytes.
++ *
++ * Compressed Data contains LZMA2 or BCJ+LZMA2 encoded data. Since BCJ
++ * doesn't change the size of the data, it is enough to calculate the
++ * safety margin for LZMA2.
++ *
++ * LZMA2 stores the data in chunks. Each chunk has a header whose size is
++ * a maximum of 6 bytes, but to get round 2^n numbers, let's assume that
++ * the maximum chunk header size is 8 bytes. After the chunk header, there
++ * may be up to 64 KiB of actual payload in the chunk. Often the payload is
++ * quite a bit smaller though; to be safe, let's assume that an average
++ * chunk has only 32 KiB of payload.
++ *
++ * The maximum uncompressed size of the payload is 2 MiB. The minimum
++ * uncompressed size of the payload is in practice never less than the
++ * payload size itself. The LZMA2 format would allow uncompressed size
++ * to be less than the payload size, but no sane compressor creates such
++ * files. LZMA2 supports storing uncompressible data in uncompressed form,
++ * so there's never a need to create payloads whose uncompressed size is
++ * smaller than the compressed size.
++ *
++ * The assumption, that the uncompressed size of the payload is never
++ * smaller than the payload itself, is valid only when talking about
++ * the payload as a whole. It is possible that the payload has parts where
++ * the decompressor consumes more input than it produces output. Calculating
++ * the worst case for this would be tricky. Instead of trying to do that,
++ * let's simply make sure that the decompressor never overwrites any bytes
++ * of the payload which it is currently reading.
++ *
++ * Now we have enough information to calculate the safety margin. We need
++ * - 128 bytes for the .xz file format headers;
++ * - 8 bytes per every 32 KiB of uncompressed size (one LZMA2 chunk header
++ * per chunk, each chunk having average payload size of 32 KiB); and
++ * - 64 KiB (biggest possible LZMA2 chunk payload size) to make sure that
++ * the decompressor never overwrites anything from the LZMA2 chunk
++ * payload it is currently reading.
++ *
++ * We get the following formula:
++ *
++ * safety_margin = 128 + uncompressed_size * 8 / 32768 + 65536
++ * = 128 + (uncompressed_size >> 12) + 65536
++ *
++ * For comparision, according to arch/x86/boot/compressed/misc.c, the
++ * equivalent formula for Deflate is this:
++ *
++ * safety_margin = 18 + (uncompressed_size >> 12) + 32768
++ *
++ * Thus, when updating Deflate-only in-place kernel decompressor to
++ * support XZ, the fixed overhead has to be increased from 18+32768 bytes
++ * to 128+65536 bytes.
++ */
++
++#include "decompress.h"
++
++#define XZ_EXTERN STATIC
++
++/*
++ * For boot time use, we enable only the BCJ filter of the current
++ * architecture or none if no BCJ filter is available for the architecture.
++ */
++#ifdef CONFIG_X86
++# define XZ_DEC_X86
++#endif
++#ifdef CONFIG_PPC
++# define XZ_DEC_POWERPC
++#endif
++#ifdef CONFIG_ARM
++# define XZ_DEC_ARM
++#endif
++#ifdef CONFIG_IA64
++# define XZ_DEC_IA64
++#endif
++#ifdef CONFIG_SPARC
++# define XZ_DEC_SPARC
++#endif
++
++/*
++ * This will get the basic headers so that memeq() and others
++ * can be defined.
++ */
++#include "xz/private.h"
++
++/*
++ * memeq and memzero are not used much and any remotely sane implementation
++ * is fast enough. memcpy/memmove speed matters in multi-call mode, but
++ * the kernel image is decompressed in single-call mode, in which only
++ * memcpy speed can matter and only if there is a lot of uncompressible data
++ * (LZMA2 stores uncompressible chunks in uncompressed form). Thus, the
++ * functions below should just be kept small; it's probably not worth
++ * optimizing for speed.
++ */
++
++#ifndef memeq
++#define memeq(p1, p2, sz) (memcmp(p1, p2, sz) == 0)
++#endif
++
++#ifndef memzero
++#define memzero(p, sz) memset(p, 0, sz)
++#endif
++
++#include "xz/crc32.c"
++#include "xz/dec_stream.c"
++#include "xz/dec_lzma2.c"
++#include "xz/dec_bcj.c"
++
++/* Size of the input and output buffers in multi-call mode */
++#define XZ_IOBUF_SIZE 4096
++
++/*
++ * This function implements the API defined in <linux/decompress/generic.h>.
++ *
++ * This wrapper will automatically choose single-call or multi-call mode
++ * of the native XZ decoder API. The single-call mode can be used only when
++ * both input and output buffers are available as a single chunk, i.e. when
++ * fill() and flush() won't be used.
++ */
++STATIC int INIT unxz(unsigned char *in, unsigned int in_size,
++ int (*fill)(void *dest, unsigned int size),
++ int (*flush)(void *src, unsigned int size),
++ unsigned char *out, unsigned int *in_used,
++ void (*error_fn)(const char *x))
++{
++ struct xz_buf b;
++ struct xz_dec *s;
++ enum xz_ret ret;
++ bool_t must_free_in = false;
++
++ set_error_fn(error_fn);
++
++ xz_crc32_init();
++
++ if (in_used != NULL)
++ *in_used = 0;
++
++ if (fill == NULL && flush == NULL)
++ s = xz_dec_init(XZ_SINGLE, 0);
++ else
++ s = xz_dec_init(XZ_DYNALLOC, (uint32_t)-1);
++
++ if (s == NULL)
++ goto error_alloc_state;
++
++ if (flush == NULL) {
++ b.out = out;
++ b.out_size = (size_t)-1;
++ } else {
++ b.out_size = XZ_IOBUF_SIZE;
++ b.out = malloc(XZ_IOBUF_SIZE);
++ if (b.out == NULL)
++ goto error_alloc_out;
++ }
++
++ if (in == NULL) {
++ must_free_in = true;
++ in = malloc(XZ_IOBUF_SIZE);
++ if (in == NULL)
++ goto error_alloc_in;
++ }
++
++ b.in = in;
++ b.in_pos = 0;
++ b.in_size = in_size;
++ b.out_pos = 0;
++
++ if (fill == NULL && flush == NULL) {
++ ret = xz_dec_run(s, &b);
++ } else {
++ do {
++ if (b.in_pos == b.in_size && fill != NULL) {
++ if (in_used != NULL)
++ *in_used += b.in_pos;
++
++ b.in_pos = 0;
++
++ in_size = fill(in, XZ_IOBUF_SIZE);
++ if (in_size < 0) {
++ /*
++ * This isn't an optimal error code
++ * but it probably isn't worth making
++ * a new one either.
++ */
++ ret = XZ_BUF_ERROR;
++ break;
++ }
++
++ b.in_size = in_size;
++ }
++
++ ret = xz_dec_run(s, &b);
++
++ if (flush != NULL && (b.out_pos == b.out_size
++ || (ret != XZ_OK && b.out_pos > 0))) {
++ /*
++ * Setting ret here may hide an error
++ * returned by xz_dec_run(), but probably
++ * it's not too bad.
++ */
++ if (flush(b.out, b.out_pos) != (int)b.out_pos)
++ ret = XZ_BUF_ERROR;
++
++ b.out_pos = 0;
++ }
++ } while (ret == XZ_OK);
++
++ if (must_free_in)
++ free(in);
++
++ if (flush != NULL)
++ free(b.out);
++ }
++
++ if (in_used != NULL)
++ *in_used += b.in_pos;
++
++ xz_dec_end(s);
++
++ switch (ret) {
++ case XZ_STREAM_END:
++ return 0;
++
++ case XZ_MEM_ERROR:
++ /* This can occur only in multi-call mode. */
++ error("XZ decompressor ran out of memory");
++ break;
++
++ case XZ_FORMAT_ERROR:
++ error("Input is not in the XZ format (wrong magic bytes)");
++ break;
++
++ case XZ_OPTIONS_ERROR:
++ error("Input was encoded with settings that are not "
++ "supported by this XZ decoder");
++ break;
++
++ case XZ_DATA_ERROR:
++ case XZ_BUF_ERROR:
++ error("XZ-compressed data is corrupt");
++ break;
++
++ default:
++ error("Bug in the XZ decompressor");
++ break;
++ }
++
++ return -1;
++
++error_alloc_in:
++ if (flush != NULL)
++ free(b.out);
++
++error_alloc_out:
++ xz_dec_end(s);
++
++error_alloc_state:
++ error("XZ decompressor ran out of memory");
++ return -1;
++}
++
++/*
++ * This macro is used by architecture-specific files to decompress
++ * the kernel image.
++ */
++#define decompress unxz
+diff --git a/xen/common/xz/crc32.c b/xen/common/xz/crc32.c
+new file mode 100644
+--- /dev/null
++++ b/xen/common/xz/crc32.c
+@@ -0,0 +1,51 @@
++/*
++ * CRC32 using the polynomial from IEEE-802.3
++ *
++ * Authors: Lasse Collin <lasse.collin@tukaani.org>
++ * Igor Pavlov <http://7-zip.org/>
++ *
++ * This file has been put into the public domain.
++ * You can do whatever you want with this file.
++ */
++
++/*
++ * This is not the fastest implementation, but it is pretty compact.
++ * The fastest versions of xz_crc32() on modern CPUs without hardware
++ * accelerated CRC instruction are 3-5 times as fast as this version,
++ * but they are bigger and use more memory for the lookup table.
++ */
++
++#include "private.h"
++
++XZ_EXTERN uint32_t INITDATA xz_crc32_table[256];
++
++XZ_EXTERN void INIT xz_crc32_init(void)
++{
++ const uint32_t poly = 0xEDB88320;
++
++ uint32_t i;
++ uint32_t j;
++ uint32_t r;
++
++ for (i = 0; i < 256; ++i) {
++ r = i;
++ for (j = 0; j < 8; ++j)
++ r = (r >> 1) ^ (poly & ~((r & 1) - 1));
++
++ xz_crc32_table[i] = r;
++ }
++
++ return;
++}
++
++XZ_EXTERN uint32_t INIT xz_crc32(const uint8_t *buf, size_t size, uint32_t crc)
++{
++ crc = ~crc;
++
++ while (size != 0) {
++ crc = xz_crc32_table[*buf++ ^ (crc & 0xFF)] ^ (crc >> 8);
++ --size;
++ }
++
++ return ~crc;
++}
+diff --git a/xen/common/xz/dec_bcj.c b/xen/common/xz/dec_bcj.c
+new file mode 100644
+--- /dev/null
++++ b/xen/common/xz/dec_bcj.c
+@@ -0,0 +1,562 @@
++/*
++ * Branch/Call/Jump (BCJ) filter decoders
++ *
++ * Authors: Lasse Collin <lasse.collin@tukaani.org>
++ * Igor Pavlov <http://7-zip.org/>
++ *
++ * This file has been put into the public domain.
++ * You can do whatever you want with this file.
++ */
++
++#include "private.h"
++
++/*
++ * The rest of the file is inside this ifdef. It makes things a little more
++ * convenient when building without support for any BCJ filters.
++ */
++#ifdef XZ_DEC_BCJ
++
++struct xz_dec_bcj {
++ /* Type of the BCJ filter being used */
++ enum {
++ BCJ_X86 = 4, /* x86 or x86-64 */
++ BCJ_POWERPC = 5, /* Big endian only */
++ BCJ_IA64 = 6, /* Big or little endian */
++ BCJ_ARM = 7, /* Little endian only */
++ BCJ_ARMTHUMB = 8, /* Little endian only */
++ BCJ_SPARC = 9 /* Big or little endian */
++ } type;
++
++ /*
++ * Return value of the next filter in the chain. We need to preserve
++ * this information across calls, because we must not call the next
++ * filter anymore once it has returned XZ_STREAM_END.
++ */
++ enum xz_ret ret;
++
++ /* True if we are operating in single-call mode. */
++ bool_t single_call;
++
++ /*
++ * Absolute position relative to the beginning of the uncompressed
++ * data (in a single .xz Block). We care only about the lowest 32
++ * bits so this doesn't need to be uint64_t even with big files.
++ */
++ uint32_t pos;
++
++ /* x86 filter state */
++ uint32_t x86_prev_mask;
++
++ /* Temporary space to hold the variables from struct xz_buf */
++ uint8_t *out;
++ size_t out_pos;
++ size_t out_size;
++
++ struct {
++ /* Amount of already filtered data in the beginning of buf */
++ size_t filtered;
++
++ /* Total amount of data currently stored in buf */
++ size_t size;
++
++ /*
++ * Buffer to hold a mix of filtered and unfiltered data. This
++ * needs to be big enough to hold Alignment + 2 * Look-ahead:
++ *
++ * Type Alignment Look-ahead
++ * x86 1 4
++ * PowerPC 4 0
++ * IA-64 16 0
++ * ARM 4 0
++ * ARM-Thumb 2 2
++ * SPARC 4 0
++ */
++ uint8_t buf[16];
++ } temp;
++};
++
++#ifdef XZ_DEC_X86
++/*
++ * This is used to test the most significant byte of a memory address
++ * in an x86 instruction.
++ */
++static inline int INIT bcj_x86_test_msbyte(uint8_t b)
++{
++ return b == 0x00 || b == 0xFF;
++}
++
++static size_t INIT bcj_x86(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
++{
++ static /*const*/ bool_t INITDATA mask_to_allowed_status[8]
++ = { true, true, true, false, true, false, false, false };
++
++ static /*const*/ uint8_t INITDATA mask_to_bit_num[8]
++ = { 0, 1, 2, 2, 3, 3, 3, 3 };
++
++ size_t i;
++ size_t prev_pos = (size_t)-1;
++ uint32_t prev_mask = s->x86_prev_mask;
++ uint32_t src;
++ uint32_t dest;
++ uint32_t j;
++ uint8_t b;
++
++ if (size <= 4)
++ return 0;
++
++ size -= 4;
++ for (i = 0; i < size; ++i) {
++ if ((buf[i] & 0xFE) != 0xE8)
++ continue;
++
++ prev_pos = i - prev_pos;
++ if (prev_pos > 3) {
++ prev_mask = 0;
++ } else {
++ prev_mask = (prev_mask << (prev_pos - 1)) & 7;
++ if (prev_mask != 0) {
++ b = buf[i + 4 - mask_to_bit_num[prev_mask]];
++ if (!mask_to_allowed_status[prev_mask]
++ || bcj_x86_test_msbyte(b)) {
++ prev_pos = i;
++ prev_mask = (prev_mask << 1) | 1;
++ continue;
++ }
++ }
++ }
++
++ prev_pos = i;
++
++ if (bcj_x86_test_msbyte(buf[i + 4])) {
++ src = get_unaligned_le32(buf + i + 1);
++ while (true) {
++ dest = src - (s->pos + (uint32_t)i + 5);
++ if (prev_mask == 0)
++ break;
++
++ j = mask_to_bit_num[prev_mask] * 8;
++ b = (uint8_t)(dest >> (24 - j));
++ if (!bcj_x86_test_msbyte(b))
++ break;
++
++ src = dest ^ (((uint32_t)1 << (32 - j)) - 1);
++ }
++
++ dest &= 0x01FFFFFF;
++ dest |= (uint32_t)0 - (dest & 0x01000000);
++ put_unaligned_le32(dest, buf + i + 1);
++ i += 4;
++ } else {
++ prev_mask = (prev_mask << 1) | 1;
++ }
++ }
++
++ prev_pos = i - prev_pos;
++ s->x86_prev_mask = prev_pos > 3 ? 0 : prev_mask << (prev_pos - 1);
++ return i;
++}
++#endif
++
++#ifdef XZ_DEC_POWERPC
++static size_t INIT bcj_powerpc(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
++{
++ size_t i;
++ uint32_t instr;
++
++ for (i = 0; i + 4 <= size; i += 4) {
++ instr = get_unaligned_be32(buf + i);
++ if ((instr & 0xFC000003) == 0x48000001) {
++ instr &= 0x03FFFFFC;
++ instr -= s->pos + (uint32_t)i;
++ instr &= 0x03FFFFFC;
++ instr |= 0x48000001;
++ put_unaligned_be32(instr, buf + i);
++ }
++ }
++
++ return i;
++}
++#endif
++
++#ifdef XZ_DEC_IA64
++static size_t INIT bcj_ia64(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
++{
++ static const uint8_t branch_table[32] = {
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 4, 4, 6, 6, 0, 0, 7, 7,
++ 4, 4, 0, 0, 4, 4, 0, 0
++ };
++
++ /*
++ * The local variables take a little bit stack space, but it's less
++ * than what LZMA2 decoder takes, so it doesn't make sense to reduce
++ * stack usage here without doing that for the LZMA2 decoder too.
++ */
++
++ /* Loop counters */
++ size_t i;
++ size_t j;
++
++ /* Instruction slot (0, 1, or 2) in the 128-bit instruction word */
++ uint32_t slot;
++
++ /* Bitwise offset of the instruction indicated by slot */
++ uint32_t bit_pos;
++
++ /* bit_pos split into byte and bit parts */
++ uint32_t byte_pos;
++ uint32_t bit_res;
++
++ /* Address part of an instruction */
++ uint32_t addr;
++
++ /* Mask used to detect which instructions to convert */
++ uint32_t mask;
++
++ /* 41-bit instruction stored somewhere in the lowest 48 bits */
++ uint64_t instr;
++
++ /* Instruction normalized with bit_res for easier manipulation */
++ uint64_t norm;
++
++ for (i = 0; i + 16 <= size; i += 16) {
++ mask = branch_table[buf[i] & 0x1F];
++ for (slot = 0, bit_pos = 5; slot < 3; ++slot, bit_pos += 41) {
++ if (((mask >> slot) & 1) == 0)
++ continue;
++
++ byte_pos = bit_pos >> 3;
++ bit_res = bit_pos & 7;
++ instr = 0;
++ for (j = 0; j < 6; ++j)
++ instr |= (uint64_t)(buf[i + j + byte_pos])
++ << (8 * j);
++
++ norm = instr >> bit_res;
++
++ if (((norm >> 37) & 0x0F) == 0x05
++ && ((norm >> 9) & 0x07) == 0) {
++ addr = (norm >> 13) & 0x0FFFFF;
++ addr |= ((uint32_t)(norm >> 36) & 1) << 20;
++ addr <<= 4;
++ addr -= s->pos + (uint32_t)i;
++ addr >>= 4;
++
++ norm &= ~((uint64_t)0x8FFFFF << 13);
++ norm |= (uint64_t)(addr & 0x0FFFFF) << 13;
++ norm |= (uint64_t)(addr & 0x100000)
++ << (36 - 20);
++
++ instr &= (1 << bit_res) - 1;
++ instr |= norm << bit_res;
++
++ for (j = 0; j < 6; j++)
++ buf[i + j + byte_pos]
++ = (uint8_t)(instr >> (8 * j));
++ }
++ }
++ }
++
++ return i;
++}
++#endif
++
++#ifdef XZ_DEC_ARM
++static size_t INIT bcj_arm(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
++{
++ size_t i;
++ uint32_t addr;
++
++ for (i = 0; i + 4 <= size; i += 4) {
++ if (buf[i + 3] == 0xEB) {
++ addr = (uint32_t)buf[i] | ((uint32_t)buf[i + 1] << 8)
++ | ((uint32_t)buf[i + 2] << 16);
++ addr <<= 2;
++ addr -= s->pos + (uint32_t)i + 8;
++ addr >>= 2;
++ buf[i] = (uint8_t)addr;
++ buf[i + 1] = (uint8_t)(addr >> 8);
++ buf[i + 2] = (uint8_t)(addr >> 16);
++ }
++ }
++
++ return i;
++}
++#endif
++
++#ifdef XZ_DEC_ARMTHUMB
++static size_t INIT bcj_armthumb(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
++{
++ size_t i;
++ uint32_t addr;
++
++ for (i = 0; i + 4 <= size; i += 2) {
++ if ((buf[i + 1] & 0xF8) == 0xF0
++ && (buf[i + 3] & 0xF8) == 0xF8) {
++ addr = (((uint32_t)buf[i + 1] & 0x07) << 19)
++ | ((uint32_t)buf[i] << 11)
++ | (((uint32_t)buf[i + 3] & 0x07) << 8)
++ | (uint32_t)buf[i + 2];
++ addr <<= 1;
++ addr -= s->pos + (uint32_t)i + 4;
++ addr >>= 1;
++ buf[i + 1] = (uint8_t)(0xF0 | ((addr >> 19) & 0x07));
++ buf[i] = (uint8_t)(addr >> 11);
++ buf[i + 3] = (uint8_t)(0xF8 | ((addr >> 8) & 0x07));
++ buf[i + 2] = (uint8_t)addr;
++ i += 2;
++ }
++ }
++
++ return i;
++}
++#endif
++
++#ifdef XZ_DEC_SPARC
++static size_t INIT bcj_sparc(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
++{
++ size_t i;
++ uint32_t instr;
++
++ for (i = 0; i + 4 <= size; i += 4) {
++ instr = get_unaligned_be32(buf + i);
++ if ((instr >> 22) == 0x100 || (instr >> 22) == 0x1FF) {
++ instr <<= 2;
++ instr -= s->pos + (uint32_t)i;
++ instr >>= 2;
++ instr = ((uint32_t)0x40000000 - (instr & 0x400000))
++ | 0x40000000 | (instr & 0x3FFFFF);
++ put_unaligned_be32(instr, buf + i);
++ }
++ }
++
++ return i;
++}
++#endif
++
++/*
++ * Apply the selected BCJ filter. Update *pos and s->pos to match the amount
++ * of data that got filtered.
++ *
++ * NOTE: This is implemented as a switch statement to avoid using function
++ * pointers, which could be problematic in the kernel boot code, which must
++ * avoid pointers to static data (at least on x86).
++ */
++static void INIT bcj_apply(struct xz_dec_bcj *s,
++ uint8_t *buf, size_t *pos, size_t size)
++{
++ size_t filtered;
++
++ buf += *pos;
++ size -= *pos;
++
++ switch (s->type) {
++#ifdef XZ_DEC_X86
++ case BCJ_X86:
++ filtered = bcj_x86(s, buf, size);
++ break;
++#endif
++#ifdef XZ_DEC_POWERPC
++ case BCJ_POWERPC:
++ filtered = bcj_powerpc(s, buf, size);
++ break;
++#endif
++#ifdef XZ_DEC_IA64
++ case BCJ_IA64:
++ filtered = bcj_ia64(s, buf, size);
++ break;
++#endif
++#ifdef XZ_DEC_ARM
++ case BCJ_ARM:
++ filtered = bcj_arm(s, buf, size);
++ break;
++#endif
++#ifdef XZ_DEC_ARMTHUMB
++ case BCJ_ARMTHUMB:
++ filtered = bcj_armthumb(s, buf, size);
++ break;
++#endif
++#ifdef XZ_DEC_SPARC
++ case BCJ_SPARC:
++ filtered = bcj_sparc(s, buf, size);
++ break;
++#endif
++ default:
++ /* Never reached but silence compiler warnings. */
++ filtered = 0;
++ break;
++ }
++
++ *pos += filtered;
++ s->pos += filtered;
++}
++
++/*
++ * Flush pending filtered data from temp to the output buffer.
++ * Move the remaining mixture of possibly filtered and unfiltered
++ * data to the beginning of temp.
++ */
++static void INIT bcj_flush(struct xz_dec_bcj *s, struct xz_buf *b)
++{
++ size_t copy_size;
++
++ copy_size = min_t(size_t, s->temp.filtered, b->out_size - b->out_pos);
++ memcpy(b->out + b->out_pos, s->temp.buf, copy_size);
++ b->out_pos += copy_size;
++
++ s->temp.filtered -= copy_size;
++ s->temp.size -= copy_size;
++ memmove(s->temp.buf, s->temp.buf + copy_size, s->temp.size);
++}
++
++/*
++ * The BCJ filter functions are primitive in sense that they process the
++ * data in chunks of 1-16 bytes. To hide this issue, this function does
++ * some buffering.
++ */
++XZ_EXTERN enum xz_ret INIT xz_dec_bcj_run(struct xz_dec_bcj *s,
++ struct xz_dec_lzma2 *lzma2,
++ struct xz_buf *b)
++{
++ size_t out_start;
++
++ /*
++ * Flush pending already filtered data to the output buffer. Return
++ * immediatelly if we couldn't flush everything, or if the next
++ * filter in the chain had already returned XZ_STREAM_END.
++ */
++ if (s->temp.filtered > 0) {
++ bcj_flush(s, b);
++ if (s->temp.filtered > 0)
++ return XZ_OK;
++
++ if (s->ret == XZ_STREAM_END)
++ return XZ_STREAM_END;
++ }
++
++ /*
++ * If we have more output space than what is currently pending in
++ * temp, copy the unfiltered data from temp to the output buffer
++ * and try to fill the output buffer by decoding more data from the
++ * next filter in the chain. Apply the BCJ filter on the new data
++ * in the output buffer. If everything cannot be filtered, copy it
++ * to temp and rewind the output buffer position accordingly.
++ */
++ if (s->temp.size < b->out_size - b->out_pos) {
++ out_start = b->out_pos;
++ memcpy(b->out + b->out_pos, s->temp.buf, s->temp.size);
++ b->out_pos += s->temp.size;
++
++ s->ret = xz_dec_lzma2_run(lzma2, b);
++ if (s->ret != XZ_STREAM_END
++ && (s->ret != XZ_OK || s->single_call))
++ return s->ret;
++
++ bcj_apply(s, b->out, &out_start, b->out_pos);
++
++ /*
++ * As an exception, if the next filter returned XZ_STREAM_END,
++ * we can do that too, since the last few bytes that remain
++ * unfiltered are meant to remain unfiltered.
++ */
++ if (s->ret == XZ_STREAM_END)
++ return XZ_STREAM_END;
++
++ s->temp.size = b->out_pos - out_start;
++ b->out_pos -= s->temp.size;
++ memcpy(s->temp.buf, b->out + b->out_pos, s->temp.size);
++ }
++
++ /*
++ * If we have unfiltered data in temp, try to fill by decoding more
++ * data from the next filter. Apply the BCJ filter on temp. Then we
++ * hopefully can fill the actual output buffer by copying filtered
++ * data from temp. A mix of filtered and unfiltered data may be left
++ * in temp; it will be taken care on the next call to this function.
++ */
++ if (s->temp.size > 0) {
++ /* Make b->out{,_pos,_size} temporarily point to s->temp. */
++ s->out = b->out;
++ s->out_pos = b->out_pos;
++ s->out_size = b->out_size;
++ b->out = s->temp.buf;
++ b->out_pos = s->temp.size;
++ b->out_size = sizeof(s->temp.buf);
++
++ s->ret = xz_dec_lzma2_run(lzma2, b);
++
++ s->temp.size = b->out_pos;
++ b->out = s->out;
++ b->out_pos = s->out_pos;
++ b->out_size = s->out_size;
++
++ if (s->ret != XZ_OK && s->ret != XZ_STREAM_END)
++ return s->ret;
++
++ bcj_apply(s, s->temp.buf, &s->temp.filtered, s->temp.size);
++
++ /*
++ * If the next filter returned XZ_STREAM_END, we mark that
++ * everything is filtered, since the last unfiltered bytes
++ * of the stream are meant to be left as is.
++ */
++ if (s->ret == XZ_STREAM_END)
++ s->temp.filtered = s->temp.size;
++
++ bcj_flush(s, b);
++ if (s->temp.filtered > 0)
++ return XZ_OK;
++ }
++
++ return s->ret;
++}
++
++XZ_EXTERN struct xz_dec_bcj *INIT xz_dec_bcj_create(bool_t single_call)
++{
++ struct xz_dec_bcj *s = malloc(sizeof(*s));
++ if (s != NULL)
++ s->single_call = single_call;
++
++ return s;
++}
++
++XZ_EXTERN enum xz_ret INIT xz_dec_bcj_reset(struct xz_dec_bcj *s, uint8_t id)
++{
++ switch (id) {
++#ifdef XZ_DEC_X86
++ case BCJ_X86:
++#endif
++#ifdef XZ_DEC_POWERPC
++ case BCJ_POWERPC:
++#endif
++#ifdef XZ_DEC_IA64
++ case BCJ_IA64:
++#endif
++#ifdef XZ_DEC_ARM
++ case BCJ_ARM:
++#endif
++#ifdef XZ_DEC_ARMTHUMB
++ case BCJ_ARMTHUMB:
++#endif
++#ifdef XZ_DEC_SPARC
++ case BCJ_SPARC:
++#endif
++ break;
++
++ default:
++ /* Unsupported Filter ID */
++ return XZ_OPTIONS_ERROR;
++ }
++
++ s->type = id;
++ s->ret = XZ_OK;
++ s->pos = 0;
++ s->x86_prev_mask = 0;
++ s->temp.filtered = 0;
++ s->temp.size = 0;
++
++ return XZ_OK;
++}
++
++#endif
+diff --git a/xen/common/xz/dec_lzma2.c b/xen/common/xz/dec_lzma2.c
+new file mode 100644
+--- /dev/null
++++ b/xen/common/xz/dec_lzma2.c
+@@ -0,0 +1,1171 @@
++/*
++ * LZMA2 decoder
++ *
++ * Authors: Lasse Collin <lasse.collin@tukaani.org>
++ * Igor Pavlov <http://7-zip.org/>
++ *
++ * This file has been put into the public domain.
++ * You can do whatever you want with this file.
++ */
++
++#include "private.h"
++#include "lzma2.h"
++
++/*
++ * Range decoder initialization eats the first five bytes of each LZMA chunk.
++ */
++#define RC_INIT_BYTES 5
++
++/*
++ * Minimum number of usable input buffer to safely decode one LZMA symbol.
++ * The worst case is that we decode 22 bits using probabilities and 26
++ * direct bits. This may decode at maximum of 20 bytes of input. However,
++ * lzma_main() does an extra normalization before returning, thus we
++ * need to put 21 here.
++ */
++#define LZMA_IN_REQUIRED 21
++
++/*
++ * Dictionary (history buffer)
++ *
++ * These are always true:
++ * start <= pos <= full <= end
++ * pos <= limit <= end
++ *
++ * In multi-call mode, also these are true:
++ * end == size
++ * size <= size_max
++ * allocated <= size
++ *
++ * Most of these variables are size_t to support single-call mode,
++ * in which the dictionary variables address the actual output
++ * buffer directly.
++ */
++struct dictionary {
++ /* Beginning of the history buffer */
++ uint8_t *buf;
++
++ /* Old position in buf (before decoding more data) */
++ size_t start;
++
++ /* Position in buf */
++ size_t pos;
++
++ /*
++ * How full dictionary is. This is used to detect corrupt input that
++ * would read beyond the beginning of the uncompressed stream.
++ */
++ size_t full;
++
++ /* Write limit; we don't write to buf[limit] or later bytes. */
++ size_t limit;
++
++ /*
++ * End of the dictionary buffer. In multi-call mode, this is
++ * the same as the dictionary size. In single-call mode, this
++ * indicates the size of the output buffer.
++ */
++ size_t end;
++
++ /*
++ * Size of the dictionary as specified in Block Header. This is used
++ * together with "full" to detect corrupt input that would make us
++ * read beyond the beginning of the uncompressed stream.
++ */
++ uint32_t size;
++
++ /*
++ * Maximum allowed dictionary size in multi-call mode.
++ * This is ignored in single-call mode.
++ */
++ uint32_t size_max;
++
++ /*
++ * Amount of memory currently allocated for the dictionary.
++ * This is used only with XZ_DYNALLOC. (With XZ_PREALLOC,
++ * size_max is always the same as the allocated size.)
++ */
++ uint32_t allocated;
++
++ /* Operation mode */
++ enum xz_mode mode;
++};
++
++/* Range decoder */
++struct rc_dec {
++ uint32_t range;
++ uint32_t code;
++
++ /*
++ * Number of initializing bytes remaining to be read
++ * by rc_read_init().
++ */
++ uint32_t init_bytes_left;
++
++ /*
++ * Buffer from which we read our input. It can be either
++ * temp.buf or the caller-provided input buffer.
++ */
++ const uint8_t *in;
++ size_t in_pos;
++ size_t in_limit;
++};
++
++/* Probabilities for a length decoder. */
++struct lzma_len_dec {
++ /* Probability of match length being at least 10 */
++ uint16_t choice;
++
++ /* Probability of match length being at least 18 */
++ uint16_t choice2;
++
++ /* Probabilities for match lengths 2-9 */
++ uint16_t low[POS_STATES_MAX][LEN_LOW_SYMBOLS];
++
++ /* Probabilities for match lengths 10-17 */
++ uint16_t mid[POS_STATES_MAX][LEN_MID_SYMBOLS];
++
++ /* Probabilities for match lengths 18-273 */
++ uint16_t high[LEN_HIGH_SYMBOLS];
++};
++
++struct lzma_dec {
++ /* Distances of latest four matches */
++ uint32_t rep0;
++ uint32_t rep1;
++ uint32_t rep2;
++ uint32_t rep3;
++
++ /* Types of the most recently seen LZMA symbols */
++ enum lzma_state state;
++
++ /*
++ * Length of a match. This is updated so that dict_repeat can
++ * be called again to finish repeating the whole match.
++ */
++ uint32_t len;
++
++ /*
++ * LZMA properties or related bit masks (number of literal
++ * context bits, a mask dervied from the number of literal
++ * position bits, and a mask dervied from the number
++ * position bits)
++ */
++ uint32_t lc;
++ uint32_t literal_pos_mask; /* (1 << lp) - 1 */
++ uint32_t pos_mask; /* (1 << pb) - 1 */
++
++ /* If 1, it's a match. Otherwise it's a single 8-bit literal. */
++ uint16_t is_match[STATES][POS_STATES_MAX];
++
++ /* If 1, it's a repeated match. The distance is one of rep0 .. rep3. */
++ uint16_t is_rep[STATES];
++
++ /*
++ * If 0, distance of a repeated match is rep0.
++ * Otherwise check is_rep1.
++ */
++ uint16_t is_rep0[STATES];
++
++ /*
++ * If 0, distance of a repeated match is rep1.
++ * Otherwise check is_rep2.
++ */
++ uint16_t is_rep1[STATES];
++
++ /* If 0, distance of a repeated match is rep2. Otherwise it is rep3. */
++ uint16_t is_rep2[STATES];
++
++ /*
++ * If 1, the repeated match has length of one byte. Otherwise
++ * the length is decoded from rep_len_decoder.
++ */
++ uint16_t is_rep0_long[STATES][POS_STATES_MAX];
++
++ /*
++ * Probability tree for the highest two bits of the match
++ * distance. There is a separate probability tree for match
++ * lengths of 2 (i.e. MATCH_LEN_MIN), 3, 4, and [5, 273].
++ */
++ uint16_t dist_slot[DIST_STATES][DIST_SLOTS];
++
++ /*
++ * Probility trees for additional bits for match distance
++ * when the distance is in the range [4, 127].
++ */
++ uint16_t dist_special[FULL_DISTANCES - DIST_MODEL_END];
++
++ /*
++ * Probability tree for the lowest four bits of a match
++ * distance that is equal to or greater than 128.
++ */
++ uint16_t dist_align[ALIGN_SIZE];
++
++ /* Length of a normal match */
++ struct lzma_len_dec match_len_dec;
++
++ /* Length of a repeated match */
++ struct lzma_len_dec rep_len_dec;
++
++ /* Probabilities of literals */
++ uint16_t literal[LITERAL_CODERS_MAX][LITERAL_CODER_SIZE];
++};
++
++struct lzma2_dec {
++ /* Position in xz_dec_lzma2_run(). */
++ enum lzma2_seq {
++ SEQ_CONTROL,
++ SEQ_UNCOMPRESSED_1,
++ SEQ_UNCOMPRESSED_2,
++ SEQ_COMPRESSED_0,
++ SEQ_COMPRESSED_1,
++ SEQ_PROPERTIES,
++ SEQ_LZMA_PREPARE,
++ SEQ_LZMA_RUN,
++ SEQ_COPY
++ } sequence;
++
++ /* Next position after decoding the compressed size of the chunk. */
++ enum lzma2_seq next_sequence;
++
++ /* Uncompressed size of LZMA chunk (2 MiB at maximum) */
++ uint32_t uncompressed;
++
++ /*
++ * Compressed size of LZMA chunk or compressed/uncompressed
++ * size of uncompressed chunk (64 KiB at maximum)
++ */
++ uint32_t compressed;
++
++ /*
++ * True if dictionary reset is needed. This is false before
++ * the first chunk (LZMA or uncompressed).
++ */
++ bool_t need_dict_reset;
++
++ /*
++ * True if new LZMA properties are needed. This is false
++ * before the first LZMA chunk.
++ */
++ bool_t need_props;
++};
++
++struct xz_dec_lzma2 {
++ /*
++ * The order below is important on x86 to reduce code size and
++ * it shouldn't hurt on other platforms. Everything up to and
++ * including lzma.pos_mask are in the first 128 bytes on x86-32,
++ * which allows using smaller instructions to access those
++ * variables. On x86-64, fewer variables fit into the first 128
++ * bytes, but this is still the best order without sacrificing
++ * the readability by splitting the structures.
++ */
++ struct rc_dec rc;
++ struct dictionary dict;
++ struct lzma2_dec lzma2;
++ struct lzma_dec lzma;
++
++ /*
++ * Temporary buffer which holds small number of input bytes between
++ * decoder calls. See lzma2_lzma() for details.
++ */
++ struct {
++ uint32_t size;
++ uint8_t buf[3 * LZMA_IN_REQUIRED];
++ } temp;
++};
++
++/**************
++ * Dictionary *
++ **************/
++
++/*
++ * Reset the dictionary state. When in single-call mode, set up the beginning
++ * of the dictionary to point to the actual output buffer.
++ */
++static void INIT dict_reset(struct dictionary *dict, struct xz_buf *b)
++{
++ if (DEC_IS_SINGLE(dict->mode)) {
++ dict->buf = b->out + b->out_pos;
++ dict->end = b->out_size - b->out_pos;
++ }
++
++ dict->start = 0;
++ dict->pos = 0;
++ dict->limit = 0;
++ dict->full = 0;
++}
++
++/* Set dictionary write limit */
++static void INIT dict_limit(struct dictionary *dict, size_t out_max)
++{
++ if (dict->end - dict->pos <= out_max)
++ dict->limit = dict->end;
++ else
++ dict->limit = dict->pos + out_max;
++}
++
++/* Return true if at least one byte can be written into the dictionary. */
++static inline bool_t INIT dict_has_space(const struct dictionary *dict)
++{
++ return dict->pos < dict->limit;
++}
++
++/*
++ * Get a byte from the dictionary at the given distance. The distance is
++ * assumed to valid, or as a special case, zero when the dictionary is
++ * still empty. This special case is needed for single-call decoding to
++ * avoid writing a '\0' to the end of the destination buffer.
++ */
++static inline uint32_t INIT dict_get(const struct dictionary *dict, uint32_t dist)
++{
++ size_t offset = dict->pos - dist - 1;
++
++ if (dist >= dict->pos)
++ offset += dict->end;
++
++ return dict->full > 0 ? dict->buf[offset] : 0;
++}
++
++/*
++ * Put one byte into the dictionary. It is assumed that there is space for it.
++ */
++static inline void INIT dict_put(struct dictionary *dict, uint8_t byte)
++{
++ dict->buf[dict->pos++] = byte;
++
++ if (dict->full < dict->pos)
++ dict->full = dict->pos;
++}
++
++/*
++ * Repeat given number of bytes from the given distance. If the distance is
++ * invalid, false is returned. On success, true is returned and *len is
++ * updated to indicate how many bytes were left to be repeated.
++ */
++static bool_t INIT dict_repeat(struct dictionary *dict, uint32_t *len, uint32_t dist)
++{
++ size_t back;
++ uint32_t left;
++
++ if (dist >= dict->full || dist >= dict->size)
++ return false;
++
++ left = min_t(size_t, dict->limit - dict->pos, *len);
++ *len -= left;
++
++ back = dict->pos - dist - 1;
++ if (dist >= dict->pos)
++ back += dict->end;
++
++ do {
++ dict->buf[dict->pos++] = dict->buf[back++];
++ if (back == dict->end)
++ back = 0;
++ } while (--left > 0);
++
++ if (dict->full < dict->pos)
++ dict->full = dict->pos;
++
++ return true;
++}
++
++/* Copy uncompressed data as is from input to dictionary and output buffers. */
++static void INIT dict_uncompressed(struct dictionary *dict, struct xz_buf *b,
++ uint32_t *left)
++{
++ size_t copy_size;
++
++ while (*left > 0 && b->in_pos < b->in_size
++ && b->out_pos < b->out_size) {
++ copy_size = min(b->in_size - b->in_pos,
++ b->out_size - b->out_pos);
++ if (copy_size > dict->end - dict->pos)
++ copy_size = dict->end - dict->pos;
++ if (copy_size > *left)
++ copy_size = *left;
++
++ *left -= copy_size;
++
++ memcpy(dict->buf + dict->pos, b->in + b->in_pos, copy_size);
++ dict->pos += copy_size;
++
++ if (dict->full < dict->pos)
++ dict->full = dict->pos;
++
++ if (DEC_IS_MULTI(dict->mode)) {
++ if (dict->pos == dict->end)
++ dict->pos = 0;
++
++ memcpy(b->out + b->out_pos, b->in + b->in_pos,
++ copy_size);
++ }
++
++ dict->start = dict->pos;
++
++ b->out_pos += copy_size;
++ b->in_pos += copy_size;
++ }
++}
++
++/*
++ * Flush pending data from dictionary to b->out. It is assumed that there is
++ * enough space in b->out. This is guaranteed because caller uses dict_limit()
++ * before decoding data into the dictionary.
++ */
++static uint32_t INIT dict_flush(struct dictionary *dict, struct xz_buf *b)
++{
++ size_t copy_size = dict->pos - dict->start;
++
++ if (DEC_IS_MULTI(dict->mode)) {
++ if (dict->pos == dict->end)
++ dict->pos = 0;
++
++ memcpy(b->out + b->out_pos, dict->buf + dict->start,
++ copy_size);
++ }
++
++ dict->start = dict->pos;
++ b->out_pos += copy_size;
++ return copy_size;
++}
++
++/*****************
++ * Range decoder *
++ *****************/
++
++/* Reset the range decoder. */
++static void INIT rc_reset(struct rc_dec *rc)
++{
++ rc->range = (uint32_t)-1;
++ rc->code = 0;
++ rc->init_bytes_left = RC_INIT_BYTES;
++}
++
++/*
++ * Read the first five initial bytes into rc->code if they haven't been
++ * read already. (Yes, the first byte gets completely ignored.)
++ */
++static bool_t INIT rc_read_init(struct rc_dec *rc, struct xz_buf *b)
++{
++ while (rc->init_bytes_left > 0) {
++ if (b->in_pos == b->in_size)
++ return false;
++
++ rc->code = (rc->code << 8) + b->in[b->in_pos++];
++ --rc->init_bytes_left;
++ }
++
++ return true;
++}
++
++/* Return true if there may not be enough input for the next decoding loop. */
++static inline bool_t INIT rc_limit_exceeded(const struct rc_dec *rc)
++{
++ return rc->in_pos > rc->in_limit;
++}
++
++/*
++ * Return true if it is possible (from point of view of range decoder) that
++ * we have reached the end of the LZMA chunk.
++ */
++static inline bool_t INIT rc_is_finished(const struct rc_dec *rc)
++{
++ return rc->code == 0;
++}
++
++/* Read the next input byte if needed. */
++static always_inline void rc_normalize(struct rc_dec *rc)
++{
++ if (rc->range < RC_TOP_VALUE) {
++ rc->range <<= RC_SHIFT_BITS;
++ rc->code = (rc->code << RC_SHIFT_BITS) + rc->in[rc->in_pos++];
++ }
++}
++
++/*
++ * Decode one bit. In some versions, this function has been splitted in three
++ * functions so that the compiler is supposed to be able to more easily avoid
++ * an extra branch. In this particular version of the LZMA decoder, this
++ * doesn't seem to be a good idea (tested with GCC 3.3.6, 3.4.6, and 4.3.3
++ * on x86). Using a non-splitted version results in nicer looking code too.
++ *
++ * NOTE: This must return an int. Do not make it return a bool or the speed
++ * of the code generated by GCC 3.x decreases 10-15 %. (GCC 4.3 doesn't care,
++ * and it generates 10-20 % faster code than GCC 3.x from this file anyway.)
++ */
++static always_inline int rc_bit(struct rc_dec *rc, uint16_t *prob)
++{
++ uint32_t bound;
++ int bit;
++
++ rc_normalize(rc);
++ bound = (rc->range >> RC_BIT_MODEL_TOTAL_BITS) * *prob;
++ if (rc->code < bound) {
++ rc->range = bound;
++ *prob += (RC_BIT_MODEL_TOTAL - *prob) >> RC_MOVE_BITS;
++ bit = 0;
++ } else {
++ rc->range -= bound;
++ rc->code -= bound;
++ *prob -= *prob >> RC_MOVE_BITS;
++ bit = 1;
++ }
++
++ return bit;
++}
++
++/* Decode a bittree starting from the most significant bit. */
++static always_inline uint32_t rc_bittree(struct rc_dec *rc,
++ uint16_t *probs, uint32_t limit)
++{
++ uint32_t symbol = 1;
++
++ do {
++ if (rc_bit(rc, &probs[symbol]))
++ symbol = (symbol << 1) + 1;
++ else
++ symbol <<= 1;
++ } while (symbol < limit);
++
++ return symbol;
++}
++
++/* Decode a bittree starting from the least significant bit. */
++static always_inline void rc_bittree_reverse(struct rc_dec *rc,
++ uint16_t *probs,
++ uint32_t *dest, uint32_t limit)
++{
++ uint32_t symbol = 1;
++ uint32_t i = 0;
++
++ do {
++ if (rc_bit(rc, &probs[symbol])) {
++ symbol = (symbol << 1) + 1;
++ *dest += 1 << i;
++ } else {
++ symbol <<= 1;
++ }
++ } while (++i < limit);
++}
++
++/* Decode direct bits (fixed fifty-fifty probability) */
++static inline void INIT rc_direct(struct rc_dec *rc, uint32_t *dest, uint32_t limit)
++{
++ uint32_t mask;
++
++ do {
++ rc_normalize(rc);
++ rc->range >>= 1;
++ rc->code -= rc->range;
++ mask = (uint32_t)0 - (rc->code >> 31);
++ rc->code += rc->range & mask;
++ *dest = (*dest << 1) + (mask + 1);
++ } while (--limit > 0);
++}
++
++/********
++ * LZMA *
++ ********/
++
++/* Get pointer to literal coder probability array. */
++static uint16_t *INIT lzma_literal_probs(struct xz_dec_lzma2 *s)
++{
++ uint32_t prev_byte = dict_get(&s->dict, 0);
++ uint32_t low = prev_byte >> (8 - s->lzma.lc);
++ uint32_t high = (s->dict.pos & s->lzma.literal_pos_mask) << s->lzma.lc;
++ return s->lzma.literal[low + high];
++}
++
++/* Decode a literal (one 8-bit byte) */
++static void INIT lzma_literal(struct xz_dec_lzma2 *s)
++{
++ uint16_t *probs;
++ uint32_t symbol;
++ uint32_t match_byte;
++ uint32_t match_bit;
++ uint32_t offset;
++ uint32_t i;
++
++ probs = lzma_literal_probs(s);
++
++ if (lzma_state_is_literal(s->lzma.state)) {
++ symbol = rc_bittree(&s->rc, probs, 0x100);
++ } else {
++ symbol = 1;
++ match_byte = dict_get(&s->dict, s->lzma.rep0) << 1;
++ offset = 0x100;
++
++ do {
++ match_bit = match_byte & offset;
++ match_byte <<= 1;
++ i = offset + match_bit + symbol;
++
++ if (rc_bit(&s->rc, &probs[i])) {
++ symbol = (symbol << 1) + 1;
++ offset &= match_bit;
++ } else {
++ symbol <<= 1;
++ offset &= ~match_bit;
++ }
++ } while (symbol < 0x100);
++ }
++
++ dict_put(&s->dict, (uint8_t)symbol);
++ lzma_state_literal(&s->lzma.state);
++}
++
++/* Decode the length of the match into s->lzma.len. */
++static void INIT lzma_len(struct xz_dec_lzma2 *s, struct lzma_len_dec *l,
++ uint32_t pos_state)
++{
++ uint16_t *probs;
++ uint32_t limit;
++
++ if (!rc_bit(&s->rc, &l->choice)) {
++ probs = l->low[pos_state];
++ limit = LEN_LOW_SYMBOLS;
++ s->lzma.len = MATCH_LEN_MIN;
++ } else {
++ if (!rc_bit(&s->rc, &l->choice2)) {
++ probs = l->mid[pos_state];
++ limit = LEN_MID_SYMBOLS;
++ s->lzma.len = MATCH_LEN_MIN + LEN_LOW_SYMBOLS;
++ } else {
++ probs = l->high;
++ limit = LEN_HIGH_SYMBOLS;
++ s->lzma.len = MATCH_LEN_MIN + LEN_LOW_SYMBOLS
++ + LEN_MID_SYMBOLS;
++ }
++ }
++
++ s->lzma.len += rc_bittree(&s->rc, probs, limit) - limit;
++}
++
++/* Decode a match. The distance will be stored in s->lzma.rep0. */
++static void INIT lzma_match(struct xz_dec_lzma2 *s, uint32_t pos_state)
++{
++ uint16_t *probs;
++ uint32_t dist_slot;
++ uint32_t limit;
++
++ lzma_state_match(&s->lzma.state);
++
++ s->lzma.rep3 = s->lzma.rep2;
++ s->lzma.rep2 = s->lzma.rep1;
++ s->lzma.rep1 = s->lzma.rep0;
++
++ lzma_len(s, &s->lzma.match_len_dec, pos_state);
++
++ probs = s->lzma.dist_slot[lzma_get_dist_state(s->lzma.len)];
++ dist_slot = rc_bittree(&s->rc, probs, DIST_SLOTS) - DIST_SLOTS;
++
++ if (dist_slot < DIST_MODEL_START) {
++ s->lzma.rep0 = dist_slot;
++ } else {
++ limit = (dist_slot >> 1) - 1;
++ s->lzma.rep0 = 2 + (dist_slot & 1);
++
++ if (dist_slot < DIST_MODEL_END) {
++ s->lzma.rep0 <<= limit;
++ probs = s->lzma.dist_special + s->lzma.rep0
++ - dist_slot - 1;
++ rc_bittree_reverse(&s->rc, probs,
++ &s->lzma.rep0, limit);
++ } else {
++ rc_direct(&s->rc, &s->lzma.rep0, limit - ALIGN_BITS);
++ s->lzma.rep0 <<= ALIGN_BITS;
++ rc_bittree_reverse(&s->rc, s->lzma.dist_align,
++ &s->lzma.rep0, ALIGN_BITS);
++ }
++ }
++}
++
++/*
++ * Decode a repeated match. The distance is one of the four most recently
++ * seen matches. The distance will be stored in s->lzma.rep0.
++ */
++static void INIT lzma_rep_match(struct xz_dec_lzma2 *s, uint32_t pos_state)
++{
++ uint32_t tmp;
++
++ if (!rc_bit(&s->rc, &s->lzma.is_rep0[s->lzma.state])) {
++ if (!rc_bit(&s->rc, &s->lzma.is_rep0_long[
++ s->lzma.state][pos_state])) {
++ lzma_state_short_rep(&s->lzma.state);
++ s->lzma.len = 1;
++ return;
++ }
++ } else {
++ if (!rc_bit(&s->rc, &s->lzma.is_rep1[s->lzma.state])) {
++ tmp = s->lzma.rep1;
++ } else {
++ if (!rc_bit(&s->rc, &s->lzma.is_rep2[s->lzma.state])) {
++ tmp = s->lzma.rep2;
++ } else {
++ tmp = s->lzma.rep3;
++ s->lzma.rep3 = s->lzma.rep2;
++ }
++
++ s->lzma.rep2 = s->lzma.rep1;
++ }
++
++ s->lzma.rep1 = s->lzma.rep0;
++ s->lzma.rep0 = tmp;
++ }
++
++ lzma_state_long_rep(&s->lzma.state);
++ lzma_len(s, &s->lzma.rep_len_dec, pos_state);
++}
++
++/* LZMA decoder core */
++static bool_t INIT lzma_main(struct xz_dec_lzma2 *s)
++{
++ uint32_t pos_state;
++
++ /*
++ * If the dictionary was reached during the previous call, try to
++ * finish the possibly pending repeat in the dictionary.
++ */
++ if (dict_has_space(&s->dict) && s->lzma.len > 0)
++ dict_repeat(&s->dict, &s->lzma.len, s->lzma.rep0);
++
++ /*
++ * Decode more LZMA symbols. One iteration may consume up to
++ * LZMA_IN_REQUIRED - 1 bytes.
++ */
++ while (dict_has_space(&s->dict) && !rc_limit_exceeded(&s->rc)) {
++ pos_state = s->dict.pos & s->lzma.pos_mask;
++
++ if (!rc_bit(&s->rc, &s->lzma.is_match[
++ s->lzma.state][pos_state])) {
++ lzma_literal(s);
++ } else {
++ if (rc_bit(&s->rc, &s->lzma.is_rep[s->lzma.state]))
++ lzma_rep_match(s, pos_state);
++ else
++ lzma_match(s, pos_state);
++
++ if (!dict_repeat(&s->dict, &s->lzma.len, s->lzma.rep0))
++ return false;
++ }
++ }
++
++ /*
++ * Having the range decoder always normalized when we are outside
++ * this function makes it easier to correctly handle end of the chunk.
++ */
++ rc_normalize(&s->rc);
++
++ return true;
++}
++
++/*
++ * Reset the LZMA decoder and range decoder state. Dictionary is nore reset
++ * here, because LZMA state may be reset without resetting the dictionary.
++ */
++static void INIT lzma_reset(struct xz_dec_lzma2 *s)
++{
++ uint16_t *probs;
++ size_t i;
++
++ s->lzma.state = STATE_LIT_LIT;
++ s->lzma.rep0 = 0;
++ s->lzma.rep1 = 0;
++ s->lzma.rep2 = 0;
++ s->lzma.rep3 = 0;
++
++ /*
++ * All probabilities are initialized to the same value. This hack
++ * makes the code smaller by avoiding a separate loop for each
++ * probability array.
++ *
++ * This could be optimized so that only that part of literal
++ * probabilities that are actually required. In the common case
++ * we would write 12 KiB less.
++ */
++ probs = s->lzma.is_match[0];
++ for (i = 0; i < PROBS_TOTAL; ++i)
++ probs[i] = RC_BIT_MODEL_TOTAL / 2;
++
++ rc_reset(&s->rc);
++}
++
++/*
++ * Decode and validate LZMA properties (lc/lp/pb) and calculate the bit masks
++ * from the decoded lp and pb values. On success, the LZMA decoder state is
++ * reset and true is returned.
++ */
++static bool_t INIT lzma_props(struct xz_dec_lzma2 *s, uint8_t props)
++{
++ if (props > (4 * 5 + 4) * 9 + 8)
++ return false;
++
++ s->lzma.pos_mask = 0;
++ while (props >= 9 * 5) {
++ props -= 9 * 5;
++ ++s->lzma.pos_mask;
++ }
++
++ s->lzma.pos_mask = (1 << s->lzma.pos_mask) - 1;
++
++ s->lzma.literal_pos_mask = 0;
++ while (props >= 9) {
++ props -= 9;
++ ++s->lzma.literal_pos_mask;
++ }
++
++ s->lzma.lc = props;
++
++ if (s->lzma.lc + s->lzma.literal_pos_mask > 4)
++ return false;
++
++ s->lzma.literal_pos_mask = (1 << s->lzma.literal_pos_mask) - 1;
++
++ lzma_reset(s);
++
++ return true;
++}
++
++/*********
++ * LZMA2 *
++ *********/
++
++/*
++ * The LZMA decoder assumes that if the input limit (s->rc.in_limit) hasn't
++ * been exceeded, it is safe to read up to LZMA_IN_REQUIRED bytes. This
++ * wrapper function takes care of making the LZMA decoder's assumption safe.
++ *
++ * As long as there is plenty of input left to be decoded in the current LZMA
++ * chunk, we decode directly from the caller-supplied input buffer until
++ * there's LZMA_IN_REQUIRED bytes left. Those remaining bytes are copied into
++ * s->temp.buf, which (hopefully) gets filled on the next call to this
++ * function. We decode a few bytes from the temporary buffer so that we can
++ * continue decoding from the caller-supplied input buffer again.
++ */
++static bool_t INIT lzma2_lzma(struct xz_dec_lzma2 *s, struct xz_buf *b)
++{
++ size_t in_avail;
++ uint32_t tmp;
++
++ in_avail = b->in_size - b->in_pos;
++ if (s->temp.size > 0 || s->lzma2.compressed == 0) {
++ tmp = 2 * LZMA_IN_REQUIRED - s->temp.size;
++ if (tmp > s->lzma2.compressed - s->temp.size)
++ tmp = s->lzma2.compressed - s->temp.size;
++ if (tmp > in_avail)
++ tmp = in_avail;
++
++ memcpy(s->temp.buf + s->temp.size, b->in + b->in_pos, tmp);
++
++ if (s->temp.size + tmp == s->lzma2.compressed) {
++ memzero(s->temp.buf + s->temp.size + tmp,
++ sizeof(s->temp.buf)
++ - s->temp.size - tmp);
++ s->rc.in_limit = s->temp.size + tmp;
++ } else if (s->temp.size + tmp < LZMA_IN_REQUIRED) {
++ s->temp.size += tmp;
++ b->in_pos += tmp;
++ return true;
++ } else {
++ s->rc.in_limit = s->temp.size + tmp - LZMA_IN_REQUIRED;
++ }
++
++ s->rc.in = s->temp.buf;
++ s->rc.in_pos = 0;
++
++ if (!lzma_main(s) || s->rc.in_pos > s->temp.size + tmp)
++ return false;
++
++ s->lzma2.compressed -= s->rc.in_pos;
++
++ if (s->rc.in_pos < s->temp.size) {
++ s->temp.size -= s->rc.in_pos;
++ memmove(s->temp.buf, s->temp.buf + s->rc.in_pos,
++ s->temp.size);
++ return true;
++ }
++
++ b->in_pos += s->rc.in_pos - s->temp.size;
++ s->temp.size = 0;
++ }
++
++ in_avail = b->in_size - b->in_pos;
++ if (in_avail >= LZMA_IN_REQUIRED) {
++ s->rc.in = b->in;
++ s->rc.in_pos = b->in_pos;
++
++ if (in_avail >= s->lzma2.compressed + LZMA_IN_REQUIRED)
++ s->rc.in_limit = b->in_pos + s->lzma2.compressed;
++ else
++ s->rc.in_limit = b->in_size - LZMA_IN_REQUIRED;
++
++ if (!lzma_main(s))
++ return false;
++
++ in_avail = s->rc.in_pos - b->in_pos;
++ if (in_avail > s->lzma2.compressed)
++ return false;
++
++ s->lzma2.compressed -= in_avail;
++ b->in_pos = s->rc.in_pos;
++ }
++
++ in_avail = b->in_size - b->in_pos;
++ if (in_avail < LZMA_IN_REQUIRED) {
++ if (in_avail > s->lzma2.compressed)
++ in_avail = s->lzma2.compressed;
++
++ memcpy(s->temp.buf, b->in + b->in_pos, in_avail);
++ s->temp.size = in_avail;
++ b->in_pos += in_avail;
++ }
++
++ return true;
++}
++
++/*
++ * Take care of the LZMA2 control layer, and forward the job of actual LZMA
++ * decoding or copying of uncompressed chunks to other functions.
++ */
++XZ_EXTERN enum xz_ret INIT xz_dec_lzma2_run(struct xz_dec_lzma2 *s,
++ struct xz_buf *b)
++{
++ uint32_t tmp;
++
++ while (b->in_pos < b->in_size || s->lzma2.sequence == SEQ_LZMA_RUN) {
++ switch (s->lzma2.sequence) {
++ case SEQ_CONTROL:
++ /*
++ * LZMA2 control byte
++ *
++ * Exact values:
++ * 0x00 End marker
++ * 0x01 Dictionary reset followed by
++ * an uncompressed chunk
++ * 0x02 Uncompressed chunk (no dictionary reset)
++ *
++ * Highest three bits (s->control & 0xE0):
++ * 0xE0 Dictionary reset, new properties and state
++ * reset, followed by LZMA compressed chunk
++ * 0xC0 New properties and state reset, followed
++ * by LZMA compressed chunk (no dictionary
++ * reset)
++ * 0xA0 State reset using old properties,
++ * followed by LZMA compressed chunk (no
++ * dictionary reset)
++ * 0x80 LZMA chunk (no dictionary or state reset)
++ *
++ * For LZMA compressed chunks, the lowest five bits
++ * (s->control & 1F) are the highest bits of the
++ * uncompressed size (bits 16-20).
++ *
++ * A new LZMA2 stream must begin with a dictionary
++ * reset. The first LZMA chunk must set new
++ * properties and reset the LZMA state.
++ *
++ * Values that don't match anything described above
++ * are invalid and we return XZ_DATA_ERROR.
++ */
++ tmp = b->in[b->in_pos++];
++
++ if (tmp >= 0xE0 || tmp == 0x01) {
++ s->lzma2.need_props = true;
++ s->lzma2.need_dict_reset = false;
++ dict_reset(&s->dict, b);
++ } else if (s->lzma2.need_dict_reset) {
++ return XZ_DATA_ERROR;
++ }
++
++ if (tmp >= 0x80) {
++ s->lzma2.uncompressed = (tmp & 0x1F) << 16;
++ s->lzma2.sequence = SEQ_UNCOMPRESSED_1;
++
++ if (tmp >= 0xC0) {
++ /*
++ * When there are new properties,
++ * state reset is done at
++ * SEQ_PROPERTIES.
++ */
++ s->lzma2.need_props = false;
++ s->lzma2.next_sequence
++ = SEQ_PROPERTIES;
++
++ } else if (s->lzma2.need_props) {
++ return XZ_DATA_ERROR;
++
++ } else {
++ s->lzma2.next_sequence
++ = SEQ_LZMA_PREPARE;
++ if (tmp >= 0xA0)
++ lzma_reset(s);
++ }
++ } else {
++ if (tmp == 0x00)
++ return XZ_STREAM_END;
++
++ if (tmp > 0x02)
++ return XZ_DATA_ERROR;
++
++ s->lzma2.sequence = SEQ_COMPRESSED_0;
++ s->lzma2.next_sequence = SEQ_COPY;
++ }
++
++ break;
++
++ case SEQ_UNCOMPRESSED_1:
++ s->lzma2.uncompressed
++ += (uint32_t)b->in[b->in_pos++] << 8;
++ s->lzma2.sequence = SEQ_UNCOMPRESSED_2;
++ break;
++
++ case SEQ_UNCOMPRESSED_2:
++ s->lzma2.uncompressed
++ += (uint32_t)b->in[b->in_pos++] + 1;
++ s->lzma2.sequence = SEQ_COMPRESSED_0;
++ break;
++
++ case SEQ_COMPRESSED_0:
++ s->lzma2.compressed
++ = (uint32_t)b->in[b->in_pos++] << 8;
++ s->lzma2.sequence = SEQ_COMPRESSED_1;
++ break;
++
++ case SEQ_COMPRESSED_1:
++ s->lzma2.compressed
++ += (uint32_t)b->in[b->in_pos++] + 1;
++ s->lzma2.sequence = s->lzma2.next_sequence;
++ break;
++
++ case SEQ_PROPERTIES:
++ if (!lzma_props(s, b->in[b->in_pos++]))
++ return XZ_DATA_ERROR;
++
++ s->lzma2.sequence = SEQ_LZMA_PREPARE;
++
++ case SEQ_LZMA_PREPARE:
++ if (s->lzma2.compressed < RC_INIT_BYTES)
++ return XZ_DATA_ERROR;
++
++ if (!rc_read_init(&s->rc, b))
++ return XZ_OK;
++
++ s->lzma2.compressed -= RC_INIT_BYTES;
++ s->lzma2.sequence = SEQ_LZMA_RUN;
++
++ case SEQ_LZMA_RUN:
++ /*
++ * Set dictionary limit to indicate how much we want
++ * to be encoded at maximum. Decode new data into the
++ * dictionary. Flush the new data from dictionary to
++ * b->out. Check if we finished decoding this chunk.
++ * In case the dictionary got full but we didn't fill
++ * the output buffer yet, we may run this loop
++ * multiple times without changing s->lzma2.sequence.
++ */
++ dict_limit(&s->dict, min_t(size_t,
++ b->out_size - b->out_pos,
++ s->lzma2.uncompressed));
++ if (!lzma2_lzma(s, b))
++ return XZ_DATA_ERROR;
++
++ s->lzma2.uncompressed -= dict_flush(&s->dict, b);
++
++ if (s->lzma2.uncompressed == 0) {
++ if (s->lzma2.compressed > 0 || s->lzma.len > 0
++ || !rc_is_finished(&s->rc))
++ return XZ_DATA_ERROR;
++
++ rc_reset(&s->rc);
++ s->lzma2.sequence = SEQ_CONTROL;
++
++ } else if (b->out_pos == b->out_size
++ || (b->in_pos == b->in_size
++ && s->temp.size
++ < s->lzma2.compressed)) {
++ return XZ_OK;
++ }
++
++ break;
++
++ case SEQ_COPY:
++ dict_uncompressed(&s->dict, b, &s->lzma2.compressed);
++ if (s->lzma2.compressed > 0)
++ return XZ_OK;
++
++ s->lzma2.sequence = SEQ_CONTROL;
++ break;
++ }
++ }
++
++ return XZ_OK;
++}
++
++XZ_EXTERN struct xz_dec_lzma2 *INIT xz_dec_lzma2_create(enum xz_mode mode,
++ uint32_t dict_max)
++{
++ struct xz_dec_lzma2 *s = malloc(sizeof(*s));
++ if (s == NULL)
++ return NULL;
++
++ s->dict.mode = mode;
++ s->dict.size_max = dict_max;
++
++ if (DEC_IS_PREALLOC(mode)) {
++ s->dict.buf = large_malloc(dict_max);
++ if (s->dict.buf == NULL) {
++ free(s);
++ return NULL;
++ }
++ } else if (DEC_IS_DYNALLOC(mode)) {
++ s->dict.buf = NULL;
++ s->dict.allocated = 0;
++ }
++
++ return s;
++}
++
++XZ_EXTERN enum xz_ret INIT xz_dec_lzma2_reset(struct xz_dec_lzma2 *s, uint8_t props)
++{
++ /* This limits dictionary size to 3 GiB to keep parsing simpler. */
++ if (props > 39)
++ return XZ_OPTIONS_ERROR;
++
++ s->dict.size = 2 + (props & 1);
++ s->dict.size <<= (props >> 1) + 11;
++
++ if (DEC_IS_MULTI(s->dict.mode)) {
++ if (s->dict.size > s->dict.size_max)
++ return XZ_MEMLIMIT_ERROR;
++
++ s->dict.end = s->dict.size;
++
++ if (DEC_IS_DYNALLOC(s->dict.mode)) {
++ if (s->dict.allocated < s->dict.size) {
++ large_free(s->dict.buf);
++ s->dict.buf = large_malloc(s->dict.size);
++ if (s->dict.buf == NULL) {
++ s->dict.allocated = 0;
++ return XZ_MEM_ERROR;
++ }
++ }
++ }
++ }
++
++ s->lzma.len = 0;
++
++ s->lzma2.sequence = SEQ_CONTROL;
++ s->lzma2.need_dict_reset = true;
++
++ s->temp.size = 0;
++
++ return XZ_OK;
++}
++
++XZ_EXTERN void INIT xz_dec_lzma2_end(struct xz_dec_lzma2 *s)
++{
++ if (DEC_IS_MULTI(s->dict.mode))
++ large_free(s->dict.buf);
++
++ free(s);
++}
+diff --git a/xen/common/xz/dec_stream.c b/xen/common/xz/dec_stream.c
+new file mode 100644
+--- /dev/null
++++ b/xen/common/xz/dec_stream.c
+@@ -0,0 +1,821 @@
++/*
++ * .xz Stream decoder
++ *
++ * Author: Lasse Collin <lasse.collin@tukaani.org>
++ *
++ * This file has been put into the public domain.
++ * You can do whatever you want with this file.
++ */
++
++#include "private.h"
++#include "stream.h"
++
++/* Hash used to validate the Index field */
++struct xz_dec_hash {
++ vli_type unpadded;
++ vli_type uncompressed;
++ uint32_t crc32;
++};
++
++struct xz_dec {
++ /* Position in dec_main() */
++ enum {
++ SEQ_STREAM_HEADER,
++ SEQ_BLOCK_START,
++ SEQ_BLOCK_HEADER,
++ SEQ_BLOCK_UNCOMPRESS,
++ SEQ_BLOCK_PADDING,
++ SEQ_BLOCK_CHECK,
++ SEQ_INDEX,
++ SEQ_INDEX_PADDING,
++ SEQ_INDEX_CRC32,
++ SEQ_STREAM_FOOTER
++ } sequence;
++
++ /* Position in variable-length integers and Check fields */
++ uint32_t pos;
++
++ /* Variable-length integer decoded by dec_vli() */
++ vli_type vli;
++
++ /* Saved in_pos and out_pos */
++ size_t in_start;
++ size_t out_start;
++
++ /* CRC32 value in Block or Index */
++ uint32_t crc32;
++
++ /* Type of the integrity check calculated from uncompressed data */
++ enum xz_check check_type;
++
++ /* Operation mode */
++ enum xz_mode mode;
++
++ /*
++ * True if the next call to xz_dec_run() is allowed to return
++ * XZ_BUF_ERROR.
++ */
++ bool_t allow_buf_error;
++
++ /* Information stored in Block Header */
++ struct {
++ /*
++ * Value stored in the Compressed Size field, or
++ * VLI_UNKNOWN if Compressed Size is not present.
++ */
++ vli_type compressed;
++
++ /*
++ * Value stored in the Uncompressed Size field, or
++ * VLI_UNKNOWN if Uncompressed Size is not present.
++ */
++ vli_type uncompressed;
++
++ /* Size of the Block Header field */
++ uint32_t size;
++ } block_header;
++
++ /* Information collected when decoding Blocks */
++ struct {
++ /* Observed compressed size of the current Block */
++ vli_type compressed;
++
++ /* Observed uncompressed size of the current Block */
++ vli_type uncompressed;
++
++ /* Number of Blocks decoded so far */
++ vli_type count;
++
++ /*
++ * Hash calculated from the Block sizes. This is used to
++ * validate the Index field.
++ */
++ struct xz_dec_hash hash;
++ } block;
++
++ /* Variables needed when verifying the Index field */
++ struct {
++ /* Position in dec_index() */
++ enum {
++ SEQ_INDEX_COUNT,
++ SEQ_INDEX_UNPADDED,
++ SEQ_INDEX_UNCOMPRESSED
++ } sequence;
++
++ /* Size of the Index in bytes */
++ vli_type size;
++
++ /* Number of Records (matches block.count in valid files) */
++ vli_type count;
++
++ /*
++ * Hash calculated from the Records (matches block.hash in
++ * valid files).
++ */
++ struct xz_dec_hash hash;
++ } index;
++
++ /*
++ * Temporary buffer needed to hold Stream Header, Block Header,
++ * and Stream Footer. The Block Header is the biggest (1 KiB)
++ * so we reserve space according to that. buf[] has to be aligned
++ * to a multiple of four bytes; the size_t variables before it
++ * should guarantee this.
++ */
++ struct {
++ size_t pos;
++ size_t size;
++ uint8_t buf[1024];
++ } temp;
++
++ struct xz_dec_lzma2 *lzma2;
++
++#ifdef XZ_DEC_BCJ
++ struct xz_dec_bcj *bcj;
++ bool_t bcj_active;
++#endif
++};
++
++#ifdef XZ_DEC_ANY_CHECK
++/* Sizes of the Check field with different Check IDs */
++static const uint8_t check_sizes[16] = {
++ 0,
++ 4, 4, 4,
++ 8, 8, 8,
++ 16, 16, 16,
++ 32, 32, 32,
++ 64, 64, 64
++};
++#endif
++
++/*
++ * Fill s->temp by copying data starting from b->in[b->in_pos]. Caller
++ * must have set s->temp.pos to indicate how much data we are supposed
++ * to copy into s->temp.buf. Return true once s->temp.pos has reached
++ * s->temp.size.
++ */
++static bool_t INIT fill_temp(struct xz_dec *s, struct xz_buf *b)
++{
++ size_t copy_size = min_t(size_t,
++ b->in_size - b->in_pos, s->temp.size - s->temp.pos);
++
++ memcpy(s->temp.buf + s->temp.pos, b->in + b->in_pos, copy_size);
++ b->in_pos += copy_size;
++ s->temp.pos += copy_size;
++
++ if (s->temp.pos == s->temp.size) {
++ s->temp.pos = 0;
++ return true;
++ }
++
++ return false;
++}
++
++/* Decode a variable-length integer (little-endian base-128 encoding) */
++static enum xz_ret INIT dec_vli(struct xz_dec *s, const uint8_t *in,
++ size_t *in_pos, size_t in_size)
++{
++ uint8_t byte;
++
++ if (s->pos == 0)
++ s->vli = 0;
++
++ while (*in_pos < in_size) {
++ byte = in[*in_pos];
++ ++*in_pos;
++
++ s->vli |= (vli_type)(byte & 0x7F) << s->pos;
++
++ if ((byte & 0x80) == 0) {
++ /* Don't allow non-minimal encodings. */
++ if (byte == 0 && s->pos != 0)
++ return XZ_DATA_ERROR;
++
++ s->pos = 0;
++ return XZ_STREAM_END;
++ }
++
++ s->pos += 7;
++ if (s->pos == 7 * VLI_BYTES_MAX)
++ return XZ_DATA_ERROR;
++ }
++
++ return XZ_OK;
++}
++
++/*
++ * Decode the Compressed Data field from a Block. Update and validate
++ * the observed compressed and uncompressed sizes of the Block so that
++ * they don't exceed the values possibly stored in the Block Header
++ * (validation assumes that no integer overflow occurs, since vli_type
++ * is normally uint64_t). Update the CRC32 if presence of the CRC32
++ * field was indicated in Stream Header.
++ *
++ * Once the decoding is finished, validate that the observed sizes match
++ * the sizes possibly stored in the Block Header. Update the hash and
++ * Block count, which are later used to validate the Index field.
++ */
++static enum xz_ret INIT dec_block(struct xz_dec *s, struct xz_buf *b)
++{
++ enum xz_ret ret;
++
++ s->in_start = b->in_pos;
++ s->out_start = b->out_pos;
++
++#ifdef XZ_DEC_BCJ
++ if (s->bcj_active)
++ ret = xz_dec_bcj_run(s->bcj, s->lzma2, b);
++ else
++#endif
++ ret = xz_dec_lzma2_run(s->lzma2, b);
++
++ s->block.compressed += b->in_pos - s->in_start;
++ s->block.uncompressed += b->out_pos - s->out_start;
++
++ /*
++ * There is no need to separately check for VLI_UNKNOWN, since
++ * the observed sizes are always smaller than VLI_UNKNOWN.
++ */
++ if (s->block.compressed > s->block_header.compressed
++ || s->block.uncompressed
++ > s->block_header.uncompressed)
++ return XZ_DATA_ERROR;
++
++ if (s->check_type == XZ_CHECK_CRC32)
++ s->crc32 = xz_crc32(b->out + s->out_start,
++ b->out_pos - s->out_start, s->crc32);
++
++ if (ret == XZ_STREAM_END) {
++ if (s->block_header.compressed != VLI_UNKNOWN
++ && s->block_header.compressed
++ != s->block.compressed)
++ return XZ_DATA_ERROR;
++
++ if (s->block_header.uncompressed != VLI_UNKNOWN
++ && s->block_header.uncompressed
++ != s->block.uncompressed)
++ return XZ_DATA_ERROR;
++
++ s->block.hash.unpadded += s->block_header.size
++ + s->block.compressed;
++
++#ifdef XZ_DEC_ANY_CHECK
++ s->block.hash.unpadded += check_sizes[s->check_type];
++#else
++ if (s->check_type == XZ_CHECK_CRC32)
++ s->block.hash.unpadded += 4;
++#endif
++
++ s->block.hash.uncompressed += s->block.uncompressed;
++ s->block.hash.crc32 = xz_crc32(
++ (const uint8_t *)&s->block.hash,
++ sizeof(s->block.hash), s->block.hash.crc32);
++
++ ++s->block.count;
++ }
++
++ return ret;
++}
++
++/* Update the Index size and the CRC32 value. */
++static void INIT index_update(struct xz_dec *s, const struct xz_buf *b)
++{
++ size_t in_used = b->in_pos - s->in_start;
++ s->index.size += in_used;
++ s->crc32 = xz_crc32(b->in + s->in_start, in_used, s->crc32);
++}
++
++/*
++ * Decode the Number of Records, Unpadded Size, and Uncompressed Size
++ * fields from the Index field. That is, Index Padding and CRC32 are not
++ * decoded by this function.
++ *
++ * This can return XZ_OK (more input needed), XZ_STREAM_END (everything
++ * successfully decoded), or XZ_DATA_ERROR (input is corrupt).
++ */
++static enum xz_ret INIT dec_index(struct xz_dec *s, struct xz_buf *b)
++{
++ enum xz_ret ret;
++
++ do {
++ ret = dec_vli(s, b->in, &b->in_pos, b->in_size);
++ if (ret != XZ_STREAM_END) {
++ index_update(s, b);
++ return ret;
++ }
++
++ switch (s->index.sequence) {
++ case SEQ_INDEX_COUNT:
++ s->index.count = s->vli;
++
++ /*
++ * Validate that the Number of Records field
++ * indicates the same number of Records as
++ * there were Blocks in the Stream.
++ */
++ if (s->index.count != s->block.count)
++ return XZ_DATA_ERROR;
++
++ s->index.sequence = SEQ_INDEX_UNPADDED;
++ break;
++
++ case SEQ_INDEX_UNPADDED:
++ s->index.hash.unpadded += s->vli;
++ s->index.sequence = SEQ_INDEX_UNCOMPRESSED;
++ break;
++
++ case SEQ_INDEX_UNCOMPRESSED:
++ s->index.hash.uncompressed += s->vli;
++ s->index.hash.crc32 = xz_crc32(
++ (const uint8_t *)&s->index.hash,
++ sizeof(s->index.hash),
++ s->index.hash.crc32);
++ --s->index.count;
++ s->index.sequence = SEQ_INDEX_UNPADDED;
++ break;
++ }
++ } while (s->index.count > 0);
++
++ return XZ_STREAM_END;
++}
++
++/*
++ * Validate that the next four input bytes match the value of s->crc32.
++ * s->pos must be zero when starting to validate the first byte.
++ */
++static enum xz_ret INIT crc32_validate(struct xz_dec *s, struct xz_buf *b)
++{
++ do {
++ if (b->in_pos == b->in_size)
++ return XZ_OK;
++
++ if (((s->crc32 >> s->pos) & 0xFF) != b->in[b->in_pos++])
++ return XZ_DATA_ERROR;
++
++ s->pos += 8;
++
++ } while (s->pos < 32);
++
++ s->crc32 = 0;
++ s->pos = 0;
++
++ return XZ_STREAM_END;
++}
++
++#ifdef XZ_DEC_ANY_CHECK
++/*
++ * Skip over the Check field when the Check ID is not supported.
++ * Returns true once the whole Check field has been skipped over.
++ */
++static bool_t INIT check_skip(struct xz_dec *s, struct xz_buf *b)
++{
++ while (s->pos < check_sizes[s->check_type]) {
++ if (b->in_pos == b->in_size)
++ return false;
++
++ ++b->in_pos;
++ ++s->pos;
++ }
++
++ s->pos = 0;
++
++ return true;
++}
++#endif
++
++/* Decode the Stream Header field (the first 12 bytes of the .xz Stream). */
++static enum xz_ret INIT dec_stream_header(struct xz_dec *s)
++{
++ if (!memeq(s->temp.buf, HEADER_MAGIC, HEADER_MAGIC_SIZE))
++ return XZ_FORMAT_ERROR;
++
++ if (xz_crc32(s->temp.buf + HEADER_MAGIC_SIZE, 2, 0)
++ != get_le32(s->temp.buf + HEADER_MAGIC_SIZE + 2))
++ return XZ_DATA_ERROR;
++
++ if (s->temp.buf[HEADER_MAGIC_SIZE] != 0)
++ return XZ_OPTIONS_ERROR;
++
++ /*
++ * Of integrity checks, we support only none (Check ID = 0) and
++ * CRC32 (Check ID = 1). However, if XZ_DEC_ANY_CHECK is defined,
++ * we will accept other check types too, but then the check won't
++ * be verified and a warning (XZ_UNSUPPORTED_CHECK) will be given.
++ */
++ s->check_type = s->temp.buf[HEADER_MAGIC_SIZE + 1];
++
++#ifdef XZ_DEC_ANY_CHECK
++ if (s->check_type > XZ_CHECK_MAX)
++ return XZ_OPTIONS_ERROR;
++
++ if (s->check_type > XZ_CHECK_CRC32)
++ return XZ_UNSUPPORTED_CHECK;
++#else
++ if (s->check_type > XZ_CHECK_CRC32)
++ return XZ_OPTIONS_ERROR;
++#endif
++
++ return XZ_OK;
++}
++
++/* Decode the Stream Footer field (the last 12 bytes of the .xz Stream) */
++static enum xz_ret INIT dec_stream_footer(struct xz_dec *s)
++{
++ if (!memeq(s->temp.buf + 10, FOOTER_MAGIC, FOOTER_MAGIC_SIZE))
++ return XZ_DATA_ERROR;
++
++ if (xz_crc32(s->temp.buf + 4, 6, 0) != get_le32(s->temp.buf))
++ return XZ_DATA_ERROR;
++
++ /*
++ * Validate Backward Size. Note that we never added the size of the
++ * Index CRC32 field to s->index.size, thus we use s->index.size / 4
++ * instead of s->index.size / 4 - 1.
++ */
++ if ((s->index.size >> 2) != get_le32(s->temp.buf + 4))
++ return XZ_DATA_ERROR;
++
++ if (s->temp.buf[8] != 0 || s->temp.buf[9] != s->check_type)
++ return XZ_DATA_ERROR;
++
++ /*
++ * Use XZ_STREAM_END instead of XZ_OK to be more convenient
++ * for the caller.
++ */
++ return XZ_STREAM_END;
++}
++
++/* Decode the Block Header and initialize the filter chain. */
++static enum xz_ret INIT dec_block_header(struct xz_dec *s)
++{
++ enum xz_ret ret;
++
++ /*
++ * Validate the CRC32. We know that the temp buffer is at least
++ * eight bytes so this is safe.
++ */
++ s->temp.size -= 4;
++ if (xz_crc32(s->temp.buf, s->temp.size, 0)
++ != get_le32(s->temp.buf + s->temp.size))
++ return XZ_DATA_ERROR;
++
++ s->temp.pos = 2;
++
++ /*
++ * Catch unsupported Block Flags. We support only one or two filters
++ * in the chain, so we catch that with the same test.
++ */
++#ifdef XZ_DEC_BCJ
++ if (s->temp.buf[1] & 0x3E)
++#else
++ if (s->temp.buf[1] & 0x3F)
++#endif
++ return XZ_OPTIONS_ERROR;
++
++ /* Compressed Size */
++ if (s->temp.buf[1] & 0x40) {
++ if (dec_vli(s, s->temp.buf, &s->temp.pos, s->temp.size)
++ != XZ_STREAM_END)
++ return XZ_DATA_ERROR;
++
++ s->block_header.compressed = s->vli;
++ } else {
++ s->block_header.compressed = VLI_UNKNOWN;
++ }
++
++ /* Uncompressed Size */
++ if (s->temp.buf[1] & 0x80) {
++ if (dec_vli(s, s->temp.buf, &s->temp.pos, s->temp.size)
++ != XZ_STREAM_END)
++ return XZ_DATA_ERROR;
++
++ s->block_header.uncompressed = s->vli;
++ } else {
++ s->block_header.uncompressed = VLI_UNKNOWN;
++ }
++
++#ifdef XZ_DEC_BCJ
++ /* If there are two filters, the first one must be a BCJ filter. */
++ s->bcj_active = s->temp.buf[1] & 0x01;
++ if (s->bcj_active) {
++ if (s->temp.size - s->temp.pos < 2)
++ return XZ_OPTIONS_ERROR;
++
++ ret = xz_dec_bcj_reset(s->bcj, s->temp.buf[s->temp.pos++]);
++ if (ret != XZ_OK)
++ return ret;
++
++ /*
++ * We don't support custom start offset,
++ * so Size of Properties must be zero.
++ */
++ if (s->temp.buf[s->temp.pos++] != 0x00)
++ return XZ_OPTIONS_ERROR;
++ }
++#endif
++
++ /* Valid Filter Flags always take at least two bytes. */
++ if (s->temp.size - s->temp.pos < 2)
++ return XZ_DATA_ERROR;
++
++ /* Filter ID = LZMA2 */
++ if (s->temp.buf[s->temp.pos++] != 0x21)
++ return XZ_OPTIONS_ERROR;
++
++ /* Size of Properties = 1-byte Filter Properties */
++ if (s->temp.buf[s->temp.pos++] != 0x01)
++ return XZ_OPTIONS_ERROR;
++
++ /* Filter Properties contains LZMA2 dictionary size. */
++ if (s->temp.size - s->temp.pos < 1)
++ return XZ_DATA_ERROR;
++
++ ret = xz_dec_lzma2_reset(s->lzma2, s->temp.buf[s->temp.pos++]);
++ if (ret != XZ_OK)
++ return ret;
++
++ /* The rest must be Header Padding. */
++ while (s->temp.pos < s->temp.size)
++ if (s->temp.buf[s->temp.pos++] != 0x00)
++ return XZ_OPTIONS_ERROR;
++
++ s->temp.pos = 0;
++ s->block.compressed = 0;
++ s->block.uncompressed = 0;
++
++ return XZ_OK;
++}
++
++static enum xz_ret INIT dec_main(struct xz_dec *s, struct xz_buf *b)
++{
++ enum xz_ret ret;
++
++ /*
++ * Store the start position for the case when we are in the middle
++ * of the Index field.
++ */
++ s->in_start = b->in_pos;
++
++ while (true) {
++ switch (s->sequence) {
++ case SEQ_STREAM_HEADER:
++ /*
++ * Stream Header is copied to s->temp, and then
++ * decoded from there. This way if the caller
++ * gives us only little input at a time, we can
++ * still keep the Stream Header decoding code
++ * simple. Similar approach is used in many places
++ * in this file.
++ */
++ if (!fill_temp(s, b))
++ return XZ_OK;
++
++ /*
++ * If dec_stream_header() returns
++ * XZ_UNSUPPORTED_CHECK, it is still possible
++ * to continue decoding if working in multi-call
++ * mode. Thus, update s->sequence before calling
++ * dec_stream_header().
++ */
++ s->sequence = SEQ_BLOCK_START;
++
++ ret = dec_stream_header(s);
++ if (ret != XZ_OK)
++ return ret;
++
++ case SEQ_BLOCK_START:
++ /* We need one byte of input to continue. */
++ if (b->in_pos == b->in_size)
++ return XZ_OK;
++
++ /* See if this is the beginning of the Index field. */
++ if (b->in[b->in_pos] == 0) {
++ s->in_start = b->in_pos++;
++ s->sequence = SEQ_INDEX;
++ break;
++ }
++
++ /*
++ * Calculate the size of the Block Header and
++ * prepare to decode it.
++ */
++ s->block_header.size
++ = ((uint32_t)b->in[b->in_pos] + 1) * 4;
++
++ s->temp.size = s->block_header.size;
++ s->temp.pos = 0;
++ s->sequence = SEQ_BLOCK_HEADER;
++
++ case SEQ_BLOCK_HEADER:
++ if (!fill_temp(s, b))
++ return XZ_OK;
++
++ ret = dec_block_header(s);
++ if (ret != XZ_OK)
++ return ret;
++
++ s->sequence = SEQ_BLOCK_UNCOMPRESS;
++
++ case SEQ_BLOCK_UNCOMPRESS:
++ ret = dec_block(s, b);
++ if (ret != XZ_STREAM_END)
++ return ret;
++
++ s->sequence = SEQ_BLOCK_PADDING;
++
++ case SEQ_BLOCK_PADDING:
++ /*
++ * Size of Compressed Data + Block Padding
++ * must be a multiple of four. We don't need
++ * s->block.compressed for anything else
++ * anymore, so we use it here to test the size
++ * of the Block Padding field.
++ */
++ while (s->block.compressed & 3) {
++ if (b->in_pos == b->in_size)
++ return XZ_OK;
++
++ if (b->in[b->in_pos++] != 0)
++ return XZ_DATA_ERROR;
++
++ ++s->block.compressed;
++ }
++
++ s->sequence = SEQ_BLOCK_CHECK;
++
++ case SEQ_BLOCK_CHECK:
++ if (s->check_type == XZ_CHECK_CRC32) {
++ ret = crc32_validate(s, b);
++ if (ret != XZ_STREAM_END)
++ return ret;
++ }
++#ifdef XZ_DEC_ANY_CHECK
++ else if (!check_skip(s, b)) {
++ return XZ_OK;
++ }
++#endif
++
++ s->sequence = SEQ_BLOCK_START;
++ break;
++
++ case SEQ_INDEX:
++ ret = dec_index(s, b);
++ if (ret != XZ_STREAM_END)
++ return ret;
++
++ s->sequence = SEQ_INDEX_PADDING;
++
++ case SEQ_INDEX_PADDING:
++ while ((s->index.size + (b->in_pos - s->in_start))
++ & 3) {
++ if (b->in_pos == b->in_size) {
++ index_update(s, b);
++ return XZ_OK;
++ }
++
++ if (b->in[b->in_pos++] != 0)
++ return XZ_DATA_ERROR;
++ }
++
++ /* Finish the CRC32 value and Index size. */
++ index_update(s, b);
++
++ /* Compare the hashes to validate the Index field. */
++ if (!memeq(&s->block.hash, &s->index.hash,
++ sizeof(s->block.hash)))
++ return XZ_DATA_ERROR;
++
++ s->sequence = SEQ_INDEX_CRC32;
++
++ case SEQ_INDEX_CRC32:
++ ret = crc32_validate(s, b);
++ if (ret != XZ_STREAM_END)
++ return ret;
++
++ s->temp.size = STREAM_HEADER_SIZE;
++ s->sequence = SEQ_STREAM_FOOTER;
++
++ case SEQ_STREAM_FOOTER:
++ if (!fill_temp(s, b))
++ return XZ_OK;
++
++ return dec_stream_footer(s);
++ }
++ }
++
++ /* Never reached */
++}
++
++XZ_EXTERN void INIT xz_dec_reset(struct xz_dec *s)
++{
++ s->sequence = SEQ_STREAM_HEADER;
++ s->allow_buf_error = false;
++ s->pos = 0;
++ s->crc32 = 0;
++ memzero(&s->block, sizeof(s->block));
++ memzero(&s->index, sizeof(s->index));
++ s->temp.pos = 0;
++ s->temp.size = STREAM_HEADER_SIZE;
++}
++
++/*
++ * xz_dec_run() is a wrapper for dec_main() to handle some special cases in
++ * multi-call and single-call decoding.
++ *
++ * In multi-call mode, we must return XZ_BUF_ERROR when it seems clear that we
++ * are not going to make any progress anymore. This is to prevent the caller
++ * from calling us infinitely when the input file is truncated or otherwise
++ * corrupt. Since zlib-style API allows that the caller fills the input buffer
++ * only when the decoder doesn't produce any new output, we have to be careful
++ * to avoid returning XZ_BUF_ERROR too easily: XZ_BUF_ERROR is returned only
++ * after the second consecutive call to xz_dec_run() that makes no progress.
++ *
++ * In single-call mode, if we couldn't decode everything and no error
++ * occurred, either the input is truncated or the output buffer is too small.
++ * Since we know that the last input byte never produces any output, we know
++ * that if all the input was consumed and decoding wasn't finished, the file
++ * must be corrupt. Otherwise the output buffer has to be too small or the
++ * file is corrupt in a way that decoding it produces too big output.
++ *
++ * If single-call decoding fails, we reset b->in_pos and b->out_pos back to
++ * their original values. This is because with some filter chains there won't
++ * be any valid uncompressed data in the output buffer unless the decoding
++ * actually succeeds (that's the price to pay of using the output buffer as
++ * the workspace).
++ */
++XZ_EXTERN enum xz_ret INIT xz_dec_run(struct xz_dec *s, struct xz_buf *b)
++{
++ size_t in_start;
++ size_t out_start;
++ enum xz_ret ret;
++
++ if (DEC_IS_SINGLE(s->mode))
++ xz_dec_reset(s);
++
++ in_start = b->in_pos;
++ out_start = b->out_pos;
++ ret = dec_main(s, b);
++
++ if (DEC_IS_SINGLE(s->mode)) {
++ if (ret == XZ_OK)
++ ret = b->in_pos == b->in_size
++ ? XZ_DATA_ERROR : XZ_BUF_ERROR;
++
++ if (ret != XZ_STREAM_END) {
++ b->in_pos = in_start;
++ b->out_pos = out_start;
++ }
++
++ } else if (ret == XZ_OK && in_start == b->in_pos
++ && out_start == b->out_pos) {
++ if (s->allow_buf_error)
++ ret = XZ_BUF_ERROR;
++
++ s->allow_buf_error = true;
++ } else {
++ s->allow_buf_error = false;
++ }
++
++ return ret;
++}
++
++XZ_EXTERN struct xz_dec *INIT xz_dec_init(enum xz_mode mode, uint32_t dict_max)
++{
++ struct xz_dec *s = malloc(sizeof(*s));
++ if (s == NULL)
++ return NULL;
++
++ s->mode = mode;
++
++#ifdef XZ_DEC_BCJ
++ s->bcj = xz_dec_bcj_create(DEC_IS_SINGLE(mode));
++ if (s->bcj == NULL)
++ goto error_bcj;
++#endif
++
++ s->lzma2 = xz_dec_lzma2_create(mode, dict_max);
++ if (s->lzma2 == NULL)
++ goto error_lzma2;
++
++ xz_dec_reset(s);
++ return s;
++
++error_lzma2:
++#ifdef XZ_DEC_BCJ
++ xz_dec_bcj_end(s->bcj);
++error_bcj:
++#endif
++ free(s);
++ return NULL;
++}
++
++XZ_EXTERN void INIT xz_dec_end(struct xz_dec *s)
++{
++ if (s != NULL) {
++ xz_dec_lzma2_end(s->lzma2);
++#ifdef XZ_DEC_BCJ
++ xz_dec_bcj_end(s->bcj);
++#endif
++ free(s);
++ }
++}
+diff --git a/xen/common/xz/lzma2.h b/xen/common/xz/lzma2.h
+new file mode 100644
+--- /dev/null
++++ b/xen/common/xz/lzma2.h
+@@ -0,0 +1,204 @@
++/*
++ * LZMA2 definitions
++ *
++ * Authors: Lasse Collin <lasse.collin@tukaani.org>
++ * Igor Pavlov <http://7-zip.org/>
++ *
++ * This file has been put into the public domain.
++ * You can do whatever you want with this file.
++ */
++
++#ifndef XZ_LZMA2_H
++#define XZ_LZMA2_H
++
++/* Range coder constants */
++#define RC_SHIFT_BITS 8
++#define RC_TOP_BITS 24
++#define RC_TOP_VALUE (1 << RC_TOP_BITS)
++#define RC_BIT_MODEL_TOTAL_BITS 11
++#define RC_BIT_MODEL_TOTAL (1 << RC_BIT_MODEL_TOTAL_BITS)
++#define RC_MOVE_BITS 5
++
++/*
++ * Maximum number of position states. A position state is the lowest pb
++ * number of bits of the current uncompressed offset. In some places there
++ * are different sets of probabilities for different position states.
++ */
++#define POS_STATES_MAX (1 << 4)
++
++/*
++ * This enum is used to track which LZMA symbols have occurred most recently
++ * and in which order. This information is used to predict the next symbol.
++ *
++ * Symbols:
++ * - Literal: One 8-bit byte
++ * - Match: Repeat a chunk of data at some distance
++ * - Long repeat: Multi-byte match at a recently seen distance
++ * - Short repeat: One-byte repeat at a recently seen distance
++ *
++ * The symbol names are in from STATE_oldest_older_previous. REP means
++ * either short or long repeated match, and NONLIT means any non-literal.
++ */
++enum lzma_state {
++ STATE_LIT_LIT,
++ STATE_MATCH_LIT_LIT,
++ STATE_REP_LIT_LIT,
++ STATE_SHORTREP_LIT_LIT,
++ STATE_MATCH_LIT,
++ STATE_REP_LIT,
++ STATE_SHORTREP_LIT,
++ STATE_LIT_MATCH,
++ STATE_LIT_LONGREP,
++ STATE_LIT_SHORTREP,
++ STATE_NONLIT_MATCH,
++ STATE_NONLIT_REP
++};
++
++/* Total number of states */
++#define STATES 12
++
++/* The lowest 7 states indicate that the previous state was a literal. */
++#define LIT_STATES 7
++
++/* Indicate that the latest symbol was a literal. */
++static inline void INIT lzma_state_literal(enum lzma_state *state)
++{
++ if (*state <= STATE_SHORTREP_LIT_LIT)
++ *state = STATE_LIT_LIT;
++ else if (*state <= STATE_LIT_SHORTREP)
++ *state -= 3;
++ else
++ *state -= 6;
++}
++
++/* Indicate that the latest symbol was a match. */
++static inline void INIT lzma_state_match(enum lzma_state *state)
++{
++ *state = *state < LIT_STATES ? STATE_LIT_MATCH : STATE_NONLIT_MATCH;
++}
++
++/* Indicate that the latest state was a long repeated match. */
++static inline void INIT lzma_state_long_rep(enum lzma_state *state)
++{
++ *state = *state < LIT_STATES ? STATE_LIT_LONGREP : STATE_NONLIT_REP;
++}
++
++/* Indicate that the latest symbol was a short match. */
++static inline void INIT lzma_state_short_rep(enum lzma_state *state)
++{
++ *state = *state < LIT_STATES ? STATE_LIT_SHORTREP : STATE_NONLIT_REP;
++}
++
++/* Test if the previous symbol was a literal. */
++static inline bool_t INIT lzma_state_is_literal(enum lzma_state state)
++{
++ return state < LIT_STATES;
++}
++
++/* Each literal coder is divided in three sections:
++ * - 0x001-0x0FF: Without match byte
++ * - 0x101-0x1FF: With match byte; match bit is 0
++ * - 0x201-0x2FF: With match byte; match bit is 1
++ *
++ * Match byte is used when the previous LZMA symbol was something else than
++ * a literal (that is, it was some kind of match).
++ */
++#define LITERAL_CODER_SIZE 0x300
++
++/* Maximum number of literal coders */
++#define LITERAL_CODERS_MAX (1 << 4)
++
++/* Minimum length of a match is two bytes. */
++#define MATCH_LEN_MIN 2
++
++/* Match length is encoded with 4, 5, or 10 bits.
++ *
++ * Length Bits
++ * 2-9 4 = Choice=0 + 3 bits
++ * 10-17 5 = Choice=1 + Choice2=0 + 3 bits
++ * 18-273 10 = Choice=1 + Choice2=1 + 8 bits
++ */
++#define LEN_LOW_BITS 3
++#define LEN_LOW_SYMBOLS (1 << LEN_LOW_BITS)
++#define LEN_MID_BITS 3
++#define LEN_MID_SYMBOLS (1 << LEN_MID_BITS)
++#define LEN_HIGH_BITS 8
++#define LEN_HIGH_SYMBOLS (1 << LEN_HIGH_BITS)
++#define LEN_SYMBOLS (LEN_LOW_SYMBOLS + LEN_MID_SYMBOLS + LEN_HIGH_SYMBOLS)
++
++/*
++ * Maximum length of a match is 273 which is a result of the encoding
++ * described above.
++ */
++#define MATCH_LEN_MAX (MATCH_LEN_MIN + LEN_SYMBOLS - 1)
++
++/*
++ * Different sets of probabilities are used for match distances that have
++ * very short match length: Lengths of 2, 3, and 4 bytes have a separate
++ * set of probabilities for each length. The matches with longer length
++ * use a shared set of probabilities.
++ */
++#define DIST_STATES 4
++
++/*
++ * Get the index of the appropriate probability array for decoding
++ * the distance slot.
++ */
++static inline uint32_t INIT lzma_get_dist_state(uint32_t len)
++{
++ return len < DIST_STATES + MATCH_LEN_MIN
++ ? len - MATCH_LEN_MIN : DIST_STATES - 1;
++}
++
++/*
++ * The highest two bits of a 32-bit match distance are encoded using six bits.
++ * This six-bit value is called a distance slot. This way encoding a 32-bit
++ * value takes 6-36 bits, larger values taking more bits.
++ */
++#define DIST_SLOT_BITS 6
++#define DIST_SLOTS (1 << DIST_SLOT_BITS)
++
++/* Match distances up to 127 are fully encoded using probabilities. Since
++ * the highest two bits (distance slot) are always encoded using six bits,
++ * the distances 0-3 don't need any additional bits to encode, since the
++ * distance slot itself is the same as the actual distance. DIST_MODEL_START
++ * indicates the first distance slot where at least one additional bit is
++ * needed.
++ */
++#define DIST_MODEL_START 4
++
++/*
++ * Match distances greater than 127 are encoded in three pieces:
++ * - distance slot: the highest two bits
++ * - direct bits: 2-26 bits below the highest two bits
++ * - alignment bits: four lowest bits
++ *
++ * Direct bits don't use any probabilities.
++ *
++ * The distance slot value of 14 is for distances 128-191.
++ */
++#define DIST_MODEL_END 14
++
++/* Distance slots that indicate a distance <= 127. */
++#define FULL_DISTANCES_BITS (DIST_MODEL_END / 2)
++#define FULL_DISTANCES (1 << FULL_DISTANCES_BITS)
++
++/*
++ * For match distances greater than 127, only the highest two bits and the
++ * lowest four bits (alignment) is encoded using probabilities.
++ */
++#define ALIGN_BITS 4
++#define ALIGN_SIZE (1 << ALIGN_BITS)
++#define ALIGN_MASK (ALIGN_SIZE - 1)
++
++/* Total number of all probability variables */
++#define PROBS_TOTAL (1846 + LITERAL_CODERS_MAX * LITERAL_CODER_SIZE)
++
++/*
++ * LZMA remembers the four most recent match distances. Reusing these
++ * distances tends to take less space than re-encoding the actual
++ * distance value.
++ */
++#define REPS 4
++
++#endif
+diff --git a/xen/common/xz/private.h b/xen/common/xz/private.h
+new file mode 100644
+--- /dev/null
++++ b/xen/common/xz/private.h
+@@ -0,0 +1,271 @@
++/*
++ * Private includes and definitions
++ *
++ * Author: Lasse Collin <lasse.collin@tukaani.org>
++ *
++ * This file has been put into the public domain.
++ * You can do whatever you want with this file.
++ */
++
++#ifndef XZ_PRIVATE_H
++#define XZ_PRIVATE_H
++
++#include <xen/kernel.h>
++#include <asm/byteorder.h>
++#define get_le32(p) le32_to_cpup((const uint32_t *)(p))
++
++#if 1 /* ndef CONFIG_??? */
++static inline u32 INIT get_unaligned_le32(void *p)
++{
++ return le32_to_cpup(p);
++}
++
++static inline void INIT put_unaligned_le32(u32 val, void *p)
++{
++ *(__force __le32*)p = cpu_to_le32(val);
++}
++#else
++#include <asm/unaligned.h>
++
++static inline u32 INIT get_unaligned_le32(void *p)
++{
++ return le32_to_cpu(__get_unaligned(p, 4));
++}
++
++static inline void INIT put_unaligned_le32(u32 val, void *p)
++{
++ __put_unaligned(cpu_to_le32(val), p, 4);
++}
++#endif
++
++#define false 0
++#define true 1
++
++/**
++ * enum xz_mode - Operation mode
++ *
++ * @XZ_SINGLE: Single-call mode. This uses less RAM than
++ * than multi-call modes, because the LZMA2
++ * dictionary doesn't need to be allocated as
++ * part of the decoder state. All required data
++ * structures are allocated at initialization,
++ * so xz_dec_run() cannot return XZ_MEM_ERROR.
++ * @XZ_PREALLOC: Multi-call mode with preallocated LZMA2
++ * dictionary buffer. All data structures are
++ * allocated at initialization, so xz_dec_run()
++ * cannot return XZ_MEM_ERROR.
++ * @XZ_DYNALLOC: Multi-call mode. The LZMA2 dictionary is
++ * allocated once the required size has been
++ * parsed from the stream headers. If the
++ * allocation fails, xz_dec_run() will return
++ * XZ_MEM_ERROR.
++ *
++ * It is possible to enable support only for a subset of the above
++ * modes at compile time by defining XZ_DEC_SINGLE, XZ_DEC_PREALLOC,
++ * or XZ_DEC_DYNALLOC. The xz_dec kernel module is always compiled
++ * with support for all operation modes, but the preboot code may
++ * be built with fewer features to minimize code size.
++ */
++enum xz_mode {
++ XZ_SINGLE,
++ XZ_PREALLOC,
++ XZ_DYNALLOC
++};
++
++/**
++ * enum xz_ret - Return codes
++ * @XZ_OK: Everything is OK so far. More input or more
++ * output space is required to continue. This
++ * return code is possible only in multi-call mode
++ * (XZ_PREALLOC or XZ_DYNALLOC).
++ * @XZ_STREAM_END: Operation finished successfully.
++ * @XZ_UNSUPPORTED_CHECK: Integrity check type is not supported. Decoding
++ * is still possible in multi-call mode by simply
++ * calling xz_dec_run() again.
++ * Note that this return value is used only if
++ * XZ_DEC_ANY_CHECK was defined at build time,
++ * which is not used in the kernel. Unsupported
++ * check types return XZ_OPTIONS_ERROR if
++ * XZ_DEC_ANY_CHECK was not defined at build time.
++ * @XZ_MEM_ERROR: Allocating memory failed. This return code is
++ * possible only if the decoder was initialized
++ * with XZ_DYNALLOC. The amount of memory that was
++ * tried to be allocated was no more than the
++ * dict_max argument given to xz_dec_init().
++ * @XZ_MEMLIMIT_ERROR: A bigger LZMA2 dictionary would be needed than
++ * allowed by the dict_max argument given to
++ * xz_dec_init(). This return value is possible
++ * only in multi-call mode (XZ_PREALLOC or
++ * XZ_DYNALLOC); the single-call mode (XZ_SINGLE)
++ * ignores the dict_max argument.
++ * @XZ_FORMAT_ERROR: File format was not recognized (wrong magic
++ * bytes).
++ * @XZ_OPTIONS_ERROR: This implementation doesn't support the requested
++ * compression options. In the decoder this means
++ * that the header CRC32 matches, but the header
++ * itself specifies something that we don't support.
++ * @XZ_DATA_ERROR: Compressed data is corrupt.
++ * @XZ_BUF_ERROR: Cannot make any progress. Details are slightly
++ * different between multi-call and single-call
++ * mode; more information below.
++ *
++ * In multi-call mode, XZ_BUF_ERROR is returned when two consecutive calls
++ * to XZ code cannot consume any input and cannot produce any new output.
++ * This happens when there is no new input available, or the output buffer
++ * is full while at least one output byte is still pending. Assuming your
++ * code is not buggy, you can get this error only when decoding a compressed
++ * stream that is truncated or otherwise corrupt.
++ *
++ * In single-call mode, XZ_BUF_ERROR is returned only when the output buffer
++ * is too small or the compressed input is corrupt in a way that makes the
++ * decoder produce more output than the caller expected. When it is
++ * (relatively) clear that the compressed input is truncated, XZ_DATA_ERROR
++ * is used instead of XZ_BUF_ERROR.
++ */
++enum xz_ret {
++ XZ_OK,
++ XZ_STREAM_END,
++ XZ_UNSUPPORTED_CHECK,
++ XZ_MEM_ERROR,
++ XZ_MEMLIMIT_ERROR,
++ XZ_FORMAT_ERROR,
++ XZ_OPTIONS_ERROR,
++ XZ_DATA_ERROR,
++ XZ_BUF_ERROR
++};
++
++/**
++ * struct xz_buf - Passing input and output buffers to XZ code
++ * @in: Beginning of the input buffer. This may be NULL if and only
++ * if in_pos is equal to in_size.
++ * @in_pos: Current position in the input buffer. This must not exceed
++ * in_size.
++ * @in_size: Size of the input buffer
++ * @out: Beginning of the output buffer. This may be NULL if and only
++ * if out_pos is equal to out_size.
++ * @out_pos: Current position in the output buffer. This must not exceed
++ * out_size.
++ * @out_size: Size of the output buffer
++ *
++ * Only the contents of the output buffer from out[out_pos] onward, and
++ * the variables in_pos and out_pos are modified by the XZ code.
++ */
++struct xz_buf {
++ const uint8_t *in;
++ size_t in_pos;
++ size_t in_size;
++
++ uint8_t *out;
++ size_t out_pos;
++ size_t out_size;
++};
++
++/**
++ * struct xz_dec - Opaque type to hold the XZ decoder state
++ */
++struct xz_dec;
++
++/* If no specific decoding mode is requested, enable support for all modes. */
++#if !defined(XZ_DEC_SINGLE) && !defined(XZ_DEC_PREALLOC) \
++ && !defined(XZ_DEC_DYNALLOC)
++# define XZ_DEC_SINGLE
++# define XZ_DEC_PREALLOC
++# define XZ_DEC_DYNALLOC
++#endif
++
++/*
++ * The DEC_IS_foo(mode) macros are used in "if" statements. If only some
++ * of the supported modes are enabled, these macros will evaluate to true or
++ * false at compile time and thus allow the compiler to omit unneeded code.
++ */
++#ifdef XZ_DEC_SINGLE
++# define DEC_IS_SINGLE(mode) ((mode) == XZ_SINGLE)
++#else
++# define DEC_IS_SINGLE(mode) (false)
++#endif
++
++#ifdef XZ_DEC_PREALLOC
++# define DEC_IS_PREALLOC(mode) ((mode) == XZ_PREALLOC)
++#else
++# define DEC_IS_PREALLOC(mode) (false)
++#endif
++
++#ifdef XZ_DEC_DYNALLOC
++# define DEC_IS_DYNALLOC(mode) ((mode) == XZ_DYNALLOC)
++#else
++# define DEC_IS_DYNALLOC(mode) (false)
++#endif
++
++#if !defined(XZ_DEC_SINGLE)
++# define DEC_IS_MULTI(mode) (true)
++#elif defined(XZ_DEC_PREALLOC) || defined(XZ_DEC_DYNALLOC)
++# define DEC_IS_MULTI(mode) ((mode) != XZ_SINGLE)
++#else
++# define DEC_IS_MULTI(mode) (false)
++#endif
++
++/*
++ * If any of the BCJ filter decoders are wanted, define XZ_DEC_BCJ.
++ * XZ_DEC_BCJ is used to enable generic support for BCJ decoders.
++ */
++#ifndef XZ_DEC_BCJ
++# if defined(XZ_DEC_X86) || defined(XZ_DEC_POWERPC) \
++ || defined(XZ_DEC_IA64) || defined(XZ_DEC_ARM) \
++ || defined(XZ_DEC_ARM) || defined(XZ_DEC_ARMTHUMB) \
++ || defined(XZ_DEC_SPARC)
++# define XZ_DEC_BCJ
++# endif
++#endif
++
++/*
++ * Allocate memory for LZMA2 decoder. xz_dec_lzma2_reset() must be used
++ * before calling xz_dec_lzma2_run().
++ */
++XZ_EXTERN struct xz_dec_lzma2 *xz_dec_lzma2_create(enum xz_mode mode,
++ uint32_t dict_max);
++
++/*
++ * Decode the LZMA2 properties (one byte) and reset the decoder. Return
++ * XZ_OK on success, XZ_MEMLIMIT_ERROR if the preallocated dictionary is not
++ * big enough, and XZ_OPTIONS_ERROR if props indicates something that this
++ * decoder doesn't support.
++ */
++XZ_EXTERN enum xz_ret xz_dec_lzma2_reset(struct xz_dec_lzma2 *s,
++ uint8_t props);
++
++/* Decode raw LZMA2 stream from b->in to b->out. */
++XZ_EXTERN enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s,
++ struct xz_buf *b);
++
++/* Free the memory allocated for the LZMA2 decoder. */
++XZ_EXTERN void xz_dec_lzma2_end(struct xz_dec_lzma2 *s);
++
++#ifdef XZ_DEC_BCJ
++/*
++ * Allocate memory for BCJ decoders. xz_dec_bcj_reset() must be used before
++ * calling xz_dec_bcj_run().
++ */
++XZ_EXTERN struct xz_dec_bcj *xz_dec_bcj_create(bool_t single_call);
++
++/*
++ * Decode the Filter ID of a BCJ filter. This implementation doesn't
++ * support custom start offsets, so no decoding of Filter Properties
++ * is needed. Returns XZ_OK if the given Filter ID is supported.
++ * Otherwise XZ_OPTIONS_ERROR is returned.
++ */
++XZ_EXTERN enum xz_ret xz_dec_bcj_reset(struct xz_dec_bcj *s, uint8_t id);
++
++/*
++ * Decode raw BCJ + LZMA2 stream. This must be used only if there actually is
++ * a BCJ filter in the chain. If the chain has only LZMA2, xz_dec_lzma2_run()
++ * must be called directly.
++ */
++XZ_EXTERN enum xz_ret xz_dec_bcj_run(struct xz_dec_bcj *s,
++ struct xz_dec_lzma2 *lzma2,
++ struct xz_buf *b);
++
++/* Free the memory allocated for the BCJ filters. */
++#define xz_dec_bcj_end(s) free(s)
++#endif
++
++#endif
+diff --git a/xen/common/xz/stream.h b/xen/common/xz/stream.h
+new file mode 100644
+--- /dev/null
++++ b/xen/common/xz/stream.h
+@@ -0,0 +1,55 @@
++/*
++ * Definitions for handling the .xz file format
++ *
++ * Author: Lasse Collin <lasse.collin@tukaani.org>
++ *
++ * This file has been put into the public domain.
++ * You can do whatever you want with this file.
++ */
++
++#ifndef XZ_STREAM_H
++#define XZ_STREAM_H
++
++/*
++ * See the .xz file format specification at
++ * http://tukaani.org/xz/xz-file-format.txt
++ * to understand the container format.
++ */
++
++#define STREAM_HEADER_SIZE 12
++
++#define HEADER_MAGIC "\3757zXZ"
++#define HEADER_MAGIC_SIZE 6
++
++#define FOOTER_MAGIC "YZ"
++#define FOOTER_MAGIC_SIZE 2
++
++/*
++ * Variable-length integer can hold a 63-bit unsigned integer or a special
++ * value indicating that the value is unknown.
++ *
++ * Experimental: vli_type can be defined to uint32_t to save a few bytes
++ * in code size (no effect on speed). Doing so limits the uncompressed and
++ * compressed size of the file to less than 256 MiB and may also weaken
++ * error detection slightly.
++ */
++typedef uint64_t vli_type;
++
++#define VLI_MAX ((vli_type)-1 / 2)
++#define VLI_UNKNOWN ((vli_type)-1)
++
++/* Maximum encoded size of a VLI */
++#define VLI_BYTES_MAX (sizeof(vli_type) * 8 / 7)
++
++/* Integrity Check types */
++enum xz_check {
++ XZ_CHECK_NONE = 0,
++ XZ_CHECK_CRC32 = 1,
++ XZ_CHECK_CRC64 = 4,
++ XZ_CHECK_SHA256 = 10
++};
++
++/* Maximum possible Check ID */
++#define XZ_CHECK_MAX 15
++
++#endif
+diff --git a/xen/include/xen/decompress.h b/xen/include/xen/decompress.h
+--- a/xen/include/xen/decompress.h
++++ b/xen/include/xen/decompress.h
+@@ -31,7 +31,7 @@
+ * dependent).
+ */
+
+-decompress_fn bunzip2, unlzma, unlzo;
++decompress_fn bunzip2, unxz, unlzma, unlzo;
+
+ int decompress(void *inbuf, unsigned int len, void *outbuf); \ No newline at end of file
diff --git a/kernels/xen/parabolainit.patch b/kernels/xen/parabolainit.patch
new file mode 100644
index 000000000..645a66edd
--- /dev/null
+++ b/kernels/xen/parabolainit.patch
@@ -0,0 +1,423 @@
+diff -Naur orig.xen-4.1.1//tools/hotplug/Linux/init.d/xencommons xen-4.1.1//tools/hotplug/Linux/init.d/xencommons
+--- orig.xen-4.1.1//tools/hotplug/Linux/init.d/xencommons 2011-07-03 03:08:44.953747064 -0700
++++ xen-4.1.1//tools/hotplug/Linux/init.d/xencommons 2011-07-05 13:47:54.627029164 -0700
+@@ -18,6 +18,9 @@
+ # Description: Starts and stops the daemons neeeded for xl/xend
+ ### END INIT INFO
+
++. /etc/rc.conf
++. /etc/rc.d/functions
++
+ if [ -d /etc/sysconfig ]; then
+ xencommons_config=/etc/sysconfig
+ else
+@@ -26,7 +29,7 @@
+
+ test -f $xencommons_config/xencommons && . $xencommons_config/xencommons
+
+-XENCONSOLED_PIDFILE=/var/run/xenconsoled.pid
++XENCONSOLED_PIDFILE=/run/daemons/xenconsoled.pid
+ shopt -s extglob
+
+ if test "x$1" = xstart && \
+@@ -51,8 +54,9 @@
+ rm -f "$XENSTORED_ROOTDIR"/tdb* &>/dev/null
+ test -z "$XENSTORED_TRACE" || XENSTORED_ARGS=" -T /var/log/xen/xenstored-trace.log"
+
+- echo -n Starting xenstored...
+- xenstored --pid-file=/var/run/xenstored.pid $XENSTORED_ARGS
++ #echo -n Starting xenstored...
++ stat_busy "Starting xenstored"
++ xenstored --pid-file=/run/daemons/xenstored.pid $XENSTORED_ARGS
+
+ # Wait for xenstored to actually come up, timing out after 30 seconds
+ while [ $time -lt $timeout ] && ! `xenstore-read -s / >/dev/null 2>&1` ; do
+@@ -60,33 +64,39 @@
+ time=$(($time+1))
+ sleep 1
+ done
+- echo
+-
+ # Exit if we timed out
+ if ! [ $time -lt $timeout ] ; then
+- echo Could not start xenstored
++ #echo Could not start xenstored
++ stat_fail
+ exit 1
+ fi
++ stat_done
+
+- echo Setting domain 0 name...
++ stat_busy "Setting domain 0 name..."
+ xenstore-write "/local/domain/0/name" "Domain-0"
++ stat_done
+ fi
+
+- echo Starting xenconsoled...
++ #echo Starting xenconsoled...
++ stat_busy "Starting xenconsoled"
+ test -z "$XENCONSOLED_TRACE" || XENCONSOLED_ARGS=" --log=$XENCONSOLED_TRACE"
+ xenconsoled --pid-file=$XENCONSOLED_PIDFILE $XENCONSOLED_ARGS
+ test -z "$XENBACKENDD_DEBUG" || XENBACKENDD_ARGS="-d"
+ test "`uname`" != "NetBSD" || xenbackendd $XENBACKENDD_ARGS
++ stat_done
++ add_daemon xencommons
+ }
+ do_stop () {
+- echo Stopping xenconsoled
++ stat_busy "Stopping xenconsoled"
+ if read 2>/dev/null <$XENCONSOLED_PIDFILE pid; then
+ kill $pid
+ while kill -9 $pid >/dev/null 2>&1; do sleep 0.1; done
+ rm -f $XENCONSOLED_PIDFILE
+ fi
++ stat_done
+
+- echo WARNING: Not stopping xenstored, as it cannot be restarted.
++ printhl "WARNING: Not stopping xenstored, as it cannot be restarted."
++ rm_daemon xencommons
+ }
+
+ case "$1" in
+diff -Naur orig.xen-4.1.1//tools/hotplug/Linux/init.d/xend xen-4.1.1//tools/hotplug/Linux/init.d/xend
+--- orig.xen-4.1.1//tools/hotplug/Linux/init.d/xend 2011-07-03 03:08:44.953747064 -0700
++++ xen-4.1.1//tools/hotplug/Linux/init.d/xend 2011-07-05 01:47:40.981951191 -0700
+@@ -18,6 +18,10 @@
+ # Description: Starts and stops the Xen control daemon.
+ ### END INIT INFO
+
++. /etc/rc.conf
++. /etc/rc.d/functions
++
++
+ shopt -s extglob
+
+ # Wait for Xend to be up
+@@ -37,23 +41,30 @@
+ case "$1" in
+ start)
+ if [ -z "`ps -C xenconsoled -o pid=`" ]; then
+- echo "xencommons should be started first."
++ printhl "xencommons should be started first."
+ exit 1
+ fi
+ # mkdir shouldn't be needed as most distros have this already created. Default to using subsys.
+ # See docs/misc/distro_mapping.txt
+- mkdir -p /var/lock
+- if [ -d /var/lock/subsys ] ; then
+- touch /var/lock/subsys/xend
++ if [ -d /run/lock/subsys ] ; then
++ touch /run/lock/subsys/xend
+ else
+- touch /var/lock/xend
++ touch /run/lock/xend
+ fi
++ stat_busy "Starting xend"
+ xend start
+ await_daemons_up
++ stat_done
++ add_daemon xend
+ ;;
++
++
+ stop)
++ stat_busy "Stopping xend"
+ xend stop
+- rm -f /var/lock/subsys/xend /var/lock/xend
++ rm -f /run/lock/xend /var/lock/xend
++ stat_done
++ rm_daemon xend
+ ;;
+ status)
+ xend status
+@@ -62,8 +73,10 @@
+ xend reload
+ ;;
+ restart|force-reload)
++ stat_busy "Restarting xend"
+ xend restart
+ await_daemons_up
++ stat_done
+ ;;
+ *)
+ # do not advertise unreasonable commands that there is no reason
+diff -Naur orig.xen-4.1.1//tools/hotplug/Linux/init.d/xendomains xen-4.1.1//tools/hotplug/Linux/init.d/xendomains
+--- orig.xen-4.1.1//tools/hotplug/Linux/init.d/xendomains 2011-07-03 03:08:44.953747064 -0700
++++ xen-4.1.1//tools/hotplug/Linux/init.d/xendomains 2011-07-05 13:46:36.208222760 -0700
+@@ -26,6 +26,9 @@
+ # Description: Start / stop domains automatically when domain 0
+ # boots / shuts down.
+ ### END INIT INFO
++. /etc/rc.conf
++. /etc/rc.d/functions
++
+
+ CMD=xm
+ $CMD list &> /dev/null
+@@ -46,93 +49,52 @@
+ exit 0
+ fi
+
+-# See docs/misc/distro_mapping.txt
+-if [ -d /var/lock/subsys ]; then
+- LOCKFILE=/var/lock/subsys/xendomains
+-else
+- LOCKFILE=/var/lock/xendomains
+-fi
+-
+-if [ -d /etc/sysconfig ]; then
+- XENDOM_CONFIG=/etc/sysconfig/xendomains
+-else
+- XENDOM_CONFIG=/etc/default/xendomains
+-fi
++LOCKFILE=/run/lock/xendomains
++XENDOM_CONFIG=/etc/default/xendomains
+
+-test -r $XENDOM_CONFIG || { echo "$XENDOM_CONFIG not existing";
++test -r $XENDOM_CONFIG || {
++ printhl "$XENDOM_CONFIG not existing";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 6; fi; }
+
+ . $XENDOM_CONFIG
+
+-# Use the SUSE rc_ init script functions;
+-# emulate them on LSB, RH and other systems
+-if test -e /etc/rc.status; then
+- # SUSE rc script library
+- . /etc/rc.status
+-else
+- _cmd=$1
+- declare -a _SMSG
+- if test "${_cmd}" = "status"; then
++_cmd=$1
++declare -a _SMSG
++if test "${_cmd}" = "status"; then
+ _SMSG=(running dead dead unused unknown)
+ _RC_UNUSED=3
+- else
++else
+ _SMSG=(done failed failed missed failed skipped unused failed failed)
+ _RC_UNUSED=6
+- fi
+- if test -e /etc/init.d/functions; then
+- # REDHAT
+- . /etc/init.d/functions
+- echo_rc()
+- {
+- #echo -n " [${_SMSG[${_RC_RV}]}] "
+- if test ${_RC_RV} = 0; then
+- success " [${_SMSG[${_RC_RV}]}] "
+- else
+- failure " [${_SMSG[${_RC_RV}]}] "
+- fi
+- }
+- elif test -e /lib/lsb/init-functions; then
+- # LSB
+- . /lib/lsb/init-functions
+- if alias log_success_msg >/dev/null 2>/dev/null; then
+- echo_rc()
+- {
+- echo " [${_SMSG[${_RC_RV}]}] "
+- }
+- else
+- echo_rc()
+- {
+- if test ${_RC_RV} = 0; then
+- log_success_msg " [${_SMSG[${_RC_RV}]}] "
+- else
+- log_failure_msg " [${_SMSG[${_RC_RV}]}] "
+- fi
+- }
+- fi
+- else
+- # emulate it
+- echo_rc()
+- {
+- echo " [${_SMSG[${_RC_RV}]}] "
+- }
+- fi
+- rc_reset() { _RC_RV=0; }
+- rc_failed()
+- {
++fi
++
++
++
++echo_rc() {
++ echo
++ printhl "Return Status: ${_SMSG[${_RC_RV}]}"
++}
++
++
++rc_reset() { _RC_RV=0; }
++
++
++rc_failed() {
+ if test -z "$1"; then
+- _RC_RV=1;
++ _RC_RV=1;
+ elif test "$1" != "0"; then
+- _RC_RV=$1;
+- fi
++ _RC_RV=$1;
++ fi
+ return ${_RC_RV}
+- }
+- rc_check()
+- {
++}
++
++rc_check() {
+ return rc_failed $?
+- }
+- rc_status()
+- {
++}
++
++
++rc_status() {
+ rc_failed $?
+ if test "$1" = "-r"; then _RC_RV=0; shift; fi
+ if test "$1" = "-s"; then rc_failed 5; echo_rc; rc_failed 3; shift; fi
+@@ -140,26 +102,24 @@
+ if test "$1" = "-v"; then echo_rc; shift; fi
+ if test "$1" = "-r"; then _RC_RV=0; shift; fi
+ return ${_RC_RV}
+- }
+- rc_exit() { exit ${_RC_RV}; }
+- rc_active()
+- {
++}
++
++
++rc_exit() { exit ${_RC_RV}; }
++
++
++rc_active() {
+ if test -z "$RUNLEVEL"; then read RUNLEVEL REST < <(/sbin/runlevel); fi
+ if test -e /etc/init.d/S[0-9][0-9]${1}; then return 0; fi
+ return 1
+- }
+-fi
++}
+
+-if ! which usleep >&/dev/null
+-then
+- usleep()
+- {
+- if [ -n "$1" ]
+- then
+- sleep $(( $1 / 1000000 ))
+- fi
+- }
+-fi
++usleep() {
++ if [ -n "$1" ]
++ then
++ sleep $(( $1 / 1000000 ))
++ fi
++}
+
+ # Reset status of this service
+ rc_reset
+@@ -235,10 +195,12 @@
+ start()
+ {
+ if [ -f $LOCKFILE ]; then
+- echo -e "xendomains already running (lockfile exists)"
++ stat_busy "xendomains already running (lockfile exists)"
++ stat_fail
+ return;
+ fi
+
++ printhl "Starting Xen Domains"
+ saved_domains=" "
+ if [ "$XENDOMAINS_RESTORE" = "true" ] &&
+ contains_something "$XENDOMAINS_SAVE"
+@@ -299,6 +261,7 @@
+ fi
+ done
+ fi
++ add_daemon xendomains
+ }
+
+ all_zombies()
+@@ -352,7 +315,7 @@
+ if test "$XENDOMAINS_AUTO_ONLY" = "true"; then
+ rdnames
+ fi
+- echo -n "Shutting down Xen domains:"
++ printhl "Shutting down Xen domains"
+ name=;id=
+ while read LN; do
+ parseln "$LN" || continue
+@@ -465,6 +428,7 @@
+ rm -f $LOCKFILE
+
+ exec 2>&3
++ rm_daemon xendomains
+ }
+
+ check_domain_up()
+diff -Naur orig.xen-4.1.1//tools/hotplug/Linux/init.d/xen-watchdog xen-4.1.1//tools/hotplug/Linux/init.d/xen-watchdog
+--- orig.xen-4.1.1//tools/hotplug/Linux/init.d/xen-watchdog 2011-07-03 03:08:44.957080397 -0700
++++ xen-4.1.1//tools/hotplug/Linux/init.d/xen-watchdog 2011-07-05 13:20:22.515289867 -0700
+@@ -17,49 +17,32 @@
+ ### END INIT INFO
+ #
+
++. /etc/rc.conf
++. /etc/rc.d/functions
++
+ DAEMON=/usr/sbin/xenwatchdogd
+ base=$(basename $DAEMON)
++initname="xen-watchdog"
+
+-# Source function library.
+-if [ -e /etc/init.d/functions ] ; then
+- . /etc/init.d/functions
+-elif [ -e /lib/lsb/init-functions ] ; then
+- . /lib/lsb/init-functions
+- success () {
+- log_success_msg $*
+- }
+- failure () {
+- log_failure_msg $*
+- }
+-else
+- success () {
+- echo $*
+- }
+- failure () {
+- echo $*
+- }
+-fi
+
+ start() {
+ local r
+- echo -n $"Starting domain watchdog daemon: "
++ stat_busy "Starting domain watchdog daemon"
+
+ $DAEMON 30 15
+ r=$?
+- [ "$r" -eq 0 ] && success $"$base startup" || failure $"$base startup"
+- echo
++ [ "$r" -eq 0 ] && stat_done ; add_daemon $initname || stat_fail
+
+ return $r
+ }
+
+ stop() {
+ local r
+- echo -n $"Stopping domain watchdog daemon: "
++ stat_busy "Stopping domain watchdog daemon"
+
+ killall -USR1 $base 2>/dev/null
+ r=$?
+- [ "$r" -eq 0 ] && success $"$base stop" || failure $"$base stop"
+- echo
++ [ "$r" -eq 0 ] && stat_done ; rm_daemon $initname || stat_fail
+
+ return $r
+ }
diff --git a/kernels/xen/xen.patch b/kernels/xen/xen.patch
new file mode 100644
index 000000000..8b1b5585d
--- /dev/null
+++ b/kernels/xen/xen.patch
@@ -0,0 +1,21 @@
+--- xen-4.0.1.orig/Config.mk 2010-08-25 12:22:44.000000000 +0200
++++ xen-4.0.1/Config.mk 2010-11-02 23:38:11.575000000 +0100
+@@ -187,4 +187,4 @@
+ CONFIG_MINITERM ?= n
+ CONFIG_LOMOUNT ?= n
+
+--include $(XEN_ROOT)/.config
++#-include $(XEN_ROOT)/.config
+
+--- xen-4.0.1/Config.mk.orig 2010-08-25 11:22:44.000000000 +0100
++++ xen-4.0.1/Config.mk 2011-01-29 17:40:43.000000000 +0000
+@@ -135,6 +135,8 @@
+
+ LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i))
+ CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i))
++# temporary compile fix for rawhide
++CFLAGS += -Wunused-but-set-variable -Wno-error=unused-but-set-variable -Wuninitialized -Wno-error=uninitialized
+
+ EMBEDDED_EXTRA_CFLAGS := -nopie -fno-stack-protector -fno-stack-protector-all
+ EMBEDDED_EXTRA_CFLAGS += -fno-exceptions
+
diff --git a/libre/audacious-plugins-libre/PKGBUILD b/libre/audacious-plugins-libre/PKGBUILD
index 9cbde26be..875f39a0e 100644
--- a/libre/audacious-plugins-libre/PKGBUILD
+++ b/libre/audacious-plugins-libre/PKGBUILD
@@ -5,7 +5,7 @@
# Parabola maintainer: Brendan Tildesley
pkgname=audacious-plugins-libre
-pkgver=3.1
+pkgver=3.2
pkgrel=1
pkgdesc='Plugins for Audacious without unfree plugins'
url='http://audacious-media-player.org/'
@@ -14,10 +14,10 @@ license=('GPL' 'GPL3' 'LGPL' 'custom')
# Licensing issues:
# The plugins 'scrobbler', stereoplugin', 'wavepack' and 'plugin_echo' have no license notice
-# but I've been informed by an upstream dev, <nenolod>, that they are all GPL of some type.
+# but I've been informed by an upstream dev, nenolod, that they are all GPL. I don't know what version
#
-# The plugin 'psf' is currently BSD+noncommercial, but is apparently being changed to GPL.
-# However, 'psf' is apparently an emulator for running non-free code, so I'll leave it out.
+# The plugin 'psf' is currently (Nov 2011) BSD+noncommercial, but is apparently being changed to GPL.
+# However, 'psf' is apparently an emulator for running non-free code, so I'm not rushing to fix it.
#
# All the other custom licensed plugins I think are mostly modified BSD or ISC.
@@ -57,15 +57,15 @@ optdepends=('oss: Open Sound System v4 output'
'libmms: libmms-based mms transport'
'libcue: CUE playlist format')
-source=("http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.xz")
-sha1sums=('d5f2ef19cda220d6fa7dd26c514c5c22c8dd7b42')
+source=("http://repo.parabolagnulinux.org/~brendan/src-libre/${pkgname}-${pkgver}.tar.xz")
+sha1sums=('6375b65b975e2905a8ff1c0ddfaeee2a71bbef94')
-# Retrieve upstream & remove plugins 'psf' & 'usf' due to issues mentioned above. Repackage as -libre
+# Retrieve upstream & remove plugin 'psf' due to issues mentioned above. Repackage as -libre
mksource(){
- [ -f ${pkgname%-libre}-$pkgver.tar.gz ] || wget http://distfiles.atheme.org/${pkgname%-libre}-$pkgver.tar.gz
- tar xzf ${pkgname%-libre}-${pkgver}.tar.gz
+ [ -f ${pkgname%-libre}-$pkgver.tar.bz2 ] || wget http://distfiles.audacious-media-player.org/${pkgname%-libre}-$pkgver.tar.bz2
+ tar xjf ${pkgname%-libre}-${pkgver}.tar.bz2
- rm -rvf ${pkgname%-libre}-$pkgver/src/{p,u}usf/
+ rm -rvf ${pkgname%-libre}-$pkgver/src/psf/
sed -i s/enable_psf=yes/enable_psf=no/ ${pkgname%-libre}-$pkgver/configure
mv -v ${pkgname%-libre}-$pkgver ${pkgname}-$pkgver
@@ -78,24 +78,20 @@ mksource(){
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- # hack to enable global hotkeys with gtk3
- sed -e 's/gdk-x11-2.0/gdk-x11-3.0/g' -i configure
-
# Get license notices out of custom-licensed packages
cd src
tmpdir=$(mktemp -d /tmp/${pkgname}-${pkgver}-XXXX)
head -n 18 albumart/albumart.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.albumart
head -n 17 alsa/alsa.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.alsa
+ head -n 17 audpl/audpl.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.audpl
head -n 18 cairo-spectrum/cairo-spectrum.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.cairo-spectrum
head -n 17 compressor/compressor.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.compressor
head -n 17 crossfade/crossfade.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.crossfade
head -n 18 crystalizer/crystalizer.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.crystalizer
- head -n 22 dockalbumart/dockalbumart.c | cut -c 4- | tail -n 21 > ${tmpdir}/LICENSE.dockalbumart
head -n 18 lyricwiki/lyricwiki.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.lyricwiki
head -n 19 mpg123/mpg123.c | cut -c 4- | tail -n 18 > ${tmpdir}/LICENSE.mpg123
- head -n 17 openal/openal.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.openal
+ head -n 17 mpris2/plugin.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.mpris2
head -n 17 resample/resample.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.resample
- head -n 18 roaraudio-vio/roaraudio-vio.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.roaraudio-vio
head -n 17 unix-io/unix-io.c | cut -c 4- | tail -n 16 > ${tmpdir}/LICENSE.unix-io
head -n 18 voice_removal/voice_removal.c | cut -c 4- | tail -n 17 > ${tmpdir}/LICENSE.voice_removal
head -n 25 xsf/corlett.c | cut -c 2- | tail -n 23 > ${tmpdir}/LICENSE.xfs
@@ -105,22 +101,22 @@ build() {
pushd $tmpdir
install -m644 LICENSE.albumart $l
install -m644 LICENSE.alsa $l
+ install -m644 LICENSE.audpl $l
install -m644 LICENSE.cairo-spectrum $l
install -m644 LICENSE.compressor $l
install -m644 LICENSE.crossfade $l
install -m644 LICENSE.crystalizer $l
- install -m644 LICENSE.dockalbumart $l
install -m644 LICENSE.lyricwiki $l
install -m644 LICENSE.mpg123 $l
- install -m644 LICENSE.openal $l
+ install -m644 LICENSE.mpris2 $l
install -m644 LICENSE.resample $l
- install -m644 LICENSE.roaraudio-vio $l
install -m644 LICENSE.unix-io $l
install -m644 LICENSE.voice_removal $l
install -m644 LICENSE.xfs $l
popd
- ./configure --prefix=/usr \
+ ./configure \
+ --prefix=/usr \
--enable-amidiplug \
--disable-adplug
diff --git a/libre/bogofilter-libre/PKGBUILD b/libre/bogofilter-libre/PKGBUILD
new file mode 100644
index 000000000..c5718a9fd
--- /dev/null
+++ b/libre/bogofilter-libre/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 146459 2012-01-11 15:21:47Z stephane $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Low Kian Seong <fastmail_low@speedymail.org>
+
+_pkgname=bogofilter
+pkgname=bogofilter-libre
+pkgver=1.2.2
+pkgrel=5
+pkgdesc="A fast Bayesian spam filtering tool"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://bogofilter.sourceforge.net"
+depends=('db' 'perl' 'gsl')
+backup=('etc/bogofilter/bogofilter.cf')
+source=(http://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar.xz)
+md5sums=('af9c7857c66b1884c820f54f23082701')
+provides=("${_pkgname}=${pkgver}")
+replaces=("${_pkgname}")
+conflicts=("${_pkgname}")
+
+mksource() {
+ [ -f ${_pkgname}-${pkgver}.tar.bz2 ] || wget http://sourceforge.net/projects/${_pkgname}/files/${_pkgname}-current/${_pkgname}-${pkgver}/${_pkgname}-${pkgver}.tar.bz2
+ tar xf ${_pkgname}-${pkgver}.tar.bz2
+ # Remove noncommercial files.
+ rm ${_pkgname}-${pkgver}/doc/bogofilter-SA-{2005-0{1,2},2010-01}
+ tar cJf ${pkgname}-${pkgver}.tar.xz ${_pkgname}-${pkgver}
+}
+
+build() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/bogofilter \
+ --localstatedir=/var \
+ --enable-transactions
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ mv "${pkgdir}/etc/bogofilter/bogofilter.cf.example" "${pkgdir}/etc/bogofilter/bogofilter.cf"
+
+ install -dm755 "${pkgdir}/usr/share/${_pkgname}/contrib"
+ install -m644 contrib/* "${pkgdir}/usr/share/${_pkgname}/contrib/"
+}
diff --git a/libre/crosstool-ng/PKGBUILD b/libre/crosstool-ng/PKGBUILD
index 8843af016..5341fa6f5 100644
--- a/libre/crosstool-ng/PKGBUILD
+++ b/libre/crosstool-ng/PKGBUILD
@@ -2,7 +2,7 @@
# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
pkgname=crosstool-ng
-pkgver=1.13.0
+pkgver=1.13.2
pkgrel=1
pkgdesc="A versatile cross toolchain generator (eglibc addons patch)"
arch=('i686' 'x86_64')
@@ -26,4 +26,4 @@ package() {
cd $srcdir/$pkgname-$pkgver
make DESTDIR=$pkgdir install
}
-md5sums=('55fba9f37b9f9ed0aeb6c50fbd8b6429')
+md5sums=('749cf70568ad07d1b13fdcd25b163553')
diff --git a/libre/cups-libre/PKGBUILD b/libre/cups-libre/PKGBUILD
index d9531974c..f50b04848 100644
--- a/libre/cups-libre/PKGBUILD
+++ b/libre/cups-libre/PKGBUILD
@@ -1,23 +1,31 @@
-# $Id: PKGBUILD 135897 2011-08-20 06:24:46Z andyrtr $
+# $Id: PKGBUILD 149429 2012-02-07 16:59:12Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgbase="cups"
pkgname=('libcups' 'cups-libre')
-pkgver=1.5.0
+pkgver=1.5.2
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
url="http://www.cups.org/"
-makedepends=('libtiff>=3.9.2-2' 'libpng>=1.4.0' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'poppler>=0.12.3'
+makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'poppler>=0.12.3'
'xinetd' 'gzip' 'autoconf' 'php' 'libusb-compat' 'dbus-core' 'avahi' 'hicolor-icon-theme')
source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
- cups-avahi.patch
+ cups-avahi-1-config.patch
+ cups-avahi-2-backend.patch
+ cups-avahi-3-timeouts.patch
+ cups-avahi-4-poll.patch
+ cups-avahi-5-services.patch
cups-no-export-ssllibs.patch
cups-no-gcrypt.patch
cups cups.logrotate cups.pam)
#options=('!emptydirs')
-md5sums=('e54ed09ede2340fc3014913333520fe4'
- 'e0843e8d8c345792ac73a185260e69fe'
+md5sums=('9471d2a7c920cfbb17133c32d2e6866f'
+ '8496c48a7ab5918ce546cfb72472def3'
+ '7df4c2e0a69bf072d7b7e96523df9dce'
+ '9a207c5d5189b1c2fc55907b7ed09372'
+ '5da4ba0837f9a685f146797fcfcd455e'
+ 'fe782a8fd4351741120d485d476abe8a'
'9b8467a1e51d360096b70e2c3c081e6c'
'3733c23e77eb503bd94cc368e02830dc'
'9657daa21760bb0b5fa3d8b51d5e01a1'
@@ -28,8 +36,13 @@ md5sums=('e54ed09ede2340fc3014913333520fe4'
build() {
cd ${srcdir}/${pkgbase}-${pkgver}
- # Avahi support in the dnssd backend. patch from Debian based on the Fedora work but brings it in a single file http://patch-tracker.debian.org/package/cups
- patch -Np1 -i ${srcdir}/cups-avahi.patch
+ # http://www.cups.org/str.php?L3066
+ # Avahi support in the dnssd backend. patches from upstream/FC RawHide
+ patch -Np1 -i ${srcdir}/cups-avahi-1-config.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-2-backend.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-3-timeouts.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-4-poll.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-5-services.patch
# Do not export SSL libs in cups-config
patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
@@ -69,7 +82,7 @@ check() {
package_libcups() {
pkgdesc="The CUPS Printing System - client libraries and headers"
-depends=('gnutls>=2.8.3' 'libtiff>=3.9.2-2' 'libpng>=1.4.0' 'krb5' 'avahi')
+depends=('gnutls>=2.8.3' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'avahi')
cd ${srcdir}/${pkgbase}-${pkgver}
make BUILDROOT=${pkgdir} install-headers install-libs
@@ -144,4 +157,3 @@ optdepends=('php: for included phpcups.so module'
# compress some driver files, adopted from Fedora
find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
}
-
diff --git a/libre/cups-libre/cups b/libre/cups-libre/cups
index a9d91de76..744c8e663 100644
--- a/libre/cups-libre/cups
+++ b/libre/cups-libre/cups
@@ -66,4 +66,3 @@ case "$1" in
esac
exit 0
-
diff --git a/libre/cups-libre/cups-avahi-1-config.patch b/libre/cups-libre/cups-avahi-1-config.patch
new file mode 100644
index 000000000..663eb39df
--- /dev/null
+++ b/libre/cups-libre/cups-avahi-1-config.patch
@@ -0,0 +1,42 @@
+diff -up cups-1.5.0/config.h.in.avahi-1-config cups-1.5.0/config.h.in
+--- cups-1.5.0/config.h.in.avahi-1-config 2011-06-16 21:12:16.000000000 +0100
++++ cups-1.5.0/config.h.in 2011-08-05 15:04:09.535759988 +0100
+@@ -390,6 +390,13 @@
+
+
+ /*
++ * Do we have Avahi for DNS Service Discovery?
++ */
++
++#undef HAVE_AVAHI
++
++
++/*
+ * Do we have <sys/ioctl.h>?
+ */
+
+diff -up cups-1.5.0/config-scripts/cups-dnssd.m4.avahi-1-config cups-1.5.0/config-scripts/cups-dnssd.m4
+--- cups-1.5.0/config-scripts/cups-dnssd.m4.avahi-1-config 2011-05-12 06:21:56.000000000 +0100
++++ cups-1.5.0/config-scripts/cups-dnssd.m4 2011-08-05 15:04:09.525760307 +0100
+@@ -23,6 +23,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn
+ DNSSDLIBS=""
+ DNSSD_BACKEND=""
+
++AC_ARG_ENABLE(avahi, [ --enable-avahi turn on DNS Service Discovery support, default=no],
++ [if test x$enable_avahi = xyes; then
++ AC_MSG_CHECKING(for Avahi)
++ if $PKGCONFIG --exists avahi-client; then
++ AC_MSG_RESULT(yes)
++ CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
++ DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
++ DNSSD_BACKEND="dnssd"
++ AC_DEFINE(HAVE_AVAHI)
++ enable_dnssd=no
++ else
++ AC_MSG_RESULT(no)
++ fi
++ fi])
++
+ if test x$enable_dnssd != xno; then
+ AC_CHECK_HEADER(dns_sd.h, [
+ case "$uname" in
diff --git a/libre/cups-libre/cups-avahi-2-backend.patch b/libre/cups-libre/cups-avahi-2-backend.patch
new file mode 100644
index 000000000..4c0d4989b
--- /dev/null
+++ b/libre/cups-libre/cups-avahi-2-backend.patch
@@ -0,0 +1,1117 @@
+diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
+--- cups-1.5.2/backend/dnssd.c.avahi-2-backend 2012-02-06 11:09:08.318644741 +0100
++++ cups-1.5.2/backend/dnssd.c 2012-02-06 11:09:08.326644641 +0100
+@@ -15,14 +15,21 @@
+ *
+ * Contents:
+ *
++ * next_txt_record() - Get next TXT record from a cups_txt_records_t.
++ * parse_txt_record_pair() - Read key/value pair in cups_txt_records_t.
+ * main() - Browse for printers.
+ * browse_callback() - Browse devices.
+ * browse_local_callback() - Browse local devices.
+ * compare_devices() - Compare two devices.
+ * exec_backend() - Execute the backend that corresponds to the
+ * resolved service name.
++ * device_type() - Get DNS-SD type enumeration from string.
+ * get_device() - Create or update a device.
+ * query_callback() - Process query data.
++ * avahi_client_callback() - Avahi client callback function.
++ * avahi_query_callback() - Avahi query callback function.
++ * avahi_browse_callback() - Avahi browse callback function.
++ * find_device() - Find a device from its name and domain.
+ * sigterm_handler() - Handle termination signals...
+ * unquote() - Unquote a name string.
+ */
+@@ -33,7 +40,18 @@
+
+ #include "backend-private.h"
+ #include <cups/array.h>
+-#include <dns_sd.h>
++#ifdef HAVE_DNSSD
++# include <dns_sd.h>
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/lookup.h>
++# include <avahi-common/simple-watch.h>
++# include <avahi-common/domain.h>
++# include <avahi-common/error.h>
++# include <avahi-common/malloc.h>
++#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -53,7 +71,12 @@ typedef enum
+
+ typedef struct
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceRef ref; /* Service reference for resolve */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int resolved; /* Did we resolve the device? */
++#endif /* HAVE_AVAHI */
+ char *name, /* Service name */
+ *domain, /* Domain name */
+ *fullName, /* Full name */
+@@ -65,6 +88,20 @@ typedef struct
+ sent; /* Did we list the device? */
+ } cups_device_t;
+
++typedef struct
++{
++ char key[256];
++ char value[256];
++
++#ifdef HAVE_DNSSD
++ const uint8_t *data;
++ const uint8_t *datanext;
++ const uint8_t *dataend;
++#else /* HAVE_AVAHI */
++ AvahiStringList *txt;
++#endif /* HAVE_DNSSD */
++} cups_txt_records_t;
++
+
+ /*
+ * Local globals...
+@@ -78,6 +115,7 @@ static int job_canceled = 0;
+ * Local functions...
+ */
+
++#ifdef HAVE_DNSSD
+ static void browse_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -93,12 +131,6 @@ static void browse_local_callback(DNSSe
+ const char *regtype,
+ const char *replyDomain,
+ void *context);
+-static int compare_devices(cups_device_t *a, cups_device_t *b);
+-static void exec_backend(char **argv);
+-static cups_device_t *get_device(cups_array_t *devices,
+- const char *serviceName,
+- const char *regtype,
+- const char *replyDomain);
+ static void query_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -107,9 +139,118 @@ static void query_callback(DNSServiceRe
+ uint16_t rrclass, uint16_t rdlen,
+ const void *rdata, uint32_t ttl,
+ void *context);
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++static void avahi_client_callback (AvahiClient *client,
++ AvahiClientState state,
++ void *context);
++static void avahi_browse_callback (AvahiServiceBrowser *browser,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiBrowserEvent event,
++ const char *serviceName,
++ const char *regtype,
++ const char *replyDomain,
++ AvahiLookupResultFlags flags,
++ void *context);
++#endif /* HAVE_AVAHI */
++
++static cups_device_t * find_device (cups_array_t *devices,
++ cups_txt_records_t *txt,
++ cups_device_t *dkey);
++static int compare_devices(cups_device_t *a, cups_device_t *b);
++static void exec_backend(char **argv);
++static cups_device_t *get_device(cups_array_t *devices,
++ const char *serviceName,
++ const char *regtype,
++ const char *replyDomain);
+ static void sigterm_handler(int sig);
+ static void unquote(char *dst, const char *src, size_t dstsize);
+
++#ifdef HAVE_AVAHI
++static AvahiSimplePoll *simple_poll = NULL;
++static int avahi_got_callback;
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * 'next_txt_record()' - Get next TXT record from a cups_txt_records_t.
++ */
++
++static cups_txt_records_t *
++next_txt_record (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++ txt->data = txt->datanext;
++#else /* HAVE_AVAHI */
++ txt->txt = avahi_string_list_get_next (txt->txt);
++ if (txt->txt == NULL)
++ return NULL;
++#endif /* HAVE_DNSSD */
++
++ return txt;
++}
++
++
++/*
++ * 'parse_txt_record_pair()' - Read key/value pair in cups_txt_records_t.
++ */
++
++static int
++parse_txt_record_pair (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++ uint8_t datalen;
++ uint8_t *data = txt->data;
++ char *ptr;
++
++ /*
++ * Read a key/value pair starting with an 8-bit length. Since the
++ * length is 8 bits and the size of the key/value buffers is 256, we
++ * don't need to check for overflow...
++ */
++
++ datalen = *data++;
++ if (!datalen || (data + datalen) >= txt->dataend)
++ return NULL;
++ txt->datanext = data + datalen;
++
++ for (ptr = txt->key; data < txt->datanext && *data != '='; data ++)
++ *ptr++ = *data;
++ *ptr = '\0';
++
++ if (data < txt->datanext && *data == '=')
++ {
++ data++;
++
++ if (data < datanext)
++ memcpy (txt->value, data, txt->datanext - data);
++ value[txt->datanext - data] = '\0';
++ }
++ else
++ return 1;
++#else /* HAVE_AVAHI */
++ char *key, *value;
++ size_t len;
++ avahi_string_list_get_pair (txt->txt, &key, &value, &len);
++ if (len > sizeof (txt->value) - 1)
++ len = sizeof (txt->value) - 1;
++
++ memcpy (txt->value, value, len);
++ txt->value[len] = '\0';
++ len = strlen (key);
++ if (len > sizeof (txt->key) - 1)
++ len = sizeof (txt->key) - 1;
++
++ memcpy (txt->key, key, len);
++ txt->key[len] = '\0';
++ avahi_free (key);
++ avahi_free (value);
++#endif /* HAVE_AVAHI */
++
++ return 0;
++}
++
+
+ /*
+ * 'main()' - Browse for printers.
+@@ -120,6 +261,13 @@ main(int argc, /* I - Number of comm
+ char *argv[]) /* I - Command-line arguments */
+ {
+ const char *name; /* Backend name */
++ cups_array_t *devices; /* Device array */
++ cups_device_t *device; /* Current device */
++ char uriName[1024]; /* Unquoted fullName for URI */
++#ifdef HAVE_DNSSD
++ int fd; /* Main file descriptor */
++ fd_set input; /* Input set for select() */
++ struct timeval timeout; /* Timeout for select() */
+ DNSServiceRef main_ref, /* Main service reference */
+ fax_ipp_ref, /* IPP fax service reference */
+ ipp_ref, /* IPP service reference */
+@@ -133,12 +281,11 @@ main(int argc, /* I - Number of comm
+ pdl_datastream_ref, /* AppSocket service reference */
+ printer_ref, /* LPD service reference */
+ riousbprint_ref; /* Remote IO service reference */
+- int fd; /* Main file descriptor */
+- fd_set input; /* Input set for select() */
+- struct timeval timeout; /* Timeout for select() */
+- cups_array_t *devices; /* Device array */
+- cups_device_t *device; /* Current device */
+- char uriName[1024]; /* Unquoted fullName for URI */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ AvahiClient *client;
++ int error;
++#endif /* HAVE_AVAHI */
+ #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
+ struct sigaction action; /* Actions for POSIX signals */
+ #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
+@@ -198,6 +345,49 @@ main(int argc, /* I - Number of comm
+ * Browse for different kinds of printers...
+ */
+
++#ifdef HAVE_AVAHI
++ if ((simple_poll = avahi_simple_poll_new ()) == NULL)
++ {
++ perror ("ERROR: Unable to create avahi simple poll object");
++ return (1);
++ }
++
++ client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++ 0, avahi_client_callback, NULL, &error);
++ if (!client)
++ {
++ perror ("DEBUG: Unable to create avahi client");
++ return (0);
++ }
++
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_fax-ipp._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_ipp._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_ipp-tls._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_pdl-datastream._tcp",
++ NULL, 0,
++ avahi_browse_callback,
++ devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_printer._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_riousbprint._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++#endif /* HAVE_AVAHI */
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
+ {
+ perror("ERROR: Unable to create service connection");
+@@ -258,6 +448,7 @@ main(int argc, /* I - Number of comm
+ riousbprint_ref = main_ref;
+ DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
+ "_riousbprint._tcp", NULL, browse_callback, devices);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Loop until we are killed...
+@@ -265,6 +456,9 @@ main(int argc, /* I - Number of comm
+
+ while (!job_canceled)
+ {
++ int announce = 0;
++
++#ifdef HAVE_DNSSD
+ FD_ZERO(&input);
+ FD_SET(fd, &input);
+
+@@ -284,11 +478,35 @@ main(int argc, /* I - Number of comm
+ }
+ else
+ {
++ announce = 1;
++ }
++#else /* HAVE_AVAHI */
++ int r;
++ avahi_got_callback = 0;
++ r = avahi_simple_poll_iterate (simple_poll, 1);
++ if (r != 0 && r != EINTR)
++ {
++ /*
++ * We've been told to exit the loop. Perhaps the connection to
++ * avahi failed.
++ */
++
++ break;
++ }
++
++ if (avahi_got_callback)
++ announce = 1;
++#endif /* HAVE_DNSSD */
++
++ if (announce)
++ {
+ /*
+ * Announce any devices we've found...
+ */
+
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType status; /* DNS query status */
++#endif /* HAVE_DNSSD */
+ cups_device_t *best; /* Best matching device */
+ char device_uri[1024]; /* Device URI */
+ int count; /* Number of queries */
+@@ -302,6 +520,7 @@ main(int argc, /* I - Number of comm
+ if (device->sent)
+ sent ++;
+
++#ifdef HAVE_DNSSD
+ if (device->ref)
+ count ++;
+
+@@ -333,14 +552,23 @@ main(int argc, /* I - Number of comm
+ count ++;
+ }
+ }
+- else if (!device->sent)
++ else
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (!device->resolved)
++ continue;
++ else
++#endif /* HAVE_AVAHI */
++ if (!device->sent)
+ {
++#ifdef HAVE_DNSSD
+ /*
+ * Got the TXT records, now report the device...
+ */
+
+ DNSServiceRefDeallocate(device->ref);
+ device->ref = 0;
++#endif /* HAVE_DNSSD */
+
+ if (!best)
+ best = device;
+@@ -401,6 +629,7 @@ main(int argc, /* I - Number of comm
+ }
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'browse_callback()' - Browse devices.
+ */
+@@ -489,6 +718,7 @@ browse_local_callback(
+ device->fullName);
+ device->sent = 1;
+ }
++#endif /* HAVE_DNSSD */
+
+
+ /*
+@@ -569,6 +799,41 @@ exec_backend(char **argv) /* I - Comman
+
+
+ /*
++ * 'device_type()' - Get DNS-SD type enumeration from string.
++ */
++
++static int
++device_type (const char *regtype)
++{
++#ifdef HAVE_AVAHI
++ if (!strcmp(regtype, "_ipp._tcp"))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_ipps._tcp") ||
++ !strcmp(regtype, "_ipp-tls._tcp"))
++ return (CUPS_DEVICE_IPPS);
++ else if (!strcmp(regtype, "_fax-ipp._tcp"))
++ return (CUPS_DEVICE_FAX_IPP);
++ else if (!strcmp(regtype, "_printer._tcp"))
++ return (CUPS_DEVICE_PDL_DATASTREAM);
++#else
++ if (!strcmp(regtype, "_ipp._tcp."))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_ipps._tcp.") ||
++ !strcmp(regtype, "_ipp-tls._tcp."))
++ return (CUPS_DEVICE_IPPS);
++ else if (!strcmp(regtype, "_fax-ipp._tcp."))
++ return (CUPS_DEVICE_FAX_IPP);
++ else if (!strcmp(regtype, "_printer._tcp."))
++ return (CUPS_DEVICE_PRINTER);
++ else if (!strcmp(regtype, "_pdl-datastream._tcp."))
++ return (CUPS_DEVICE_PDL_DATASTREAM);
++#endif /* HAVE_AVAHI */
++
++ return (CUPS_DEVICE_RIOUSBPRINT);
++}
++
++
++/*
+ * 'get_device()' - Create or update a device.
+ */
+
+@@ -589,20 +854,7 @@ get_device(cups_array_t *devices, /* I -
+ */
+
+ key.name = (char *)serviceName;
+-
+- if (!strcmp(regtype, "_ipp._tcp."))
+- key.type = CUPS_DEVICE_IPP;
+- else if (!strcmp(regtype, "_ipps._tcp.") ||
+- !strcmp(regtype, "_ipp-tls._tcp."))
+- key.type = CUPS_DEVICE_IPPS;
+- else if (!strcmp(regtype, "_fax-ipp._tcp."))
+- key.type = CUPS_DEVICE_FAX_IPP;
+- else if (!strcmp(regtype, "_printer._tcp."))
+- key.type = CUPS_DEVICE_PRINTER;
+- else if (!strcmp(regtype, "_pdl-datastream._tcp."))
+- key.type = CUPS_DEVICE_PDL_DATASTREAM;
+- else
+- key.type = CUPS_DEVICE_RIOUSBPRINT;
++ key.type = device_type (regtype);
+
+ for (device = cupsArrayFind(devices, &key);
+ device;
+@@ -622,8 +874,14 @@ get_device(cups_array_t *devices, /* I -
+ free(device->domain);
+ device->domain = strdup(replyDomain);
+
++#ifdef HAVE_DNSSD
+ DNSServiceConstructFullName(fullName, device->name, regtype,
+ replyDomain);
++#else /* HAVE_AVAHI */
++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++ serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ free(device->fullName);
+ device->fullName = strdup(fullName);
+ }
+@@ -643,6 +901,9 @@ get_device(cups_array_t *devices, /* I -
+ device->domain = strdup(replyDomain);
+ device->type = key.type;
+ device->priority = 50;
++#ifdef HAVE_AVAHI
++ device->resolved = 0;
++#endif /* HAVE_AVAHI */
+
+ cupsArrayAdd(devices, device);
+
+@@ -650,13 +911,20 @@ get_device(cups_array_t *devices, /* I -
+ * Set the "full name" of this service, which is used for queries...
+ */
+
++#ifdef HAVE_DNSSD
+ DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
++#else /* HAVE_AVAHI */
++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++ serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ device->fullName = strdup(fullName);
+
+ return (device);
+ }
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'query_callback()' - Process query data.
+ */
+@@ -680,7 +948,7 @@ query_callback(
+ *ptr; /* Pointer into string */
+ cups_device_t dkey, /* Search key */
+ *device; /* Device */
+-
++ cups_txt_records_t txt;
+
+ fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
+ "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
+@@ -714,94 +982,233 @@ query_callback(
+ if ((ptr = strstr(name, "._")) != NULL)
+ *ptr = '\0';
+
+- if (strstr(fullName, "_ipp._tcp."))
+- dkey.type = CUPS_DEVICE_IPP;
+- else if (strstr(fullName, "_ipps._tcp.") ||
+- strstr(fullName, "_ipp-tls._tcp."))
+- dkey.type = CUPS_DEVICE_IPPS;
+- else if (strstr(fullName, "_fax-ipp._tcp."))
+- dkey.type = CUPS_DEVICE_FAX_IPP;
+- else if (strstr(fullName, "_printer._tcp."))
+- dkey.type = CUPS_DEVICE_PRINTER;
+- else if (strstr(fullName, "_pdl-datastream._tcp."))
+- dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
++ dkey.type = device_type (fullName);
++
++ txt.data = rdata;
++ txt.dataend = rdata + rdlen;
++ device = find_device ((cups_array_t *) context, &txt, &dkey);
++ if (!device)
++ fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++}
++#endif /* HAVE_DNSSD */
++
++
++#ifdef HAVE_AVAHI
++/*
++ * 'avahi_client_callback()' - Avahi client callback function.
++ */
++
++static void
++avahi_client_callback(AvahiClient *client,
++ AvahiClientState state,
++ void *context)
++{
++ /*
++ * If the connection drops, quit.
++ */
++
++ if (state == AVAHI_CLIENT_FAILURE)
++ {
++ fprintf (stderr, "ERROR: Avahi connection failed\n");
++ avahi_simple_poll_quit (simple_poll);
++ }
++}
++
++
++/*
++ * 'avahi_query_callback()' - Avahi query callback function.
++ */
++
++static void
++avahi_query_callback(AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ AvahiClient *client;
++ cups_device_t key,
++ *device;
++ char uqname[1024],
++ *ptr;
++ cups_txt_records_t txtr;
++
++ client = avahi_service_resolver_get_client (resolver);
++ if (event != AVAHI_RESOLVER_FOUND)
++ {
++ if (event == AVAHI_RESOLVER_FAILURE)
++ {
++ fprintf (stderr, "ERROR: %s\n",
++ avahi_strerror (avahi_client_errno (client)));
++ }
++
++ avahi_service_resolver_free (resolver);
++ return;
++ }
++
++ /*
++ * Set search key for device.
++ */
++
++ key.name = uqname;
++ unquote (uqname, name, sizeof (uqname));
++ if ((ptr = strstr(name, "._")) != NULL)
++ *ptr = '\0';
++
++ key.domain = (char *) domain;
++ key.type = device_type (type);
++
++ /*
++ * Find the device and the the TXT information.
++ */
++
++ txtr.txt = txt;
++ device = find_device ((cups_array_t *) context, &txtr, &key);
++ if (device)
++ {
++ /*
++ * Let the main loop know to announce the device.
++ */
++
++ device->resolved = 1;
++ avahi_got_callback = 1;
++ }
+ else
+- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
++ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
++
++ avahi_service_resolver_free (resolver);
++}
++
++
++/*
++ * 'avahi_browse_callback()' - Avahi browse callback function.
++ */
++
++static void
++avahi_browse_callback(AvahiServiceBrowser *browser,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiBrowserEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ AvahiClient *client = avahi_service_browser_get_client (browser);
++
++ switch (event)
++ {
++ case AVAHI_BROWSER_FAILURE:
++ fprintf (stderr, "ERROR: %s\n",
++ avahi_strerror (avahi_client_errno (client)));
++ avahi_simple_poll_quit (simple_poll);
++ return;
++
++ case AVAHI_BROWSER_NEW:
++ /*
++ * This object is new on the network.
++ */
++
++ if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
++ {
++ /*
++ * This comes from the local machine so ignore it.
++ */
++
++ fprintf (stderr, "DEBUG: ignoring local service %s\n", name);
++ }
++ else
++ {
++ /*
++ * Create a device entry for it if it doesn't yet exist.
++ */
++
++ get_device ((cups_array_t *)context, name, type, domain);
++
++ /*
++ * Now look for a TXT entry.
++ */
++
++ if (avahi_service_resolver_new (client, interface, protocol,
++ name, type, domain,
++ AVAHI_PROTO_UNSPEC, 0,
++ avahi_query_callback, context) == NULL)
++ {
++ fprintf (stderr, "ERROR: failed to resolve service %s: %s\n",
++ name, avahi_strerror (avahi_client_errno (client)));
++ }
++ }
++
++ break;
++
++ case AVAHI_BROWSER_REMOVE:
++ case AVAHI_BROWSER_ALL_FOR_NOW:
++ case AVAHI_BROWSER_CACHE_EXHAUSTED:
++ break;
++ }
++}
++#endif /* HAVE_AVAHI */
++
+
+- for (device = cupsArrayFind(devices, &dkey);
++/*
++ * 'find_device()' - Find a device from its name and domain.
++ */
++
++static cups_device_t *
++find_device (cups_array_t *devices,
++ cups_txt_records_t *txt,
++ cups_device_t *dkey)
++{
++ cups_device_t *device;
++ char *ptr;
++
++ for (device = cupsArrayFind(devices, dkey);
+ device;
+ device = cupsArrayNext(devices))
+ {
+- if (_cups_strcasecmp(device->name, dkey.name) ||
+- _cups_strcasecmp(device->domain, dkey.domain))
++ if (_cups_strcasecmp(device->name, dkey->name) ||
++ _cups_strcasecmp(device->domain, dkey->domain))
+ {
+ device = NULL;
+ break;
+ }
+- else if (device->type == dkey.type)
++ else if (device->type == dkey->type)
+ {
+ /*
+ * Found it, pull out the priority and make and model from the TXT
+ * record and save it...
+ */
+
+- const uint8_t *data, /* Pointer into data */
+- *datanext, /* Next key/value pair */
+- *dataend; /* End of entire TXT record */
+- uint8_t datalen; /* Length of current key/value pair */
+- char key[256], /* Key string */
+- value[256], /* Value string */
+- make_and_model[512],
++ char make_and_model[512],
+ /* Manufacturer and model */
+ model[256], /* Model */
+- device_id[2048];/* 1284 device ID */
+-
++ device_id[2048]; /* 1284 device ID */
+
+ device_id[0] = '\0';
+ make_and_model[0] = '\0';
+
+ strcpy(model, "Unknown");
+
+- for (data = rdata, dataend = data + rdlen;
+- data < dataend;
+- data = datanext)
++ for (;;)
+ {
+- /*
+- * Read a key/value pair starting with an 8-bit length. Since the
+- * length is 8 bits and the size of the key/value buffers is 256, we
+- * don't need to check for overflow...
+- */
+-
+- datalen = *data++;
+-
+- if (!datalen || (data + datalen) > dataend)
+- break;
+-
+- datanext = data + datalen;
+-
+- for (ptr = key; data < datanext && *data != '='; data ++)
+- *ptr++ = *data;
+- *ptr = '\0';
++ char *key;
++ char *value;
+
+- if (data < datanext && *data == '=')
+- {
+- data ++;
+-
+- if (data < datanext)
+- memcpy(value, data, datanext - data);
+- value[datanext - data] = '\0';
++ if (parse_txt_record_pair (txt))
++ goto next;
+
+- fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
+- key, value);
+- }
+- else
+- {
+- fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
+- key);
+- continue;
+- }
+-
+- if (!_cups_strncasecmp(key, "usb_", 4))
++ key = txt->key;
++ value = txt->value;
++ if (!strncasecmp(key, "usb_", 4))
+ {
+ /*
+ * Add USB device ID information...
+@@ -856,6 +1263,10 @@ query_callback(
+ if (device->type == CUPS_DEVICE_PRINTER)
+ device->sent = 1;
+ }
++
++ next:
++ if (next_txt_record (txt) == NULL)
++ break;
+ }
+
+ if (device->device_id)
+@@ -912,11 +1323,9 @@ query_callback(
+ }
+ }
+
+- if (!device)
+- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++ return device;
+ }
+
+-
+ /*
+ * 'sigterm_handler()' - Handle termination signals...
+ */
+diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-support.c
+--- cups-1.5.2/cups/http-support.c.avahi-2-backend 2011-09-26 20:46:46.000000000 +0200
++++ cups-1.5.2/cups/http-support.c 2012-02-06 11:09:08.327644629 +0100
+@@ -43,6 +43,10 @@
+ * http_copy_decode() - Copy and decode a URI.
+ * http_copy_encode() - Copy and encode a URI.
+ * http_resolve_cb() - Build a device URI for the given service name.
++ * avahi_resolve_uri_client_cb()
++ * - Avahi client callback for resolving URI.
++ * avahi_resolve_uri_resolver_cb()
++ * - Avahi resolver callback for resolving URI.
+ */
+
+ /*
+@@ -60,6 +64,11 @@
+ # include <sys/select.h>
+ # endif /* WIN32 */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/lookup.h>
++# include <avahi-common/simple-watch.h>
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -127,6 +136,24 @@ static void DNSSD_API http_resolve_cb(DN
+ void *context);
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static void avahi_resolve_uri_client_cb(AvahiClient *client,
++ AvahiClientState state,
++ void *simple_poll);
++static void avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context);
++#endif /* HAVE_AVAHI */
+
+ /*
+ * 'httpAssembleURI()' - Assemble a uniform resource identifier from its
+@@ -1431,6 +1458,9 @@ _httpResolveURI(
+
+ if (strstr(hostname, "._tcp"))
+ {
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ char *regtype, /* Pointer to type in hostname */
++ *domain; /* Pointer to domain in hostname */
+ #ifdef HAVE_DNSSD
+ # ifdef WIN32
+ # pragma comment(lib, "dnssd.lib")
+@@ -1449,6 +1479,17 @@ _httpResolveURI(
+ fd_set input_set; /* Input set for select() */
+ struct timeval stimeout; /* Timeout value for select() */
+ #endif /* HAVE_POLL */
++#else /* HAVE_AVAHI */
++ AvahiSimplePoll *simple_poll;
++ AvahiClient *client;
++ int error;
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } user_data;
++#endif /* HAVE_DNSSD */
++
+
+ if (options & _HTTP_RESOLVE_STDERR)
+ fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
+@@ -1485,9 +1526,16 @@ _httpResolveURI(
+ if (domain)
+ *domain++ = '\0';
+
++#ifdef HAVE_DNSSD
+ uribuf.buffer = resolved_uri;
+ uribuf.bufsize = resolved_size;
+ uribuf.options = options;
++#else
++ user_data.uribuf.buffer = resolved_uri;
++ user_data.uribuf.bufsize = resolved_size;
++ user_data.uribuf.options = options;
++#endif
++
+ resolved_uri[0] = '\0';
+
+ DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
+@@ -1501,6 +1549,7 @@ _httpResolveURI(
+
+ uri = NULL;
+
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
+ {
+ localref = ref;
+@@ -1608,6 +1657,36 @@ _httpResolveURI(
+
+ DNSServiceRefDeallocate(ref);
+ }
++#else /* HAVE_AVAHI */
++ if ((simple_poll = avahi_simple_poll_new ()) != NULL)
++ {
++ if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++ 0, avahi_resolve_uri_client_cb,
++ &simple_poll, &error)) != NULL)
++ {
++ user_data.poll = simple_poll;
++ if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC, hostname,
++ regtype, domain, AVAHI_PROTO_UNSPEC, 0,
++ avahi_resolve_uri_resolver_cb,
++ &user_data) != NULL)
++ {
++ avahi_simple_poll_loop (simple_poll);
++
++ /*
++ * Collect the result.
++ */
++
++ if (resolved_uri[0])
++ uri = resolved_uri;
++ }
++
++ avahi_client_free (client);
++ }
++
++ avahi_simple_poll_free (simple_poll);
++ }
++#endif /* HAVE_DNSSD */
+
+ if (options & _HTTP_RESOLVE_STDERR)
+ {
+@@ -1619,13 +1698,13 @@ _httpResolveURI(
+ fputs("STATE: -connecting-to-device,offline-report\n", stderr);
+ }
+
+-#else
++#else /* HAVE_DNSSD || HAVE_AVAHI */
+ /*
+ * No DNS-SD support...
+ */
+
+ uri = NULL;
+-#endif /* HAVE_DNSSD */
++#endif /* HAVE_DNSSD || HAVE_AVAHI */
+
+ if ((options & _HTTP_RESOLVE_STDERR) && !uri)
+ _cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
+@@ -1914,6 +1993,116 @@ http_resolve_cb(
+ #endif /* HAVE_DNSSD */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
++ */
++
++static void
++avahi_resolve_uri_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *simple_poll)
++{
++ DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, "
++ "simple_poll=%p)\n", client, state, simple_poll));
++
++ /*
++ * If the connection drops, quit.
++ */
++
++ if (state == AVAHI_CLIENT_FAILURE)
++ avahi_simple_poll_quit (simple_poll);
++}
++
++
++/*
++ * 'avahi_resolve_uri_resolver_cb()' - Avahi resolver callback for resolving
++ * URI.
++ */
++
++static void
++avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ const char *scheme; /* URI scheme */
++ char rp[256]; /* Remote printer */
++ AvahiStringList *pair;
++ char *value;
++ size_t valueLen = 0;
++ char addr[AVAHI_ADDRESS_STR_MAX];
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } *poll_uribuf = context;
++
++ DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, "
++ "interface=%d, protocol=%d, event=%d, name=\"%s\", "
++ "type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, "
++ "port=%d, txt=%p, flags=%d, context=%p)\n",
++ resolver, interface, protocol, event, name, type, domain,
++ host_name, address, port, txt, flags, context));
++
++ if (event != AVAHI_RESOLVER_FOUND)
++ {
++ avahi_service_resolver_free (resolver);
++ avahi_simple_poll_quit (poll_uribuf->poll);
++ return;
++ }
++
++ /*
++ * Figure out the scheme from the full name...
++ */
++
++ if (strstr(type, "_ipp."))
++ scheme = "ipp";
++ else if (strstr(type, "_printer."))
++ scheme = "lpd";
++ else if (strstr(type, "_pdl-datastream."))
++ scheme = "socket";
++ else
++ scheme = "riousbprint";
++
++ /*
++ * Extract the "remote printer key from the TXT record...
++ */
++
++ if ((pair = avahi_string_list_find (txt, "rp")) != NULL)
++ {
++ avahi_string_list_get_pair (pair, NULL, &value, &valueLen);
++ rp[0] = '/';
++ memcpy (rp + 1, value, valueLen);
++ rp[valueLen + 1] = '\0';
++ }
++ else
++ rp[0] = '\0';
++
++ /*
++ * Assemble the final device URI...
++ */
++
++ avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address);
++ httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer,
++ poll_uribuf->uribuf.bufsize, scheme, NULL,
++ addr, port, rp);
++ DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n",
++ poll_uribuf->uribuf.buffer));
++ avahi_simple_poll_quit (poll_uribuf->poll);
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * End of "$Id: http-support.c 10017 2011-09-26 18:46:46Z mike $".
+ */
diff --git a/libre/cups-libre/cups-avahi-3-timeouts.patch b/libre/cups-libre/cups-avahi-3-timeouts.patch
new file mode 100644
index 000000000..1c547c042
--- /dev/null
+++ b/libre/cups-libre/cups-avahi-3-timeouts.patch
@@ -0,0 +1,381 @@
+diff -up cups-1.5.0/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.0/scheduler/cupsd.h
+--- cups-1.5.0/scheduler/cupsd.h.avahi-3-timeouts 2011-05-11 23:17:34.000000000 +0100
++++ cups-1.5.0/scheduler/cupsd.h 2011-10-07 13:20:41.522867324 +0100
+@@ -140,6 +140,15 @@ extern const char *cups_hstrerror(int);
+
+ typedef void (*cupsd_selfunc_t)(void *data);
+
++#ifdef HAVE_AVAHI
++/*
++ * Timeout callback function type...
++ */
++
++typedef struct _cupsd_timeout_s cupsd_timeout_t;
++typedef void (*cupsd_timeoutfunc_t)(cupsd_timeout_t *timeout, void *data);
++#endif /* HAVE_AVAHI */
++
+
+ /*
+ * Globals...
+@@ -173,6 +182,11 @@ VAR int Launchd VALUE(0);
+ /* Running from launchd */
+ #endif /* HAVE_LAUNCH_H */
+
++#ifdef HAVE_AVAHI
++VAR cups_array_t *Timeouts; /* Timed callbacks for main loop */
++#endif /* HAVE_AVAHI */
++
++
+
+ /*
+ * Prototypes...
+@@ -242,6 +256,20 @@ extern void cupsdStopSelect(void);
+ extern void cupsdStartServer(void);
+ extern void cupsdStopServer(void);
+
++#ifdef HAVE_AVAHI
++extern void cupsdInitTimeouts(void);
++extern cupsd_timeout_t *cupsdAddTimeout (const struct timeval *tv,
++ cupsd_timeoutfunc_t cb,
++ void *data);
++extern cupsd_timeout_t *cupsdNextTimeout (long *delay);
++extern void cupsdRunTimeout (cupsd_timeout_t *timeout);
++extern void cupsdUpdateTimeout (cupsd_timeout_t *timeout,
++ const struct timeval *tv);
++extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
++#endif /* HAVE_AVAHI */
++
++extern int cupsdRemoveFile(const char *filename);
++
+
+ /*
+ * End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
+diff -up cups-1.5.0/scheduler/main.c.avahi-3-timeouts cups-1.5.0/scheduler/main.c
+--- cups-1.5.0/scheduler/main.c.avahi-3-timeouts 2011-10-07 13:20:36.875954675 +0100
++++ cups-1.5.0/scheduler/main.c 2011-10-07 13:20:41.524867282 +0100
+@@ -146,6 +146,10 @@ main(int argc, /* I - Number of comm
+ int launchd_idle_exit;
+ /* Idle exit on select timeout? */
+ #endif /* HAVE_LAUNCHD */
++#ifdef HAVE_AVAHI
++ cupsd_timeout_t *tmo; /* Next scheduled timed callback */
++ long tmo_delay; /* Time before it must be called */
++#endif /* HAVE_AVAHI */
+
+
+ #ifdef HAVE_GETEUID
+@@ -535,6 +539,14 @@ main(int argc, /* I - Number of comm
+
+ httpInitialize();
+
++#ifdef HAVE_AVAHI
++ /*
++ * Initialize timed callback structures.
++ */
++
++ cupsdInitTimeouts();
++#endif /* HAVE_AVAHI */
++
+ cupsdStartServer();
+
+ /*
+@@ -874,6 +886,16 @@ main(int argc, /* I - Number of comm
+ }
+ #endif /* __APPLE__ */
+
++#ifdef HAVE_AVAHI
++ /*
++ * If a timed callback is due, run it.
++ */
++
++ tmo = cupsdNextTimeout (&tmo_delay);
++ if (tmo && tmo_delay == 0)
++ cupsdRunTimeout (tmo);
++#endif /* HAVE_AVAHI */
++
+ #ifndef __APPLE__
+ /*
+ * Update the network interfaces once a minute...
+@@ -1787,6 +1809,10 @@ select_timeout(int fds) /* I - Number
+ cupsd_job_t *job; /* Job information */
+ cupsd_subscription_t *sub; /* Subscription information */
+ const char *why; /* Debugging aid */
++#ifdef HAVE_AVAHI
++ cupsd_timeout_t *tmo; /* Timed callback */
++ long tmo_delay; /* Seconds before calling it */
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -1829,6 +1855,19 @@ select_timeout(int fds) /* I - Number
+ }
+ #endif /* __APPLE__ */
+
++#ifdef HAVE_AVAHI
++ /*
++ * See if there are any scheduled timed callbacks to run.
++ */
++
++ tmo = cupsdNextTimeout (&tmo_delay);
++ if (tmo)
++ {
++ timeout = tmo_delay;
++ why = "run a timed callback";
++ }
++#endif /* HAVE_AVAHI */
++
+ /*
+ * Check whether we are accepting new connections...
+ */
+diff -up cups-1.5.0/scheduler/Makefile.avahi-3-timeouts cups-1.5.0/scheduler/Makefile
+--- cups-1.5.0/scheduler/Makefile.avahi-3-timeouts 2011-10-07 13:20:36.955953170 +0100
++++ cups-1.5.0/scheduler/Makefile 2011-10-07 13:20:41.521867343 +0100
+@@ -39,7 +39,8 @@ CUPSDOBJS = \
+ server.o \
+ statbuf.o \
+ subscriptions.o \
+- sysman.o
++ sysman.o \
++ timeout.o
+ LIBOBJS = \
+ filter.o \
+ mime.o \
+diff -up cups-1.5.0/scheduler/timeout.c.avahi-3-timeouts cups-1.5.0/scheduler/timeout.c
+--- cups-1.5.0/scheduler/timeout.c.avahi-3-timeouts 2011-10-07 13:20:41.525867259 +0100
++++ cups-1.5.0/scheduler/timeout.c 2011-10-07 13:20:41.525867259 +0100
+@@ -0,0 +1,235 @@
++/*
++ * "$Id$"
++ *
++ * Timeout functions for the Common UNIX Printing System (CUPS).
++ *
++ * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ * Contents:
++ *
++ * cupsdInitTimeouts() - Initialise timeout structure.
++ * cupsdAddTimeout() - Add a timed callback.
++ * cupsdNextTimeout() - Find the next enabled timed callback.
++ * cupsdUpdateTimeout() - Adjust the time of a timed callback or disable it.
++ * cupsdRemoveTimeout() - Discard a timed callback.
++ * compare_timeouts() - Compare timed callbacks for array sorting.
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI /* Applies to entire file... */
++
++/*
++ * Include necessary headers...
++ */
++
++#include "cupsd.h"
++
++#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
++# include <malloc.h>
++#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
++
++#ifdef HAVE_AVAHI
++# include <avahi-common/timeval.h>
++#endif /* HAVE_AVAHI */
++
++
++struct _cupsd_timeout_s
++{
++ struct timeval when;
++ int enabled;
++ cupsd_timeoutfunc_t callback;
++ void *data;
++};
++
++/*
++ * Local functions...
++ */
++
++/*
++ * 'compare_timeouts()' - Compare timed callbacks for array sorting.
++ */
++
++static int
++compare_addrs (void *p0, void *p1)
++{
++ if (p0 == p1)
++ return (0);
++ if (p0 < p1)
++ return (-1);
++ return (1);
++}
++
++static int
++compare_timeouts (cupsd_timeout_t *p0, cupsd_timeout_t *p1)
++{
++ int addrsdiff = compare_addrs (p0, p1);
++ int tvdiff;
++
++ if (addrsdiff == 0)
++ return (0);
++
++ if (!p0->enabled || !p1->enabled)
++ {
++ if (!p0->enabled && !p1->enabled)
++ return (addrsdiff);
++
++ return (p0->enabled ? -1 : 1);
++ }
++
++ tvdiff = avahi_timeval_compare (&p0->when, &p1->when);
++ if (tvdiff != 0)
++ return (tvdiff);
++
++ return (addrsdiff);
++}
++
++
++/*
++ * 'cupsdInitTimeouts()' - Initialise timeout structures.
++ */
++
++void
++cupsdInitTimeouts(void)
++{
++ Timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts, NULL);
++}
++
++
++/*
++ * 'cupsdAddTimeout()' - Add a timed callback.
++ */
++
++cupsd_timeout_t * /* O - Timeout handle */
++cupsdAddTimeout(const struct timeval *tv, /* I - Absolute time */
++ cupsd_timeoutfunc_t cb, /* I - Callback function */
++ void *data) /* I - User data */
++{
++ cupsd_timeout_t *timeout;
++
++ timeout = malloc (sizeof(cupsd_timeout_t));
++ if (timeout != NULL)
++ {
++ timeout->enabled = (tv != NULL);
++ if (tv)
++ {
++ timeout->when.tv_sec = tv->tv_sec;
++ timeout->when.tv_usec = tv->tv_usec;
++ }
++
++ timeout->callback = cb;
++ timeout->data = data;
++ cupsArrayAdd (Timeouts, timeout);
++ }
++
++ return timeout;
++}
++
++
++/*
++ * 'cupsdNextTimeout()' - Find the next enabled timed callback.
++ */
++
++cupsd_timeout_t * /* O - Next enabled timeout or NULL */
++cupsdNextTimeout(long *delay) /* O - Seconds before scheduled */
++{
++ cupsd_timeout_t *first = cupsArrayFirst (Timeouts);
++ struct timeval curtime;
++
++ if (first && !first->enabled)
++ first = NULL;
++
++ if (first && delay)
++ {
++ gettimeofday (&curtime, NULL);
++ if (avahi_timeval_compare (&curtime, &first->when) > 0)
++ {
++ *delay = 0;
++ } else {
++ *delay = 1 + first->when.tv_sec - curtime.tv_sec;
++ if (first->when.tv_usec < curtime.tv_usec)
++ (*delay)--;
++ }
++ }
++
++ return (first);
++}
++
++
++/*
++ * 'cupsdRunTimeout()' - Run a timed callback.
++ */
++
++void
++cupsdRunTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
++{
++ if (!timeout)
++ return;
++ timeout->enabled = 0;
++ if (!timeout->callback)
++ return;
++ timeout->callback (timeout, timeout->data);
++}
++
++/*
++ * 'cupsdUpdateTimeout()' - Adjust the time of a timed callback or disable it.
++ */
++
++void
++cupsdUpdateTimeout(cupsd_timeout_t *timeout, /* I - Timeout */
++ const struct timeval *tv) /* I - Absolute time or NULL */
++{
++ cupsArrayRemove (Timeouts, timeout);
++ timeout->enabled = (tv != NULL);
++ if (tv)
++ {
++ timeout->when.tv_sec = tv->tv_sec;
++ timeout->when.tv_usec = tv->tv_usec;
++ }
++ cupsArrayAdd (Timeouts, timeout);
++}
++
++
++/*
++ * 'cupsdRemoveTimeout()' - Discard a timed callback.
++ */
++
++void
++cupsdRemoveTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
++{
++ cupsArrayRemove (Timeouts, timeout);
++ free (timeout);
++}
++
++
++#endif /* HAVE_AVAHI ... from top of file */
++
++/*
++ * End of "$Id$".
++ */
diff --git a/libre/cups-libre/cups-avahi-4-poll.patch b/libre/cups-libre/cups-avahi-4-poll.patch
new file mode 100644
index 000000000..189e83da6
--- /dev/null
+++ b/libre/cups-libre/cups-avahi-4-poll.patch
@@ -0,0 +1,529 @@
+diff -up cups-1.5.0/scheduler/avahi.c.avahi-4-poll cups-1.5.0/scheduler/avahi.c
+--- cups-1.5.0/scheduler/avahi.c.avahi-4-poll 2011-10-11 10:56:50.102288037 +0100
++++ cups-1.5.0/scheduler/avahi.c 2011-10-11 10:56:50.102288037 +0100
+@@ -0,0 +1,441 @@
++/*
++ * "$Id$"
++ *
++ * Avahi poll implementation for the CUPS scheduler.
++ *
++ * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ * Contents:
++ *
++ * watch_read_cb - Read callback for file descriptor
++ * watch_write_cb - Write callback for file descriptor
++ * watched_fd_add_select() - Call cupsdAddSelect() as needed
++ * watch_new() - Create a new file descriptor watch
++ * watch_free() - Free a file descriptor watch
++ * watch_update() - Update watched events for a file descriptor
++ * watch_get_events() - Get events that happened for a file descriptor
++ * timeout_cb() - Run a timed Avahi callback
++ * timeout_new() - Set a wakeup time
++ * timeout_update() - Update the expiration time for a timeout
++ * timeout_free() - Free a timeout
++ * compare_watched_fds() - Compare watched file descriptors for array sorting
++ * avahi_cups_poll_new() - Create a new Avahi main loop object for CUPS
++ * avahi_cups_poll_free() - Free an Avahi main loop object for CUPS
++ * avahi_cups_poll_get() - Get the abstract poll API structure
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI /* Applies to entire file... */
++
++/*
++ * Include necessary headers...
++ */
++
++#include "cupsd.h"
++
++#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
++# include <malloc.h>
++#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
++
++#ifdef HAVE_AVAHI
++# include <avahi-common/timeval.h>
++#endif /* HAVE_AVAHI */
++
++
++typedef struct
++{
++ AvahiCupsPoll *cups_poll;
++
++ int fd;
++ AvahiWatchEvent occurred;
++ cups_array_t *watches;
++} cupsd_watched_fd_t;
++
++struct AvahiWatch
++{
++ cupsd_watched_fd_t *watched_fd;
++
++ AvahiWatchEvent events;
++ AvahiWatchCallback callback;
++ void *userdata;
++};
++
++struct AvahiTimeout
++{
++ AvahiCupsPoll *cups_poll;
++ AvahiTimeoutCallback callback;
++ void *userdata;
++ cupsd_timeout_t *cupsd_timeout;
++};
++
++/*
++ * Local functions...
++ */
++
++static AvahiWatch * watch_new(const AvahiPoll *api,
++ int fd,
++ AvahiWatchEvent events,
++ AvahiWatchCallback callback,
++ void *userdata);
++static void watch_free(AvahiWatch *watch);
++static void watch_update(AvahiWatch *watch,
++ AvahiWatchEvent events);
++static AvahiWatchEvent watch_get_events(AvahiWatch *watch);
++
++
++/*
++ * 'watch_read_cb' - Read callback for file descriptor
++ */
++
++static void
++watch_read_cb (void *userdata)
++{
++ AvahiWatch *watch;
++ cupsd_watched_fd_t *watched_fd = userdata;
++ watched_fd->occurred |= AVAHI_WATCH_IN;
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
++ {
++ if (watch->events & watched_fd->occurred)
++ {
++ (watch->callback) (watch, watched_fd->fd,
++ AVAHI_WATCH_IN, watch->userdata);
++ watched_fd->occurred &= ~AVAHI_WATCH_IN;
++ break;
++ }
++ }
++}
++
++
++/*
++ * 'watch_write_cb' - Write callback for file descriptor
++ */
++
++static void
++watch_write_cb (void *userdata)
++{
++ AvahiWatch *watch;
++ cupsd_watched_fd_t *watched_fd = userdata;
++ watched_fd->occurred |= AVAHI_WATCH_OUT;
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
++ {
++ if (watch->events & watched_fd->occurred)
++ {
++ (watch->callback) (watch, watched_fd->fd,
++ AVAHI_WATCH_OUT, watch->userdata);
++ watched_fd->occurred &= ~AVAHI_WATCH_OUT;
++ break;
++ }
++ }
++}
++
++
++/*
++ * 'watched_fd_add_select' - Call cupsdAddSelect() as needed
++ */
++
++static int /* O - Watches? */
++watched_fd_add_select (cupsd_watched_fd_t *watched_fd)
++{
++ AvahiWatch *watch;
++ cupsd_selfunc_t read_cb = NULL, write_cb = NULL;
++ int any_watches = 0;
++
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
++ {
++ any_watches = 1;
++ if (watch->events & (AVAHI_WATCH_IN |
++ AVAHI_WATCH_ERR |
++ AVAHI_WATCH_HUP))
++ {
++ read_cb = (cupsd_selfunc_t)watch_read_cb;
++ if (write_cb != NULL)
++ break;
++ }
++
++ if (watch->events & AVAHI_WATCH_OUT)
++ {
++ write_cb = (cupsd_selfunc_t)watch_write_cb;
++ if (read_cb != NULL)
++ break;
++ }
++ }
++
++ if (read_cb || write_cb)
++ cupsdAddSelect (watched_fd->fd, read_cb, write_cb, watched_fd);
++ else
++ cupsdRemoveSelect (watched_fd->fd);
++
++ return (any_watches);
++}
++
++/*
++ * 'watch_new' - Create a new file descriptor watch
++ */
++
++static AvahiWatch *
++watch_new (const AvahiPoll *api,
++ int fd,
++ AvahiWatchEvent events,
++ AvahiWatchCallback callback,
++ void *userdata)
++{
++ cupsd_watched_fd_t key, *watched_fd;
++ AvahiCupsPoll *cups_poll = api->userdata;
++ AvahiWatch *watch = malloc(sizeof(AvahiWatch));
++ if (watch == NULL)
++ return (NULL);
++
++ watch->events = events;
++ watch->callback = callback;
++ watch->userdata = userdata;
++
++ key.fd = fd;
++ watched_fd = cupsArrayFind (cups_poll->watched_fds, &key);
++ if (watched_fd == NULL)
++ {
++ watched_fd = malloc(sizeof(cupsd_watched_fd_t));
++ if (watched_fd == NULL)
++ {
++ free (watch);
++ return (NULL);
++ }
++
++ watched_fd->fd = fd;
++ watched_fd->occurred = 0;
++ watched_fd->cups_poll = cups_poll;
++ watched_fd->watches = cupsArrayNew (NULL, NULL);
++ cupsArrayAdd (cups_poll->watched_fds, watched_fd);
++ }
++
++ watch->watched_fd = watched_fd;
++ cupsArrayAdd(watched_fd->watches, watch);
++ watched_fd_add_select (watched_fd);
++ return (watch);
++}
++
++
++/*
++ * 'watch_free' - Free a file descriptor watch
++ */
++
++static void
++watch_free (AvahiWatch *watch)
++{
++ cupsd_watched_fd_t *watched_fd = watch->watched_fd;
++ AvahiCupsPoll *cups_poll = watched_fd->cups_poll;
++
++ cupsArrayRemove (watched_fd->watches, watch);
++ free (watch);
++
++ if (!watched_fd_add_select (watched_fd))
++ {
++ /* No more watches */
++ cupsArrayRemove (cups_poll->watched_fds, watched_fd);
++ free (watched_fd);
++ }
++}
++
++
++/*
++ * 'watch_update' - Update watched events for a file descriptor
++ */
++
++static void
++watch_update (AvahiWatch *watch,
++ AvahiWatchEvent events)
++{
++ watch->events = events;
++ watched_fd_add_select (watch->watched_fd);
++}
++
++
++/*
++ * 'watch_get_events' - Get events that happened for a file descriptor
++ */
++
++static AvahiWatchEvent
++watch_get_events (AvahiWatch *watch)
++{
++ return (watch->watched_fd->occurred);
++}
++
++
++/*
++ * 'timeout_cb()' - Run a timed Avahi callback
++ */
++
++static void
++timeout_cb (cupsd_timeout_t *cupsd_timeout, void *userdata)
++{
++ AvahiTimeout *timeout = userdata;
++ (timeout->callback) (timeout, timeout->userdata);
++}
++
++
++/*
++ * 'timeout_new' - Set a wakeup time
++ */
++
++static AvahiTimeout *
++timeout_new (const AvahiPoll *api,
++ const struct timeval *tv,
++ AvahiTimeoutCallback callback,
++ void *userdata)
++{
++ AvahiTimeout *timeout;
++ AvahiCupsPoll *cups_poll = api->userdata;
++
++ timeout = malloc(sizeof(AvahiTimeout));
++ if (timeout == NULL)
++ return (NULL);
++
++ timeout->cups_poll = cups_poll;
++ timeout->callback = callback;
++ timeout->userdata = userdata;
++ timeout->cupsd_timeout = cupsdAddTimeout (tv,
++ (cupsd_timeoutfunc_t)timeout_cb,
++ timeout);
++ cupsArrayAdd (cups_poll->timeouts, timeout);
++ return (timeout);
++}
++
++
++/*
++ * 'timeout_update' - Update the expiration time for a timeout
++ */
++
++static void
++timeout_update (AvahiTimeout *timeout,
++ const struct timeval *tv)
++{
++ cupsdUpdateTimeout (timeout->cupsd_timeout, tv);
++}
++
++
++/*
++ * ' timeout_free' - Free a timeout
++ */
++
++static void
++timeout_free (AvahiTimeout *timeout)
++{
++ cupsArrayRemove (timeout->cups_poll->timeouts, timeout);
++ cupsdRemoveTimeout (timeout->cupsd_timeout);
++ free (timeout);
++}
++
++
++/*
++ * 'compare_watched_fds' - Compare watched file descriptors for array sorting
++ */
++static int
++compare_watched_fds(cupsd_watched_fd_t *p0,
++ cupsd_watched_fd_t *p1)
++{
++ /*
++ * Compare by fd (no two elements have the same fd)
++ */
++
++ if (p0->fd == p1->fd)
++ return 0;
++
++ return (p0->fd < p1->fd ? -1 : 1);
++}
++
++
++/*
++ * 'avahi_cups_poll_new' - Create a new Avahi main loop object for CUPS
++ */
++
++AvahiCupsPoll *
++avahi_cups_poll_new (void)
++{
++ AvahiCupsPoll *cups_poll = malloc(sizeof(AvahiCupsPoll));
++ if (cups_poll == NULL)
++ return (NULL);
++
++ cups_poll->watched_fds = cupsArrayNew ((cups_array_func_t)compare_watched_fds,
++ NULL);
++ cups_poll->timeouts = cupsArrayNew (NULL, NULL);
++
++ cups_poll->api.userdata = cups_poll;
++ cups_poll->api.watch_new = watch_new;
++ cups_poll->api.watch_free = watch_free;
++ cups_poll->api.watch_update = watch_update;
++ cups_poll->api.watch_get_events = watch_get_events;
++
++ cups_poll->api.timeout_new = timeout_new;
++ cups_poll->api.timeout_update = timeout_update;
++ cups_poll->api.timeout_free = timeout_free;
++
++ return (cups_poll);
++}
++
++
++/*
++ * 'avahi_cups_poll_free' - Free an Avahi main loop object for CUPS
++ */
++void
++avahi_cups_poll_free (AvahiCupsPoll *cups_poll)
++{
++ cupsd_watched_fd_t *watched_fd;
++
++ for (watched_fd = (cupsd_watched_fd_t*)cupsArrayFirst(cups_poll->watched_fds);
++ watched_fd;
++ watched_fd = (cupsd_watched_fd_t*)cupsArrayNext(cups_poll->watched_fds))
++ cupsArrayClear (watched_fd->watches);
++
++ cupsArrayClear (cups_poll->watched_fds);
++ cupsArrayClear (cups_poll->timeouts);
++}
++
++
++/*
++ * 'avahi_cups_poll_get' - Get the abstract poll API structure
++ */
++
++const AvahiPoll *
++avahi_cups_poll_get (AvahiCupsPoll *cups_poll)
++{
++ return (&cups_poll->api);
++}
++
++
++#endif /* HAVE_AVAHI ... from top of file */
++
++/*
++ * End of "$Id$".
++ */
+diff -up cups-1.5.0/scheduler/avahi.h.avahi-4-poll cups-1.5.0/scheduler/avahi.h
+--- cups-1.5.0/scheduler/avahi.h.avahi-4-poll 2011-10-11 10:56:50.102288037 +0100
++++ cups-1.5.0/scheduler/avahi.h 2011-10-11 10:56:50.119287724 +0100
+@@ -0,0 +1,69 @@
++/*
++ * "$Id$"
++ *
++ * Avahi poll implementation for the CUPS scheduler.
++ *
++ * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/publish.h>
++#endif /* HAVE_AVAHI */
++
++#ifdef HAVE_AUTHORIZATION_H
++# include <Security/Authorization.h>
++#endif /* HAVE_AUTHORIZATION_H */
++
++
++#ifdef HAVE_AVAHI
++typedef struct
++{
++ AvahiPoll api;
++ cups_array_t *watched_fds;
++ cups_array_t *timeouts;
++} AvahiCupsPoll;
++#endif /* HAVE_AVAHI */
++
++/*
++ * Prototypes...
++ */
++
++#ifdef HAVE_AVAHI
++extern AvahiCupsPoll * avahi_cups_poll_new(void);
++extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
++extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * End of "$Id$".
++ */
+diff -up cups-1.5.0/scheduler/Makefile.avahi-4-poll cups-1.5.0/scheduler/Makefile
+--- cups-1.5.0/scheduler/Makefile.avahi-4-poll 2011-10-11 10:56:45.868365861 +0100
++++ cups-1.5.0/scheduler/Makefile 2011-10-11 10:56:50.101288055 +0100
+@@ -17,6 +17,7 @@ include ../Makedefs
+
+ CUPSDOBJS = \
+ auth.o \
++ avahi.o \
+ banners.o \
+ cert.o \
+ classes.o \
diff --git a/libre/cups-libre/cups-avahi-5-services.patch b/libre/cups-libre/cups-avahi-5-services.patch
new file mode 100644
index 000000000..9713bbc53
--- /dev/null
+++ b/libre/cups-libre/cups-avahi-5-services.patch
@@ -0,0 +1,1191 @@
+diff -up cups-1.5.0/cgi-bin/admin.c.avahi-5-services cups-1.5.0/cgi-bin/admin.c
+--- cups-1.5.0/cgi-bin/admin.c.avahi-5-services 2011-05-20 04:49:49.000000000 +0100
++++ cups-1.5.0/cgi-bin/admin.c 2011-10-19 11:53:32.123177998 +0100
+@@ -1643,7 +1643,7 @@ do_config_server(http_t *http) /* I - H
+ else
+ local_protocols[0] = '\0';
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (cgiGetVariable("BROWSE_LOCAL_DNSSD"))
+ {
+ if (local_protocols[0])
+@@ -1651,7 +1651,7 @@ do_config_server(http_t *http) /* I - H
+ else
+ strcat(local_protocols, "dnssd");
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LDAP
+ if (cgiGetVariable("BROWSE_LOCAL_LDAP"))
+@@ -2718,9 +2718,9 @@ do_menu(http_t *http) /* I - HTTP conn
+ #endif /* HAVE_GSSAPI */
+ cgiSetVariable("KERBEROS", "");
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cgiSetVariable("HAVE_DNSSD", "1");
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LDAP
+ cgiSetVariable("HAVE_LDAP", "1");
+diff -up cups-1.5.0/scheduler/client.c.avahi-5-services cups-1.5.0/scheduler/client.c
+--- cups-1.5.0/scheduler/client.c.avahi-5-services 2011-06-10 22:16:18.000000000 +0100
++++ cups-1.5.0/scheduler/client.c 2011-10-19 11:53:32.127177926 +0100
+@@ -4987,7 +4987,7 @@ valid_host(cupsd_client_t *con) /* I -
+ !strncmp(host, "[::1]:", 6));
+ }
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * Check if the hostname is something.local (Bonjour); if so, allow it.
+ */
+@@ -4996,7 +4996,7 @@ valid_host(cupsd_client_t *con) /* I -
+ (!_cups_strcasecmp(end, ".local") || !_cups_strncasecmp(end, ".local:", 7) ||
+ !_cups_strcasecmp(end, ".local.") || !_cups_strncasecmp(end, ".local.:", 8)))
+ return (1);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ /*
+ * Check if the hostname is an IP address...
+diff -up cups-1.5.0/scheduler/conf.c.avahi-5-services cups-1.5.0/scheduler/conf.c
+--- cups-1.5.0/scheduler/conf.c.avahi-5-services 2011-10-19 11:53:31.895182225 +0100
++++ cups-1.5.0/scheduler/conf.c 2011-10-19 11:53:32.131177850 +0100
+@@ -651,7 +651,7 @@ cupsdReadConfiguration(void)
+ Browsing = CUPS_DEFAULT_BROWSING;
+ DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
+ #endif /* HAVE_DNSSD */
+
+diff -up cups-1.5.0/scheduler/dirsvc.c.avahi-5-services cups-1.5.0/scheduler/dirsvc.c
+--- cups-1.5.0/scheduler/dirsvc.c.avahi-5-services 2011-10-19 11:53:32.011180075 +0100
++++ cups-1.5.0/scheduler/dirsvc.c 2011-10-19 11:53:58.916681461 +0100
+@@ -27,6 +27,7 @@
+ * ldap_connect() - Start new LDAP connection
+ * ldap_reconnect() - Reconnect to LDAP Server
+ * ldap_disconnect() - Disconnect from LDAP Server
++ * cupsdStartAvahiClient() - Start an Avahi client if needed
+ * cupsdStartBrowsing() - Start sending and receiving broadcast
+ * information.
+ * cupsdStartPolling() - Start polling servers as needed.
+@@ -40,11 +41,12 @@
+ * dequote() - Remote quotes from a string.
+ * dnssdAddAlias() - Add a DNS-SD alias name.
+ * dnssdBuildTxtRecord() - Build a TXT record from printer info.
+- * dnssdComparePrinters() - Compare the registered names of two printers.
+ * dnssdDeregisterPrinter() - Stop sending broadcast information for a
+ * printer.
+ * dnssdPackTxtRecord() - Pack an array of key/value pairs into the TXT
+ * record format.
++ * avahiPackTxtRecord() - Pack an array of key/value pairs into an
++ * AvahiStringList.
+ * dnssdRegisterCallback() - DNSServiceRegister callback.
+ * dnssdRegisterPrinter() - Start sending broadcast information for a
+ * printer or update the broadcast contents.
+@@ -83,6 +85,7 @@
+ */
+
+ #include "cupsd.h"
++#include <assert.h>
+ #include <grp.h>
+
+ #ifdef HAVE_DNSSD
+@@ -97,6 +100,17 @@
+ # endif /* HAVE_SYSTEMCONFIGURATION */
+ # endif /* __APPLE__ */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-common/domain.h>
++#endif /* HAVE_AVAHI */
++
++
++#ifdef HAVE_DNSSD
++typedef char *cupsd_txt_record_t;
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++typedef AvahiStringList *cupsd_txt_record_t;
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -159,27 +173,38 @@ static void update_polling(void);
+ static void update_smb(int onoff);
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++static cupsd_txt_record_t dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
++ int for_lpd);
++static void dnssdDeregisterPrinter(cupsd_printer_t *p);
++static void dnssdRegisterPrinter(cupsd_printer_t *p);
++static void dnssdStop(void);
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++
+ #ifdef HAVE_DNSSD
+ # ifdef HAVE_COREFOUNDATION
+ static void dnssdAddAlias(const void *key, const void *value,
+ void *context);
+ # endif /* HAVE_COREFOUNDATION */
+-static char *dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
+- int for_lpd);
+-static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
+-static void dnssdDeregisterPrinter(cupsd_printer_t *p);
+-static char *dnssdPackTxtRecord(int *txt_len, char *keyvalue[][2],
+- int count);
+ static void dnssdRegisterCallback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ DNSServiceErrorType errorCode,
+ const char *name, const char *regtype,
+ const char *domain, void *context);
+-static void dnssdRegisterPrinter(cupsd_printer_t *p);
+-static void dnssdStop(void);
+ static void dnssdUpdate(void);
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static AvahiStringList *avahiPackTxtRecord(char *keyvalue[][2],
++ int count);
++static void avahi_entry_group_cb (AvahiEntryGroup *group,
++ AvahiEntryGroupState state,
++ void *userdata);
++static void avahi_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *userdata);
++#endif /* HAVE_AVAHI */
++
+ #ifdef HAVE_LDAP
+ static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
+ {
+@@ -283,10 +308,10 @@ cupsdDeregisterPrinter(
+ ldap_dereg_printer(p);
+ #endif /* HAVE_LDAP */
+
+-#ifdef HAVE_DNSSD
+- if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdDeregisterPrinter(p);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+@@ -702,10 +727,10 @@ cupsdRegisterPrinter(cupsd_printer_t *p)
+ slpRegisterPrinter(p); */
+ #endif /* HAVE_LIBSLP */
+
+-#ifdef HAVE_DNSSD
+- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if ((BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdRegisterPrinter(p);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+@@ -1419,6 +1444,36 @@ ldap_disconnect(LDAP *ld) /* I - LDAP h
+ #endif /* HAVE_LDAP */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'cupsdStartAvahiClient()' - Start an Avahi client if needed
++ */
++
++void
++cupsdStartAvahiClient(void)
++{
++ int error = 0;
++
++ if (!AvahiCupsClient && !AvahiCupsClientConnecting)
++ {
++ if (!AvahiCupsPollHandle)
++ AvahiCupsPollHandle = avahi_cups_poll_new ();
++
++ if (AvahiCupsPollHandle)
++ {
++ if (avahi_client_new (avahi_cups_poll_get (AvahiCupsPollHandle),
++ AVAHI_CLIENT_NO_FAIL,
++ avahi_client_cb, NULL,
++ &error) != NULL)
++ AvahiCupsClientConnecting = 1;
++ else
++ cupsdLogMessage (CUPSD_LOG_WARN, "Avahi client failed: %d", error);
++ }
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * 'cupsdStartBrowsing()' - Start sending and receiving broadcast information.
+ */
+@@ -1542,13 +1597,16 @@ cupsdStartBrowsing(void)
+ else
+ BrowseSocket = -1;
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_DNSSD)
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
++#endif /* HAVE_DNSSD */
+ cupsd_listener_t *lis; /* Current listening socket */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * First create a "master" connection for all registrations...
+ */
+@@ -1573,6 +1631,7 @@ cupsdStartBrowsing(void)
+ fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
+
+ cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Then get the port we use for registrations. If we are not listening
+@@ -1598,17 +1657,23 @@ cupsdStartBrowsing(void)
+ */
+
+ if (BrowseRemoteProtocols & BROWSE_DNSSD)
+- DNSSDPrinters = cupsArrayNew((cups_array_func_t)dnssdComparePrinters,
+- NULL);
++ DNSSDPrinters = cupsArrayNew(NULL, NULL);
+
+ /*
+ * Set the computer name and register the web interface...
+ */
+
+ cupsdUpdateDNSSDName();
++
++#ifdef HAVE_AVAHI
++ cupsdStartAvahiClient ();
++#endif /* HAVE_AVAHI */
++
++#ifdef HAVE_DNSSD
+ }
+- }
+ #endif /* HAVE_DNSSD */
++ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LIBSLP
+ if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP)
+@@ -1834,10 +1899,10 @@ cupsdStopBrowsing(void)
+ BrowseSocket = -1;
+ }
+
+-#ifdef HAVE_DNSSD
+- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if ((BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdStop();
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LIBSLP
+ if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) &&
+@@ -1902,7 +1967,7 @@ cupsdStopPolling(void)
+ }
+
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
+ */
+@@ -1910,8 +1975,14 @@ cupsdStopPolling(void)
+ void
+ cupsdUpdateDNSSDName(void)
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
+ char webif[1024]; /* Web interface share name */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int ret; /* Error from service creation */
++ char webif[AVAHI_LABEL_MAX]; /* Web interface share name */
++#endif /* HAVE_AVAHI */
+ # ifdef HAVE_SYSTEMCONFIGURATION
+ SCDynamicStoreRef sc; /* Context for dynamic store */
+ CFDictionaryRef btmm; /* Back-to-My-Mac domains */
+@@ -2042,6 +2113,7 @@ cupsdUpdateDNSSDName(void)
+ else
+ strlcpy(webif, "CUPS Web Interface", sizeof(webif));
+
++#ifdef HAVE_DNSSD
+ if (WebIFRef)
+ DNSServiceRefDeallocate(WebIFRef);
+
+@@ -2054,9 +2126,45 @@ cupsdUpdateDNSSDName(void)
+ NULL)) != kDNSServiceErr_NoError)
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "DNS-SD web interface registration failed: %d", error);
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++ if (!AvahiCupsClient)
++ /*
++ * Client not yet running.
++ */
++ return;
++
++ if (AvahiWebIFGroup)
++ avahi_entry_group_reset (AvahiWebIFGroup);
++ else
++ AvahiWebIFGroup = avahi_entry_group_new (AvahiCupsClient,
++ avahi_entry_group_cb,
++ NULL);
++
++ if (AvahiWebIFGroup)
++ {
++ ret = avahi_entry_group_add_service (AvahiWebIFGroup,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, /* flags */
++ webif, /* name */
++ "_http._tcp", /* type */
++ NULL, /* domain */
++ NULL, /* host */
++ DNSSDPort, /* port */
++ "path=/", NULL);
++ if (ret == 0)
++ ret = avahi_entry_group_commit (AvahiWebIFGroup);
++
++ if (ret != 0)
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Avahi web interface registration failed: %d", ret);
++ }
++#endif /* HAVE_AVAHI */
+ }
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
+ #ifdef HAVE_LDAP
+@@ -2334,13 +2442,15 @@ dnssdAddAlias(const void *key, /* I - K
+ "Bad Back to My Mac domain in dynamic store!");
+ }
+ # endif /* HAVE_COREFOUNDATION */
++#endif /* HAVE_DNSSD */
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'dnssdBuildTxtRecord()' - Build a TXT record from printer info.
+ */
+
+-static char * /* O - TXT record */
++static cupsd_txt_record_t /* O - TXT record */
+ dnssdBuildTxtRecord(
+ int *txt_len, /* O - TXT record length */
+ cupsd_printer_t *p, /* I - Printer information */
+@@ -2379,7 +2489,12 @@ dnssdBuildTxtRecord(
+ keyvalue[i ][0] = "ty";
+ keyvalue[i++][1] = p->make_model ? p->make_model : "Unknown";
+
+- snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.", DNSSDHostName);
++ snprintf(admin_hostname, sizeof(admin_hostname),
++ "%s.local"
++#ifdef HAVE_DNSSD
++ "." /* terminating dot no good for Avahi */
++#endif /* HAVE_DNSSD */
++ , DNSSDHostName);
+ httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
+ "http", NULL, admin_hostname, DNSSDPort, "/%s/%s",
+ (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
+@@ -2462,19 +2577,12 @@ dnssdBuildTxtRecord(
+ * Then pack them into a proper txt record...
+ */
+
++#ifdef HAVE_DNSSD
+ return (dnssdPackTxtRecord(txt_len, keyvalue, i));
+-}
+-
+-
+-/*
+- * 'dnssdComparePrinters()' - Compare the registered names of two printers.
+- */
+-
+-static int /* O - Result of comparison */
+-dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */
+- cupsd_printer_t *b)/* I - Second printer */
+-{
+- return (_cups_strcasecmp(a->reg_name, b->reg_name));
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ return (avahiPackTxtRecord(keyvalue, i));
++#endif /* HAVE_AVAHI */
+ }
+
+
+@@ -2489,6 +2597,10 @@ dnssdDeregisterPrinter(
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++
+ /*
+ * Closing the socket deregisters the service
+ */
+@@ -2524,6 +2636,24 @@ dnssdDeregisterPrinter(
+ free(p->printer_txt);
+ p->printer_txt = NULL;
+ }
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++ if (p->avahi_group)
++ {
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++
++ if (p->ipp_txt)
++ avahi_string_list_free (p->ipp_txt);
++
++ if (p->printer_txt)
++ avahi_string_list_free (p->printer_txt);
++
++ p->ipp_txt = p->printer_txt = NULL;
++ }
++#endif /* HAVE_AVAHI */
+
+ /*
+ * Remove the printer from the array of DNS-SD printers, then clear the
+@@ -2533,8 +2663,10 @@ dnssdDeregisterPrinter(
+ cupsArrayRemove(DNSSDPrinters, p);
+ cupsdClearString(&p->reg_name);
+ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'dnssdPackTxtRecord()' - Pack an array of key/value pairs into the
+ * TXT record format.
+@@ -2644,8 +2776,10 @@ dnssdRegisterCallback(
+ LastEvent |= CUPSD_EVENT_PRINTER_MODIFIED;
+ }
+ }
++#endif /* HAVE_DNSSD */
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
+ * or update the broadcast contents.
+@@ -2654,20 +2788,40 @@ dnssdRegisterCallback(
+ static void
+ dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType se; /* dnssd errors */
+ char *ipp_txt, /* IPP TXT record buffer */
+ *printer_txt, /* LPD TXT record buffer */
+- name[1024], /* Service name */
+- *nameptr; /* Pointer into name */
++ name[1024]; /* Service name */
+ int ipp_len, /* IPP TXT record length */
+ printer_len, /* LPD TXT record length */
+ printer_port; /* LPD port number */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int ret; /* Error code */
++ AvahiStringList *ipp_txt, /* IPP TXT record */
++ *printer_txt; /* LPD TXT record */
++ char name[AVAHI_LABEL_MAX], /* Service name */
++ fullsubtype[AVAHI_LABEL_MAX]; /* Full subtype */
++ char *regtype_copy, /* Writeable copy of reg type */
++ *subtype, /* Current service sub type */
++ *nextsubtype; /* Next service sub type */
++#endif /* HAVE_AVAHI */
++ char *nameptr; /* Pointer into name */
+ const char *regtype; /* Registration type */
+
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
+ !p->ipp_ref ? "new" : "update");
+-
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
++ !p->avahi_group ? "new" : "update");
++#endif /* HAVE_AVAHI */
+ /*
+ * If per-printer sharing was just disabled make sure we're not
+ * registered before returning.
+@@ -2686,12 +2840,36 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
+ if (p->info && strlen(p->info) > 0)
+ {
+ if (DNSSDComputerName)
+- snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
++ {
++ /*
++ * Make sure there is room for at least 15 characters of
++ * DNSSDComputerName.
++ */
++
++ assert(sizeof(name) >= 15 + 4);
++ nameptr = name + strlcpy(name, p->info,
++ sizeof(name) - 4 -
++ strnlen(DNSSDComputerName, 15));
++ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
++ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
++ }
+ else
+ strlcpy(name, p->info, sizeof(name));
+ }
+ else if (DNSSDComputerName)
+- snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
++ {
++ /*
++ * Make sure there is room for at least 15 characters of
++ * DNSSDComputerName.
++ */
++
++ assert(sizeof(name) >= 15 + 4);
++ nameptr = name + strlcpy(name, p->info,
++ sizeof(name) - 4 -
++ strnlen(DNSSDComputerName, 15));
++ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
++ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
++ }
+ else
+ strlcpy(name, p->name, sizeof(name));
+
+@@ -2712,6 +2890,7 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
+ * Register IPP and (optionally) LPD...
+ */
+
++#ifdef HAVE_DNSSD
+ ipp_len = 0; /* anti-compiler-warning-code */
+ ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
+
+@@ -2884,6 +3063,209 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
+
+ if (printer_txt)
+ free(printer_txt);
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (!AvahiCupsClient)
++ /*
++ * Client not running yet. The client callback will call us again later.
++ */
++ return;
++
++ ipp_txt = dnssdBuildTxtRecord(NULL, p, 0);
++ printer_txt = dnssdBuildTxtRecord(NULL, p, 1);
++ regtype = (p->type & CUPS_PRINTER_FAX) ? "_fax-ipp._tcp" : DNSSDRegType;
++
++ if (p->avahi_group && p->ipp_txt && ipp_txt &&
++ !avahi_string_list_equal (p->ipp_txt, ipp_txt))
++ {
++ /*
++ * Update the existing registration...
++ */
++
++ avahi_string_list_free (p->ipp_txt);
++
++ if (p->printer_txt)
++ avahi_string_list_free (p->printer_txt);
++
++ /*
++ * Update the service group entry.
++ */
++
++ regtype_copy = strdup (regtype);
++ subtype = strchr (regtype_copy, ',');
++ if (subtype)
++ *subtype = '\0';
++
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Updating TXT record for %s (%s)", name, regtype_copy);
++ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ regtype_copy,
++ NULL, ipp_txt);
++ free (regtype_copy);
++
++ if (ret < 0)
++ goto update_failed;
++
++ p->ipp_txt = ipp_txt;
++ ipp_txt = NULL;
++
++ if (BrowseLocalProtocols & BROWSE_LPD)
++ {
++ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ "_printer._tcp", NULL,
++ printer_txt);
++ if (ret < 0)
++ goto update_failed;
++
++ p->printer_txt = printer_txt;
++ printer_txt = NULL;
++ }
++
++ ret = avahi_entry_group_commit (p->avahi_group);
++ if (ret < 0)
++ {
++ update_failed:
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Failed to update TXT record for %s: %d",
++ name, ret);
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++ ipp_txt = p->ipp_txt;
++ p->ipp_txt = NULL;
++ }
++ }
++
++ if (!p->avahi_group)
++ {
++ /*
++ * Initial registration. Use the _fax subtype for fax queues...
++ */
++
++ p->avahi_group = avahi_entry_group_new (AvahiCupsClient,
++ avahi_entry_group_cb,
++ p);
++
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "Registering Avahi printer %s with name \"%s\" and "
++ "type \"%s\"", p->name, name, regtype);
++
++ if (!p->avahi_group)
++ {
++ ret = 0;
++ goto add_failed;
++ }
++
++ /*
++ * Add each service type (DNSSDRegType may contain several,
++ * separated by commas).
++ */
++
++ subtype = regtype_copy = strdup (regtype);
++ while (subtype && *subtype)
++ {
++ nextsubtype = strchr (subtype, ',');
++ if (nextsubtype)
++ *nextsubtype++ = '\0';
++
++ if (subtype == regtype_copy)
++ {
++ /*
++ * Main type entry.
++ */
++
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Adding TXT record for %s (%s)", name, regtype_copy);
++ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name, regtype_copy,
++ NULL, NULL,
++ DNSSDPort,
++ ipp_txt);
++ }
++ else
++ {
++ /*
++ * Sub-type entry.
++ */
++
++ snprintf (fullsubtype, sizeof(fullsubtype),
++ "%s._sub.%s", subtype, regtype_copy);
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Adding TXT record for %s (%s)", name, fullsubtype);
++ ret = avahi_entry_group_add_service_subtype (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ regtype_copy,
++ NULL, fullsubtype);
++ }
++
++ if (ret < 0)
++ {
++ free (regtype_copy);
++ goto add_failed;
++ }
++
++ subtype = nextsubtype;
++ }
++
++ free (regtype_copy);
++ p->ipp_txt = ipp_txt;
++ ipp_txt = NULL;
++
++ if (BrowseLocalProtocols & BROWSE_LPD)
++ {
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "Registering Avahi printer %s with name \"%s\" and "
++ "type \"_printer._tcp\"", p->name, name);
++
++ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ "_printer._tcp", NULL, NULL,
++ 515,
++ printer_txt);
++ if (ret < 0)
++ goto add_failed;
++
++ p->printer_txt = printer_txt;
++ printer_txt = NULL;
++ }
++
++ ret = avahi_entry_group_commit (p->avahi_group);
++
++ if (ret < 0)
++ {
++ add_failed:
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Failed to add Avahi entry for %s: %d",
++ name, ret);
++ if (p->avahi_group)
++ {
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++ }
++ ipp_txt = p->ipp_txt;
++ p->ipp_txt = NULL;
++ }
++ }
++
++ if (ipp_txt)
++ avahi_string_list_free (ipp_txt);
++
++ if (printer_txt)
++ avahi_string_list_free (printer_txt);
++#endif /* HAVE_AVAHI */
+ }
+
+
+@@ -2896,6 +3278,10 @@ dnssdStop(void)
+ {
+ cupsd_printer_t *p; /* Current printer */
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++#endif /* HAVE_DNSSD */
+
+ /*
+ * De-register the individual printers
+@@ -2906,6 +3292,7 @@ dnssdStop(void)
+ p = (cupsd_printer_t *)cupsArrayNext(Printers))
+ dnssdDeregisterPrinter(p);
+
++#ifdef HAVE_DNSSD
+ /*
+ * Shutdown the rest of the service refs...
+ */
+@@ -2926,14 +3313,17 @@ dnssdStop(void)
+
+ DNSServiceRefDeallocate(DNSSDRef);
+ DNSSDRef = NULL;
++#endif /* HAVE_DNSSD */
+
+ cupsArrayDelete(DNSSDPrinters);
+ DNSSDPrinters = NULL;
+
+ DNSSDPort = 0;
+ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'dnssdUpdate()' - Handle DNS-SD queries.
+ */
+@@ -2955,6 +3345,153 @@ dnssdUpdate(void)
+ #endif /* HAVE_DNSSD */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'avahiPackTxtRecord()' - Pack an array of key/value pairs into an
++ * AvahiStringList.
++ */
++
++static AvahiStringList * /* O - new string list */
++avahiPackTxtRecord(char *keyvalue[][2], /* I - Table of key value pairs */
++ int count) /* I - Number of items in table */
++{
++ AvahiStringList *strlst = NULL;
++ char **elements;
++ size_t len;
++ int i = 0;
++
++ elements = malloc ((1 + count) * sizeof (char *));
++ if (!elements)
++ goto cleanup;
++
++ for (i = 0; i < count; i++)
++ {
++ len = (1 + strlen (keyvalue[i][0]) +
++ (keyvalue[i][1] ? 1 + strlen (keyvalue[i][1]) : 1));
++ elements[i] = malloc (len * sizeof (char));
++ if (!elements[i])
++ goto cleanup;
++
++ snprintf (elements[i], len, "%s=%s", keyvalue[i][0], keyvalue[i][1]);
++ }
++
++ strlst = avahi_string_list_new_from_array ((const char **) elements, count);
++
++cleanup:
++ while (--i >= 0)
++ free (elements[i]);
++
++ free (elements);
++ return (strlst);
++}
++
++
++/*
++ * 'avahi_entry_group_cb()' - Avahi entry group callback function.
++ */
++static void
++avahi_entry_group_cb (AvahiEntryGroup *group,
++ AvahiEntryGroupState state,
++ void *userdata)
++{
++ char *name;
++
++ if (userdata)
++ name = ((cupsd_printer_t *) userdata)->reg_name;
++ else
++ name = "CUPS web interface";
++
++ switch (state)
++ {
++ case AVAHI_ENTRY_GROUP_UNCOMMITED:
++ case AVAHI_ENTRY_GROUP_REGISTERING:
++ break;
++
++ case AVAHI_ENTRY_GROUP_ESTABLISHED:
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Avahi entry group established for %s", name);
++ break;
++
++ default:
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Avahi entry group %s has state %d",
++ name, state);
++ break;
++ }
++}
++
++
++/*
++ * 'avahi_client_cb()' - Avahi client callback function.
++ */
++static void
++avahi_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *userdata)
++{
++ cupsd_printer_t *printer;
++ switch (state)
++ {
++ case AVAHI_CLIENT_S_RUNNING:
++ /*
++ * Avahi client started successfully.
++ */
++ AvahiCupsClient = client;
++ AvahiCupsClientConnecting = 0;
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started");
++
++ cupsdUpdateDNSSDName ();
++
++ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ printer;
++ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
++ if (Browsing && (BrowseLocalProtocols & BROWSE_DNSSD) &&
++ (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT |
++ CUPS_PRINTER_SCANNER))) && printer->shared)
++ dnssdRegisterPrinter (printer);
++
++ break;
++
++ case AVAHI_CLIENT_CONNECTING:
++ /*
++ * No Avahi daemon, client is waiting.
++ */
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting");
++ break;
++
++ case AVAHI_CLIENT_S_REGISTERING:
++ /*
++ * Not yet registered.
++ */
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client registering");
++ break;
++
++ case AVAHI_CLIENT_FAILURE:
++ /*
++ * Avahi client failed, close it to allow a clean restart.
++ */
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Avahi client failed, "
++ "closing client to allow a clean restart");
++
++ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ printer;
++ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
++ dnssdDeregisterPrinter (printer);
++
++ avahi_client_free(client);
++ AvahiCupsClientConnecting = 0;
++ AvahiCupsClient = NULL;
++
++ break;
++
++ default:
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client state: %d", state);
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * 'get_auth_info_required()' - Get the auth-info-required value to advertise.
+ */
+diff -up cups-1.5.0/scheduler/dirsvc.h.avahi-5-services cups-1.5.0/scheduler/dirsvc.h
+--- cups-1.5.0/scheduler/dirsvc.h.avahi-5-services 2011-03-21 02:12:14.000000000 +0000
++++ cups-1.5.0/scheduler/dirsvc.h 2011-10-19 11:53:32.138177721 +0100
+@@ -31,6 +31,10 @@
+ # endif /* HAVE_LDAP_SSL_H */
+ #endif /* HAVE_LDAP */
+
++#ifdef HAVE_AVAHI
++# include <avahi-client/publish.h>
++#endif /* HAVE_AVAHI */
++
+ /*
+ * Browse protocols...
+ */
+@@ -131,19 +135,22 @@ VAR int PollPipe VALUE(0);
+ VAR cupsd_statbuf_t *PollStatusBuffer VALUE(NULL);
+ /* Status buffer for pollers */
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ VAR char *DNSSDComputerName VALUE(NULL),
+ /* Computer/server name */
+ *DNSSDHostName VALUE(NULL),
+ /* Hostname */
+ *DNSSDRegType VALUE(NULL);
+ /* Bonjour registration type */
+-VAR cups_array_t *DNSSDAlias VALUE(NULL);
+- /* List of dynamic ServerAlias's */
+ VAR int DNSSDPort VALUE(0);
+ /* Port number to register */
+ VAR cups_array_t *DNSSDPrinters VALUE(NULL);
+ /* Printers we have registered */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++
++#ifdef HAVE_DNSSD
++VAR cups_array_t *DNSSDAlias VALUE(NULL);
++ /* List of dynamic ServerAlias's */
+ VAR DNSServiceRef DNSSDRef VALUE(NULL),
+ /* Master DNS-SD service reference */
+ WebIFRef VALUE(NULL),
+@@ -152,6 +159,17 @@ VAR DNSServiceRef DNSSDRef VALUE(NULL),
+ /* Remote printer browse reference */
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++VAR AvahiCupsPoll *AvahiCupsPollHandle VALUE(NULL);
++ /* AvahiCupsPoll object */
++VAR AvahiClient *AvahiCupsClient VALUE(NULL);
++ /* AvahiClient object */
++VAR int AvahiCupsClientConnecting VALUE(0);
++ /* Is AvahiClient object connecting? */
++VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL);
++ /* Web interface entry group */
++#endif /* HAVE_AVAHI */
++
+ #ifdef HAVE_LIBSLP
+ VAR SLPHandle BrowseSLPHandle VALUE(NULL);
+ /* SLP API handle */
+@@ -195,13 +213,14 @@ extern void cupsdRegisterPrinter(cupsd_p
+ extern void cupsdRestartPolling(void);
+ extern void cupsdSaveRemoteCache(void);
+ extern void cupsdSendBrowseList(void);
++extern void cupsdStartAvahiClient(void);
+ extern void cupsdStartBrowsing(void);
+ extern void cupsdStartPolling(void);
+ extern void cupsdStopBrowsing(void);
+ extern void cupsdStopPolling(void);
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ extern void cupsdUpdateDNSSDName(void);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ #ifdef HAVE_LDAP
+ extern void cupsdUpdateLDAPBrowse(void);
+ #endif /* HAVE_LDAP */
+diff -up cups-1.5.0/scheduler/ipp.c.avahi-5-services cups-1.5.0/scheduler/ipp.c
+--- cups-1.5.0/scheduler/ipp.c.avahi-5-services 2011-10-19 11:53:31.978180686 +0100
++++ cups-1.5.0/scheduler/ipp.c 2011-10-19 11:53:32.147177555 +0100
+@@ -6096,7 +6096,7 @@ copy_printer_attrs(
+ ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time",
+ ippTimeToDate(curtime));
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (!ra || cupsArrayFind(ra, "printer-dns-sd-name"))
+ {
+ if (printer->reg_name)
+@@ -6106,7 +6106,7 @@ copy_printer_attrs(
+ ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE,
+ "printer-dns-sd-name", 0);
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ if (!ra || cupsArrayFind(ra, "printer-error-policy"))
+ ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME,
+diff -up cups-1.5.0/scheduler/main.c.avahi-5-services cups-1.5.0/scheduler/main.c
+--- cups-1.5.0/scheduler/main.c.avahi-5-services 2011-10-19 11:53:32.101178406 +0100
++++ cups-1.5.0/scheduler/main.c 2011-10-19 11:53:32.151177479 +0100
+@@ -120,6 +120,10 @@ main(int argc, /* I - Number of comm
+ cupsd_listener_t *lis; /* Current listener */
+ time_t current_time, /* Current time */
+ activity, /* Client activity timer */
++#ifdef HAVE_AVAHI
++ avahi_client_time, /* Time for next Avahi client
++ check */
++#endif /* HAVE_AVAHI */
+ browse_time, /* Next browse send time */
+ senddoc_time, /* Send-Document time */
+ expire_time, /* Subscription expire time */
+@@ -672,6 +676,9 @@ main(int argc, /* I - Number of comm
+ */
+
+ current_time = time(NULL);
++#ifdef HAVE_AVAHI
++ avahi_client_time = current_time;
++#endif /* HAVE_AVAHI */
+ browse_time = current_time;
+ event_time = current_time;
+ expire_time = current_time;
+@@ -894,6 +901,16 @@ main(int argc, /* I - Number of comm
+ tmo = cupsdNextTimeout (&tmo_delay);
+ if (tmo && tmo_delay == 0)
+ cupsdRunTimeout (tmo);
++
++ /*
++ * Try to restart the Avahi client every 10 seconds if needed...
++ */
++
++ if ((current_time - avahi_client_time) >= 10)
++ {
++ avahi_client_time = current_time;
++ cupsdStartAvahiClient();
++ }
+ #endif /* HAVE_AVAHI */
+
+ #ifndef __APPLE__
+diff -up cups-1.5.0/scheduler/printers.c.avahi-5-services cups-1.5.0/scheduler/printers.c
+--- cups-1.5.0/scheduler/printers.c.avahi-5-services 2011-10-19 11:53:31.916181835 +0100
++++ cups-1.5.0/scheduler/printers.c 2011-10-19 11:53:32.156177388 +0100
+@@ -883,9 +883,9 @@ cupsdDeletePrinter(
+ cupsdClearString(&p->alert);
+ cupsdClearString(&p->alert_description);
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cupsdClearString(&p->pdl);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ cupsArrayDelete(p->filetypes);
+
+@@ -3787,7 +3787,7 @@ add_printer_formats(cupsd_printer_t *p)
+ attr->values[i].string.text = _cupsStrAlloc(mimetype);
+ }
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ {
+ char pdl[1024]; /* Buffer to build pdl list */
+ mime_filter_t *filter; /* MIME filter looping var */
+@@ -3843,7 +3843,7 @@ add_printer_formats(cupsd_printer_t *p)
+
+ cupsdSetString(&p->pdl, pdl);
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+diff -up cups-1.5.0/scheduler/printers.h.avahi-5-services cups-1.5.0/scheduler/printers.h
+--- cups-1.5.0/scheduler/printers.h.avahi-5-services 2011-03-18 18:42:46.000000000 +0000
++++ cups-1.5.0/scheduler/printers.h 2011-10-19 11:53:32.157177369 +0100
+@@ -16,6 +16,9 @@
+ #ifdef HAVE_DNSSD
+ # include <dns_sd.h>
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include "avahi.h"
++#endif /* HAVE_AVAHI */
+ #include <cups/pwg-private.h>
+
+
+@@ -95,16 +98,23 @@ struct cupsd_printer_s
+ time_t marker_time; /* Last time marker attributes were updated */
+ _ppd_cache_t *pc; /* PPD cache and mapping data */
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ char *reg_name, /* Name used for service registration */
+- *pdl, /* pdl value for TXT record */
+- *ipp_txt, /* IPP TXT record contents */
++ *pdl; /* pdl value for TXT record */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++#ifdef HAVE_DNSSD
++ char *ipp_txt, /* IPP TXT record contents */
+ *printer_txt; /* LPD TXT record contents */
+ int ipp_len, /* IPP TXT record length */
+ printer_len; /* LPD TXT record length */
+ DNSServiceRef ipp_ref, /* Reference for _ipp._tcp,_cups */
+ printer_ref; /* Reference for _printer._tcp */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ AvahiStringList *ipp_txt, /* IPP TXT record */
++ *printer_txt; /* LPD TXT record */
++ AvahiEntryGroup *avahi_group; /* Avahi entry group */
++#endif /* HAVE_AVAHI */
+ };
+
+
diff --git a/libre/cups-libre/cups-avahi.patch b/libre/cups-libre/cups-avahi.patch
deleted file mode 100644
index 47860ef97..000000000
--- a/libre/cups-libre/cups-avahi.patch
+++ /dev/null
@@ -1,3157 +0,0 @@
-Description: Avahi support
-Bug: http://www.cups.org/str.php?L3066
-Author: Tim Waugh
-Origin: git clone http://twaugh.fedorapeople.org/cups-avahi.git (Aug 11, 2011)
-
---- a/backend/dnssd.c
-+++ b/backend/dnssd.c
-@@ -15,14 +15,21 @@
- *
- * Contents:
- *
-+ * next_txt_record() - Get next TXT record from a cups_txt_records_t.
-+ * parse_txt_record_pair() - Read key/value pair in cups_txt_records_t.
- * main() - Browse for printers.
- * browse_callback() - Browse devices.
- * browse_local_callback() - Browse local devices.
- * compare_devices() - Compare two devices.
- * exec_backend() - Execute the backend that corresponds to the
- * resolved service name.
-+ * device_type() - Get DNS-SD type enumeration from string.
- * get_device() - Create or update a device.
- * query_callback() - Process query data.
-+ * avahi_client_callback() - Avahi client callback function.
-+ * avahi_query_callback() - Avahi query callback function.
-+ * avahi_browse_callback() - Avahi browse callback function.
-+ * find_device() - Find a device from its name and domain.
- * sigterm_handler() - Handle termination signals...
- * unquote() - Unquote a name string.
- */
-@@ -33,7 +40,18 @@
-
- #include "backend-private.h"
- #include <cups/array.h>
--#include <dns_sd.h>
-+#ifdef HAVE_DNSSD
-+# include <dns_sd.h>
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/lookup.h>
-+# include <avahi-common/simple-watch.h>
-+# include <avahi-common/domain.h>
-+# include <avahi-common/error.h>
-+# include <avahi-common/malloc.h>
-+#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -53,7 +71,12 @@
-
- typedef struct
- {
-+#ifdef HAVE_DNSSD
- DNSServiceRef ref; /* Service reference for resolve */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int resolved; /* Did we resolve the device? */
-+#endif /* HAVE_AVAHI */
- char *name, /* Service name */
- *domain, /* Domain name */
- *fullName, /* Full name */
-@@ -65,6 +88,20 @@
- sent; /* Did we list the device? */
- } cups_device_t;
-
-+typedef struct
-+{
-+ char key[256];
-+ char value[256];
-+
-+#ifdef HAVE_DNSSD
-+ const uint8_t *data;
-+ const uint8_t *datanext;
-+ const uint8_t *dataend;
-+#else /* HAVE_AVAHI */
-+ AvahiStringList *txt;
-+#endif /* HAVE_DNSSD */
-+} cups_txt_records_t;
-+
-
- /*
- * Local globals...
-@@ -78,6 +115,7 @@
- * Local functions...
- */
-
-+#ifdef HAVE_DNSSD
- static void browse_callback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
-@@ -93,12 +131,6 @@
- const char *regtype,
- const char *replyDomain,
- void *context);
--static int compare_devices(cups_device_t *a, cups_device_t *b);
--static void exec_backend(char **argv);
--static cups_device_t *get_device(cups_array_t *devices,
-- const char *serviceName,
-- const char *regtype,
-- const char *replyDomain);
- static void query_callback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
-@@ -107,9 +139,118 @@
- uint16_t rrclass, uint16_t rdlen,
- const void *rdata, uint32_t ttl,
- void *context);
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+static void avahi_client_callback (AvahiClient *client,
-+ AvahiClientState state,
-+ void *context);
-+static void avahi_browse_callback (AvahiServiceBrowser *browser,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiBrowserEvent event,
-+ const char *serviceName,
-+ const char *regtype,
-+ const char *replyDomain,
-+ AvahiLookupResultFlags flags,
-+ void *context);
-+#endif /* HAVE_AVAHI */
-+
-+static cups_device_t * find_device (cups_array_t *devices,
-+ cups_txt_records_t *txt,
-+ cups_device_t *dkey);
-+static int compare_devices(cups_device_t *a, cups_device_t *b);
-+static void exec_backend(char **argv);
-+static cups_device_t *get_device(cups_array_t *devices,
-+ const char *serviceName,
-+ const char *regtype,
-+ const char *replyDomain);
- static void sigterm_handler(int sig);
- static void unquote(char *dst, const char *src, size_t dstsize);
-
-+#ifdef HAVE_AVAHI
-+static AvahiSimplePoll *simple_poll = NULL;
-+static int avahi_got_callback;
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * 'next_txt_record()' - Get next TXT record from a cups_txt_records_t.
-+ */
-+
-+static cups_txt_records_t *
-+next_txt_record (cups_txt_records_t *txt)
-+{
-+#ifdef HAVE_DNSSD
-+ txt->data = txt->datanext;
-+#else /* HAVE_AVAHI */
-+ txt->txt = avahi_string_list_get_next (txt->txt);
-+ if (txt->txt == NULL)
-+ return NULL;
-+#endif /* HAVE_DNSSD */
-+
-+ return txt;
-+}
-+
-+
-+/*
-+ * 'parse_txt_record_pair()' - Read key/value pair in cups_txt_records_t.
-+ */
-+
-+static int
-+parse_txt_record_pair (cups_txt_records_t *txt)
-+{
-+#ifdef HAVE_DNSSD
-+ uint8_t datalen;
-+ uint8_t *data = txt->data;
-+ char *ptr;
-+
-+ /*
-+ * Read a key/value pair starting with an 8-bit length. Since the
-+ * length is 8 bits and the size of the key/value buffers is 256, we
-+ * don't need to check for overflow...
-+ */
-+
-+ datalen = *data++;
-+ if (!datalen || (data + datalen) >= txt->dataend)
-+ return NULL;
-+ txt->datanext = data + datalen;
-+
-+ for (ptr = txt->key; data < txt->datanext && *data != '='; data ++)
-+ *ptr++ = *data;
-+ *ptr = '\0';
-+
-+ if (data < txt->datanext && *data == '=')
-+ {
-+ data++;
-+
-+ if (data < datanext)
-+ memcpy (txt->value, data, txt->datanext - data);
-+ value[txt->datanext - data] = '\0';
-+ }
-+ else
-+ return 1;
-+#else /* HAVE_AVAHI */
-+ char *key, *value;
-+ size_t len;
-+ avahi_string_list_get_pair (txt->txt, &key, &value, &len);
-+ if (len > sizeof (txt->value) - 1)
-+ len = sizeof (txt->value) - 1;
-+
-+ memcpy (txt->value, value, len);
-+ txt->value[len] = '\0';
-+ len = strlen (key);
-+ if (len > sizeof (txt->key) - 1)
-+ len = sizeof (txt->key) - 1;
-+
-+ memcpy (txt->key, key, len);
-+ txt->key[len] = '\0';
-+ avahi_free (key);
-+ avahi_free (value);
-+#endif /* HAVE_AVAHI */
-+
-+ return 0;
-+}
-+
-
- /*
- * 'main()' - Browse for printers.
-@@ -120,6 +261,13 @@
- char *argv[]) /* I - Command-line arguments */
- {
- const char *name; /* Backend name */
-+ cups_array_t *devices; /* Device array */
-+ cups_device_t *device; /* Current device */
-+ char uriName[1024]; /* Unquoted fullName for URI */
-+#ifdef HAVE_DNSSD
-+ int fd; /* Main file descriptor */
-+ fd_set input; /* Input set for select() */
-+ struct timeval timeout; /* Timeout for select() */
- DNSServiceRef main_ref, /* Main service reference */
- fax_ipp_ref, /* IPP fax service reference */
- ipp_ref, /* IPP service reference */
-@@ -133,12 +281,11 @@
- pdl_datastream_ref, /* AppSocket service reference */
- printer_ref, /* LPD service reference */
- riousbprint_ref; /* Remote IO service reference */
-- int fd; /* Main file descriptor */
-- fd_set input; /* Input set for select() */
-- struct timeval timeout; /* Timeout for select() */
-- cups_array_t *devices; /* Device array */
-- cups_device_t *device; /* Current device */
-- char uriName[1024]; /* Unquoted fullName for URI */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ AvahiClient *client;
-+ int error;
-+#endif /* HAVE_AVAHI */
- #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
- struct sigaction action; /* Actions for POSIX signals */
- #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
-@@ -198,6 +345,49 @@
- * Browse for different kinds of printers...
- */
-
-+#ifdef HAVE_AVAHI
-+ if ((simple_poll = avahi_simple_poll_new ()) == NULL)
-+ {
-+ perror ("ERROR: Unable to create avahi simple poll object");
-+ return (1);
-+ }
-+
-+ client = avahi_client_new (avahi_simple_poll_get (simple_poll),
-+ 0, avahi_client_callback, NULL, &error);
-+ if (!client)
-+ {
-+ perror ("DEBUG: Unable to create avahi client");
-+ return (0);
-+ }
-+
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_fax-ipp._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_ipp._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_ipp-tls._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_pdl-datastream._tcp",
-+ NULL, 0,
-+ avahi_browse_callback,
-+ devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_printer._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ "_riousbprint._tcp", NULL, 0,
-+ avahi_browse_callback, devices);
-+#endif /* HAVE_AVAHI */
-+#ifdef HAVE_DNSSD
- if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
- {
- perror("ERROR: Unable to create service connection");
-@@ -258,6 +448,7 @@
- riousbprint_ref = main_ref;
- DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
- "_riousbprint._tcp", NULL, browse_callback, devices);
-+#endif /* HAVE_DNSSD */
-
- /*
- * Loop until we are killed...
-@@ -265,6 +456,9 @@
-
- while (!job_canceled)
- {
-+ int announce = 0;
-+
-+#ifdef HAVE_DNSSD
- FD_ZERO(&input);
- FD_SET(fd, &input);
-
-@@ -284,11 +478,35 @@
- }
- else
- {
-+ announce = 1;
-+ }
-+#else /* HAVE_AVAHI */
-+ int r;
-+ avahi_got_callback = 0;
-+ r = avahi_simple_poll_iterate (simple_poll, 1);
-+ if (r != 0 && r != EINTR)
-+ {
-+ /*
-+ * We've been told to exit the loop. Perhaps the connection to
-+ * avahi failed.
-+ */
-+
-+ break;
-+ }
-+
-+ if (avahi_got_callback)
-+ announce = 1;
-+#endif /* HAVE_DNSSD */
-+
-+ if (announce)
-+ {
- /*
- * Announce any devices we've found...
- */
-
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType status; /* DNS query status */
-+#endif /* HAVE_DNSSD */
- cups_device_t *best; /* Best matching device */
- char device_uri[1024]; /* Device URI */
- int count; /* Number of queries */
-@@ -302,6 +520,7 @@
- if (device->sent)
- sent ++;
-
-+#ifdef HAVE_DNSSD
- if (device->ref)
- count ++;
-
-@@ -333,14 +552,23 @@
- count ++;
- }
- }
-- else if (!device->sent)
-+ else
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (!device->resolved)
-+ continue;
-+ else
-+#endif /* HAVE_AVAHI */
-+ if (!device->sent)
- {
-+#ifdef HAVE_DNSSD
- /*
- * Got the TXT records, now report the device...
- */
-
- DNSServiceRefDeallocate(device->ref);
- device->ref = 0;
-+#endif /* HAVE_DNSSD */
-
- if (!best)
- best = device;
-@@ -401,6 +629,7 @@
- }
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'browse_callback()' - Browse devices.
- */
-@@ -489,6 +718,7 @@
- device->fullName);
- device->sent = 1;
- }
-+#endif /* HAVE_DNSSD */
-
-
- /*
-@@ -569,6 +799,41 @@
-
-
- /*
-+ * 'device_type()' - Get DNS-SD type enumeration from string.
-+ */
-+
-+static int
-+device_type (const char *regtype)
-+{
-+#ifdef HAVE_AVAHI
-+ if (!strcmp(regtype, "_ipp._tcp"))
-+ return (CUPS_DEVICE_IPP);
-+ else if (!strcmp(regtype, "_ipps._tcp") ||
-+ !strcmp(regtype, "_ipp-tls._tcp"))
-+ return (CUPS_DEVICE_IPPS);
-+ else if (!strcmp(regtype, "_fax-ipp._tcp"))
-+ return (CUPS_DEVICE_FAX_IPP);
-+ else if (!strcmp(regtype, "_printer._tcp"))
-+ return (CUPS_DEVICE_PDL_DATASTREAM);
-+#else
-+ if (!strcmp(regtype, "_ipp._tcp."))
-+ return (CUPS_DEVICE_IPP);
-+ else if (!strcmp(regtype, "_ipps._tcp.") ||
-+ !strcmp(regtype, "_ipp-tls._tcp."))
-+ return (CUPS_DEVICE_IPPS);
-+ else if (!strcmp(regtype, "_fax-ipp._tcp."))
-+ return (CUPS_DEVICE_FAX_IPP);
-+ else if (!strcmp(regtype, "_printer._tcp."))
-+ return (CUPS_DEVICE_PRINTER);
-+ else if (!strcmp(regtype, "_pdl-datastream._tcp."))
-+ return (CUPS_DEVICE_PDL_DATASTREAM);
-+#endif /* HAVE_AVAHI */
-+
-+ return (CUPS_DEVICE_RIOUSBPRINT);
-+}
-+
-+
-+/*
- * 'get_device()' - Create or update a device.
- */
-
-@@ -589,20 +854,7 @@
- */
-
- key.name = (char *)serviceName;
--
-- if (!strcmp(regtype, "_ipp._tcp."))
-- key.type = CUPS_DEVICE_IPP;
-- else if (!strcmp(regtype, "_ipps._tcp.") ||
-- !strcmp(regtype, "_ipp-tls._tcp."))
-- key.type = CUPS_DEVICE_IPPS;
-- else if (!strcmp(regtype, "_fax-ipp._tcp."))
-- key.type = CUPS_DEVICE_FAX_IPP;
-- else if (!strcmp(regtype, "_printer._tcp."))
-- key.type = CUPS_DEVICE_PRINTER;
-- else if (!strcmp(regtype, "_pdl-datastream._tcp."))
-- key.type = CUPS_DEVICE_PDL_DATASTREAM;
-- else
-- key.type = CUPS_DEVICE_RIOUSBPRINT;
-+ key.type = device_type (regtype);
-
- for (device = cupsArrayFind(devices, &key);
- device;
-@@ -622,8 +874,14 @@
- free(device->domain);
- device->domain = strdup(replyDomain);
-
-+#ifdef HAVE_DNSSD
- DNSServiceConstructFullName(fullName, device->name, regtype,
- replyDomain);
-+#else /* HAVE_AVAHI */
-+ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
-+ serviceName, regtype, replyDomain);
-+#endif /* HAVE_DNSSD */
-+
- free(device->fullName);
- device->fullName = strdup(fullName);
- }
-@@ -643,6 +901,9 @@
- device->domain = strdup(replyDomain);
- device->type = key.type;
- device->priority = 50;
-+#ifdef HAVE_AVAHI
-+ device->resolved = 0;
-+#endif /* HAVE_AVAHI */
-
- cupsArrayAdd(devices, device);
-
-@@ -650,13 +911,20 @@
- * Set the "full name" of this service, which is used for queries...
- */
-
-+#ifdef HAVE_DNSSD
- DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
-+#else /* HAVE_AVAHI */
-+ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
-+ serviceName, regtype, replyDomain);
-+#endif /* HAVE_DNSSD */
-+
- device->fullName = strdup(fullName);
-
- return (device);
- }
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'query_callback()' - Process query data.
- */
-@@ -680,7 +948,7 @@
- *ptr; /* Pointer into string */
- cups_device_t dkey, /* Search key */
- *device; /* Device */
--
-+ cups_txt_records_t txt;
-
- fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
- "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
-@@ -714,94 +982,233 @@
- if ((ptr = strstr(name, "._")) != NULL)
- *ptr = '\0';
-
-- if (strstr(fullName, "_ipp._tcp."))
-- dkey.type = CUPS_DEVICE_IPP;
-- else if (strstr(fullName, "_ipps._tcp.") ||
-- strstr(fullName, "_ipp-tls._tcp."))
-- dkey.type = CUPS_DEVICE_IPPS;
-- else if (strstr(fullName, "_fax-ipp._tcp."))
-- dkey.type = CUPS_DEVICE_FAX_IPP;
-- else if (strstr(fullName, "_printer._tcp."))
-- dkey.type = CUPS_DEVICE_PRINTER;
-- else if (strstr(fullName, "_pdl-datastream._tcp."))
-- dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
-+ dkey.type = device_type (fullName);
-+
-+ txt.data = rdata;
-+ txt.dataend = rdata + rdlen;
-+ device = find_device ((cups_array_t *) context, &txt, &dkey);
-+ if (!device)
-+ fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
-+}
-+#endif /* HAVE_DNSSD */
-+
-+
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahi_client_callback()' - Avahi client callback function.
-+ */
-+
-+static void
-+avahi_client_callback(AvahiClient *client,
-+ AvahiClientState state,
-+ void *context)
-+{
-+ /*
-+ * If the connection drops, quit.
-+ */
-+
-+ if (state == AVAHI_CLIENT_FAILURE)
-+ {
-+ fprintf (stderr, "ERROR: Avahi connection failed\n");
-+ avahi_simple_poll_quit (simple_poll);
-+ }
-+}
-+
-+
-+/*
-+ * 'avahi_query_callback()' - Avahi query callback function.
-+ */
-+
-+static void
-+avahi_query_callback(AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ AvahiClient *client;
-+ cups_device_t key,
-+ *device;
-+ char uqname[1024],
-+ *ptr;
-+ cups_txt_records_t txtr;
-+
-+ client = avahi_service_resolver_get_client (resolver);
-+ if (event != AVAHI_RESOLVER_FOUND)
-+ {
-+ if (event == AVAHI_RESOLVER_FAILURE)
-+ {
-+ fprintf (stderr, "ERROR: %s\n",
-+ avahi_strerror (avahi_client_errno (client)));
-+ }
-+
-+ avahi_service_resolver_free (resolver);
-+ return;
-+ }
-+
-+ /*
-+ * Set search key for device.
-+ */
-+
-+ key.name = uqname;
-+ unquote (uqname, name, sizeof (uqname));
-+ if ((ptr = strstr(name, "._")) != NULL)
-+ *ptr = '\0';
-+
-+ key.domain = (char *) domain;
-+ key.type = device_type (type);
-+
-+ /*
-+ * Find the device and the the TXT information.
-+ */
-+
-+ txtr.txt = txt;
-+ device = find_device ((cups_array_t *) context, &txtr, &key);
-+ if (device)
-+ {
-+ /*
-+ * Let the main loop know to announce the device.
-+ */
-+
-+ device->resolved = 1;
-+ avahi_got_callback = 1;
-+ }
- else
-- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
-+ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
-+
-+ avahi_service_resolver_free (resolver);
-+}
-+
-+
-+/*
-+ * 'avahi_browse_callback()' - Avahi browse callback function.
-+ */
-+
-+static void
-+avahi_browse_callback(AvahiServiceBrowser *browser,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiBrowserEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ AvahiClient *client = avahi_service_browser_get_client (browser);
-+
-+ switch (event)
-+ {
-+ case AVAHI_BROWSER_FAILURE:
-+ fprintf (stderr, "ERROR: %s\n",
-+ avahi_strerror (avahi_client_errno (client)));
-+ avahi_simple_poll_quit (simple_poll);
-+ return;
-+
-+ case AVAHI_BROWSER_NEW:
-+ /*
-+ * This object is new on the network.
-+ */
-+
-+ if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
-+ {
-+ /*
-+ * This comes from the local machine so ignore it.
-+ */
-+
-+ fprintf (stderr, "DEBUG: ignoring local service %s\n", name);
-+ }
-+ else
-+ {
-+ /*
-+ * Create a device entry for it if it doesn't yet exist.
-+ */
-+
-+ get_device ((cups_array_t *)context, name, type, domain);
-+
-+ /*
-+ * Now look for a TXT entry.
-+ */
-+
-+ if (avahi_service_resolver_new (client, interface, protocol,
-+ name, type, domain,
-+ AVAHI_PROTO_UNSPEC, 0,
-+ avahi_query_callback, context) == NULL)
-+ {
-+ fprintf (stderr, "ERROR: failed to resolve service %s: %s\n",
-+ name, avahi_strerror (avahi_client_errno (client)));
-+ }
-+ }
-+
-+ break;
-+
-+ case AVAHI_BROWSER_REMOVE:
-+ case AVAHI_BROWSER_ALL_FOR_NOW:
-+ case AVAHI_BROWSER_CACHE_EXHAUSTED:
-+ break;
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-
-- for (device = cupsArrayFind(devices, &dkey);
-+/*
-+ * 'find_device()' - Find a device from its name and domain.
-+ */
-+
-+static cups_device_t *
-+find_device (cups_array_t *devices,
-+ cups_txt_records_t *txt,
-+ cups_device_t *dkey)
-+{
-+ cups_device_t *device;
-+ char *ptr;
-+
-+ for (device = cupsArrayFind(devices, dkey);
- device;
- device = cupsArrayNext(devices))
- {
-- if (_cups_strcasecmp(device->name, dkey.name) ||
-- _cups_strcasecmp(device->domain, dkey.domain))
-+ if (_cups_strcasecmp(device->name, dkey->name) ||
-+ _cups_strcasecmp(device->domain, dkey->domain))
- {
- device = NULL;
- break;
- }
-- else if (device->type == dkey.type)
-+ else if (device->type == dkey->type)
- {
- /*
- * Found it, pull out the priority and make and model from the TXT
- * record and save it...
- */
-
-- const uint8_t *data, /* Pointer into data */
-- *datanext, /* Next key/value pair */
-- *dataend; /* End of entire TXT record */
-- uint8_t datalen; /* Length of current key/value pair */
-- char key[256], /* Key string */
-- value[256], /* Value string */
-- make_and_model[512],
-+ char make_and_model[512],
- /* Manufacturer and model */
- model[256], /* Model */
-- device_id[2048];/* 1284 device ID */
--
-+ device_id[2048]; /* 1284 device ID */
-
- device_id[0] = '\0';
- make_and_model[0] = '\0';
-
- strcpy(model, "Unknown");
-
-- for (data = rdata, dataend = data + rdlen;
-- data < dataend;
-- data = datanext)
-+ for (;;)
- {
-- /*
-- * Read a key/value pair starting with an 8-bit length. Since the
-- * length is 8 bits and the size of the key/value buffers is 256, we
-- * don't need to check for overflow...
-- */
--
-- datalen = *data++;
--
-- if (!datalen || (data + datalen) >= dataend)
-- break;
--
-- datanext = data + datalen;
--
-- for (ptr = key; data < datanext && *data != '='; data ++)
-- *ptr++ = *data;
-- *ptr = '\0';
-+ char *key;
-+ char *value;
-
-- if (data < datanext && *data == '=')
-- {
-- data ++;
--
-- if (data < datanext)
-- memcpy(value, data, datanext - data);
-- value[datanext - data] = '\0';
-+ if (parse_txt_record_pair (txt))
-+ goto next;
-
-- fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
-- key, value);
-- }
-- else
-- {
-- fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
-- key);
-- continue;
-- }
--
-- if (!_cups_strncasecmp(key, "usb_", 4))
-+ key = txt->key;
-+ value = txt->value;
-+ if (!strncasecmp(key, "usb_", 4))
- {
- /*
- * Add USB device ID information...
-@@ -856,6 +1263,10 @@
- if (device->type == CUPS_DEVICE_PRINTER)
- device->sent = 1;
- }
-+
-+ next:
-+ if (next_txt_record (txt) == NULL)
-+ break;
- }
-
- if (device->device_id)
-@@ -905,11 +1316,9 @@
- }
- }
-
-- if (!device)
-- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
-+ return device;
- }
-
--
- /*
- * 'sigterm_handler()' - Handle termination signals...
- */
---- a/config-scripts/cups-dnssd.m4
-+++ b/config-scripts/cups-dnssd.m4
-@@ -23,6 +23,21 @@
- DNSSDLIBS=""
- DNSSD_BACKEND=""
-
-+AC_ARG_ENABLE(avahi, [ --enable-avahi turn on DNS Service Discovery support, default=no],
-+ [if test x$enable_avahi = xyes; then
-+ AC_MSG_CHECKING(for Avahi)
-+ if $PKGCONFIG --exists avahi-client; then
-+ AC_MSG_RESULT(yes)
-+ CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
-+ DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
-+ DNSSD_BACKEND="dnssd"
-+ AC_DEFINE(HAVE_AVAHI)
-+ enable_dnssd=no
-+ else
-+ AC_MSG_RESULT(no)
-+ fi
-+ fi])
-+
- if test x$enable_dnssd != xno; then
- AC_CHECK_HEADER(dns_sd.h, [
- case "$uname" in
---- a/config.h.in
-+++ b/config.h.in
-@@ -390,6 +390,13 @@
-
-
- /*
-+ * Do we have Avahi for DNS Service Discovery?
-+ */
-+
-+#undef HAVE_AVAHI
-+
-+
-+/*
- * Do we have <sys/ioctl.h>?
- */
-
---- a/cups/http-support.c
-+++ b/cups/http-support.c
-@@ -43,6 +43,10 @@
- * http_copy_decode() - Copy and decode a URI.
- * http_copy_encode() - Copy and encode a URI.
- * http_resolve_cb() - Build a device URI for the given service name.
-+ * avahi_resolve_uri_client_cb()
-+ * - Avahi client callback for resolving URI.
-+ * avahi_resolve_uri_resolver_cb()
-+ * - Avahi resolver callback for resolving URI.
- */
-
- /*
-@@ -60,6 +64,11 @@
- # include <sys/select.h>
- # endif /* WIN32 */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/lookup.h>
-+# include <avahi-common/simple-watch.h>
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -127,6 +136,24 @@
- void *context);
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+static void avahi_resolve_uri_client_cb(AvahiClient *client,
-+ AvahiClientState state,
-+ void *simple_poll);
-+static void avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context);
-+#endif /* HAVE_AVAHI */
-
- /*
- * 'httpAssembleURI()' - Assemble a uniform resource identifier from its
-@@ -1431,6 +1458,9 @@
-
- if (strstr(hostname, "._tcp"))
- {
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ char *regtype, /* Pointer to type in hostname */
-+ *domain; /* Pointer to domain in hostname */
- #ifdef HAVE_DNSSD
- # ifdef WIN32
- # pragma comment(lib, "dnssd.lib")
-@@ -1449,6 +1479,17 @@
- fd_set input_set; /* Input set for select() */
- struct timeval stimeout; /* Timeout value for select() */
- #endif /* HAVE_POLL */
-+#else /* HAVE_AVAHI */
-+ AvahiSimplePoll *simple_poll;
-+ AvahiClient *client;
-+ int error;
-+ struct
-+ {
-+ AvahiSimplePoll *poll;
-+ _http_uribuf_t uribuf;
-+ } user_data;
-+#endif /* HAVE_DNSSD */
-+
-
- if (options & _HTTP_RESOLVE_STDERR)
- fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
-@@ -1485,9 +1526,16 @@
- if (domain)
- *domain++ = '\0';
-
-+#ifdef HAVE_DNSSD
- uribuf.buffer = resolved_uri;
- uribuf.bufsize = resolved_size;
- uribuf.options = options;
-+#else
-+ user_data.uribuf.buffer = resolved_uri;
-+ user_data.uribuf.bufsize = resolved_size;
-+ user_data.uribuf.options = options;
-+#endif
-+
- resolved_uri[0] = '\0';
-
- DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
-@@ -1501,6 +1549,7 @@
-
- uri = NULL;
-
-+#ifdef HAVE_DNSSD
- if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
- {
- localref = ref;
-@@ -1608,6 +1657,36 @@
-
- DNSServiceRefDeallocate(ref);
- }
-+#else /* HAVE_AVAHI */
-+ if ((simple_poll = avahi_simple_poll_new ()) != NULL)
-+ {
-+ if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll),
-+ 0, avahi_resolve_uri_client_cb,
-+ &simple_poll, &error)) != NULL)
-+ {
-+ user_data.poll = simple_poll;
-+ if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC, hostname,
-+ regtype, domain, AVAHI_PROTO_UNSPEC, 0,
-+ avahi_resolve_uri_resolver_cb,
-+ &user_data) != NULL)
-+ {
-+ avahi_simple_poll_loop (simple_poll);
-+
-+ /*
-+ * Collect the result.
-+ */
-+
-+ if (resolved_uri[0])
-+ uri = resolved_uri;
-+ }
-+
-+ avahi_client_free (client);
-+ }
-+
-+ avahi_simple_poll_free (simple_poll);
-+ }
-+#endif /* HAVE_DNSSD */
-
- if (options & _HTTP_RESOLVE_STDERR)
- {
-@@ -1619,13 +1698,13 @@
- fputs("STATE: -connecting-to-device,offline-report\n", stderr);
- }
-
--#else
-+#else /* HAVE_DNSSD || HAVE_AVAHI */
- /*
- * No DNS-SD support...
- */
-
- uri = NULL;
--#endif /* HAVE_DNSSD */
-+#endif /* HAVE_DNSSD || HAVE_AVAHI */
-
- if ((options & _HTTP_RESOLVE_STDERR) && !uri)
- _cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
-@@ -1895,6 +1974,116 @@
- #endif /* HAVE_DNSSD */
-
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
-+ */
-+
-+static void
-+avahi_resolve_uri_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *simple_poll)
-+{
-+ DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, "
-+ "simple_poll=%p)\n", client, state, simple_poll));
-+
-+ /*
-+ * If the connection drops, quit.
-+ */
-+
-+ if (state == AVAHI_CLIENT_FAILURE)
-+ avahi_simple_poll_quit (simple_poll);
-+}
-+
-+
-+/*
-+ * 'avahi_resolve_uri_resolver_cb()' - Avahi resolver callback for resolving
-+ * URI.
-+ */
-+
-+static void
-+avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver,
-+ AvahiIfIndex interface,
-+ AvahiProtocol protocol,
-+ AvahiResolverEvent event,
-+ const char *name,
-+ const char *type,
-+ const char *domain,
-+ const char *host_name,
-+ const AvahiAddress *address,
-+ uint16_t port,
-+ AvahiStringList *txt,
-+ AvahiLookupResultFlags flags,
-+ void *context)
-+{
-+ const char *scheme; /* URI scheme */
-+ char rp[256]; /* Remote printer */
-+ AvahiStringList *pair;
-+ char *value;
-+ size_t valueLen = 0;
-+ char addr[AVAHI_ADDRESS_STR_MAX];
-+ struct
-+ {
-+ AvahiSimplePoll *poll;
-+ _http_uribuf_t uribuf;
-+ } *poll_uribuf = context;
-+
-+ DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, "
-+ "interface=%d, protocol=%d, event=%d, name=\"%s\", "
-+ "type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, "
-+ "port=%d, txt=%p, flags=%d, context=%p)\n",
-+ resolver, interface, protocol, event, name, type, domain,
-+ host_name, address, port, txt, flags, context));
-+
-+ if (event != AVAHI_RESOLVER_FOUND)
-+ {
-+ avahi_service_resolver_free (resolver);
-+ avahi_simple_poll_quit (poll_uribuf->poll);
-+ return;
-+ }
-+
-+ /*
-+ * Figure out the scheme from the full name...
-+ */
-+
-+ if (strstr(type, "_ipp."))
-+ scheme = "ipp";
-+ else if (strstr(type, "_printer."))
-+ scheme = "lpd";
-+ else if (strstr(type, "_pdl-datastream."))
-+ scheme = "socket";
-+ else
-+ scheme = "riousbprint";
-+
-+ /*
-+ * Extract the "remote printer key from the TXT record...
-+ */
-+
-+ if ((pair = avahi_string_list_find (txt, "rp")) != NULL)
-+ {
-+ avahi_string_list_get_pair (pair, NULL, &value, &valueLen);
-+ rp[0] = '/';
-+ memcpy (rp + 1, value, valueLen);
-+ rp[valueLen + 1] = '\0';
-+ }
-+ else
-+ rp[0] = '\0';
-+
-+ /*
-+ * Assemble the final device URI...
-+ */
-+
-+ avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address);
-+ httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer,
-+ poll_uribuf->uribuf.bufsize, scheme, NULL,
-+ addr, port, rp);
-+ DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n",
-+ poll_uribuf->uribuf.buffer));
-+ avahi_simple_poll_quit (poll_uribuf->poll);
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
- /*
- * End of "$Id: http-support.c 9820 2011-06-10 22:06:26Z mike $".
- */
---- a/scheduler/Makefile
-+++ b/scheduler/Makefile
-@@ -17,6 +17,7 @@
-
- CUPSDOBJS = \
- auth.o \
-+ avahi.o \
- banners.o \
- cert.o \
- classes.o \
-@@ -39,7 +40,8 @@
- server.o \
- statbuf.o \
- subscriptions.o \
-- sysman.o
-+ sysman.o \
-+ timeout.o
- LIBOBJS = \
- filter.o \
- mime.o \
---- /dev/null
-+++ b/scheduler/avahi.c
-@@ -0,0 +1,445 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Avahi poll implementation for the CUPS scheduler.
-+ *
-+ * Copyright (C) 2010 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Distribution and use rights are outlined in the file "LICENSE.txt"
-+ * "LICENSE" which should have been included with this file. If this
-+ * file is missing or damaged, see the license at "http://www.cups.org/".
-+ *
-+ * Contents:
-+ *
-+ * watch_read_cb - Read callback for file descriptor
-+ * watch_write_cb - Write callback for file descriptor
-+ * watched_fd_add_select() - Call cupsdAddSelect() as needed
-+ * watch_new() - Create a new file descriptor watch
-+ * watch_free() - Free a file descriptor watch
-+ * watch_update() - Update watched events for a file descriptor
-+ * watch_get_events() - Get events that happened for a file descriptor
-+ * timeout_cb() - Run a timed Avahi callback
-+ * timeout_new() - Set a wakeup time
-+ * timeout_update() - Update the expiration time for a timeout
-+ * timeout_free() - Free a timeout
-+ * compare_watched_fds() - Compare watched file descriptors for array sorting
-+ * compare_timeouts() - Compare timeouts for array sorting
-+ * avahi_cups_poll_new() - Create a new Avahi main loop object for CUPS
-+ * avahi_cups_poll_free() - Free an Avahi main loop object for CUPS
-+ * avahi_cups_poll_get() - Get the abstract poll API structure
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI /* Applies to entire file... */
-+
-+/*
-+ * Include necessary headers...
-+ */
-+
-+#include "cupsd.h"
-+
-+#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
-+# include <malloc.h>
-+#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/timeval.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+typedef struct
-+{
-+ AvahiCupsPoll *cups_poll;
-+
-+ int fd;
-+ AvahiWatchEvent occurred;
-+ cups_array_t *watches;
-+} cupsd_watched_fd_t;
-+
-+struct AvahiWatch
-+{
-+ cupsd_watched_fd_t *watched_fd;
-+
-+ AvahiWatchEvent events;
-+ AvahiWatchCallback callback;
-+ void *userdata;
-+};
-+
-+struct AvahiTimeout
-+{
-+ AvahiCupsPoll *cups_poll;
-+ AvahiTimeoutCallback callback;
-+ void *userdata;
-+ cupsd_timeout_t *cupsd_timeout;
-+};
-+
-+/*
-+ * Local functions...
-+ */
-+
-+static AvahiWatch * watch_new(const AvahiPoll *api,
-+ int fd,
-+ AvahiWatchEvent events,
-+ AvahiWatchCallback callback,
-+ void *userdata);
-+static void watch_free(AvahiWatch *watch);
-+static void watch_update(AvahiWatch *watch,
-+ AvahiWatchEvent events);
-+static AvahiWatchEvent watch_get_events(AvahiWatch *watch);
-+static int compare_watches(AvahiWatch *p0,
-+ AvahiWatch *p1);
-+
-+
-+/*
-+ * 'watch_read_cb' - Read callback for file descriptor
-+ */
-+
-+static void
-+watch_read_cb (void *userdata)
-+{
-+ AvahiWatch *watch;
-+ cupsd_watched_fd_t *watched_fd = userdata;
-+ watched_fd->occurred |= AVAHI_WATCH_IN;
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches)) {
-+ if (watch->events & watched_fd->occurred) {
-+ (watch->callback) (watch, watched_fd->fd,
-+ AVAHI_WATCH_IN, watch->userdata);
-+ watched_fd->occurred &= ~AVAHI_WATCH_IN;
-+ break;
-+ }
-+ }
-+}
-+
-+
-+/*
-+ * 'watch_write_cb' - Write callback for file descriptor
-+ */
-+
-+static void
-+watch_write_cb (void *userdata)
-+{
-+ AvahiWatch *watch;
-+ cupsd_watched_fd_t *watched_fd = userdata;
-+ watched_fd->occurred |= AVAHI_WATCH_OUT;
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches)) {
-+ if (watch->events & watched_fd->occurred) {
-+ (watch->callback) (watch, watched_fd->fd,
-+ AVAHI_WATCH_OUT, watch->userdata);
-+ watched_fd->occurred &= ~AVAHI_WATCH_OUT;
-+ break;
-+ }
-+ }
-+}
-+
-+
-+/*
-+ * 'watched_fd_add_select' - Call cupsdAddSelect() as needed
-+ */
-+
-+static int /* O - Watches? */
-+watched_fd_add_select (cupsd_watched_fd_t *watched_fd)
-+{
-+ AvahiWatch *watch;
-+ cupsd_selfunc_t read_cb = NULL, write_cb = NULL;
-+
-+ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
-+ watch;
-+ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches)) {
-+ if (watch->events & (AVAHI_WATCH_IN |
-+ AVAHI_WATCH_ERR |
-+ AVAHI_WATCH_HUP)) {
-+ read_cb = (cupsd_selfunc_t)watch_read_cb;
-+ if (write_cb != NULL)
-+ break;
-+ }
-+
-+ if (watch->events & AVAHI_WATCH_OUT) {
-+ write_cb = (cupsd_selfunc_t)watch_write_cb;
-+ if (read_cb != NULL)
-+ break;
-+ }
-+ }
-+
-+ if (read_cb || write_cb)
-+ cupsdAddSelect (watched_fd->fd, read_cb, write_cb, watched_fd);
-+ else
-+ cupsdRemoveSelect (watched_fd->fd);
-+
-+ return (read_cb || write_cb);
-+}
-+
-+/*
-+ * 'watch_new' - Create a new file descriptor watch
-+ */
-+
-+static AvahiWatch *
-+watch_new (const AvahiPoll *api,
-+ int fd,
-+ AvahiWatchEvent events,
-+ AvahiWatchCallback callback,
-+ void *userdata)
-+{
-+ cupsd_watched_fd_t key, *watched_fd;
-+ AvahiCupsPoll *cups_poll = api->userdata;
-+ AvahiWatch *watch = malloc(sizeof(AvahiWatch));
-+ if (watch == NULL)
-+ return (NULL);
-+
-+ watch->events = events;
-+ watch->callback = callback;
-+ watch->userdata = userdata;
-+
-+ key.fd = fd;
-+ watched_fd = cupsArrayFind (cups_poll->watched_fds, &key);
-+ if (watched_fd == NULL) {
-+ watched_fd = malloc(sizeof(cupsd_watched_fd_t));
-+ if (watched_fd == NULL) {
-+ free (watch);
-+ return (NULL);
-+ }
-+
-+ watched_fd->fd = fd;
-+ watched_fd->occurred = 0;
-+ watched_fd->cups_poll = cups_poll;
-+ watched_fd->watches = cupsArrayNew ((cups_array_func_t)compare_watches,
-+ NULL);
-+ }
-+
-+ watch->watched_fd = watched_fd;
-+ cupsArrayAdd(watched_fd->watches, watch);
-+ watched_fd_add_select (watched_fd);
-+ return (watch);
-+}
-+
-+
-+/*
-+ * 'watch_free' - Free a file descriptor watch
-+ */
-+
-+static void
-+watch_free (AvahiWatch *watch)
-+{
-+ cupsd_watched_fd_t *watched_fd = watch->watched_fd;
-+ AvahiCupsPoll *cups_poll = watched_fd->cups_poll;
-+
-+ cupsArrayRemove (watched_fd->watches, watch);
-+ free (watch);
-+
-+ if (!watched_fd_add_select (watched_fd)) {
-+ /* No more watches */
-+ cupsArrayRemove (cups_poll->watched_fds, watched_fd);
-+ free (watched_fd);
-+ }
-+}
-+
-+
-+/*
-+ * 'watch_update' - Update watched events for a file descriptor
-+ */
-+
-+static void
-+watch_update (AvahiWatch *watch,
-+ AvahiWatchEvent events)
-+{
-+ watch->events = events;
-+ watched_fd_add_select (watch->watched_fd);
-+}
-+
-+
-+/*
-+ * 'watch_get_events' - Get events that happened for a file descriptor
-+ */
-+
-+static AvahiWatchEvent
-+watch_get_events (AvahiWatch *watch)
-+{
-+ return (watch->watched_fd->occurred);
-+}
-+
-+
-+/*
-+ * 'compare_watches' - Compare watches for array sorting
-+ */
-+
-+static int
-+compare_watches (AvahiWatch *p0,
-+ AvahiWatch *p1)
-+{
-+ if (p0->watched_fd->fd < p1->watched_fd->fd)
-+ return (-1);
-+
-+ return ((p0->watched_fd->fd == p1->watched_fd->fd) ? 0 : 1);
-+}
-+
-+
-+/*
-+ * 'timeout_cb()' - Run a timed Avahi callback
-+ */
-+
-+static void
-+timeout_cb (cupsd_timeout_t *cupsd_timeout, void *userdata)
-+{
-+ AvahiTimeout *timeout = userdata;
-+ (timeout->callback) (timeout, timeout->userdata);
-+}
-+
-+
-+/*
-+ * 'timeout_new' - Set a wakeup time
-+ */
-+
-+static AvahiTimeout *
-+timeout_new (const AvahiPoll *api,
-+ const struct timeval *tv,
-+ AvahiTimeoutCallback callback,
-+ void *userdata)
-+{
-+ AvahiTimeout *timeout;
-+ AvahiCupsPoll *cups_poll = api->userdata;
-+
-+ timeout = malloc(sizeof(AvahiTimeout));
-+ if (timeout == NULL)
-+ return (NULL);
-+
-+ timeout->cups_poll = cups_poll;
-+ timeout->callback = callback;
-+ timeout->userdata = userdata;
-+ timeout->cupsd_timeout = cupsdAddTimeout (tv,
-+ (cupsd_timeoutfunc_t)timeout_cb,
-+ timeout);
-+ cupsArrayAdd (cups_poll->timeouts, timeout);
-+ return (timeout);
-+}
-+
-+
-+/*
-+ * 'timeout_update' - Update the expiration time for a timeout
-+ */
-+
-+static void
-+timeout_update (AvahiTimeout *timeout,
-+ const struct timeval *tv)
-+{
-+ cupsdUpdateTimeout (timeout->cupsd_timeout, tv);
-+}
-+
-+
-+/*
-+ * ' timeout_free' - Free a timeout
-+ */
-+
-+static void
-+timeout_free (AvahiTimeout *timeout)
-+{
-+ cupsArrayRemove (timeout->cups_poll->timeouts, timeout);
-+ cupsdRemoveTimeout (timeout->cupsd_timeout);
-+ free (timeout);
-+}
-+
-+
-+/*
-+ * 'compare_watched_fds' - Compare watched file descriptors for array sorting
-+ */
-+static int
-+compare_watched_fds(cupsd_watched_fd_t *p0,
-+ cupsd_watched_fd_t *p1)
-+{
-+ if (p0->fd != p1->fd)
-+ return (p0->fd < p1->fd ? -1 : 1);
-+
-+ if (p0 == p1)
-+ return (0);
-+
-+ return (p0 < p1 ? -1 : 1);
-+}
-+
-+
-+/*
-+ * 'compare_timeouts' - Compare timeouts for array sorting
-+ */
-+static int
-+compare_timeouts(AvahiTimeout *p0,
-+ AvahiTimeout *p1)
-+{
-+ /*
-+ * Just compare pointers to make it a stable sort.
-+ */
-+
-+ if (p0->cupsd_timeout < p1->cupsd_timeout)
-+ return (-1);
-+ return ((p0->cupsd_timeout == p1->cupsd_timeout) ? 0 : 1);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_new' - Create a new Avahi main loop object for CUPS
-+ */
-+
-+AvahiCupsPoll *
-+avahi_cups_poll_new (void)
-+{
-+ AvahiCupsPoll *cups_poll = malloc(sizeof(AvahiCupsPoll));
-+ if (cups_poll == NULL)
-+ return (NULL);
-+
-+ cups_poll->watched_fds = cupsArrayNew ((cups_array_func_t)compare_watched_fds,
-+ NULL);
-+ cups_poll->timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts,
-+ NULL);
-+
-+ cups_poll->api.userdata = cups_poll;
-+ cups_poll->api.watch_new = watch_new;
-+ cups_poll->api.watch_free = watch_free;
-+ cups_poll->api.watch_update = watch_update;
-+ cups_poll->api.watch_get_events = watch_get_events;
-+
-+ cups_poll->api.timeout_new = timeout_new;
-+ cups_poll->api.timeout_update = timeout_update;
-+ cups_poll->api.timeout_free = timeout_free;
-+
-+ return (cups_poll);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_free' - Free an Avahi main loop object for CUPS
-+ */
-+void
-+avahi_cups_poll_free (AvahiCupsPoll *cups_poll)
-+{
-+ cupsd_watched_fd_t *watched_fd;
-+
-+ for (watched_fd = (cupsd_watched_fd_t*)cupsArrayFirst(cups_poll->watched_fds);
-+ watched_fd;
-+ watched_fd = (cupsd_watched_fd_t*)cupsArrayNext(cups_poll->watched_fds)){
-+ cupsArrayClear (watched_fd->watches);
-+ }
-+
-+ cupsArrayClear (cups_poll->watched_fds);
-+ cupsArrayClear (cups_poll->timeouts);
-+}
-+
-+
-+/*
-+ * 'avahi_cups_poll_get' - Get the abstract poll API structure
-+ */
-+
-+const AvahiPoll *
-+avahi_cups_poll_get (AvahiCupsPoll *cups_poll)
-+{
-+ return (&cups_poll->api);
-+}
-+
-+
-+#endif /* HAVE_AVAHI ... from top of file */
-+
-+/*
-+ * End of "$Id$".
-+ */
---- /dev/null
-+++ b/scheduler/avahi.h
-@@ -0,0 +1,49 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Avahi poll implementation for the CUPS scheduler.
-+ *
-+ * Copyright (C) 2010 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Distribution and use rights are outlined in the file "LICENSE.txt"
-+ * which should have been included with this file. If this file is
-+ * file is missing or damaged, see the license at "http://www.cups.org/".
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/client.h>
-+# include <avahi-client/publish.h>
-+#endif /* HAVE_AVAHI */
-+
-+#ifdef HAVE_AUTHORIZATION_H
-+# include <Security/Authorization.h>
-+#endif /* HAVE_AUTHORIZATION_H */
-+
-+
-+#ifdef HAVE_AVAHI
-+typedef struct
-+{
-+ AvahiPoll api;
-+ cups_array_t *watched_fds;
-+ cups_array_t *timeouts;
-+} AvahiCupsPoll;
-+#endif /* HAVE_AVAHI */
-+
-+/*
-+ * Prototypes...
-+ */
-+
-+#ifdef HAVE_AVAHI
-+extern AvahiCupsPoll * avahi_cups_poll_new(void);
-+extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
-+extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
-+#endif /* HAVE_AVAHI */
-+
-+
-+/*
-+ * End of "$Id$".
-+ */
---- a/scheduler/cupsd.h
-+++ b/scheduler/cupsd.h
-@@ -140,6 +140,15 @@
-
- typedef void (*cupsd_selfunc_t)(void *data);
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * Timeout callback function type...
-+ */
-+
-+typedef struct _cupsd_timeout_s cupsd_timeout_t;
-+typedef void (*cupsd_timeoutfunc_t)(cupsd_timeout_t *timeout, void *data);
-+#endif /* HAVE_AVAHI */
-+
-
- /*
- * Globals...
-@@ -173,6 +182,11 @@
- /* Running from launchd */
- #endif /* HAVE_LAUNCH_H */
-
-+#ifdef HAVE_AVAHI
-+VAR cups_array_t *Timeouts; /* Timed callbacks for main loop */
-+#endif /* HAVE_AVAHI */
-+
-+
-
- /*
- * Prototypes...
-@@ -242,6 +256,20 @@
- extern void cupsdStartServer(void);
- extern void cupsdStopServer(void);
-
-+#ifdef HAVE_AVAHI
-+extern void cupsdInitTimeouts(void);
-+extern cupsd_timeout_t *cupsdAddTimeout (const struct timeval *tv,
-+ cupsd_timeoutfunc_t cb,
-+ void *data);
-+extern cupsd_timeout_t *cupsdNextTimeout (long *delay);
-+extern void cupsdRunTimeout (cupsd_timeout_t *timeout);
-+extern void cupsdUpdateTimeout (cupsd_timeout_t *timeout,
-+ const struct timeval *tv);
-+extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
-+#endif /* HAVE_AVAHI */
-+
-+extern int cupsdRemoveFile(const char *filename);
-+
-
- /*
- * End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
---- a/scheduler/main.c
-+++ b/scheduler/main.c
-@@ -122,6 +122,10 @@
- cupsd_listener_t *lis; /* Current listener */
- time_t current_time, /* Current time */
- activity, /* Client activity timer */
-+#ifdef HAVE_AVAHI
-+ avahi_client_time, /* Time for next Avahi client
-+ check */
-+#endif /* HAVE_AVAHI */
- browse_time, /* Next browse send time */
- senddoc_time, /* Send-Document time */
- expire_time, /* Subscription expire time */
-@@ -148,6 +152,10 @@
- int launchd_idle_exit;
- /* Idle exit on select timeout? */
- #endif /* HAVE_LAUNCHD */
-+#ifdef HAVE_AVAHI
-+ cupsd_timeout_t *tmo; /* Next scheduled timed callback */
-+ long tmo_delay; /* Time before it must be called */
-+#endif /* HAVE_AVAHI */
-
-
- #ifdef HAVE_GETEUID
-@@ -527,6 +535,14 @@
-
- httpInitialize();
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * Initialize timed callback structures.
-+ */
-+
-+ cupsdInitTimeouts();
-+#endif /* HAVE_AVAHI */
-+
- cupsdStartServer();
-
- /*
-@@ -657,6 +673,9 @@
- */
-
- current_time = time(NULL);
-+#ifdef HAVE_AVAHI
-+ avahi_client_time = current_time;
-+#endif /* HAVE_AVAHI */
- browse_time = current_time;
- event_time = current_time;
- expire_time = current_time;
-@@ -871,6 +890,26 @@
- }
- #endif /* __APPLE__ */
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * If a timed callback is due, run it.
-+ */
-+
-+ tmo = cupsdNextTimeout (&tmo_delay);
-+ if (tmo && tmo_delay == 0)
-+ cupsdRunTimeout (tmo);
-+
-+ /*
-+ * Try to restart the Avahi client every 10 seconds if needed...
-+ */
-+
-+ if ((current_time - avahi_client_time) >= 10)
-+ {
-+ avahi_client_time = current_time;
-+ cupsdStartAvahiClient();
-+ }
-+#endif /* HAVE_AVAHI */
-+
- #ifndef __APPLE__
- /*
- * Update the network interfaces once a minute...
-@@ -1815,6 +1854,10 @@
- cupsd_job_t *job; /* Job information */
- cupsd_subscription_t *sub; /* Subscription information */
- const char *why; /* Debugging aid */
-+#ifdef HAVE_AVAHI
-+ cupsd_timeout_t *tmo; /* Timed callback */
-+ long tmo_delay; /* Seconds before calling it */
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -1857,6 +1900,19 @@
- }
- #endif /* __APPLE__ */
-
-+#ifdef HAVE_AVAHI
-+ /*
-+ * See if there are any scheduled timed callbacks to run.
-+ */
-+
-+ tmo = cupsdNextTimeout (&tmo_delay);
-+ if (tmo)
-+ {
-+ timeout = tmo_delay;
-+ why = "run a timed callback";
-+ }
-+#endif /* HAVE_AVAHI */
-+
- /*
- * Check whether we are accepting new connections...
- */
---- /dev/null
-+++ b/scheduler/timeout.c
-@@ -0,0 +1,195 @@
-+/*
-+ * "$Id$"
-+ *
-+ * Timeout functions for the Common UNIX Printing System (CUPS).
-+ *
-+ * Copyright (C) 2010 Red Hat, Inc.
-+ * Authors:
-+ * Tim Waugh <twaugh@redhat.com>
-+ *
-+ * Distribution and use rights are outlined in the file "LICENSE.txt"
-+ * which should have been included with this file. If this file is
-+ * file is missing or damaged, see the license at "http://www.cups.org/".
-+ *
-+ * Contents:
-+ *
-+ * cupsdInitTimeouts() - Initialise timeout structure.
-+ * cupsdAddTimeout() - Add a timed callback.
-+ * cupsdNextTimeout() - Find the next enabled timed callback.
-+ * cupsdUpdateTimeout() - Adjust the time of a timed callback or disable it.
-+ * cupsdRemoveTimeout() - Discard a timed callback.
-+ * compare_timeouts() - Compare timed callbacks for array sorting.
-+ */
-+
-+#include <config.h>
-+
-+#ifdef HAVE_AVAHI /* Applies to entire file... */
-+
-+/*
-+ * Include necessary headers...
-+ */
-+
-+#include "cupsd.h"
-+
-+#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
-+# include <malloc.h>
-+#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
-+
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/timeval.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+struct _cupsd_timeout_s
-+{
-+ struct timeval when;
-+ int enabled;
-+ cupsd_timeoutfunc_t callback;
-+ void *data;
-+};
-+
-+/*
-+ * Local functions...
-+ */
-+
-+/*
-+ * 'compare_timeouts()' - Compare timed callbacks for array sorting.
-+ */
-+
-+static int
-+compare_timeouts (cupsd_timeout_t *p0, cupsd_timeout_t *p1)
-+{
-+ if (!p0->enabled || !p1->enabled)
-+ {
-+ if (!p0->enabled && !p1->enabled)
-+ return (0);
-+
-+ return (p0->enabled ? -1 : 1);
-+ }
-+
-+ return (avahi_timeval_compare (&p0->when, &p1->when));
-+}
-+
-+
-+/*
-+ * 'cupsdInitTimeouts()' - Initialise timeout structures.
-+ */
-+
-+void
-+cupsdInitTimeouts(void)
-+{
-+ Timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts, NULL);
-+}
-+
-+
-+/*
-+ * 'cupsdAddTimeout()' - Add a timed callback.
-+ */
-+
-+cupsd_timeout_t * /* O - Timeout handle */
-+cupsdAddTimeout(const struct timeval *tv, /* I - Absolute time */
-+ cupsd_timeoutfunc_t cb, /* I - Callback function */
-+ void *data) /* I - User data */
-+{
-+ cupsd_timeout_t *timeout;
-+
-+ timeout = malloc (sizeof(cupsd_timeout_t));
-+ if (timeout != NULL)
-+ {
-+ timeout->enabled = (tv != NULL);
-+ if (tv)
-+ {
-+ timeout->when.tv_sec = tv->tv_sec;
-+ timeout->when.tv_usec = tv->tv_usec;
-+ }
-+
-+ timeout->callback = cb;
-+ timeout->data = data;
-+ cupsArrayAdd (Timeouts, timeout);
-+ }
-+
-+ return timeout;
-+}
-+
-+
-+/*
-+ * 'cupsdNextTimeout()' - Find the next enabled timed callback.
-+ */
-+
-+cupsd_timeout_t * /* O - Next enabled timeout or NULL */
-+cupsdNextTimeout(long *delay) /* O - Seconds before scheduled */
-+{
-+ cupsd_timeout_t *first = cupsArrayFirst (Timeouts);
-+ struct timeval curtime;
-+
-+ if (first && !first->enabled)
-+ first = NULL;
-+
-+ if (first && delay)
-+ {
-+ gettimeofday (&curtime, NULL);
-+ if (avahi_timeval_compare (&curtime, &first->when) > 0)
-+ {
-+ *delay = 0;
-+ } else {
-+ *delay = 1 + first->when.tv_sec - curtime.tv_sec;
-+ if (first->when.tv_usec < curtime.tv_usec)
-+ (*delay)--;
-+ }
-+ }
-+
-+ return (first);
-+}
-+
-+
-+/*
-+ * 'cupsdRunTimeout()' - Run a timed callback.
-+ */
-+
-+void
-+cupsdRunTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
-+{
-+ if (!timeout)
-+ return;
-+ timeout->enabled = 0;
-+ if (!timeout->callback)
-+ return;
-+ timeout->callback (timeout, timeout->data);
-+}
-+
-+/*
-+ * 'cupsdUpdateTimeout()' - Adjust the time of a timed callback or disable it.
-+ */
-+
-+void
-+cupsdUpdateTimeout(cupsd_timeout_t *timeout, /* I - Timeout */
-+ const struct timeval *tv) /* I - Absolute time or NULL */
-+{
-+ cupsArrayRemove (Timeouts, timeout);
-+ timeout->enabled = (tv != NULL);
-+ if (tv)
-+ {
-+ timeout->when.tv_sec = tv->tv_sec;
-+ timeout->when.tv_usec = tv->tv_usec;
-+ }
-+ cupsArrayAdd (Timeouts, timeout);
-+}
-+
-+
-+/*
-+ * 'cupsdRemoveTimeout()' - Discard a timed callback.
-+ */
-+
-+void
-+cupsdRemoveTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
-+{
-+ cupsArrayRemove (Timeouts, timeout);
-+ free (timeout);
-+}
-+
-+
-+#endif /* HAVE_AVAHI ... from top of file */
-+
-+/*
-+ * End of "$Id$".
-+ */
---- a/cgi-bin/admin.c
-+++ b/cgi-bin/admin.c
-@@ -1643,7 +1643,7 @@
- else
- local_protocols[0] = '\0';
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if (cgiGetVariable("BROWSE_LOCAL_DNSSD"))
- {
- if (local_protocols[0])
-@@ -1651,7 +1651,7 @@
- else
- strcat(local_protocols, "dnssd");
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LDAP
- if (cgiGetVariable("BROWSE_LOCAL_LDAP"))
-@@ -2718,9 +2718,9 @@
- #endif /* HAVE_GSSAPI */
- cgiSetVariable("KERBEROS", "");
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cgiSetVariable("HAVE_DNSSD", "1");
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LDAP
- cgiSetVariable("HAVE_LDAP", "1");
---- a/scheduler/client.c
-+++ b/scheduler/client.c
-@@ -4987,7 +4987,7 @@
- !strncmp(host, "[::1]:", 6));
- }
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * Check if the hostname is something.local (Bonjour); if so, allow it.
- */
-@@ -4996,7 +4996,7 @@
- (!_cups_strcasecmp(end, ".local") || !_cups_strncasecmp(end, ".local:", 7) ||
- !_cups_strcasecmp(end, ".local.") || !_cups_strncasecmp(end, ".local.:", 8)))
- return (1);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- /*
- * Check if the hostname is an IP address...
---- a/scheduler/dirsvc.c
-+++ b/scheduler/dirsvc.c
-@@ -27,6 +27,7 @@
- * ldap_connect() - Start new LDAP connection
- * ldap_reconnect() - Reconnect to LDAP Server
- * ldap_disconnect() - Disconnect from LDAP Server
-+ * cupsdStartAvahiClient() - Start an Avahi client if needed
- * cupsdStartBrowsing() - Start sending and receiving broadcast
- * information.
- * cupsdStartPolling() - Start polling servers as needed.
-@@ -45,6 +46,8 @@
- * printer.
- * dnssdPackTxtRecord() - Pack an array of key/value pairs into the TXT
- * record format.
-+ * avahiPackTxtRecord() - Pack an array of key/value pairs into an
-+ * AvahiStringList.
- * dnssdRegisterCallback() - DNSServiceRegister callback.
- * dnssdRegisterPrinter() - Start sending broadcast information for a
- * printer or update the broadcast contents.
-@@ -83,6 +86,7 @@
- */
-
- #include "cupsd.h"
-+#include <assert.h>
- #include <grp.h>
-
- #ifdef HAVE_DNSSD
-@@ -97,6 +101,17 @@
- # endif /* HAVE_SYSTEMCONFIGURATION */
- # endif /* __APPLE__ */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include <avahi-common/domain.h>
-+#endif /* HAVE_AVAHI */
-+
-+
-+#ifdef HAVE_DNSSD
-+typedef char *cupsd_txt_record_t;
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+typedef AvahiStringList *cupsd_txt_record_t;
-+#endif /* HAVE_AVAHI */
-
-
- /*
-@@ -159,27 +174,39 @@
- static void update_smb(int onoff);
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+static cupsd_txt_record_t dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
-+ int for_lpd);
-+static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
-+static void dnssdDeregisterPrinter(cupsd_printer_t *p);
-+static void dnssdRegisterPrinter(cupsd_printer_t *p);
-+static void dnssdStop(void);
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+
- #ifdef HAVE_DNSSD
- # ifdef HAVE_COREFOUNDATION
- static void dnssdAddAlias(const void *key, const void *value,
- void *context);
- # endif /* HAVE_COREFOUNDATION */
--static char *dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
-- int for_lpd);
--static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
--static void dnssdDeregisterPrinter(cupsd_printer_t *p);
--static char *dnssdPackTxtRecord(int *txt_len, char *keyvalue[][2],
-- int count);
- static void dnssdRegisterCallback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- DNSServiceErrorType errorCode,
- const char *name, const char *regtype,
- const char *domain, void *context);
--static void dnssdRegisterPrinter(cupsd_printer_t *p);
--static void dnssdStop(void);
- static void dnssdUpdate(void);
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+static AvahiStringList *avahiPackTxtRecord(char *keyvalue[][2],
-+ int count);
-+static void avahi_entry_group_cb (AvahiEntryGroup *group,
-+ AvahiEntryGroupState state,
-+ void *userdata);
-+static void avahi_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *userdata);
-+#endif /* HAVE_AVAHI */
-+
- #ifdef HAVE_LDAP
- static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
- {
-@@ -283,10 +310,10 @@
- ldap_dereg_printer(p);
- #endif /* HAVE_LDAP */
-
--#ifdef HAVE_DNSSD
-- if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdDeregisterPrinter(p);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-@@ -702,10 +729,10 @@
- slpRegisterPrinter(p); */
- #endif /* HAVE_LIBSLP */
-
--#ifdef HAVE_DNSSD
-- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if ((BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdRegisterPrinter(p);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
-@@ -1419,6 +1446,27 @@
- #endif /* HAVE_LDAP */
-
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'cupsdStartAvahiClient()' - Start an Avahi client if needed
-+ */
-+
-+void
-+cupsdStartAvahiClient(void)
-+{
-+ if (!AvahiCupsClient && !AvahiCupsClientConnecting)
-+ {
-+ if (!AvahiCupsPollHandle)
-+ AvahiCupsPollHandle = avahi_cups_poll_new ();
-+
-+ if (AvahiCupsPollHandle)
-+ avahi_client_new (avahi_cups_poll_get (AvahiCupsPollHandle),
-+ AVAHI_CLIENT_NO_FAIL, avahi_client_cb, NULL, NULL);
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
- /*
- * 'cupsdStartBrowsing()' - Start sending and receiving broadcast information.
- */
-@@ -1542,13 +1590,16 @@
- else
- BrowseSocket = -1;
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_DNSSD)
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType error; /* Error from service creation */
-+#endif /* HAVE_DNSSD */
- cupsd_listener_t *lis; /* Current listening socket */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * First create a "master" connection for all registrations...
- */
-@@ -1573,6 +1624,7 @@
- fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
-
- cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
-+#endif /* HAVE_DNSSD */
-
- /*
- * Then get the port we use for registrations. If we are not listening
-@@ -1606,9 +1658,16 @@
- */
-
- cupsdUpdateDNSSDName();
-+
-+#ifdef HAVE_AVAHI
-+ cupsdStartAvahiClient ();
-+#endif /* HAVE_AVAHI */
-+
-+#ifdef HAVE_DNSSD
- }
-- }
- #endif /* HAVE_DNSSD */
-+ }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LIBSLP
- if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP)
-@@ -1834,10 +1893,10 @@
- BrowseSocket = -1;
- }
-
--#ifdef HAVE_DNSSD
-- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
-+ if ((BrowseLocalProtocols & BROWSE_DNSSD))
- dnssdStop();
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- #ifdef HAVE_LIBSLP
- if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) &&
-@@ -1902,7 +1961,7 @@
- }
-
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
- */
-@@ -1910,8 +1969,14 @@
- void
- cupsdUpdateDNSSDName(void)
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType error; /* Error from service creation */
- char webif[1024]; /* Web interface share name */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int ret; /* Error from service creation */
-+ char webif[AVAHI_LABEL_MAX]; /* Web interface share name */
-+#endif /* HAVE_AVAHI */
- # ifdef HAVE_SYSTEMCONFIGURATION
- SCDynamicStoreRef sc; /* Context for dynamic store */
- CFDictionaryRef btmm; /* Back-to-My-Mac domains */
-@@ -2042,6 +2107,7 @@
- else
- strlcpy(webif, "CUPS Web Interface", sizeof(webif));
-
-+#ifdef HAVE_DNSSD
- if (WebIFRef)
- DNSServiceRefDeallocate(WebIFRef);
-
-@@ -2054,9 +2120,45 @@
- NULL)) != kDNSServiceErr_NoError)
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "DNS-SD web interface registration failed: %d", error);
-+#endif /* HAVE_DNSSD */
-+
-+#ifdef HAVE_AVAHI
-+ if (!AvahiCupsClient)
-+ /*
-+ * Client not yet running.
-+ */
-+ return;
-+
-+ if (AvahiWebIFGroup)
-+ avahi_entry_group_reset (AvahiWebIFGroup);
-+ else
-+ AvahiWebIFGroup = avahi_entry_group_new (AvahiCupsClient,
-+ avahi_entry_group_cb,
-+ NULL);
-+
-+ if (AvahiWebIFGroup)
-+ {
-+ ret = avahi_entry_group_add_service (AvahiWebIFGroup,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, /* flags */
-+ webif, /* name */
-+ "_http._tcp", /* type */
-+ NULL, /* domain */
-+ NULL, /* host */
-+ DNSSDPort, /* port */
-+ "path=/", NULL);
-+ if (ret == 0)
-+ ret = avahi_entry_group_commit (AvahiWebIFGroup);
-+
-+ if (ret != 0)
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Avahi web interface registration failed: %d", ret);
-+ }
-+#endif /* HAVE_AVAHI */
- }
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
- #ifdef HAVE_LDAP
-@@ -2334,13 +2436,15 @@
- "Bad Back to My Mac domain in dynamic store!");
- }
- # endif /* HAVE_COREFOUNDATION */
-+#endif /* HAVE_DNSSD */
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'dnssdBuildTxtRecord()' - Build a TXT record from printer info.
- */
-
--static char * /* O - TXT record */
-+static cupsd_txt_record_t /* O - TXT record */
- dnssdBuildTxtRecord(
- int *txt_len, /* O - TXT record length */
- cupsd_printer_t *p, /* I - Printer information */
-@@ -2379,7 +2483,12 @@
- keyvalue[i ][0] = "ty";
- keyvalue[i++][1] = p->make_model ? p->make_model : "Unknown";
-
-- snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.", DNSSDHostName);
-+ snprintf(admin_hostname, sizeof(admin_hostname),
-+ "%s.local"
-+#ifdef HAVE_DNSSD
-+ "." /* terminating dot no good for Avahi */
-+#endif /* HAVE_DNSSD */
-+ , DNSSDHostName);
- httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
- "http", NULL, admin_hostname, DNSSDPort, "/%s/%s",
- (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
-@@ -2462,7 +2571,12 @@
- * Then pack them into a proper txt record...
- */
-
-+#ifdef HAVE_DNSSD
- return (dnssdPackTxtRecord(txt_len, keyvalue, i));
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ return (avahiPackTxtRecord(keyvalue, i));
-+#endif /* HAVE_AVAHI */
- }
-
-
-@@ -2474,7 +2588,16 @@
- dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */
- cupsd_printer_t *b)/* I - Second printer */
- {
-- return (_cups_strcasecmp(a->reg_name, b->reg_name));
-+ if (!a->reg_name)
-+ if (!b->reg_name)
-+ return 0;
-+ else
-+ return -1;
-+ else
-+ if (!b->reg_name)
-+ return 1;
-+ else
-+ return (_cups_strcasecmp(a->reg_name, b->reg_name));
- }
-
-
-@@ -2489,6 +2612,10 @@
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+
- /*
- * Closing the socket deregisters the service
- */
-@@ -2524,6 +2651,24 @@
- free(p->printer_txt);
- p->printer_txt = NULL;
- }
-+#endif /* HAVE_DNSSD */
-+
-+#ifdef HAVE_AVAHI
-+ if (p->avahi_group)
-+ {
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+
-+ if (p->ipp_txt)
-+ avahi_string_list_free (p->ipp_txt);
-+
-+ if (p->printer_txt)
-+ avahi_string_list_free (p->printer_txt);
-+
-+ p->ipp_txt = p->printer_txt = NULL;
-+ }
-+#endif /* HAVE_AVAHI */
-
- /*
- * Remove the printer from the array of DNS-SD printers, then clear the
-@@ -2533,8 +2678,10 @@
- cupsArrayRemove(DNSSDPrinters, p);
- cupsdClearString(&p->reg_name);
- }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'dnssdPackTxtRecord()' - Pack an array of key/value pairs into the
- * TXT record format.
-@@ -2644,8 +2791,10 @@
- LastEvent |= CUPSD_EVENT_PRINTER_MODIFIED;
- }
- }
-+#endif /* HAVE_DNSSD */
-
-
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- /*
- * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
- * or update the broadcast contents.
-@@ -2654,20 +2803,40 @@
- static void
- dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
- {
-+#ifdef HAVE_DNSSD
- DNSServiceErrorType se; /* dnssd errors */
- char *ipp_txt, /* IPP TXT record buffer */
- *printer_txt, /* LPD TXT record buffer */
-- name[1024], /* Service name */
-- *nameptr; /* Pointer into name */
-+ name[1024]; /* Service name */
- int ipp_len, /* IPP TXT record length */
- printer_len, /* LPD TXT record length */
- printer_port; /* LPD port number */
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ int ret; /* Error code */
-+ AvahiStringList *ipp_txt, /* IPP TXT record */
-+ *printer_txt; /* LPD TXT record */
-+ char name[AVAHI_LABEL_MAX], /* Service name */
-+ fullsubtype[AVAHI_LABEL_MAX]; /* Full subtype */
-+ char *regtype_copy, /* Writeable copy of reg type */
-+ *subtype, /* Current service sub type */
-+ *nextsubtype; /* Next service sub type */
-+#endif /* HAVE_AVAHI */
-+ char *nameptr; /* Pointer into name */
- const char *regtype; /* Registration type */
-
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
- !p->ipp_ref ? "new" : "update");
--
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
-+ !p->avahi_group ? "new" : "update");
-+#endif /* HAVE_AVAHI */
- /*
- * If per-printer sharing was just disabled make sure we're not
- * registered before returning.
-@@ -2686,12 +2855,36 @@
- if (p->info && strlen(p->info) > 0)
- {
- if (DNSSDComputerName)
-- snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
-+ {
-+ /*
-+ * Make sure there is room for at least 15 characters of
-+ * DNSSDComputerName.
-+ */
-+
-+ assert(sizeof(name) >= 15 + 4);
-+ nameptr = name + strlcpy(name, p->info,
-+ sizeof(name) - 4 -
-+ strnlen(DNSSDComputerName, 15));
-+ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
-+ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
-+ }
- else
- strlcpy(name, p->info, sizeof(name));
- }
- else if (DNSSDComputerName)
-- snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
-+ {
-+ /*
-+ * Make sure there is room for at least 15 characters of
-+ * DNSSDComputerName.
-+ */
-+
-+ assert(sizeof(name) >= 15 + 4);
-+ nameptr = name + strlcpy(name, p->info,
-+ sizeof(name) - 4 -
-+ strnlen(DNSSDComputerName, 15));
-+ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
-+ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
-+ }
- else
- strlcpy(name, p->name, sizeof(name));
-
-@@ -2712,6 +2905,7 @@
- * Register IPP and (optionally) LPD...
- */
-
-+#ifdef HAVE_DNSSD
- ipp_len = 0; /* anti-compiler-warning-code */
- ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
-
-@@ -2884,6 +3078,209 @@
-
- if (printer_txt)
- free(printer_txt);
-+#endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ if (!AvahiCupsClient)
-+ /*
-+ * Client not running yet. The client callback will call us again later.
-+ */
-+ return;
-+
-+ ipp_txt = dnssdBuildTxtRecord(NULL, p, 0);
-+ printer_txt = dnssdBuildTxtRecord(NULL, p, 1);
-+ regtype = (p->type & CUPS_PRINTER_FAX) ? "_fax-ipp._tcp" : DNSSDRegType;
-+
-+ if (p->avahi_group && p->ipp_txt && ipp_txt &&
-+ !avahi_string_list_equal (p->ipp_txt, ipp_txt))
-+ {
-+ /*
-+ * Update the existing registration...
-+ */
-+
-+ avahi_string_list_free (p->ipp_txt);
-+
-+ if (p->printer_txt)
-+ avahi_string_list_free (p->printer_txt);
-+
-+ /*
-+ * Update the service group entry.
-+ */
-+
-+ regtype_copy = strdup (regtype);
-+ subtype = strchr (regtype_copy, ',');
-+ if (subtype)
-+ *subtype = '\0';
-+
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Updating TXT record for %s (%s)", name, regtype_copy);
-+ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ regtype_copy,
-+ NULL, ipp_txt);
-+ free (regtype_copy);
-+
-+ if (ret < 0)
-+ goto update_failed;
-+
-+ p->ipp_txt = ipp_txt;
-+ ipp_txt = NULL;
-+
-+ if (BrowseLocalProtocols & BROWSE_LPD)
-+ {
-+ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ "_printer._tcp", NULL,
-+ printer_txt);
-+ if (ret < 0)
-+ goto update_failed;
-+
-+ p->printer_txt = printer_txt;
-+ printer_txt = NULL;
-+ }
-+
-+ ret = avahi_entry_group_commit (p->avahi_group);
-+ if (ret < 0)
-+ {
-+ update_failed:
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Failed to update TXT record for %s: %d",
-+ name, ret);
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+ ipp_txt = p->ipp_txt;
-+ p->ipp_txt = NULL;
-+ }
-+ }
-+
-+ if (!p->avahi_group)
-+ {
-+ /*
-+ * Initial registration. Use the _fax subtype for fax queues...
-+ */
-+
-+ p->avahi_group = avahi_entry_group_new (AvahiCupsClient,
-+ avahi_entry_group_cb,
-+ p);
-+
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "Registering Avahi printer %s with name \"%s\" and "
-+ "type \"%s\"", p->name, name, regtype);
-+
-+ if (!p->avahi_group)
-+ {
-+ ret = 0;
-+ goto add_failed;
-+ }
-+
-+ /*
-+ * Add each service type (DNSSDRegType may contain several,
-+ * separated by commas).
-+ */
-+
-+ subtype = regtype_copy = strdup (regtype);
-+ while (subtype && *subtype)
-+ {
-+ nextsubtype = strchr (subtype, ',');
-+ if (nextsubtype)
-+ *nextsubtype++ = '\0';
-+
-+ if (subtype == regtype_copy)
-+ {
-+ /*
-+ * Main type entry.
-+ */
-+
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Adding TXT record for %s (%s)", name, regtype_copy);
-+ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name, regtype_copy,
-+ NULL, NULL,
-+ DNSSDPort,
-+ ipp_txt);
-+ }
-+ else
-+ {
-+ /*
-+ * Sub-type entry.
-+ */
-+
-+ snprintf (fullsubtype, sizeof(fullsubtype),
-+ "%s._sub.%s", subtype, regtype_copy);
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Adding TXT record for %s (%s)", name, fullsubtype);
-+ ret = avahi_entry_group_add_service_subtype (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ regtype_copy,
-+ NULL, fullsubtype);
-+ }
-+
-+ if (ret < 0)
-+ {
-+ free (regtype_copy);
-+ goto add_failed;
-+ }
-+
-+ subtype = nextsubtype;
-+ }
-+
-+ free (regtype_copy);
-+ p->ipp_txt = ipp_txt;
-+ ipp_txt = NULL;
-+
-+ if (BrowseLocalProtocols & BROWSE_LPD)
-+ {
-+ cupsdLogMessage(CUPSD_LOG_DEBUG,
-+ "Registering Avahi printer %s with name \"%s\" and "
-+ "type \"_printer._tcp\"", p->name, name);
-+
-+ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
-+ AVAHI_IF_UNSPEC,
-+ AVAHI_PROTO_UNSPEC,
-+ 0, name,
-+ "_printer._tcp", NULL, NULL,
-+ 515,
-+ printer_txt);
-+ if (ret < 0)
-+ goto add_failed;
-+
-+ p->printer_txt = printer_txt;
-+ printer_txt = NULL;
-+ }
-+
-+ ret = avahi_entry_group_commit (p->avahi_group);
-+
-+ if (ret < 0)
-+ {
-+ add_failed:
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Failed to add Avahi entry for %s: %d",
-+ name, ret);
-+ if (p->avahi_group)
-+ {
-+ avahi_entry_group_reset (p->avahi_group);
-+ avahi_entry_group_free (p->avahi_group);
-+ p->avahi_group = NULL;
-+ }
-+ ipp_txt = p->ipp_txt;
-+ p->ipp_txt = NULL;
-+ }
-+ }
-+
-+ if (ipp_txt)
-+ avahi_string_list_free (ipp_txt);
-+
-+ if (printer_txt)
-+ avahi_string_list_free (printer_txt);
-+#endif /* HAVE_AVAHI */
- }
-
-
-@@ -2896,6 +3293,10 @@
- {
- cupsd_printer_t *p; /* Current printer */
-
-+#ifdef HAVE_DNSSD
-+ if (!DNSSDRef)
-+ return;
-+#endif /* HAVE_DNSSD */
-
- /*
- * De-register the individual printers
-@@ -2906,6 +3307,7 @@
- p = (cupsd_printer_t *)cupsArrayNext(Printers))
- dnssdDeregisterPrinter(p);
-
-+#ifdef HAVE_DNSSD
- /*
- * Shutdown the rest of the service refs...
- */
-@@ -2926,14 +3328,17 @@
-
- DNSServiceRefDeallocate(DNSSDRef);
- DNSSDRef = NULL;
-+#endif /* HAVE_DNSSD */
-
- cupsArrayDelete(DNSSDPrinters);
- DNSSDPrinters = NULL;
-
- DNSSDPort = 0;
- }
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
-
-+#ifdef HAVE_DNSSD
- /*
- * 'dnssdUpdate()' - Handle DNS-SD queries.
- */
-@@ -2955,6 +3360,147 @@
- #endif /* HAVE_DNSSD */
-
-
-+#ifdef HAVE_AVAHI
-+/*
-+ * 'avahiPackTxtRecord()' - Pack an array of key/value pairs into an
-+ * AvahiStringList.
-+ */
-+
-+static AvahiStringList * /* O - new string list */
-+avahiPackTxtRecord(char *keyvalue[][2], /* I - Table of key value pairs */
-+ int count) /* I - Number of items in table */
-+{
-+ AvahiStringList *strlst = NULL;
-+ char **elements;
-+ size_t len;
-+ int i = 0;
-+
-+ elements = malloc ((1 + count) * sizeof (char *));
-+ if (!elements)
-+ goto cleanup;
-+
-+ for (i = 0; i < count; i++)
-+ {
-+ len = (1 + strlen (keyvalue[i][0]) +
-+ (keyvalue[i][1] ? 1 + strlen (keyvalue[i][1]) : 1));
-+ elements[i] = malloc (len * sizeof (char));
-+ if (!elements[i])
-+ goto cleanup;
-+
-+ snprintf (elements[i], len, "%s=%s", keyvalue[i][0], keyvalue[i][1]);
-+ }
-+
-+ strlst = avahi_string_list_new_from_array ((const char **) elements, count);
-+
-+cleanup:
-+ while (--i >= 0)
-+ free (elements[i]);
-+
-+ free (elements);
-+ return (strlst);
-+}
-+
-+
-+/*
-+ * 'avahi_entry_group_cb()' - Avahi entry group callback function.
-+ */
-+static void
-+avahi_entry_group_cb (AvahiEntryGroup *group,
-+ AvahiEntryGroupState state,
-+ void *userdata)
-+{
-+ char *name;
-+
-+ if (userdata)
-+ name = ((cupsd_printer_t *) userdata)->reg_name;
-+ else
-+ name = "CUPS web interface";
-+
-+ switch (state)
-+ {
-+ case AVAHI_ENTRY_GROUP_UNCOMMITED:
-+ case AVAHI_ENTRY_GROUP_REGISTERING:
-+ break;
-+
-+ case AVAHI_ENTRY_GROUP_ESTABLISHED:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Avahi entry group established for %s", name);
-+ break;
-+
-+ default:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG,
-+ "Avahi entry group %s has state %d",
-+ name, state);
-+ break;
-+ }
-+}
-+
-+
-+/*
-+ * 'avahi_client_cb()' - Avahi client callback function.
-+ */
-+static void
-+avahi_client_cb (AvahiClient *client,
-+ AvahiClientState state,
-+ void *userdata)
-+{
-+ cupsd_printer_t *printer;
-+ switch (state)
-+ {
-+ case AVAHI_CLIENT_S_RUNNING:
-+ /*
-+ * Avahi client started successfully.
-+ */
-+ AvahiCupsClient = client;
-+ AvahiCupsClientConnecting = 0;
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started");
-+
-+ cupsdUpdateDNSSDName ();
-+
-+ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
-+ printer;
-+ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
-+ if (Browsing && (BrowseLocalProtocols & BROWSE_DNSSD) &&
-+ (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT |
-+ CUPS_PRINTER_SCANNER))) && printer->shared)
-+ dnssdRegisterPrinter (printer);
-+
-+ break;
-+
-+ case AVAHI_CLIENT_CONNECTING:
-+ /*
-+ * No Avahi daemon, client is waiting.
-+ */
-+ AvahiCupsClientConnecting = 1;
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting");
-+ break;
-+
-+ case AVAHI_CLIENT_FAILURE:
-+ /*
-+ * Avahi client failed, close it to allow a clean restart.
-+ */
-+ cupsdLogMessage (CUPSD_LOG_ERROR,
-+ "Avahi client failed, "
-+ "closing client to allow a clean restart");
-+
-+ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
-+ printer;
-+ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
-+ dnssdDeregisterPrinter (printer);
-+
-+ avahi_client_free(client);
-+ AvahiCupsClientConnecting = 0;
-+ AvahiCupsClient = NULL;
-+
-+ break;
-+
-+ default:
-+ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client state: %d", state);
-+ }
-+}
-+#endif /* HAVE_AVAHI */
-+
-+
- /*
- * 'get_auth_info_required()' - Get the auth-info-required value to advertise.
- */
---- a/scheduler/dirsvc.h
-+++ b/scheduler/dirsvc.h
-@@ -31,6 +31,10 @@
- # endif /* HAVE_LDAP_SSL_H */
- #endif /* HAVE_LDAP */
-
-+#ifdef HAVE_AVAHI
-+# include <avahi-client/publish.h>
-+#endif /* HAVE_AVAHI */
-+
- /*
- * Browse protocols...
- */
-@@ -131,19 +135,22 @@
- VAR cupsd_statbuf_t *PollStatusBuffer VALUE(NULL);
- /* Status buffer for pollers */
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- VAR char *DNSSDComputerName VALUE(NULL),
- /* Computer/server name */
- *DNSSDHostName VALUE(NULL),
- /* Hostname */
- *DNSSDRegType VALUE(NULL);
- /* Bonjour registration type */
--VAR cups_array_t *DNSSDAlias VALUE(NULL);
-- /* List of dynamic ServerAlias's */
- VAR int DNSSDPort VALUE(0);
- /* Port number to register */
- VAR cups_array_t *DNSSDPrinters VALUE(NULL);
- /* Printers we have registered */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+
-+#ifdef HAVE_DNSSD
-+VAR cups_array_t *DNSSDAlias VALUE(NULL);
-+ /* List of dynamic ServerAlias's */
- VAR DNSServiceRef DNSSDRef VALUE(NULL),
- /* Master DNS-SD service reference */
- WebIFRef VALUE(NULL),
-@@ -152,6 +159,17 @@
- /* Remote printer browse reference */
- #endif /* HAVE_DNSSD */
-
-+#ifdef HAVE_AVAHI
-+VAR AvahiCupsPoll *AvahiCupsPollHandle VALUE(NULL);
-+ /* AvahiCupsPoll object */
-+VAR AvahiClient *AvahiCupsClient VALUE(NULL);
-+ /* AvahiClient object */
-+VAR int AvahiCupsClientConnecting VALUE(0);
-+ /* Is AvahiClient object connecting? */
-+VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL);
-+ /* Web interface entry group */
-+#endif /* HAVE_AVAHI */
-+
- #ifdef HAVE_LIBSLP
- VAR SLPHandle BrowseSLPHandle VALUE(NULL);
- /* SLP API handle */
-@@ -195,13 +213,14 @@
- extern void cupsdRestartPolling(void);
- extern void cupsdSaveRemoteCache(void);
- extern void cupsdSendBrowseList(void);
-+extern void cupsdStartAvahiClient(void);
- extern void cupsdStartBrowsing(void);
- extern void cupsdStartPolling(void);
- extern void cupsdStopBrowsing(void);
- extern void cupsdStopPolling(void);
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- extern void cupsdUpdateDNSSDName(void);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- #ifdef HAVE_LDAP
- extern void cupsdUpdateLDAPBrowse(void);
- #endif /* HAVE_LDAP */
---- a/scheduler/ipp.c
-+++ b/scheduler/ipp.c
-@@ -6087,7 +6087,7 @@
- ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time",
- ippTimeToDate(curtime));
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if (!ra || cupsArrayFind(ra, "printer-dns-sd-name"))
- {
- if (printer->reg_name)
-@@ -6097,7 +6097,7 @@
- ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE,
- "printer-dns-sd-name", 0);
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- if (!ra || cupsArrayFind(ra, "printer-error-policy"))
- ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME,
---- a/scheduler/printers.c
-+++ b/scheduler/printers.c
-@@ -883,9 +883,9 @@
- cupsdClearString(&p->alert);
- cupsdClearString(&p->alert_description);
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cupsdClearString(&p->pdl);
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-
- cupsArrayDelete(p->filetypes);
-
-@@ -3765,7 +3765,7 @@
- attr->values[i].string.text = _cupsStrAlloc(mimetype);
- }
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- {
- char pdl[1024]; /* Buffer to build pdl list */
- mime_filter_t *filter; /* MIME filter looping var */
-@@ -3821,7 +3821,7 @@
-
- cupsdSetString(&p->pdl, pdl);
- }
--#endif /* HAVE_DNSSD */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
- }
-
-
---- a/scheduler/printers.h
-+++ b/scheduler/printers.h
-@@ -16,6 +16,9 @@
- #ifdef HAVE_DNSSD
- # include <dns_sd.h>
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+# include "avahi.h"
-+#endif /* HAVE_AVAHI */
- #include <cups/pwg-private.h>
-
-
-@@ -95,16 +98,23 @@
- time_t marker_time; /* Last time marker attributes were updated */
- _ppd_cache_t *pc; /* PPD cache and mapping data */
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- char *reg_name, /* Name used for service registration */
-- *pdl, /* pdl value for TXT record */
-- *ipp_txt, /* IPP TXT record contents */
-+ *pdl; /* pdl value for TXT record */
-+#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
-+#ifdef HAVE_DNSSD
-+ char *ipp_txt, /* IPP TXT record contents */
- *printer_txt; /* LPD TXT record contents */
- int ipp_len, /* IPP TXT record length */
- printer_len; /* LPD TXT record length */
- DNSServiceRef ipp_ref, /* Reference for _ipp._tcp,_cups */
- printer_ref; /* Reference for _printer._tcp */
- #endif /* HAVE_DNSSD */
-+#ifdef HAVE_AVAHI
-+ AvahiStringList *ipp_txt, /* IPP TXT record */
-+ *printer_txt; /* LPD TXT record */
-+ AvahiEntryGroup *avahi_group; /* Avahi entry group */
-+#endif /* HAVE_AVAHI */
- };
-
-
---- a/scheduler/conf.c
-+++ b/scheduler/conf.c
-@@ -650,7 +650,7 @@
- Browsing = CUPS_DEFAULT_BROWSING;
- DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
-
--#ifdef HAVE_DNSSD
-+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
- #endif /* HAVE_DNSSD */
-
-
diff --git a/libre/cups-libre/cups-no-export-ssllibs.patch b/libre/cups-libre/cups-no-export-ssllibs.patch
index 24bac2e56..9be3c819b 100644
--- a/libre/cups-libre/cups-no-export-ssllibs.patch
+++ b/libre/cups-libre/cups-no-export-ssllibs.patch
@@ -10,4 +10,3 @@ diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/conf
AC_SUBST(EXPORT_SSLLIBS)
-
diff --git a/libre/cups-libre/cups-no-gcrypt.patch b/libre/cups-libre/cups-no-gcrypt.patch
index ab299d989..42f71d0d4 100644
--- a/libre/cups-libre/cups-no-gcrypt.patch
+++ b/libre/cups-libre/cups-no-gcrypt.patch
@@ -36,4 +36,3 @@ diff -ruN cups-1.4.7.orig//config-scripts/cups-ssl.m4 cups-1.4.7/config-scripts/
# elif defined(HAVE_CDSASSL)
# include <CoreFoundation/CoreFoundation.h>
# include <Security/Security.h>
-
diff --git a/libre/cups-libre/cups.install b/libre/cups-libre/cups.install
index f73c3b44b..47c3d9b82 100644
--- a/libre/cups-libre/cups.install
+++ b/libre/cups-libre/cups.install
@@ -24,4 +24,3 @@ post_remove() {
xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
fi
}
-
diff --git a/libre/cups-libre/cups.logrotate b/libre/cups-libre/cups.logrotate
index 67c4cdd39..9c49bbdaf 100644
--- a/libre/cups-libre/cups.logrotate
+++ b/libre/cups-libre/cups.logrotate
@@ -6,4 +6,3 @@
/bin/kill -HUP `cat /var/run/cups.pid 2>/dev/null` 2>/dev/null || true
endscript
}
-
diff --git a/libre/cups-libre/cups.pam b/libre/cups-libre/cups.pam
index 5a31a927a..53724d1f8 100644
--- a/libre/cups-libre/cups.pam
+++ b/libre/cups-libre/cups.pam
@@ -1,4 +1,3 @@
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so
-
diff --git a/libre/filesystem/PKGBUILD b/libre/filesystem/PKGBUILD
index ea1e0e4f9..733d34aa3 100644
--- a/libre/filesystem/PKGBUILD
+++ b/libre/filesystem/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 140217 2011-10-09 23:32:13Z dreisner $
+# $Id: PKGBUILD 147201 2012-01-24 06:36:12Z bisson $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
pkgname=filesystem
-pkgver=2011.10
-pkgrel=1
+pkgver=2011.12
+pkgrel=2
pkgdesc='Base filesystem for Parabola'
arch=('any')
license=('GPL')
@@ -19,7 +19,7 @@ source=('group' 'issue' 'nsswitch.conf' 'securetty' 'host.conf' 'ld.so.conf'
'passwd' 'shadow' 'fstab' 'crypttab' 'hosts' 'motd' 'resolv.conf' 'shells'
'gshadow' 'profile' 'modprobe.d.usb-load-ehci-first')
md5sums=('772fe869b921698cc3e6fde73c4ac85a'
- '140787c0dc6f3f1272cfd381b92b0155'
+ '6be47d893fd49b2e4a8c0e811b350861'
'13753e4e0964f3652b0cc60a28528bdf'
'4c4540eeb748bf1f71d631b8c1dcf0b3'
'f28150d4c0b22a017be51b9f7f9977ed'
@@ -34,7 +34,7 @@ md5sums=('772fe869b921698cc3e6fde73c4ac85a'
'22518e922891f9359f971f4f5b4e793c'
'd2dc4e39dbdea75b107f91789e3274ab'
'f3b6ae7db8adffaaa4bffc6099dcbd50'
- '8098ffd9fbf890468d3198277596b85a')
+ 'a8a962370cd0128465d514e6a1f74130')
package() {
cd ${srcdir}
@@ -56,6 +56,7 @@ package() {
for f in fstab group host.conf hosts issue ld.so.conf motd nsswitch.conf passwd resolv.conf securetty shells profile; do
install -m644 ${srcdir}/${f} ${pkgdir}/etc/
done
+ ln -s /proc/self/mounts ${pkgdir}/etc/mtab
for f in gshadow shadow crypttab; do
install -m600 ${srcdir}/${f} ${pkgdir}/etc/
done
@@ -63,16 +64,15 @@ package() {
install -D -m644 ${srcdir}/modprobe.d.usb-load-ehci-first ${pkgdir}/lib/modprobe.d/usb-load-ehci-first.conf
# setup /var
- for d in cache/man local opt run log/old lib/misc empty; do
+ for d in cache/man local opt log/old lib/misc empty; do
install -d -m755 ${pkgdir}/var/${d}
done
- install -d -m1777 ${pkgdir}/var/{lock,tmp,spool/mail}
+ install -d -m1777 ${pkgdir}/var/{tmp,spool/mail}
# allow setgid games to write scores
install -d -m775 -g games ${pkgdir}/var/games
- ln -s spool/mail ${pkgdir}/var/mail
- # prevent pacman from removing directory (FS#16886)
- touch ${pkgdir}/var/empty/.keep
-
+ ln -s /var/spool/mail ${pkgdir}/var/mail
+ ln -s /run ${pkgdir}/var/run
+ ln -s /run/lock ${pkgdir}/var/lock
#
# setup /usr hierarchy
diff --git a/libre/filesystem/filesystem.install b/libre/filesystem/filesystem.install
index 640cd5c1d..0ecc27e65 100644
--- a/libre/filesystem/filesystem.install
+++ b/libre/filesystem/filesystem.install
@@ -1,9 +1,6 @@
post_install() {
[ -f var/log/lastlog ] || : >var/log/lastlog
[ -f var/log/wtmp ] || : >var/log/wtmp
- [ -f var/run/utmp ] || : >var/run/utmp
- chown root:20 var/run/utmp
- chmod 664 var/run/utmp
[ -f var/log/btmp ] || (: >var/log/btmp && bin/chmod 600 var/log/btmp)
# workaround for bug #7194
# readded due to bug #9465
diff --git a/libre/filesystem/issue b/libre/filesystem/issue
index 323abdbf7..b001c55dd 100644
--- a/libre/filesystem/issue
+++ b/libre/filesystem/issue
@@ -1,3 +1,2 @@
-
Parabola GNU/Linux-libre \r (\n) (\l)
diff --git a/libre/filesystem/modprobe.d.usb-load-ehci-first b/libre/filesystem/modprobe.d.usb-load-ehci-first
index 3b5db0e7a..947379411 100644
--- a/libre/filesystem/modprobe.d.usb-load-ehci-first
+++ b/libre/filesystem/modprobe.d.usb-load-ehci-first
@@ -1,2 +1,2 @@
-install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe --ignore-install ohci_hcd $CMDLINE_OPTS
-install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe --ignore-install uhci_hcd $CMDLINE_OPTS
+softdep ohci_hcd pre: ehci_hcd
+softdep uhci_hcd pre: ehci_hcd
diff --git a/libre/ghostscript-libre/PKGBUILD b/libre/ghostscript-libre/PKGBUILD
index eda488048..4462b7792 100644
--- a/libre/ghostscript-libre/PKGBUILD
+++ b/libre/ghostscript-libre/PKGBUILD
@@ -1,14 +1,15 @@
-# $Id: PKGBUILD 123066 2011-05-07 23:01:49Z stephane $
+# $Id: PKGBUILD 146976 2012-01-19 20:56:52Z andyrtr $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
# Maintainer (Parabola): xihh
pkgname=ghostscript-libre
pkgver=9.04
-pkgrel=5
+_srcpkgrel=5
+pkgrel=6
pkgdesc="An interpreter for the PostScript language without non-free files"
arch=('i686' 'x86_64')
license=('GPL3') #non free files removed
-depends=('libxt' 'libcups' 'fontconfig' 'jasper' 'zlib' 'libpng' 'libjpeg' 'libtiff' 'lcms') # 'lcms2' won't get used) # move in libpaper from community?
+depends=('libxt' 'libcups' 'fontconfig' 'jasper' 'zlib' 'libpng>=1.5.7' 'libjpeg' 'libtiff>=4.0.0' 'lcms') # 'lcms2' won't get used) # move in libpaper from community?
makedepends=('gtk2' 'gnutls')
optdepends=('texlive-core: needed for dvipdf'
'gtk2: needed for gsx')
@@ -16,9 +17,13 @@ conflicts=('ghostscript')
replaces=('ghostscript-lrpng' 'ghostscript')
provides=('ghostscript-lprng' "ghostscript=$pkgver")
url="http://www.ghostscript.com/"
-source=(https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${pkgrel}-any.src.tar.xz
- ghostscript-cups-rgbw.patch)
+source=(https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${_srcpkgrel}-any.src.tar.xz
+ ghostscript-cups-rgbw.patch
+ ghostscript-gpl-9.04-freetype-underlinking.patch)
options=('!libtool' '!makeflags')
+md5sums=('ac8f77c94a6b5d5f0170c2e6db38c6bb'
+ 'bc56eb8c5fef0ecf964f6b3e9b7e65ae'
+ 'a1928c3e4459dcfee0aaa4b38fadba57')
build() {
cd ${srcdir}/ghostscript-${pkgver}
@@ -26,8 +31,11 @@ build() {
# fix broken color printing https://bugs.archlinux.org/task/25519
patch -Np1 -i ${srcdir}/ghostscript-cups-rgbw.patch
+ # fix a linking issue
+ patch -Np1 -i ${srcdir}/ghostscript-gpl-9.04-freetype-underlinking.patch
+
# force it to use system-libs
- rm -rf jpeg libpng zlib jasper expat tiff freetype lcms
+ rm -rf jpeg libpng zlib jasper expat tiff lcms freetype
./configure --prefix=/usr \
--enable-dynamic \
@@ -43,7 +51,7 @@ build() {
--without-luratech \
--disable-compile-inits #--help # needed for linking with system-zlib
make
-
+
# Build IJS
cd ${srcdir}/ghostscript-${pkgver}/ijs
./autogen.sh
@@ -70,5 +78,3 @@ package() {
cd ${srcdir}/ghostscript-${pkgver}/ijs
make DESTDIR=${pkgdir} install
}
-md5sums=('ac8f77c94a6b5d5f0170c2e6db38c6bb'
- 'fd89baafac6589dc93ba71a48c2ba9b4')
diff --git a/libre/ghostscript-libre/ghostscript-cups-rgbw.patch b/libre/ghostscript-libre/ghostscript-cups-rgbw.patch
index 00f99c844..f6ae2dae7 100644
--- a/libre/ghostscript-libre/ghostscript-cups-rgbw.patch
+++ b/libre/ghostscript-libre/ghostscript-cups-rgbw.patch
@@ -261,4 +261,3 @@ diff -up ghostscript-9.04/cups/gdevcups.c.cups-rgbw ghostscript-9.04/cups/gdevcu
}
}
-
diff --git a/libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch b/libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch
new file mode 100644
index 000000000..1a81863be
--- /dev/null
+++ b/libre/ghostscript-libre/ghostscript-gpl-9.04-freetype-underlinking.patch
@@ -0,0 +1,12 @@
+diff -Naur ghostscript-9.04/base/Makefile.in ghostscript-9.04.new/base/Makefile.in
+--- ghostscript-9.04/base/Makefile.in 2011-08-05 13:12:20.000000000 +0200
++++ ghostscript-9.04.new/base/Makefile.in 2011-08-16 16:06:50.487377337 +0200
+@@ -375,7 +375,7 @@
+ # Solaris may need -lnsl -lsocket -lposix4.
+ # (Libraries required by individual drivers are handled automatically.)
+
+-EXTRALIBS=@LIBS@ @DYNAMIC_LIBS@ @FONTCONFIG_LIBS@
++EXTRALIBS=@LIBS@ @DYNAMIC_LIBS@ @FONTCONFIG_LIBS@ @FT_LIBS@
+
+ # Define the standard libraries to search at the end of linking.
+ # Most platforms require -lpthread for the POSIX threads library;
diff --git a/libre/initscripts/PKGBUILD b/libre/initscripts/PKGBUILD
index 9ce6cd8ae..f8b70de29 100644
--- a/libre/initscripts/PKGBUILD
+++ b/libre/initscripts/PKGBUILD
@@ -4,7 +4,7 @@
# Maintainer (Parabola): Nicolas Reynolds <fauno@kiwwwi.com.ar>
pkgname=initscripts
-pkgver=2011.12.14
+pkgver=2012.02.1
pkgrel=1
pkgdesc="System initialization/bootup scripts (Parabola branding)"
arch=('any')
@@ -28,5 +28,5 @@ package() {
make DESTDIR=${pkgdir} install
install -D -m644 ${srcdir}/wireless.conf.d ${pkgdir}/etc/conf.d/wireless
}
-md5sums=('55f010509c91d2a236df49a82af48b4b'
+md5sums=('db7506749d240cbe1e5988d3a81d72a9'
'027576534885b8d5dded9be546057b12')
diff --git a/libre/kdebase-konqueror-libre/PKGBUILD b/libre/kdebase-konqueror-libre/PKGBUILD
new file mode 100644
index 000000000..48e36633f
--- /dev/null
+++ b/libre/kdebase-konqueror-libre/PKGBUILD
@@ -0,0 +1,51 @@
+# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# $Id: PKGBUILD 147790 2012-01-28 10:33:05Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+_pkgname='kdebase-konqueror'
+pkgname='kdebase-konqueror-libre'
+pkgver=4.8.0
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://kde.org/applications/internet/konqueror/"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+makedepends=('kdelibs' 'cmake' 'automoc4' 'tidyhtml')
+source=("http://download.kde.org/stable/${pkgver}/src/kde-baseapps-${pkgver}.tar.bz2"
+ "konq-about-fsdg.diff")
+sha1sums=('25151b551793164c5eb1cb303d3031e63a6122e3'
+ 'f41541371414dcbe5e76687835e648112b3ff364')
+pkgdesc='KDE File Manager & Web Browser'
+depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
+optdepends=('kwebkitpart: to enable webkit engine')
+install='kdebase-konqueror.install'
+conflicts=('kdebase-nsplugins' 'kdebase-konqueror')
+replaces=('kdebase-nsplugins' 'kdebase-konqueror')
+provides=("kdebase-konqueror=$pkgver")
+
+build() {
+ cd "${srcdir}"/kde-baseapps-${pkgver}
+
+ # Don't recommend nonfree software or Google.
+ patch -Np1 -i "${srcdir}/konq-about-fsdg.diff"
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../kde-baseapps-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ for i in konqueror doc/konqueror nsplugins; do
+ cd $srcdir/build/${i}
+ make
+ done
+}
+
+package() {
+ for i in konqueror doc/konqueror nsplugins; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
diff --git a/libre/kdebase-konqueror-libre/kdebase-konqueror.install b/libre/kdebase-konqueror-libre/kdebase-konqueror.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/libre/kdebase-konqueror-libre/kdebase-konqueror.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/kdebase-konqueror-libre/konq-about-fsdg.diff b/libre/kdebase-konqueror-libre/konq-about-fsdg.diff
new file mode 100644
index 000000000..06b2103c3
--- /dev/null
+++ b/libre/kdebase-konqueror-libre/konq-about-fsdg.diff
@@ -0,0 +1,33 @@
+diff -ru kde-baseapps-4.8.0.orig/konqueror/about/konq_aboutpage.cc kde-baseapps-4.8.0/konqueror/about/konq_aboutpage.cc
+--- kde-baseapps-4.8.0.orig/konqueror/about/konq_aboutpage.cc 2012-01-30 19:28:59.506176399 +0100
++++ kde-baseapps-4.8.0/konqueror/about/konq_aboutpage.cc 2012-01-30 19:34:50.695537153 +0100
+@@ -214,14 +214,11 @@
+ QString("http://www.ecma-international.org/publications/standards/ECMA-262.HTM")) )
+ .arg( i18n("JavaScript disabled (globally). Enable JavaScript <A HREF=\"%1\">here</A>.", QString("exec:/kcmshell4 khtml_java_js")) )
+ .arg( i18n("JavaScript enabled (globally). Configure JavaScript <A HREF=\\\"%1\\\">here</A>.", QString("exec:/kcmshell4 khtml_java_js")) ) // leave the double backslashes here, they are necessary for javascript !
+- .arg( i18n("Secure <A HREF=\"%1\">Java</A><SUP>&reg;</SUP> support", QString("http://www.oracle.com/technetwork/java/index.html")) )
+- .arg( i18n("JDK 1.2.0 (Java 2) compatible VM (<A HREF=\"%1\">IBM</A> or <A HREF=\"%2\">Sun/Oracle</A>)",
+- QString("http://www.ibm.com"), QString("http://www.oracle.com/technetwork/java/index.html")) )
++ .arg( i18n("Secure Java<SUP>&reg;</SUP> support") )
++ .arg( i18n("JDK 1.2.0 (Java 2) compatible VM") )
+ .arg( i18n("Enable Java (globally) <A HREF=\"%1\">here</A>.", QString("exec:/kcmshell4 khtml_java_js")) ) // TODO Maybe test if Java is enabled ?
+- .arg( i18n("Netscape Communicator<SUP>&reg;</SUP> <A HREF=\"%4\">plugins</A> (for viewing <A HREF=\"%1\">Flash<SUP>&reg;</SUP></A>, <A HREF=\"%2\">Real<SUP>&reg;</SUP></A>Audio, <A HREF=\"%3\">Real<SUP>&reg;</SUP></A>Video, etc.)",
+- QString("http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"),
+- QString("http://www.real.com"), QString("http://www.real.com"),
+- QString("about:plugins")) )
++ .arg( i18n("Netscape Communicator<SUP>&reg;</SUP> <A HREF=\"%1\">plugins</A> ",
++ QString("about:plugins")) )
+ .arg( i18n("built-in") )
+ .arg( i18n("Secure Sockets Layer") )
+ .arg( i18n("(TLS/SSL v2/3) for secure communications up to 168bit") )
+@@ -293,8 +290,8 @@
+ .arg( i18n( "Tips" ) )
+ .arg( i18n( "Specifications" ) )
+ .arg( i18n( "Tips &amp; Tricks" ) )
+- .arg( i18n( "Use Web-Shortcuts: by typing \"gg: KDE\" one can search the Internet, "
+- "using Google, for the search phrase \"KDE\". There are a lot of "
++ .arg( i18n( "Use Web-Shortcuts: by typing \"dd: KDE\" one can search the Internet, "
++ "using DuckDuckGo, for the search phrase \"KDE\". There are a lot of "
+ "Web-Shortcuts predefined to make searching for software or looking "
+ "up certain words in an encyclopedia a breeze. You can even "
+ "<a href=\"%1\">create your own</a> Web-Shortcuts." , QString("exec:/kcmshell4 ebrowsing")) )
diff --git a/libre/kdelibs-libre/PKGBUILD b/libre/kdelibs-libre/PKGBUILD
new file mode 100644
index 000000000..0ebd5b60e
--- /dev/null
+++ b/libre/kdelibs-libre/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 149297 2012-02-06 17:49:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+_pkgname=kdelibs
+pkgname=kdelibs-libre
+pkgver=4.8.0
+pkgrel=3.1
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64' 'mips64el')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'soprano' 'krb5' 'grantlee'
+ 'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt'
+ 'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'docbook-xsl'
+ 'upower' 'udisks' 'libxcursor' 'phonon' 'qtwebkit')
+makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell')
+provides=("kdelibs=$pkgver")
+replaces=('kdelibs-experimental' 'kdelibs')
+conflicts=('kdelibs')
+install=${_pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.bz2"
+ 'kde-applications-menu.patch'
+ 'fix-knotify-filepath.patch'
+ 'khtml-fsdg.diff')
+sha1sums=('5e4744405734e6c3ce572ef7d16054390692b38a'
+ '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
+ '3312f6005aa56a9b992c74008fe5b314f1c8ffba'
+ 'a1502a964081ad583a00cf90c56e74bf60121830')
+
+build() {
+ cd "${srcdir}"/${_pkgname}-${pkgver}
+
+ # avoid file conflict with gnome-menus
+ patch -p1 -i "${srcdir}"/kde-applications-menu.patch
+
+ # https://bugs.kde.org/show_bug.cgi?id=285028
+ patch -p1 -i "${srcdir}"/fix-knotify-filepath.patch
+
+ # Don't ask the user to download a plugin, it's probably nonfree.
+ patch -p1 -i "${srcdir}"/khtml-fsdg.diff
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${_pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DKDE_DISTRIBUTION_TEXT='Parabola GNU/Linux-libre' \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONF_INSTALL_DIR=/etc \
+ -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
+ -DKDE_DEFAULT_HOME='.kde4' \
+ -DWITH_FAM=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # cert bundle seems to be hardcoded
+ # link it to the one from ca-certificates
+ rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+ ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+}
diff --git a/libre/kdelibs-libre/fix-knotify-filepath.patch b/libre/kdelibs-libre/fix-knotify-filepath.patch
new file mode 100644
index 000000000..2cd995e97
--- /dev/null
+++ b/libre/kdelibs-libre/fix-knotify-filepath.patch
@@ -0,0 +1,13 @@
+diff --git a/knotify/config/knotifyconfigactionswidget.cpp b/knotify/config/knotifyconfigactionswidget.cpp
+index 88d18b6..0e76658 100644
+--- a/knotify/config/knotifyconfigactionswidget.cpp
++++ b/knotify/config/knotifyconfigactionswidget.cpp
+@@ -128,7 +128,7 @@ void KNotifyConfigActionsWidget::slotPlay( )
+ KUrl soundURL = m_ui.Sound_select->url();
+ if ( soundURL.isRelative() )
+ {
+- QString soundString = soundURL.toLocalFile();
++ QString soundString = m_ui.Sound_select->text();
+ // we need a way to get the application name in order to ba able to do this :
+ /*QString search = QString("%1/sounds/%2").arg(config->appname).arg(soundFile);
+ search = KGlobal::mainComponent().dirs()->findResource("data", search);
diff --git a/libre/kdelibs-libre/kde-applications-menu.patch b/libre/kdelibs-libre/kde-applications-menu.patch
new file mode 100644
index 000000000..4b513298a
--- /dev/null
+++ b/libre/kdelibs-libre/kde-applications-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/CMakeLists.txt 2009-10-02 14:55:17.000000000 +0000
++++ kdelibs-4.3.98/kded/CMakeLists.txt 2010-01-31 22:16:13.946933892 +0000
+@@ -69,7 +69,7 @@
+ if (WIN32)
+ install( FILES applications.menu DESTINATION ${SHARE_INSTALL_PREFIX}/xdg/menus )
+ else (WIN32)
+-install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus )
++install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu )
+ endif (WIN32)
+ install( FILES kdedmodule.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+ install( FILES kded.upd DESTINATION ${DATA_INSTALL_DIR}/kconf_update )
+--- kdelibs-4.3.98/kded/kbuildsycoca.cpp 2009-12-04 23:10:18.000000000 +0000
++++ kdelibs-4.3.98/kded/kbuildsycoca.cpp 2010-01-31 22:16:13.962766572 +0000
+@@ -302,7 +302,7 @@
+ if (!m_trackId.isEmpty())
+ g_vfolder->setTrackId(m_trackId);
+
+- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
+
+ KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false);
+ entry->setLayoutInfo(kdeMenu->layoutList);
diff --git a/libre/kdeutils-libre/kdeutils.install b/libre/kdelibs-libre/kdelibs.install
index e70c054ec..c77e68041 100644
--- a/libre/kdeutils-libre/kdeutils.install
+++ b/libre/kdelibs-libre/kdelibs.install
@@ -1,5 +1,7 @@
post_install() {
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
}
post_upgrade() {
diff --git a/libre/kdelibs-libre/khtml-fsdg.diff b/libre/kdelibs-libre/khtml-fsdg.diff
new file mode 100644
index 000000000..1a531b3c8
--- /dev/null
+++ b/libre/kdelibs-libre/khtml-fsdg.diff
@@ -0,0 +1,50 @@
+diff -ru kdelibs-4.8.0.orig/khtml/html/html_objectimpl.cpp kdelibs-4.8.0/khtml/html/html_objectimpl.cpp
+--- kdelibs-4.8.0.orig/khtml/html/html_objectimpl.cpp 2012-01-30 19:46:27.684114289 +0100
++++ kdelibs-4.8.0/khtml/html/html_objectimpl.cpp 2012-01-30 19:47:47.222111046 +0100
+@@ -577,46 +577,6 @@
+
+ void HTMLObjectBaseElementImpl::slotPartLoadingErrorNotify()
+ {
+- // If we have an embed, we may be able to tell the user where to
+- // download the plugin.
+-
+- HTMLEmbedElementImpl *embed = relevantEmbed();
+- QString serviceType; // shadows ours, but we don't care.
+-
+- if (!embed)
+- return;
+-
+- serviceType = embed->serviceType;
+-
+- KHTMLPart* part = document()->part();
+- KParts::BrowserExtension *ext = part->browserExtension();
+-
+- if(!embed->pluginPage.isEmpty() && ext) {
+- // Prepare the mimetype to show in the question (comment if available, name as fallback)
+- QString mimeName = serviceType;
+- KMimeType::Ptr mime = KMimeType::mimeType(serviceType, KMimeType::ResolveAliases);
+- if ( mime && mime->name() != KMimeType::defaultMimeType() )
+- mimeName = mime->comment();
+-
+- // Check if we already asked the user, for this page
+- if (!mimeName.isEmpty() && !part->pluginPageQuestionAsked(serviceType))
+- {
+- part->setPluginPageQuestionAsked(serviceType);
+-
+- // Prepare the URL to show in the question (host only if http, to make it short)
+- KUrl pluginPageURL(embed->pluginPage);
+- QString shortURL = pluginPageURL.protocol() == "http" ? pluginPageURL.host() : pluginPageURL.prettyUrl();
+- int res = KMessageBox::questionYesNo( part->view(),
+- i18n("No plugin found for '%1'.\nDo you want to download one from %2?", mimeName, shortURL),
+- i18n("Missing Plugin"), KGuiItem(i18n("Download")), KGuiItem(i18n("Do Not Download")), QString("plugin-")+serviceType);
+- if (res == KMessageBox::Yes)
+- {
+- // Display vendor download page
+- ext->createNewWindow(pluginPageURL);
+- return;
+- }
+- }
+- }
+ }
+
+
diff --git a/libre/kdenetwork-libre/PKGBUILD b/libre/kdenetwork-libre/PKGBUILD
index 14c6448e5..e744b22ef 100644
--- a/libre/kdenetwork-libre/PKGBUILD
+++ b/libre/kdenetwork-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 144733 2011-12-08 09:21:25Z andrea $
+# $Id: PKGBUILD 150223 2012-02-15 09:34:48Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
@@ -10,18 +10,18 @@ pkgname=('kdenetwork-filesharing'
'kdenetwork-kppp'
'kdenetwork-krdc'
'kdenetwork-krfb')
-pkgver=4.7.4
-pkgrel=1
+pkgver=4.8.0
+pkgrel=2
arch=('i686' 'x86_64')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdenetwork')
-makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr'
- 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn' 'ppp'
+makedepends=('cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr' 'ppp'
+ 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn'
'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu'
- 'telepathy-qt4' 'libktorrent' 'libmms' 'mediastreamer')
+ 'libktorrent' 'libmms' 'mediastreamer')
source=("http://repo.parabolagnulinux.org/other/${pkgbase}-libre-${pkgver}.tar.xz")
-sha1sums=('2537c5286a1464008e05974a3fd55ae00740c843')
+sha1sums=('2472128aef671e3474505cf65397dfc7ef9f79bb')
# Based on http://bzr.trisquel.info/package-helpers/trunk/annotate/head%3A/helpers/natty/make-kdenetwork, revision 34.
mksource() {
@@ -67,9 +67,8 @@ package_kdenetwork-kdnssd() {
package_kdenetwork-kget() {
pkgdesc='Download Manager'
depends=('kdebase-workspace' 'kdebase-lib' 'libktorrent' 'libmms')
- optdepends=('python2: YouTube plugin')
url="http://kde.org/applications/internet/kget/"
- install='kdenetwork.install'
+ install='kdenetwork-kget.install'
cd $srcdir/build/kget
make DESTDIR=$pkgdir install
cd $srcdir/build/doc/kget
@@ -79,12 +78,12 @@ package_kdenetwork-kget() {
package_kdenetwork-kopete-libre() {
pkgdesc='Instant Messenger'
depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn'
- 'libidn' 'qimageblitz' 'v4l-utils' 'libgadu' 'mediastreamer')
+ 'libidn' 'qimageblitz' 'libgadu' 'mediastreamer')
conflicts=('kdenetwork-kopete')
provides=("kdenetwork-kopete=${pkgver}")
replaces=('kdenetwork-kopete')
url="http://kde.org/applications/internet/kopete/"
- install='kdenetwork.install'
+ install='kdenetwork-kopete.install'
cd $srcdir/build/kopete
make DESTDIR=$pkgdir install
cd $srcdir/build/doc/kopete
@@ -95,7 +94,7 @@ package_kdenetwork-kppp() {
pkgdesc='Internet Dial-Up Tool'
depends=('kdebase-runtime' 'ppp')
url="http://kde.org/applications/internet/kppp/"
- install='kdenetwork.install'
+ install='kdenetwork-kppp.install'
cd $srcdir/build/kppp
make DESTDIR=$pkgdir install
cd $srcdir/build/doc/kppp
@@ -104,7 +103,7 @@ package_kdenetwork-kppp() {
package_kdenetwork-krdc() {
pkgdesc='Remote Desktop Client'
- depends=('kdebase-runtime' 'libvncserver' 'rdesktop' 'telepathy-qt4')
+ depends=('kdebase-runtime' 'libvncserver' 'rdesktop')
optdepends=('kdebase-keditbookmarks: to edit bookmarks')
url="http://kde.org/applications/internet/krdc/"
cd $srcdir/build/krdc
diff --git a/libre/kdenetwork-libre/kdenetwork-kget.install b/libre/kdenetwork-libre/kdenetwork-kget.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/libre/kdenetwork-libre/kdenetwork-kget.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/kdenetwork-libre/kdenetwork-kopete.install b/libre/kdenetwork-libre/kdenetwork-kopete.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/libre/kdenetwork-libre/kdenetwork-kopete.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/kdenetwork-libre/kdenetwork-kppp.install b/libre/kdenetwork-libre/kdenetwork-kppp.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/libre/kdenetwork-libre/kdenetwork-kppp.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/kdeutils-ark-libre/PKGBUILD b/libre/kdeutils-ark-libre/PKGBUILD
new file mode 100644
index 000000000..737c0cb55
--- /dev/null
+++ b/libre/kdeutils-ark-libre/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 147905 2012-01-28 10:36:46Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+_pkgname=kdeutils-ark
+pkgname=kdeutils-ark-libre
+pkgver=4.8.0
+pkgrel=1
+pkgdesc='Archiving Tool'
+url='http://kde.org/applications/utilities/ark/'
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeutils')
+depends=('kdebase-runtime' 'kdebase-lib' 'libarchive' 'qjson')
+makedepends=('cmake' 'automoc4')
+optdepends=('p7zip' 'zip' 'unzip' 'ununrar')
+provides=("kdeutils-ark=$pkgver")
+replaces=('kdeutils-ark')
+conflicts=('kdeutils-ark')
+install=${_pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/ark-${pkgver}.tar.bz2")
+sha1sums=('99756e0896938371d6d7036fb3d5d0d152de29c3')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ark-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/libre/kdeutils-ark-libre/kdeutils-ark.install b/libre/kdeutils-ark-libre/kdeutils-ark.install
new file mode 100644
index 000000000..78681144b
--- /dev/null
+++ b/libre/kdeutils-ark-libre/kdeutils-ark.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_update() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/kdeutils-libre/rePKGBUILD b/libre/kdeutils-ark-libre/rePKGBUILD
index 9dad18cf0..f40b19d3f 100644
--- a/libre/kdeutils-libre/rePKGBUILD
+++ b/libre/kdeutils-ark-libre/rePKGBUILD
@@ -2,7 +2,6 @@
source PKGBUILD
#CARCH=x86_64
unset build package md5sums source
-pkgname=("kdeutils-ark-libre")
_repo=extra # Put the repo here
_mirror=ftp://mirrors.kernel.org/archlinux # Put mirror here
source=(PKGBUILD
@@ -18,14 +17,7 @@ build() {
}
-package_kdeutils-ark-libre() {
- pkgdesc='Archiving Tool'
- depends=('kdebase-runtime' 'kdebase-lib' 'libarchive')
- optdepends=('p7zip' 'zip' 'unzip' 'ununrar')
- provides=("kdeutils-ark=$pkgver")
- replaces=('kdeutils-ark')
- conflicts=('kdeutils-ark')
- url="http://kde.org/applications/utilities/ark/"
+package() {
find ${srcdir} -maxdepth 1 -type l -delete
cp -a ${srcdir}/* ${pkgdir}
}
diff --git a/libre/kdeutils-libre/PKGBUILD b/libre/kdeutils-libre/PKGBUILD
deleted file mode 100644
index 16fff37d3..000000000
--- a/libre/kdeutils-libre/PKGBUILD
+++ /dev/null
@@ -1,194 +0,0 @@
-# $Id: PKGBUILD 146715 2012-01-16 19:50:44Z dreisner $
-# Maintainer: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Pierre Schmitz <pierre@archlinux.de>
-
-pkgbase=kdeutils
-pkgname=('kdeutils-ark-libre'
- 'kdeutils-filelight'
- 'kdeutils-kcalc'
- 'kdeutils-kcharselect'
- 'kdeutils-kdf'
- 'kdeutils-kfloppy'
- 'kdeutils-kgpg'
- 'kdeutils-kremotecontrol'
- 'kdeutils-ktimer'
- 'kdeutils-kwallet'
- 'kdeutils-printer-applet'
- 'kdeutils-superkaramba'
- 'kdeutils-sweeper')
-pkgver=4.7.4
-pkgrel=2
-arch=('i686' 'x86_64')
-url='http://www.kde.org'
-license=('GPL' 'LGPL' 'FDL')
-groups=('kde' 'kdeutils')
-makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-lib' 'kdebase-workspace'
- 'kdebindings-python' 'system-config-printer-common' 'libarchive' 'qimageblitz'
- 'qjson')
-source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
-sha1sums=('4630f01f36558eb5494fc562086fbd4e488e411e')
-
-build() {
- cd "${srcdir}"/${pkgbase}-${pkgver}
-
- # Use Python2
- sed -i 's|/usr/bin/python|/usr/bin/python2|' \
- kcharselect/kcharselect-generate-datafile.py \
- superkaramba/examples/richtext/rtext.py
- sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \
- printer-applet/{authconn,debug,monitor,printer-applet,statereason}.py
-
- cd "${srcdir}"
- mkdir build
- cd build
- cmake ../${pkgbase}-${pkgver} \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_SKIP_RPATH=ON \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DPYTHON_EXECUTABLE=/usr/bin/python2
- make
-}
-
-package_kdeutils-ark-libre() {
- pkgdesc='Archiving Tool'
- depends=('kdebase-runtime' 'kdebase-lib' 'libarchive')
- optdepends=('p7zip' 'zip' 'unzip' 'ununrar')
- provides=("kdeutils-ark=$pkgver")
- replaces=('kdeutils-ark')
- conflicts=('kdeutils-ark')
- url="http://kde.org/applications/utilities/ark/"
- cd $srcdir/build/ark
- make DESTDIR=$pkgdir install
- cd $srcdir/build/ark/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-filelight() {
- pkgdesc='View disk usage information'
- depends=('kdebase-runtime' 'qimageblitz')
- replaces=('filelight')
- conflicts=('filelight')
- install='kdeutils.install'
- url="http://methylblue.com/filelight/"
- cd $srcdir/build/filelight
- make DESTDIR=$pkgdir install
- cd $srcdir/build/filelight/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-kcalc() {
- pkgdesc='Scientific Calculator'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/utilities/kcalc/"
- cd $srcdir/build/kcalc
- make DESTDIR=$pkgdir install
- cd $srcdir/build/kcalc/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-kcharselect() {
- pkgdesc='Character Selector'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/utilities/kcharselect/"
- cd $srcdir/build/kcharselect
- make DESTDIR=$pkgdir install
- cd $srcdir/build/kcharselect/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-kdf() {
- pkgdesc='View Disk Usage'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/system/kdiskfree/"
- install='kdeutils.install'
- cd $srcdir/build/kdf
- make DESTDIR=$pkgdir install
- cd $srcdir/build/kdf/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-kfloppy() {
- pkgdesc='Floppy Formatter'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/utilities/kfloppy/"
- install='kdeutils.install'
- cd $srcdir/build/kfloppy
- make DESTDIR=$pkgdir install
- cd $srcdir/build/kfloppy/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-kgpg() {
- pkgdesc='A GnuPG frontend'
- depends=('kdepim-runtime' 'kde-agent')
- url="http://kde.org/applications/utilities/kgpg"
- install='kdeutils.install'
- cd $srcdir/build/kgpg
- make DESTDIR=$pkgdir install
- cd $srcdir/build/kgpg/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-kremotecontrol() {
- pkgdesc='Configure your remote controls for use with applications'
- replaces=('kdeutils-kdelirc')
- conflicts=('kdeutils-kdelirc')
- depends=('kdebase-workspace')
- url="http://kde.org/applications/utilities/kremotecontrol"
- install='kdeutils.install'
- cd $srcdir/build/kremotecontrol
- make DESTDIR=$pkgdir install
- cd $srcdir/build/kremotecontrol/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-ktimer() {
- pkgdesc='Countdown Launcher'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/utilities/ktimer"
- install='kdeutils.install'
- cd $srcdir/build/ktimer
- make DESTDIR=$pkgdir install
- cd $srcdir/build/ktimer/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-kwallet() {
- pkgdesc='Wallet Management Tool'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/system/kwalletmanager/"
- install='kdeutils.install'
- cd $srcdir/build/kwallet
- make DESTDIR=$pkgdir install
- cd $srcdir/build/kwallet/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-printer-applet() {
- pkgdesc='System tray icon for managing print jobs'
- depends=('kdebase-runtime' 'kdebindings-python' 'system-config-printer-common')
- url="http://kde.org/applications/system/printerapplet/"
- cd $srcdir/build/printer-applet
- make DESTDIR=$pkgdir install
- cd $srcdir/build/printer-applet/doc
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-superkaramba() {
- pkgdesc='An engine for cool desktop eyecandy'
- depends=('kdebase-runtime' 'kdebindings-python' 'qimageblitz')
- url="http://kde.org/applications/utilities/superkaramba"
- install='kdeutils.install'
- cd $srcdir/build/superkaramba
- make DESTDIR=$pkgdir install
-}
-
-package_kdeutils-sweeper() {
- pkgdesc='System Cleaner'
- depends=('kdebase-runtime')
- url="http://kde.org/applications/utilities/sweeper/"
- cd $srcdir/build/sweeper
- make DESTDIR=$pkgdir install
- cd $srcdir/build/sweeper/doc
- make DESTDIR=$pkgdir install
-}
diff --git a/libre/kdeutils-libre/fix-kcalc-keys.patch b/libre/kdeutils-libre/fix-kcalc-keys.patch
deleted file mode 100644
index 0bfc4b3b2..000000000
--- a/libre/kdeutils-libre/fix-kcalc-keys.patch
+++ /dev/null
@@ -1,93 +0,0 @@
---- trunk/KDE/kdeutils/kcalc/kcalc.ui 2011/07/06 18:27:29 1240129
-+++ trunk/KDE/kdeutils/kcalc/kcalc.ui 2011/07/06 18:27:58 1240130
-@@ -616,7 +616,7 @@
- <string>7</string>
- </property>
- <property name="shortcut">
-- <string notr="true">7</string>
-+ <string>7</string>
- </property>
- </widget>
- </item>
-@@ -632,7 +632,7 @@
- <string>8</string>
- </property>
- <property name="shortcut">
-- <string notr="true">8</string>
-+ <string>8</string>
- </property>
- </widget>
- </item>
-@@ -648,7 +648,7 @@
- <string>9</string>
- </property>
- <property name="shortcut">
-- <string notr="true">9</string>
-+ <string>9</string>
- </property>
- </widget>
- </item>
-@@ -680,7 +680,7 @@
- <string>4</string>
- </property>
- <property name="shortcut">
-- <string notr="true">4</string>
-+ <string>4</string>
- </property>
- </widget>
- </item>
-@@ -696,7 +696,7 @@
- <string>5</string>
- </property>
- <property name="shortcut">
-- <string notr="true">5</string>
-+ <string>5</string>
- </property>
- </widget>
- </item>
-@@ -712,7 +712,7 @@
- <string>6</string>
- </property>
- <property name="shortcut">
-- <string notr="true">6</string>
-+ <string>6</string>
- </property>
- </widget>
- </item>
-@@ -728,7 +728,7 @@
- <string>1</string>
- </property>
- <property name="shortcut">
-- <string notr="true">1</string>
-+ <string>1</string>
- </property>
- </widget>
- </item>
-@@ -744,7 +744,7 @@
- <string>2</string>
- </property>
- <property name="shortcut">
-- <string notr="true">2</string>
-+ <string>2</string>
- </property>
- </widget>
- </item>
-@@ -760,7 +760,7 @@
- <string>3</string>
- </property>
- <property name="shortcut">
-- <string notr="true">3</string>
-+ <string>3</string>
- </property>
- </widget>
- </item>
-@@ -786,7 +786,7 @@
- <string>0</string>
- </property>
- <property name="shortcut">
-- <string notr="true">0</string>
-+ <string>0</string>
- </property>
- </widget>
- </item>
-
diff --git a/libre/kile-libre/PKGBUILD b/libre/kile-libre/PKGBUILD
index dee7e1dd1..abef16537 100644
--- a/libre/kile-libre/PKGBUILD
+++ b/libre/kile-libre/PKGBUILD
@@ -1,11 +1,11 @@
# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
-# $Id: PKGBUILD 135613 2011-08-16 16:22:12Z andrea $
+# $Id: PKGBUILD 147972 2012-01-29 10:07:14Z ronald $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
_pkgname=kile
pkgname=kile-libre
-pkgver=2.1
+pkgver=2.1.1
pkgrel=2
pkgdesc="A user friendly TeX/LaTeX frontend for KDE"
arch=("i686" "x86_64")
@@ -19,7 +19,7 @@ provides=('kile')
install=${_pkgname}.install
source=("http://downloads.sourceforge.net/$_pkgname/$_pkgname-$pkgver.tar.bz2"
"no-acroread.patch")
-sha1sums=('860ac96b68b6026f48b8a9c401c6024ba78e3cdf'
+sha1sums=('36987669dd9db05b063a0b4650ef3589dc79f711'
'9bbe5d1b0e2a78b13667fcf4e5e21f801447f9d6')
build() {
diff --git a/libre/linux-libre-lts/CVE-2012-0056.patch b/libre/linux-libre-lts/CVE-2012-0056.patch
new file mode 100644
index 000000000..4098f3506
--- /dev/null
+++ b/libre/linux-libre-lts/CVE-2012-0056.patch
@@ -0,0 +1,269 @@
+From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001
+From: Linus Torvalds <torvalds@linux-foundation.org>
+Date: Tue, 17 Jan 2012 15:21:19 -0800
+Subject: proc: clean up and fix /proc/<pid>/mem handling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Linus Torvalds <torvalds@linux-foundation.org>
+
+commit e268337dfe26dfc7efd422a804dbb27977a3cccc upstream.
+
+Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very
+robust, and it also doesn't match the permission checking of any of the
+other related files.
+
+This changes it to do the permission checks at open time, and instead of
+tracking the process, it tracks the VM at the time of the open. That
+simplifies the code a lot, but does mean that if you hold the file
+descriptor open over an execve(), you'll continue to read from the _old_
+VM.
+
+That is different from our previous behavior, but much simpler. If
+somebody actually finds a load where this matters, we'll need to revert
+this commit.
+
+I suspect that nobody will ever notice - because the process mapping
+addresses will also have changed as part of the execve. So you cannot
+actually usefully access the fd across a VM change simply because all
+the offsets for IO would have changed too.
+
+Reported-by: Jüri Aedla <asd@ut.ee>
+Cc: Al Viro <viro@zeniv.linux.org.uk>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/proc/base.c | 145 +++++++++++++++------------------------------------------
+ 1 file changed, 39 insertions(+), 106 deletions(-)
+
+--- a/fs/proc/base.c
++++ b/fs/proc/base.c
+@@ -194,65 +194,7 @@ static int proc_root_link(struct inode *
+ return result;
+ }
+
+-static struct mm_struct *__check_mem_permission(struct task_struct *task)
+-{
+- struct mm_struct *mm;
+-
+- mm = get_task_mm(task);
+- if (!mm)
+- return ERR_PTR(-EINVAL);
+-
+- /*
+- * A task can always look at itself, in case it chooses
+- * to use system calls instead of load instructions.
+- */
+- if (task == current)
+- return mm;
+-
+- /*
+- * If current is actively ptrace'ing, and would also be
+- * permitted to freshly attach with ptrace now, permit it.
+- */
+- if (task_is_stopped_or_traced(task)) {
+- int match;
+- rcu_read_lock();
+- match = (tracehook_tracer_task(task) == current);
+- rcu_read_unlock();
+- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
+- return mm;
+- }
+-
+- /*
+- * No one else is allowed.
+- */
+- mmput(mm);
+- return ERR_PTR(-EPERM);
+-}
+-
+-/*
+- * If current may access user memory in @task return a reference to the
+- * corresponding mm, otherwise ERR_PTR.
+- */
+-static struct mm_struct *check_mem_permission(struct task_struct *task)
+-{
+- struct mm_struct *mm;
+- int err;
+-
+- /*
+- * Avoid racing if task exec's as we might get a new mm but validate
+- * against old credentials.
+- */
+- err = mutex_lock_killable(&task->signal->cred_guard_mutex);
+- if (err)
+- return ERR_PTR(err);
+-
+- mm = __check_mem_permission(task);
+- mutex_unlock(&task->signal->cred_guard_mutex);
+-
+- return mm;
+-}
+-
+-struct mm_struct *mm_for_maps(struct task_struct *task)
++static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
+ {
+ struct mm_struct *mm;
+ int err;
+@@ -263,7 +205,7 @@ struct mm_struct *mm_for_maps(struct tas
+
+ mm = get_task_mm(task);
+ if (mm && mm != current->mm &&
+- !ptrace_may_access(task, PTRACE_MODE_READ)) {
++ !ptrace_may_access(task, mode)) {
+ mmput(mm);
+ mm = ERR_PTR(-EACCES);
+ }
+@@ -272,6 +214,11 @@ struct mm_struct *mm_for_maps(struct tas
+ return mm;
+ }
+
++struct mm_struct *mm_for_maps(struct task_struct *task)
++{
++ return mm_access(task, PTRACE_MODE_READ);
++}
++
+ static int proc_pid_cmdline(struct task_struct *task, char * buffer)
+ {
+ int res = 0;
+@@ -816,38 +763,39 @@ static const struct file_operations proc
+
+ static int mem_open(struct inode* inode, struct file* file)
+ {
+- file->private_data = (void*)((long)current->self_exec_id);
++ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
++ struct mm_struct *mm;
++
++ if (!task)
++ return -ESRCH;
++
++ mm = mm_access(task, PTRACE_MODE_ATTACH);
++ put_task_struct(task);
++
++ if (IS_ERR(mm))
++ return PTR_ERR(mm);
++
+ /* OK to pass negative loff_t, we can catch out-of-range */
+ file->f_mode |= FMODE_UNSIGNED_OFFSET;
++ file->private_data = mm;
++
+ return 0;
+ }
+
+ static ssize_t mem_read(struct file * file, char __user * buf,
+ size_t count, loff_t *ppos)
+ {
+- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
++ int ret;
+ char *page;
+ unsigned long src = *ppos;
+- int ret = -ESRCH;
+- struct mm_struct *mm;
++ struct mm_struct *mm = file->private_data;
+
+- if (!task)
+- goto out_no_task;
++ if (!mm)
++ return 0;
+
+- ret = -ENOMEM;
+ page = (char *)__get_free_page(GFP_TEMPORARY);
+ if (!page)
+- goto out;
+-
+- mm = check_mem_permission(task);
+- ret = PTR_ERR(mm);
+- if (IS_ERR(mm))
+- goto out_free;
+-
+- ret = -EIO;
+-
+- if (file->private_data != (void*)((long)current->self_exec_id))
+- goto out_put;
++ return -ENOMEM;
+
+ ret = 0;
+
+@@ -874,13 +822,7 @@ static ssize_t mem_read(struct file * fi
+ }
+ *ppos = src;
+
+-out_put:
+- mmput(mm);
+-out_free:
+ free_page((unsigned long) page);
+-out:
+- put_task_struct(task);
+-out_no_task:
+ return ret;
+ }
+
+@@ -889,27 +831,15 @@ static ssize_t mem_write(struct file * f
+ {
+ int copied;
+ char *page;
+- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
+ unsigned long dst = *ppos;
+- struct mm_struct *mm;
++ struct mm_struct *mm = file->private_data;
+
+- copied = -ESRCH;
+- if (!task)
+- goto out_no_task;
++ if (!mm)
++ return 0;
+
+- copied = -ENOMEM;
+ page = (char *)__get_free_page(GFP_TEMPORARY);
+ if (!page)
+- goto out_task;
+-
+- mm = check_mem_permission(task);
+- copied = PTR_ERR(mm);
+- if (IS_ERR(mm))
+- goto out_free;
+-
+- copied = -EIO;
+- if (file->private_data != (void *)((long)current->self_exec_id))
+- goto out_mm;
++ return -ENOMEM;
+
+ copied = 0;
+ while (count > 0) {
+@@ -933,13 +863,7 @@ static ssize_t mem_write(struct file * f
+ }
+ *ppos = dst;
+
+-out_mm:
+- mmput(mm);
+-out_free:
+ free_page((unsigned long) page);
+-out_task:
+- put_task_struct(task);
+-out_no_task:
+ return copied;
+ }
+
+@@ -959,11 +883,20 @@ loff_t mem_lseek(struct file *file, loff
+ return file->f_pos;
+ }
+
++static int mem_release(struct inode *inode, struct file *file)
++{
++ struct mm_struct *mm = file->private_data;
++
++ mmput(mm);
++ return 0;
++}
++
+ static const struct file_operations proc_mem_operations = {
+ .llseek = mem_lseek,
+ .read = mem_read,
+ .write = mem_write,
+ .open = mem_open,
++ .release = mem_release,
+ };
+
+ static ssize_t environ_read(struct file *file, char __user *buf,
diff --git a/libre/linux-libre-lts/Kbuild b/libre/linux-libre-lts/Kbuild
new file mode 100644
index 000000000..8a9d7dceb
--- /dev/null
+++ b/libre/linux-libre-lts/Kbuild
@@ -0,0 +1,19 @@
+# Fail on warnings - also for files referenced in subdirs
+# -Werror can be disabled for specific files using:
+# CFLAGS_<file.o> := -Wno-error
+subdir-ccflags-y := -Wno-error
+
+# platform specific definitions
+include arch/mips/Kbuild.platforms
+obj-y := $(platform-y)
+
+# make clean traverses $(obj-) without having included .config, so
+# everything ends up here
+obj- := $(platform-)
+
+# mips object files
+# The object files are linked as core-y files would be linked
+
+obj-y += kernel/
+obj-y += mm/
+obj-y += math-emu/
diff --git a/libre/linux-libre-lts/Kbuild.platforms b/libre/linux-libre-lts/Kbuild.platforms
new file mode 100644
index 000000000..90a226888
--- /dev/null
+++ b/libre/linux-libre-lts/Kbuild.platforms
@@ -0,0 +1,6 @@
+# All platforms listed in alphabetic order
+
+platforms += loongson
+
+# include the platform specific files
+include $(patsubst %, $(srctree)/arch/mips/%/Platform, $(platforms))
diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD
new file mode 100644
index 000000000..0c9e95b83
--- /dev/null
+++ b/libre/linux-libre-lts/PKGBUILD
@@ -0,0 +1,353 @@
+# $Id: PKGBUILD 130991 2011-07-09 12:23:51Z thomas $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgbase=linux-libre-lts
+pkgname=('linux-libre-lts' 'linux-libre-lts-headers') # Build stock -LIBRE kernel
+# pkgname=linux-custom # Build kernel with a different name
+_kernelname=${pkgname#linux-libre}
+_basekernel=3.0
+pkgver=${_basekernel}.22
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+url="http://linux-libre.fsfla.org/"
+license=('GPL2')
+makedepends=('xmlto' 'docbook-xsl')
+options=('!strip')
+source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-libre/linux-${_basekernel}-libre.tar.xz"
+ "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-libre/patch-${_basekernel}-libre-${pkgver}-libre.xz"
+ "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${pkgver}-libre-lemote_0lxo_mipsel.tar.bz2"
+ # the main kernel config files
+ 'config.i686' 'config.x86_64'
+ # standard config files for mkinitcpio ramdisk
+ "${pkgname}.preset"
+ 'Kbuild'
+ 'Kbuild.platforms'
+ 'boot-logo.patch'
+ 'change-default-console-loglevel.patch'
+ 'i915-fix-ghost-tv-output.patch'
+ 'ext4-options.patch')
+md5sums=('44e7bc20c235a193f9b6123a8d5e9509'
+ 'ddc0925df01b70f6eef95e9b4160f28a'
+ '248d057fd2341d315ada5e844cdbdc1f'
+ '054af37f538b74a8090fc3e783a2edfa'
+ 'e195768d5b8cbe788dbe615561d4314f'
+ 'd2c0701480bce49fd4b40dc46b9863f1'
+ '2967cecc3af9f954ccc822fd63dca6ff'
+ '8267264d9a8966e57fdacd1fa1fc65c4'
+ '04b21c79df0a952c22d681dd4f4562df'
+ '9d3c56a4b999c8bfbd4018089a62f662'
+ '263725f20c0b9eb9c353040792d644e5'
+ '74d2b710d6c97aee441d7566f8f68815')
+
+build() {
+ cd "${srcdir}/linux-${_basekernel}"
+
+ if [ "${_basekernel}" != "${pkgver}" ]; then
+ patch -Np1 -i "${srcdir}/patch-${_basekernel}-libre-${pkgver}-libre"
+ fi
+
+ # Add freedo as boot logo
+ patch -Np1 -i "${srcdir}/boot-logo.patch"
+
+ # Some chips detect a ghost TV output
+ # mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html
+ # Arch Linux bug report: FS#19234
+ #
+ # It is unclear why this patch wasn't merged upstream, it was accepted,
+ # then dropped because the reasoning was unclear. However, it is clearly
+ # needed.
+ patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch"
+
+ # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
+ # remove this when a Kconfig knob is made available by upstream
+ # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
+ patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
+
+ # fix ext4 module to mount ext3/2 correct
+ # https://bugs.archlinux.org/task/28653
+ patch -Np1 -i "${srcdir}/ext4-options.patch"
+
+ if [ "$CARCH" == "mips64el" ]; then
+ sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile
+ msg2 "Adding loongson-community patches"
+ patch -Np1 -i ${srcdir}/${_basekernel}*-*-loongson-community.patch
+ patch -Np0 -i "${srcdir}/lxo-config.patch"
+
+# ensure N32, add localversion and remove uevent helper as per
+# https://git.kernel.org/?p=linux/hotplug/udev.git;a=blob_plain;f=README
+ sed -i -e "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" \
+ -e "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" \
+ -e "s|CONFIG_UEVENT_HELPER_PATH=.*|CONFIG_UEVENT_HELPER_PATH=\"\"|g" \
+ -e "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"-LIBRE\"|g" ./.config
+ else
+ cat "${srcdir}/config.${CARCH}" > ./.config # simpler
+ fi
+
+ if [ "${_kernelname}" != "" ]; then
+ sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
+ fi
+
+ # set extraversion to pkgrel
+ sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
+
+ # get kernel version
+ make prepare
+
+ # load configuration
+ # Configure the kernel. Replace the line below with one of your choice.
+ #make menuconfig # CLI menu for configuration
+ #make nconfig # new CLI menu for configuration
+ #make xconfig # X-based configuration
+ #make oldconfig # using old config from previous kernel version
+ # ... or manually edit .config
+
+ ####################
+ # stop here
+ # this is useful to configure the kernel
+ #msg "Stopping build"
+ #return 1
+ ####################
+
+ yes "" | make config
+
+ # build!
+ if [ "$CARCH" == "mips64el" ]; then
+ make ${MAKEFLAGS} vmlinuz modules
+ else
+ make ${MAKEFLAGS} bzImage modules
+ fi
+}
+
+package_linux-libre-lts() {
+ pkgdesc="The Linux-libre Kernel and modules - stable longtime supported kernel package suitable for servers"
+ groups=('base')
+ depends=('coreutils' 'module-init-tools>=3.16' 'mkinitcpio>=0.7')
+ optdepends=('crda: to set the correct wireless channels of your country')
+ provides=('kernel26-lts' "linux-lts=$pkgver")
+ conflicts=('kernel26-lts' 'kernel26-libre-lts' 'linux-lts')
+ replaces=('kernel26-lts' 'kernel26-libre-lts' 'linux-lts')
+ backup=("etc/mkinitcpio.d/${pkgname}.preset")
+ install=${pkgname}.install
+
+ cd "${srcdir}/linux-${_basekernel}"
+
+ KARCH=x86
+ [ $CARCH = "mips64el" ] && KARCH=mips
+
+ # get kernel version
+ _kernver="$(make kernelrelease)"
+
+ mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
+ make INSTALL_MOD_PATH="${pkgdir}" modules_install
+
+ if [ "$CARCH" == "mips64el" ]; then
+ cp vmlinuz "${pkgdir}/boot/vmlinuz-${pkgname}"
+ else
+ cp "arch/${KARCH}/boot/bzImage" "${pkgdir}/boot/vmlinuz-${pkgname}"
+ fi
+
+ # add vmlinux
+ install -D -m644 vmlinux "${pkgdir}/usr/src/linux-${_kernver}/vmlinux"
+
+ # install fallback mkinitcpio.conf file and preset file for kernel
+ install -D -m644 "${srcdir}/${pkgname}.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
+
+ # set correct depmod command for install
+ sed \
+ -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
+ -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
+ -i "${startdir}/${pkgname}.install"
+ sed \
+ -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgname}\"|g" \
+ -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgname}.img\"|g" \
+ -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgname}-fallback.img\"|g" \
+ -i "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
+
+# mkinitcpio 0.7 relies on bzImage to find the kernel version
+ if [ "$CARCH" == "mips64el" ]; then
+ sed -e "s|ALL_kver=.*|ALL_kver=\"${_kernver}\"|g" \
+ -i "${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset"
+ fi
+
+ # remove build and source links
+ rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
+ # remove the firmware
+ rm -rf "${pkgdir}/lib/firmware"
+ # gzip -9 all modules to save 100MB of space
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+ # make room for external modules
+ ln -s "../extramodules-${_basekernel}${_kernelname:--LIBRE}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
+ # add real version for building modules and running depmod from post_install/upgrade
+ mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--LIBRE}"
+ echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--LIBRE}/version"
+}
+
+package_linux-libre-lts-headers() {
+ pkgdesc="Header files and scripts for building modules for linux-libre longtime supported kernel"
+ provides=('kernel26-lts-headers' "linux-lts-headers=${pkgver}")
+ conflicts=('kernel26-lts-headers' 'kernel26-libre-lts-headers' 'linux-lts-headers')
+ replaces=('kernel26-lts-headers' 'kernel26-libre-lts-headers' 'linux-lts-headers')
+
+ KARCH=x86
+ [ $CARCH = "mips64el" ] && KARCH=mips
+
+# In case of repackaging this is empty
+ if [ -z "${_kernver}" ]; then
+ cd ${srcdir}/linux-$pkgver
+ _kernver="$(make kernelrelease)"
+ fi
+
+ mkdir -p "${pkgdir}/lib/modules/${_kernver}"
+
+ cd "${pkgdir}/lib/modules/${_kernver}"
+ ln -sf ../../../usr/src/linux-${_kernver} build
+
+ cd "${srcdir}/linux-${_basekernel}"
+ install -D -m644 Makefile \
+ "${pkgdir}/usr/src/linux-${_kernver}/Makefile"
+ install -D -m644 kernel/Makefile \
+ "${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile"
+ install -D -m644 .config \
+ "${pkgdir}/usr/src/linux-${_kernver}/.config"
+
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include"
+
+ for i in acpi asm-generic config crypto drm generated linux math-emu \
+ media net pcmcia scsi sound trace video xen; do
+ cp -a include/${i} "${pkgdir}/usr/src/linux-${_kernver}/include/"
+ done
+
+ # copy arch includes for external modules
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}"
+ cp -a "arch/${KARCH}/include" "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+
+ # copy files necessary for later builds
+ cp Module.symvers "${pkgdir}/usr/src/linux-${_kernver}"
+ cp -a scripts "${pkgdir}/usr/src/linux-${_kernver}"
+
+ if [ "$CARCH" = "mips64el" ]; then
+ cp "arch/${KARCH}/Kbuild" "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+ cp "arch/${KARCH}/loongson" "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+ cp "${srcdir}/Kbuild.platforms" "${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/"
+ fi
+
+ # fix permissions on scripts dir
+ chmod og-w -R "${pkgdir}/usr/src/linux-${_kernver}/scripts"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions"
+
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel"
+
+ cp arch/${KARCH}/Makefile "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+
+ if [ "${CARCH}" = "i686" ]; then
+ cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
+ fi
+
+ cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel/"
+
+ # add headers for lirc package
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video"
+
+ cp drivers/media/video/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/"
+
+ for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102; do
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
+ cp -a drivers/media/video/${i}/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
+ done
+
+ # add docbook makefile
+ install -D -m644 Documentation/DocBook/Makefile \
+ "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile"
+
+ # add dm headers
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/md"
+ cp drivers/md/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/md"
+
+ # add inotify.h
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/linux"
+ cp include/linux/inotify.h "${pkgdir}/usr/src/linux-${_kernver}/include/linux/"
+
+ # add wireless headers
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/"
+ cp net/mac80211/*.h "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/"
+
+ # add dvb headers for external modules
+ # in reference to:
+ # http://bugs.archlinux.org/task/9912
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core"
+ cp drivers/media/dvb/dvb-core/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/"
+ # and...
+ # http://bugs.archlinux.org/task/11194
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/"
+ cp include/config/dvb/*.h "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/"
+
+ # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
+ # in reference to:
+ # http://bugs.archlinux.org/task/13146
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+ cp drivers/media/dvb/frontends/lgdt330x.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+ cp drivers/media/video/msp3400-driver.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+
+ # add dvb headers
+ # in reference to:
+ # http://bugs.archlinux.org/task/20402
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb"
+ cp drivers/media/dvb/dvb-usb/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends"
+ cp drivers/media/dvb/frontends/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners"
+ cp drivers/media/common/tuners/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/"
+
+ # add xfs and shmem for aufs building
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs"
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/mm"
+ cp fs/xfs/xfs_sb.h "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h"
+
+ # copy in Kconfig files
+ for i in `find . -name "Kconfig*"`; do
+ mkdir -p "${pkgdir}"/usr/src/linux-${_kernver}/`echo ${i} | sed 's|/Kconfig.*||'`
+ cp ${i} "${pkgdir}/usr/src/linux-${_kernver}/${i}"
+ done
+
+ chown -R root.root "${pkgdir}/usr/src/linux-${_kernver}"
+ find "${pkgdir}/usr/src/linux-${_kernver}" -type d -exec chmod 755 {} \;
+
+ # strip scripts directory
+ find "${pkgdir}/usr/src/linux-${_kernver}/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
+ case "$(file -bi "${binary}")" in
+ *application/x-sharedlib*) # Libraries (.so)
+ /usr/bin/strip ${STRIP_SHARED} "${binary}";;
+ *application/x-archive*) # Libraries (.a)
+ /usr/bin/strip ${STRIP_STATIC} "${binary}";;
+ *application/x-executable*) # Binaries
+ /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
+ esac
+ done
+
+ # remove unneeded architectures
+ rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+ if [ "$CARCH" = "mips64el" ]; then
+ rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
+ else
+ rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/mips
+ fi
+}
+
+package_linux-libre-docs() {
+ pkgdesc="Kernel hackers manual - HTML documentation that comes with the Linux-libre kernel."
+ provides=('kernel26-docs' "linux-docs=$pkgver")
+ conflicts=('kernel26-docs' 'kernel26-libre-docs' 'linux-docs')
+ replaces=('kernel26-docs' 'kernel26-libre-docs' 'linux-docs')
+
+ cd "${srcdir}/linux-${_basekernel}"
+
+ mkdir -p "${pkgdir}/usr/src/linux-${_kernver}"
+ cp -al Documentation "${pkgdir}/usr/src/linux-${_kernver}"
+ find "${pkgdir}" -type f -exec chmod 444 {} \;
+ find "${pkgdir}" -type d -exec chmod 755 {} \;
+
+ # remove a file already in linux package
+ rm -f "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile"
+}
diff --git a/libre/linux-libre-lts/boot-logo.patch b/libre/linux-libre-lts/boot-logo.patch
new file mode 100644
index 000000000..c392928a5
--- /dev/null
+++ b/libre/linux-libre-lts/boot-logo.patch
@@ -0,0 +1,23163 @@
+diff -Nur linux-2.6.39.1/drivers/video/logo/logo_linux_clut224.ppm linux-2.6.39-LIBRE/drivers/video/logo/logo_linux_clut224.ppm
+--- linux-2.6.39.1/drivers/video/logo/logo_linux_clut224.ppm 2011-06-02 21:34:20.000000000 -0300
++++ linux-2.6.39-LIBRE/drivers/video/logo/logo_linux_clut224.ppm 2011-06-22 13:42:06.000000000 -0300
+@@ -1,1604 +1,861 @@
+ P3
+-# Standard 224-color Linux logo
+-80 80
++80 78
+ 255
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 6 6 6 10 10 10 10 10 10
+- 10 10 10 6 6 6 6 6 6 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 10 10 10 14 14 14
+- 22 22 22 26 26 26 30 30 30 34 34 34
+- 30 30 30 30 30 30 26 26 26 18 18 18
+- 14 14 14 10 10 10 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 26 26 26 42 42 42
+- 54 54 54 66 66 66 78 78 78 78 78 78
+- 78 78 78 74 74 74 66 66 66 54 54 54
+- 42 42 42 26 26 26 18 18 18 10 10 10
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 22 22 22 42 42 42 66 66 66 86 86 86
+- 66 66 66 38 38 38 38 38 38 22 22 22
+- 26 26 26 34 34 34 54 54 54 66 66 66
+- 86 86 86 70 70 70 46 46 46 26 26 26
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 26 26 26
+- 50 50 50 82 82 82 58 58 58 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 54 54 54 86 86 86 66 66 66
+- 38 38 38 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 22 22 22 50 50 50
+- 78 78 78 34 34 34 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 6 6 6 70 70 70
+- 78 78 78 46 46 46 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 42 42 42 82 82 82
+- 26 26 26 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 14 14 14
+- 46 46 46 34 34 34 6 6 6 2 2 6
+- 42 42 42 78 78 78 42 42 42 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 10 10 10 30 30 30 66 66 66 58 58 58
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 26 26 26
+- 86 86 86 101 101 101 46 46 46 10 10 10
+- 2 2 6 58 58 58 70 70 70 34 34 34
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 14 14 14 42 42 42 86 86 86 10 10 10
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 30 30 30
+- 94 94 94 94 94 94 58 58 58 26 26 26
+- 2 2 6 6 6 6 78 78 78 54 54 54
+- 22 22 22 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 22 22 22 62 62 62 62 62 62 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 26 26 26
+- 54 54 54 38 38 38 18 18 18 10 10 10
+- 2 2 6 2 2 6 34 34 34 82 82 82
+- 38 38 38 14 14 14 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 30 30 30 78 78 78 30 30 30 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 10 10 10
+- 10 10 10 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 78 78 78
+- 50 50 50 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 86 86 86 14 14 14 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 54 54 54
+- 66 66 66 26 26 26 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 82 82 82 2 2 6 2 2 6
+- 2 2 6 6 6 6 10 10 10 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 6 6 6
+- 14 14 14 10 10 10 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 18 18 18
+- 82 82 82 34 34 34 10 10 10 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 2 2 6
+- 6 6 6 6 6 6 22 22 22 34 34 34
+- 6 6 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 18 18 18 34 34 34
+- 10 10 10 50 50 50 22 22 22 2 2 6
+- 2 2 6 2 2 6 2 2 6 10 10 10
+- 86 86 86 42 42 42 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 2 2 6
+- 38 38 38 116 116 116 94 94 94 22 22 22
+- 22 22 22 2 2 6 2 2 6 2 2 6
+- 14 14 14 86 86 86 138 138 138 162 162 162
+-154 154 154 38 38 38 26 26 26 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 86 86 86 46 46 46 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 14 14 14
+-134 134 134 198 198 198 195 195 195 116 116 116
+- 10 10 10 2 2 6 2 2 6 6 6 6
+-101 98 89 187 187 187 210 210 210 218 218 218
+-214 214 214 134 134 134 14 14 14 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 86 86 86 50 50 50 18 18 18 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 86 86 86 2 2 6 54 54 54
+-218 218 218 195 195 195 226 226 226 246 246 246
+- 58 58 58 2 2 6 2 2 6 30 30 30
+-210 210 210 253 253 253 174 174 174 123 123 123
+-221 221 221 234 234 234 74 74 74 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 70 70 70 58 58 58 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 46 46 46 82 82 82 2 2 6 106 106 106
+-170 170 170 26 26 26 86 86 86 226 226 226
+-123 123 123 10 10 10 14 14 14 46 46 46
+-231 231 231 190 190 190 6 6 6 70 70 70
+- 90 90 90 238 238 238 158 158 158 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 70 70 70 58 58 58 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 0
+- 0 0 1 0 0 1 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 86 86 86 6 6 6 116 116 116
+-106 106 106 6 6 6 70 70 70 149 149 149
+-128 128 128 18 18 18 38 38 38 54 54 54
+-221 221 221 106 106 106 2 2 6 14 14 14
+- 46 46 46 190 190 190 198 198 198 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 74 74 74 62 62 62 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 0
+- 0 0 1 0 0 0 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 94 94 94 14 14 14 101 101 101
+-128 128 128 2 2 6 18 18 18 116 116 116
+-118 98 46 121 92 8 121 92 8 98 78 10
+-162 162 162 106 106 106 2 2 6 2 2 6
+- 2 2 6 195 195 195 195 195 195 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 74 74 74 62 62 62 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 1 0 0 1
+- 0 0 1 0 0 0 0 0 1 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 90 90 90 14 14 14 58 58 58
+-210 210 210 26 26 26 54 38 6 154 114 10
+-226 170 11 236 186 11 225 175 15 184 144 12
+-215 174 15 175 146 61 37 26 9 2 2 6
+- 70 70 70 246 246 246 138 138 138 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 70 70 70 66 66 66 26 26 26 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 86 86 86 14 14 14 10 10 10
+-195 195 195 188 164 115 192 133 9 225 175 15
+-239 182 13 234 190 10 232 195 16 232 200 30
+-245 207 45 241 208 19 232 195 16 184 144 12
+-218 194 134 211 206 186 42 42 42 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 50 50 50 74 74 74 30 30 30 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 34 34 34 86 86 86 14 14 14 2 2 6
+-121 87 25 192 133 9 219 162 10 239 182 13
+-236 186 11 232 195 16 241 208 19 244 214 54
+-246 218 60 246 218 38 246 215 20 241 208 19
+-241 208 19 226 184 13 121 87 25 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 50 50 50 82 82 82 34 34 34 10 10 10
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 34 34 34 82 82 82 30 30 30 61 42 6
+-180 123 7 206 145 10 230 174 11 239 182 13
+-234 190 10 238 202 15 241 208 19 246 218 74
+-246 218 38 246 215 20 246 215 20 246 215 20
+-226 184 13 215 174 15 184 144 12 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 26 26 26 94 94 94 42 42 42 14 14 14
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 50 50 50 104 69 6
+-192 133 9 216 158 10 236 178 12 236 186 11
+-232 195 16 241 208 19 244 214 54 245 215 43
+-246 215 20 246 215 20 241 208 19 198 155 10
+-200 144 11 216 158 10 156 118 10 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 90 90 90 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 46 46 46 22 22 22
+-137 92 6 210 162 10 239 182 13 238 190 10
+-238 202 15 241 208 19 246 215 20 246 215 20
+-241 208 19 203 166 17 185 133 11 210 150 10
+-216 158 10 210 150 10 102 78 10 2 2 6
+- 6 6 6 54 54 54 14 14 14 2 2 6
+- 2 2 6 62 62 62 74 74 74 30 30 30
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 34 34 34 78 78 78 50 50 50 6 6 6
+- 94 70 30 139 102 15 190 146 13 226 184 13
+-232 200 30 232 195 16 215 174 15 190 146 13
+-168 122 10 192 133 9 210 150 10 213 154 11
+-202 150 34 182 157 106 101 98 89 2 2 6
+- 2 2 6 78 78 78 116 116 116 58 58 58
+- 2 2 6 22 22 22 90 90 90 46 46 46
+- 18 18 18 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 86 86 86 50 50 50 6 6 6
+-128 128 128 174 154 114 156 107 11 168 122 10
+-198 155 10 184 144 12 197 138 11 200 144 11
+-206 145 10 206 145 10 197 138 11 188 164 115
+-195 195 195 198 198 198 174 174 174 14 14 14
+- 2 2 6 22 22 22 116 116 116 116 116 116
+- 22 22 22 2 2 6 74 74 74 70 70 70
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 101 101 101 26 26 26 10 10 10
+-138 138 138 190 190 190 174 154 114 156 107 11
+-197 138 11 200 144 11 197 138 11 192 133 9
+-180 123 7 190 142 34 190 178 144 187 187 187
+-202 202 202 221 221 221 214 214 214 66 66 66
+- 2 2 6 2 2 6 50 50 50 62 62 62
+- 6 6 6 2 2 6 10 10 10 90 90 90
+- 50 50 50 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 34 34 34
+- 74 74 74 74 74 74 2 2 6 6 6 6
+-144 144 144 198 198 198 190 190 190 178 166 146
+-154 121 60 156 107 11 156 107 11 168 124 44
+-174 154 114 187 187 187 190 190 190 210 210 210
+-246 246 246 253 253 253 253 253 253 182 182 182
+- 6 6 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 62 62 62
+- 74 74 74 34 34 34 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 10 10 10 22 22 22 54 54 54
+- 94 94 94 18 18 18 2 2 6 46 46 46
+-234 234 234 221 221 221 190 190 190 190 190 190
+-190 190 190 187 187 187 187 187 187 190 190 190
+-190 190 190 195 195 195 214 214 214 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+- 82 82 82 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 14 14 14
+- 86 86 86 54 54 54 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 46 46 46 90 90 90
+- 46 46 46 18 18 18 6 6 6 182 182 182
+-253 253 253 246 246 246 206 206 206 190 190 190
+-190 190 190 190 190 190 190 190 190 190 190 190
+-206 206 206 231 231 231 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-202 202 202 14 14 14 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 42 42 42 86 86 86 42 42 42 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 14 14 14 38 38 38 74 74 74 66 66 66
+- 2 2 6 6 6 6 90 90 90 250 250 250
+-253 253 253 253 253 253 238 238 238 198 198 198
+-190 190 190 190 190 190 195 195 195 221 221 221
+-246 246 246 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 82 82 82 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 78 78 78 70 70 70 34 34 34
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 34 34 34 66 66 66 78 78 78 6 6 6
+- 2 2 6 18 18 18 218 218 218 253 253 253
+-253 253 253 253 253 253 253 253 253 246 246 246
+-226 226 226 231 231 231 246 246 246 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 178 178 178 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 18 18 18 90 90 90 62 62 62
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 26 26 26
+- 58 58 58 90 90 90 18 18 18 2 2 6
+- 2 2 6 110 110 110 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 231 231 231 18 18 18 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 18 18 18 94 94 94
+- 54 54 54 26 26 26 10 10 10 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 22 22 22 50 50 50
+- 90 90 90 26 26 26 2 2 6 2 2 6
+- 14 14 14 195 195 195 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 242 242 242 54 54 54 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 38 38 38
+- 86 86 86 50 50 50 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 38 38 38 82 82 82
+- 34 34 34 2 2 6 2 2 6 2 2 6
+- 42 42 42 195 195 195 246 246 246 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-242 242 242 242 242 242 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 250 250 250 246 246 246 238 238 238
+-226 226 226 231 231 231 101 101 101 6 6 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 38 38 38 82 82 82 42 42 42 14 14 14
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 10 10 10 26 26 26 62 62 62 66 66 66
+- 2 2 6 2 2 6 2 2 6 6 6 6
+- 70 70 70 170 170 170 206 206 206 234 234 234
+-246 246 246 250 250 250 250 250 250 238 238 238
+-226 226 226 231 231 231 238 238 238 250 250 250
+-250 250 250 250 250 250 246 246 246 231 231 231
+-214 214 214 206 206 206 202 202 202 202 202 202
+-198 198 198 202 202 202 182 182 182 18 18 18
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 62 62 62 66 66 66 30 30 30
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 14 14 14 42 42 42 82 82 82 18 18 18
+- 2 2 6 2 2 6 2 2 6 10 10 10
+- 94 94 94 182 182 182 218 218 218 242 242 242
+-250 250 250 253 253 253 253 253 253 250 250 250
+-234 234 234 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 246 246 246
+-238 238 238 226 226 226 210 210 210 202 202 202
+-195 195 195 195 195 195 210 210 210 158 158 158
+- 6 6 6 14 14 14 50 50 50 14 14 14
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 86 86 86 46 46 46
+- 18 18 18 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 22 22 22 54 54 54 70 70 70 2 2 6
+- 2 2 6 10 10 10 2 2 6 22 22 22
+-166 166 166 231 231 231 250 250 250 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-242 242 242 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 246 246 246
+-231 231 231 206 206 206 198 198 198 226 226 226
+- 94 94 94 2 2 6 6 6 6 38 38 38
+- 30 30 30 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 62 62 62 66 66 66
+- 26 26 26 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 74 74 74 50 50 50 2 2 6
+- 26 26 26 26 26 26 2 2 6 106 106 106
+-238 238 238 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 246 246 246 218 218 218 202 202 202
+-210 210 210 14 14 14 2 2 6 2 2 6
+- 30 30 30 22 22 22 2 2 6 2 2 6
+- 2 2 6 2 2 6 18 18 18 86 86 86
+- 42 42 42 14 14 14 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 42 42 42 90 90 90 22 22 22 2 2 6
+- 42 42 42 2 2 6 18 18 18 218 218 218
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 250 250 250 221 221 221
+-218 218 218 101 101 101 2 2 6 14 14 14
+- 18 18 18 38 38 38 10 10 10 2 2 6
+- 2 2 6 2 2 6 2 2 6 78 78 78
+- 58 58 58 22 22 22 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 54 54 54 82 82 82 2 2 6 26 26 26
+- 22 22 22 2 2 6 123 123 123 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-238 238 238 198 198 198 6 6 6 38 38 38
+- 58 58 58 26 26 26 38 38 38 2 2 6
+- 2 2 6 2 2 6 2 2 6 46 46 46
+- 78 78 78 30 30 30 10 10 10 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 10 10 10 30 30 30
+- 74 74 74 58 58 58 2 2 6 42 42 42
+- 2 2 6 22 22 22 231 231 231 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 250 250 250
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 246 246 246 46 46 46 38 38 38
+- 42 42 42 14 14 14 38 38 38 14 14 14
+- 2 2 6 2 2 6 2 2 6 6 6 6
+- 86 86 86 46 46 46 14 14 14 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 14 14 14 42 42 42
+- 90 90 90 18 18 18 18 18 18 26 26 26
+- 2 2 6 116 116 116 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 250 250 250 238 238 238
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 94 94 94 6 6 6
+- 2 2 6 2 2 6 10 10 10 34 34 34
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 74 74 74 58 58 58 22 22 22 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 10 10 10 26 26 26 66 66 66
+- 82 82 82 2 2 6 38 38 38 6 6 6
+- 14 14 14 210 210 210 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 246 246 246 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 144 144 144 2 2 6
+- 2 2 6 2 2 6 2 2 6 46 46 46
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 42 42 42 74 74 74 30 30 30 10 10 10
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 42 42 42 90 90 90
+- 26 26 26 6 6 6 42 42 42 2 2 6
+- 74 74 74 250 250 250 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 242 242 242 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 182 182 182 2 2 6
+- 2 2 6 2 2 6 2 2 6 46 46 46
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 10 10 10 86 86 86 38 38 38 10 10 10
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 10 10 10 26 26 26 66 66 66 82 82 82
+- 2 2 6 22 22 22 18 18 18 2 2 6
+-149 149 149 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 206 206 206 2 2 6
+- 2 2 6 2 2 6 2 2 6 38 38 38
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 86 86 86 46 46 46 14 14 14
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 18 18 18 46 46 46 86 86 86 18 18 18
+- 2 2 6 34 34 34 10 10 10 6 6 6
+-210 210 210 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 221 221 221 6 6 6
+- 2 2 6 2 2 6 6 6 6 30 30 30
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 82 82 82 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 26 26 26 66 66 66 62 62 62 2 2 6
+- 2 2 6 38 38 38 10 10 10 26 26 26
+-238 238 238 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 238 238 238
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 6 6 6
+- 2 2 6 2 2 6 10 10 10 30 30 30
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 58 58 58 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 38 38 38 78 78 78 6 6 6 2 2 6
+- 2 2 6 46 46 46 14 14 14 42 42 42
+-246 246 246 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 10 10 10
+- 2 2 6 2 2 6 22 22 22 14 14 14
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 62 62 62 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 74 74 74 2 2 6 2 2 6
+- 14 14 14 70 70 70 34 34 34 62 62 62
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 14 14 14
+- 2 2 6 2 2 6 30 30 30 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 62 62 62 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 54 54 54 62 62 62 2 2 6 2 2 6
+- 2 2 6 30 30 30 46 46 46 70 70 70
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 226 226 226 10 10 10
+- 2 2 6 6 6 6 30 30 30 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 66 66 66 58 58 58 22 22 22
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 22 22 22
+- 58 58 58 62 62 62 2 2 6 2 2 6
+- 2 2 6 2 2 6 30 30 30 78 78 78
+-250 250 250 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 206 206 206 2 2 6
+- 22 22 22 34 34 34 18 14 6 22 22 22
+- 26 26 26 18 18 18 6 6 6 2 2 6
+- 2 2 6 82 82 82 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 26 26 26
+- 62 62 62 106 106 106 74 54 14 185 133 11
+-210 162 10 121 92 8 6 6 6 62 62 62
+-238 238 238 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 246 246 246
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 158 158 158 18 18 18
+- 14 14 14 2 2 6 2 2 6 2 2 6
+- 6 6 6 18 18 18 66 66 66 38 38 38
+- 6 6 6 94 94 94 50 50 50 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 10 10 10 10 10 10 18 18 18 38 38 38
+- 78 78 78 142 134 106 216 158 10 242 186 14
+-246 190 14 246 190 14 156 118 10 10 10 10
+- 90 90 90 238 238 238 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 250 250 250
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 246 230 190
+-238 204 91 238 204 91 181 142 44 37 26 9
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 38 38 38 46 46 46
+- 26 26 26 106 106 106 54 54 54 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 14 14 14 22 22 22
+- 30 30 30 38 38 38 50 50 50 70 70 70
+-106 106 106 190 142 34 226 170 11 242 186 14
+-246 190 14 246 190 14 246 190 14 154 114 10
+- 6 6 6 74 74 74 226 226 226 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 231 231 231 250 250 250
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 228 184 62
+-241 196 14 241 208 19 232 195 16 38 30 10
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 30 30 30 26 26 26
+-203 166 17 154 142 90 66 66 66 26 26 26
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 38 38 38 58 58 58
+- 78 78 78 86 86 86 101 101 101 123 123 123
+-175 146 61 210 150 10 234 174 13 246 186 14
+-246 190 14 246 190 14 246 190 14 238 190 10
+-102 78 10 2 2 6 46 46 46 198 198 198
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 234 234 234 242 242 242
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 224 178 62
+-242 186 14 241 196 14 210 166 10 22 18 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 6 6 6 121 92 8
+-238 202 15 232 195 16 82 82 82 34 34 34
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 14 14 14 38 38 38 70 70 70 154 122 46
+-190 142 34 200 144 11 197 138 11 197 138 11
+-213 154 11 226 170 11 242 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-225 175 15 46 32 6 2 2 6 22 22 22
+-158 158 158 250 250 250 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 250 250 250 242 242 242 224 178 62
+-239 182 13 236 186 11 213 154 11 46 32 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 61 42 6 225 175 15
+-238 190 10 236 186 11 112 100 78 42 42 42
+- 14 14 14 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 22 22 22 54 54 54 154 122 46 213 154 11
+-226 170 11 230 174 11 226 170 11 226 170 11
+-236 178 12 242 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-241 196 14 184 144 12 10 10 10 2 2 6
+- 6 6 6 116 116 116 242 242 242 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 231 231 231 198 198 198 214 170 54
+-236 178 12 236 178 12 210 150 10 137 92 6
+- 18 14 6 2 2 6 2 2 6 2 2 6
+- 6 6 6 70 47 6 200 144 11 236 178 12
+-239 182 13 239 182 13 124 112 88 58 58 58
+- 22 22 22 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 70 70 70 180 133 36 226 170 11
+-239 182 13 242 186 14 242 186 14 246 186 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 232 195 16 98 70 6 2 2 6
+- 2 2 6 2 2 6 66 66 66 221 221 221
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 206 206 206 198 198 198 214 166 58
+-230 174 11 230 174 11 216 158 10 192 133 9
+-163 110 8 116 81 8 102 78 10 116 81 8
+-167 114 7 197 138 11 226 170 11 239 182 13
+-242 186 14 242 186 14 162 146 94 78 78 78
+- 34 34 34 14 14 14 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 30 30 30 78 78 78 190 142 34 226 170 11
+-239 182 13 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 241 196 14 203 166 17 22 18 6
+- 2 2 6 2 2 6 2 2 6 38 38 38
+-218 218 218 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 206 206 206 198 198 198 202 162 69
+-226 170 11 236 178 12 224 166 10 210 150 10
+-200 144 11 197 138 11 192 133 9 197 138 11
+-210 150 10 226 170 11 242 186 14 246 190 14
+-246 190 14 246 186 14 225 175 15 124 112 88
+- 62 62 62 30 30 30 14 14 14 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 174 135 50 224 166 10
+-239 182 13 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 241 196 14 139 102 15
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 78 78 78 250 250 250 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-250 250 250 214 214 214 198 198 198 190 150 46
+-219 162 10 236 178 12 234 174 13 224 166 10
+-216 158 10 213 154 11 213 154 11 216 158 10
+-226 170 11 239 182 13 246 190 14 246 190 14
+-246 190 14 246 190 14 242 186 14 206 162 42
+-101 101 101 58 58 58 30 30 30 14 14 14
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 74 74 74 174 135 50 216 158 10
+-236 178 12 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 241 196 14 226 184 13
+- 61 42 6 2 2 6 2 2 6 2 2 6
+- 22 22 22 238 238 238 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 226 226 226 187 187 187 180 133 36
+-216 158 10 236 178 12 239 182 13 236 178 12
+-230 174 11 226 170 11 226 170 11 230 174 11
+-236 178 12 242 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 186 14 239 182 13
+-206 162 42 106 106 106 66 66 66 34 34 34
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 26 26 26 70 70 70 163 133 67 213 154 11
+-236 178 12 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 241 196 14
+-190 146 13 18 14 6 2 2 6 2 2 6
+- 46 46 46 246 246 246 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 221 221 221 86 86 86 156 107 11
+-216 158 10 236 178 12 242 186 14 246 186 14
+-242 186 14 239 182 13 239 182 13 242 186 14
+-242 186 14 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-242 186 14 225 175 15 142 122 72 66 66 66
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 26 26 26 70 70 70 163 133 67 210 150 10
+-236 178 12 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-232 195 16 121 92 8 34 34 34 106 106 106
+-221 221 221 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-242 242 242 82 82 82 18 14 6 163 110 8
+-216 158 10 236 178 12 242 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 242 186 14 163 133 67
+- 46 46 46 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 10 10 10
+- 30 30 30 78 78 78 163 133 67 210 150 10
+-236 178 12 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-241 196 14 215 174 15 190 178 144 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 218 218 218
+- 58 58 58 2 2 6 22 18 6 167 114 7
+-216 158 10 236 178 12 246 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 186 14 242 186 14 190 150 46
+- 54 54 54 22 22 22 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 38 38 38 86 86 86 180 133 36 213 154 11
+-236 178 12 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 232 195 16 190 146 13 214 214 214
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 250 250 250 170 170 170 26 26 26
+- 2 2 6 2 2 6 37 26 9 163 110 8
+-219 162 10 239 182 13 246 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 186 14 236 178 12 224 166 10 142 122 72
+- 46 46 46 18 18 18 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 109 106 95 192 133 9 224 166 10
+-242 186 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-242 186 14 226 184 13 210 162 10 142 110 46
+-226 226 226 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-253 253 253 253 253 253 253 253 253 253 253 253
+-198 198 198 66 66 66 2 2 6 2 2 6
+- 2 2 6 2 2 6 50 34 6 156 107 11
+-219 162 10 239 182 13 246 186 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 242 186 14
+-234 174 13 213 154 11 154 122 46 66 66 66
+- 30 30 30 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 22 22 22
+- 58 58 58 154 121 60 206 145 10 234 174 13
+-242 186 14 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 186 14 236 178 12 210 162 10 163 110 8
+- 61 42 6 138 138 138 218 218 218 250 250 250
+-253 253 253 253 253 253 253 253 253 250 250 250
+-242 242 242 210 210 210 144 144 144 66 66 66
+- 6 6 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 61 42 6 163 110 8
+-216 158 10 236 178 12 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 239 182 13 230 174 11 216 158 10
+-190 142 34 124 112 88 70 70 70 38 38 38
+- 18 18 18 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 22 22 22
+- 62 62 62 168 124 44 206 145 10 224 166 10
+-236 178 12 239 182 13 242 186 14 242 186 14
+-246 186 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 236 178 12 216 158 10 175 118 6
+- 80 54 7 2 2 6 6 6 6 30 30 30
+- 54 54 54 62 62 62 50 50 50 38 38 38
+- 14 14 14 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 80 54 7 167 114 7
+-213 154 11 236 178 12 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 190 14 242 186 14 239 182 13 239 182 13
+-230 174 11 210 150 10 174 135 50 124 112 88
+- 82 82 82 54 54 54 34 34 34 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 18 18 18
+- 50 50 50 158 118 36 192 133 9 200 144 11
+-216 158 10 219 162 10 224 166 10 226 170 11
+-230 174 11 236 178 12 239 182 13 239 182 13
+-242 186 14 246 186 14 246 190 14 246 190 14
+-246 190 14 246 190 14 246 190 14 246 190 14
+-246 186 14 230 174 11 210 150 10 163 110 8
+-104 69 6 10 10 10 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 91 60 6 167 114 7
+-206 145 10 230 174 11 242 186 14 246 190 14
+-246 190 14 246 190 14 246 186 14 242 186 14
+-239 182 13 230 174 11 224 166 10 213 154 11
+-180 133 36 124 112 88 86 86 86 58 58 58
+- 38 38 38 22 22 22 10 10 10 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 14 14 14
+- 34 34 34 70 70 70 138 110 50 158 118 36
+-167 114 7 180 123 7 192 133 9 197 138 11
+-200 144 11 206 145 10 213 154 11 219 162 10
+-224 166 10 230 174 11 239 182 13 242 186 14
+-246 186 14 246 186 14 246 186 14 246 186 14
+-239 182 13 216 158 10 185 133 11 152 99 6
+-104 69 6 18 14 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 2 2 6 2 2 6 2 2 6
+- 2 2 6 6 6 6 80 54 7 152 99 6
+-192 133 9 219 162 10 236 178 12 239 182 13
+-246 186 14 242 186 14 239 182 13 236 178 12
+-224 166 10 206 145 10 192 133 9 154 121 60
+- 94 94 94 62 62 62 42 42 42 22 22 22
+- 14 14 14 6 6 6 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 18 18 18 34 34 34 58 58 58 78 78 78
+-101 98 89 124 112 88 142 110 46 156 107 11
+-163 110 8 167 114 7 175 118 6 180 123 7
+-185 133 11 197 138 11 210 150 10 219 162 10
+-226 170 11 236 178 12 236 178 12 234 174 13
+-219 162 10 197 138 11 163 110 8 130 83 6
+- 91 60 6 10 10 10 2 2 6 2 2 6
+- 18 18 18 38 38 38 38 38 38 38 38 38
+- 38 38 38 38 38 38 38 38 38 38 38 38
+- 38 38 38 38 38 38 26 26 26 2 2 6
+- 2 2 6 6 6 6 70 47 6 137 92 6
+-175 118 6 200 144 11 219 162 10 230 174 11
+-234 174 13 230 174 11 219 162 10 210 150 10
+-192 133 9 163 110 8 124 112 88 82 82 82
+- 50 50 50 30 30 30 14 14 14 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 14 14 14 22 22 22 34 34 34
+- 42 42 42 58 58 58 74 74 74 86 86 86
+-101 98 89 122 102 70 130 98 46 121 87 25
+-137 92 6 152 99 6 163 110 8 180 123 7
+-185 133 11 197 138 11 206 145 10 200 144 11
+-180 123 7 156 107 11 130 83 6 104 69 6
+- 50 34 6 54 54 54 110 110 110 101 98 89
+- 86 86 86 82 82 82 78 78 78 78 78 78
+- 78 78 78 78 78 78 78 78 78 78 78 78
+- 78 78 78 82 82 82 86 86 86 94 94 94
+-106 106 106 101 101 101 86 66 34 124 80 6
+-156 107 11 180 123 7 192 133 9 200 144 11
+-206 145 10 200 144 11 192 133 9 175 118 6
+-139 102 15 109 106 95 70 70 70 42 42 42
+- 22 22 22 10 10 10 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 6 6 6 10 10 10
+- 14 14 14 22 22 22 30 30 30 38 38 38
+- 50 50 50 62 62 62 74 74 74 90 90 90
+-101 98 89 112 100 78 121 87 25 124 80 6
+-137 92 6 152 99 6 152 99 6 152 99 6
+-138 86 6 124 80 6 98 70 6 86 66 30
+-101 98 89 82 82 82 58 58 58 46 46 46
+- 38 38 38 34 34 34 34 34 34 34 34 34
+- 34 34 34 34 34 34 34 34 34 34 34 34
+- 34 34 34 34 34 34 38 38 38 42 42 42
+- 54 54 54 82 82 82 94 86 76 91 60 6
+-134 86 6 156 107 11 167 114 7 175 118 6
+-175 118 6 167 114 7 152 99 6 121 87 25
+-101 98 89 62 62 62 34 34 34 18 18 18
+- 6 6 6 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 6 6 6 10 10 10
+- 18 18 18 22 22 22 30 30 30 42 42 42
+- 50 50 50 66 66 66 86 86 86 101 98 89
+-106 86 58 98 70 6 104 69 6 104 69 6
+-104 69 6 91 60 6 82 62 34 90 90 90
+- 62 62 62 38 38 38 22 22 22 14 14 14
+- 10 10 10 10 10 10 10 10 10 10 10 10
+- 10 10 10 10 10 10 6 6 6 10 10 10
+- 10 10 10 10 10 10 10 10 10 14 14 14
+- 22 22 22 42 42 42 70 70 70 89 81 66
+- 80 54 7 104 69 6 124 80 6 137 92 6
+-134 86 6 116 81 8 100 82 52 86 86 86
+- 58 58 58 30 30 30 14 14 14 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 10 10 10 14 14 14
+- 18 18 18 26 26 26 38 38 38 54 54 54
+- 70 70 70 86 86 86 94 86 76 89 81 66
+- 89 81 66 86 86 86 74 74 74 50 50 50
+- 30 30 30 14 14 14 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 18 18 18 34 34 34 58 58 58
+- 82 82 82 89 81 66 89 81 66 89 81 66
+- 94 86 66 94 86 76 74 74 74 50 50 50
+- 26 26 26 14 14 14 6 6 6 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 6 6 6 6 6 6 14 14 14 18 18 18
+- 30 30 30 38 38 38 46 46 46 54 54 54
+- 50 50 50 42 42 42 30 30 30 18 18 18
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 6 6 6 14 14 14 26 26 26
+- 38 38 38 50 50 50 58 58 58 58 58 58
+- 54 54 54 42 42 42 30 30 30 18 18 18
+- 10 10 10 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 6 6 6 10 10 10 14 14 14 18 18 18
+- 18 18 18 14 14 14 10 10 10 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 6 6 6
+- 14 14 14 18 18 18 22 22 22 22 22 22
+- 18 18 18 14 14 14 10 10 10 6 6 6
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 6 9 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 6 9 23 30 36 44 54 65 57 72 88 44 54 65 6 12 15 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 31 41 52
++103 134 161 163 205 246 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 143 185 225
++82 108 129 8 14 16 0 2 0 0 6 9 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 17 24 30 126 162 196 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 161 203 243 92 119 140 0 6 9 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 44 54 65 154 195 235 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 138 174 208 21 27 33 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 70 96 117 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 157 198 239 49 59 70 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 7 0 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 3 6 52 62 74 170 212 252 170 212 252 170 212 252 170 212 252 129 165 199
++82 108 129 149 191 231 170 212 252 170 212 252 170 212 252 129 165 199 82 108 129 149 191 231
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 166 207 248 37 48 59 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 21 13 4 31 23 12 0 2 0 0 2 0 105 75 32 155 111 43 23 15 7
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 6 9 3 10 13 146 188 228 170 212 252 170 212 252 170 212 252 157 198 239 0 6 9
++0 2 0 52 62 74 170 212 252 170 212 252 154 195 235 0 6 9 0 2 0 55 66 77
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 151 193 233 17 24 30
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++10 12 8 23 15 7 139 99 44 206 148 61 67 49 21 0 2 0 125 92 35 206 148 61
++15 9 7 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 96 127 154 170 212 252 170 212 252 170 212 252 170 212 252 92 119 140 21 22 20
++10 12 8 53 68 84 170 212 252 170 212 252 92 119 140 10 12 8 7 10 5 53 68 84
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 134 170 204
++0 6 9 0 3 6 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 21 22 20
++62 64 61 38 40 37 0 2 0 34 26 8 212 153 66 64 46 18 0 2 0 170 124 49
++180 132 57 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++18 22 24 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 65 87 102 115 117 114
++43 44 42 88 115 136 170 212 252 170 212 252 68 83 99 108 110 107 60 62 59 88 115 136
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++80 98 121 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 10 12 8 56 58 55 95 96 94 178 180 177 215 217 214 198 200 197
++158 160 156 138 140 137 82 83 81 0 2 0 64 46 18 228 167 73 23 15 7 41 31 10
++250 179 73 55 39 17 7 0 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++75 94 116 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 63 78 94 0 2 0
++0 2 0 126 162 196 170 212 252 170 212 252 57 72 88 0 2 0 0 2 0 126 162 196
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++157 198 239 8 14 16 0 6 9 0 2 0 45 47 44 195 197 194 192 194 191 38 40 37
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 192 194 191 234 236 233 176 178 175 118 120 117 143 145 142 176 178 175
++215 217 214 234 236 233 234 236 233 104 106 103 0 2 0 142 101 40 134 100 43 0 2 0
++164 119 51 170 124 49 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++134 170 204 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 115 152 185 8 14 16
++49 59 70 166 207 248 170 212 252 170 212 252 119 150 178 8 14 16 55 66 77 166 207 248
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 92 119 140 0 2 0 0 2 0 200 202 199 254 255 252 254 255 252 244 246 243
++40 41 39 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 38 40 37 234 236 233 234 236 233 234 236 233 135 137 134 215 217 214 171 173 170
++141 142 139 138 140 137 138 140 137 135 137 134 31 32 30 3 6 2 212 153 66 15 9 7
++78 58 25 248 178 79 41 31 10 7 0 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 3 6 21 27 33
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 163 205 246 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 154 195 235 0 6 9 82 83 81 254 255 252 254 255 252 254 255 252 254 255 252
++188 190 187 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 62 64 61 234 236 233 234 236 233 234 236 233 198 200 197 131 133 130 198 200 197
++232 234 231 234 236 233 234 236 233 234 236 233 152 154 151 0 2 0 147 105 44 67 49 21
++23 15 7 250 179 73 158 114 46 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 6 9 61 76 92
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 154 195 235 103 134 161 80 98 121
++52 62 74 18 22 24 0 2 0 3 10 13 38 45 51 80 98 121 151 193 233 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 109 141 168 0 2 0 169 171 168 254 255 252 254 255 252 254 255 252 254 255 252
++226 228 225 65 66 64 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 43 44 42 234 236 233 234 236 233 234 236 233 234 236 233 131 133 130 192 194 191
++152 154 151 141 142 139 141 142 139 141 142 139 158 160 156 3 6 2 82 62 28 129 95 39
++0 2 0 206 148 61 248 178 79 21 13 4 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 96 115 138
++170 212 252 170 212 252 170 212 252 170 212 252 129 165 199 18 22 24 0 2 0 0 2 0
++34 26 8 75 55 22 114 83 33 95 68 30 55 39 17 7 0 0 0 6 9 84 103 125
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 84 103 125 0 2 0 229 231 228 254 255 252 254 255 252 254 255 252 171 173 170
++0 2 0 0 2 0 0 6 9 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 18 20 17 234 236 233 234 236 233 234 236 233 234 236 233 138 140 137 178 180 177
++226 228 225 234 236 233 234 236 233 234 236 233 231 233 230 45 47 44 23 15 7 190 136 56
++0 2 0 147 105 44 250 179 73 64 46 18 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 122 159 192
++170 212 252 170 212 252 170 212 252 126 162 196 0 2 0 26 20 13 190 136 56 245 175 76
++250 179 73 161 117 49 164 119 51 245 175 76 250 179 73 206 148 61 75 55 22 0 2 0
++126 162 196 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 68 83 99 0 2 0 252 254 250 254 255 252 254 255 252 254 255 252 71 73 70
++8 14 16 88 115 136 17 24 30 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 232 234 231 234 236 233 234 236 233 234 236 233 215 217 214 148 150 147
++183 185 181 141 142 139 135 137 134 135 137 134 141 142 139 87 89 86 0 2 0 202 145 58
++3 6 2 88 66 26 250 179 73 109 79 35 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 157 198 239
++170 212 252 170 212 252 166 207 248 26 33 39 26 20 13 224 163 69 250 179 73 250 179 73
++250 179 73 197 142 62 202 145 58 250 179 73 250 179 73 250 179 73 234 172 70 21 13 4
++38 45 51 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 52 62 74 21 22 20 254 255 252 254 255 252 254 255 252 254 255 252 21 22 20
++49 59 70 170 212 252 166 207 248 91 123 149 8 14 16 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 215 217 214 234 236 233 234 236 233 234 236 233 234 236 233 123 125 122
++188 190 187 229 231 228 234 236 233 234 236 233 222 224 221 118 120 117 0 2 0 168 123 54
++34 26 8 67 49 21 250 179 73 134 100 43 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 34 41 47 170 212 252
++170 212 252 170 212 252 85 112 133 0 2 0 164 119 51 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 129 95 39
++0 2 0 138 174 208 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 34 44 55 45 47 44 254 255 252 254 255 252 254 255 252 254 255 252 24 22 25
++52 62 74 170 212 252 170 212 252 170 212 252 138 174 208 10 16 18 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 178 180 177 234 236 233 234 236 233 234 236 233 234 236 233 141 142 139
++198 200 197 148 150 147 135 137 134 135 137 134 148 150 147 123 125 122 0 2 0 190 136 56
++21 13 4 78 58 25 250 179 73 129 95 39 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 82 108 129 170 212 252
++170 212 252 170 212 252 23 30 36 58 42 19 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 147 105 44
++0 2 0 139 181 221 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 34 41 47 45 47 44 254 255 252 254 255 252 254 255 252 254 255 252 56 58 55
++25 32 38 170 212 252 170 212 252 170 212 252 170 212 252 138 174 208 10 16 18 0 6 9
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 91 93 90 234 236 233 234 236 233 234 236 233 234 236 233 126 127 125
++169 171 168 222 224 221 234 236 233 229 231 228 178 180 177 71 73 70 0 2 0 212 153 66
++0 2 0 95 68 30 250 179 73 119 87 37 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 138 174 208 170 212 252
++170 212 252 154 195 235 0 2 0 125 92 35 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 119 87 37
++0 2 0 157 198 239 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 57 72 88 7 10 5 252 254 250 254 255 252 254 255 252 254 255 252 95 96 94
++0 6 9 166 207 248 170 212 252 170 212 252 170 212 252 170 212 252 138 174 208 8 14 16
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 7 10 5 222 224 221 234 236 233 234 236 233 234 236 233 141 142 139
++183 185 181 138 140 137 131 133 130 141 142 139 192 194 191 102 104 101 0 2 0 224 163 69
++0 2 0 105 75 32 250 179 73 55 39 17 7 0 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 21 27 33 170 212 252 170 212 252
++170 212 252 115 152 185 0 2 0 180 132 57 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 228 167 73 10 12 8
++38 45 51 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 82 108 129 0 2 0 222 224 221 254 255 252 254 255 252 254 255 252 158 160 156
++0 2 0 92 119 140 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 122 159 192
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 141 142 139 234 236 233 234 236 233 234 236 233 131 133 130
++185 187 183 231 233 230 222 224 221 158 160 156 138 140 137 48 50 48 3 6 2 250 179 73
++134 100 43 206 148 61 218 158 64 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 75 94 116 170 212 252 170 212 252
++170 212 252 92 119 140 0 2 0 224 163 69 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 87 61 23 7 0 0
++134 170 204 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 109 141 168 0 2 0 178 180 177 254 255 252 254 255 252 254 255 252 252 254 250
++39 43 45 10 16 18 157 198 239 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++88 115 136 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 45 47 44 234 236 233 234 236 233 234 236 233 131 133 130
++148 150 147 138 140 137 148 150 147 210 212 209 152 154 151 26 27 25 29 21 8 250 179 73
++250 179 73 234 172 70 55 39 17 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 126 162 196 170 212 252 170 212 252
++170 212 252 103 134 161 0 2 0 202 145 58 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 238 175 73 75 55 22 0 2 0 75 102 123
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 140 177 211 0 2 0 135 137 134 254 255 252 254 255 252 254 255 252 254 255 252
++183 185 181 0 2 0 75 94 116 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 57 72 88 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 162 164 161 234 236 233 234 236 233 135 137 134
++226 228 225 198 200 197 104 106 103 15 17 14 0 2 0 15 9 7 147 105 44 250 179 73
++248 178 79 55 39 17 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 6 9 21 27 33 170 212 252 170 212 252 170 212 252
++170 212 252 122 159 192 0 2 0 175 129 54 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 250 179 73 202 145 58 55 39 17 0 2 0 82 108 129 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 12 17 20 60 62 59 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 69 71 68 0 6 9 143 185 225 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 159 201 241 26 33 39 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 7 10 5 162 164 161 215 217 214 95 96 94
++56 58 55 0 2 0 0 2 0 0 2 0 61 44 16 238 175 73 250 179 73 250 179 73
++218 158 64 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 88 115 136 170 212 252 170 212 252 170 212 252
++170 212 252 143 185 225 0 2 0 147 105 44 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 212 153 66 95 68 30 0 2 0 8 14 16 103 134 161 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 68 83 99 0 2 0 231 233 230 254 255 252 254 255 252 254 255 252
++254 255 252 210 212 209 0 6 9 53 68 84 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 126 162 196 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 7 0 0 23 15 7 250 179 73 250 179 73 250 179 73
++250 179 73 29 21 8 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 6 9 154 195 235 170 212 252 170 212 252 170 212 252
++170 212 252 166 207 248 0 2 0 52 36 13 158 114 46 180 132 57 161 117 49 119 87 37
++41 31 10 0 2 0 0 2 0 72 87 103 154 195 235 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 115 152 185 0 2 0 152 154 151 254 255 252 238 241 237 85 87 84
++229 231 228 254 255 252 99 101 98 0 2 0 126 162 196 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 63 78 94 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 202 145 58 250 179 73 250 179 73
++250 179 73 105 75 32 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 32 39 45 0 2 0 57 72 88 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 85 112 133 12 17 20 0 2 0 0 2 0 0 2 0 0 2 0
++34 41 47 92 110 133 143 185 225 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 166 207 248 6 12 15 71 73 70 254 255 252 229 231 228 0 2 0
++141 142 139 254 255 252 231 233 230 10 12 8 34 44 55 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 154 195 235 6 12 15 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 125 92 35 250 179 73 250 179 73
++250 179 73 180 132 57 0 2 0 0 2 0 0 2 0 0 2 0 3 10 13 68 83 99
++129 165 199 85 112 133 0 2 0 122 159 192 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 126 162 196 119 156 189 134 170 204 149 191 231
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 57 72 88 3 6 2 242 244 240 254 255 252 35 37 34
++78 80 77 254 255 252 254 255 252 128 130 127 0 2 0 105 137 164 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 91 123 149 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 7 0 0 55 39 17 250 179 73 250 179 73
++250 179 73 245 175 76 7 10 5 0 2 0 44 54 65 103 134 161 161 203 243 170 212 252
++170 212 252 21 27 33 25 32 38 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 61 76 92 0 2 0 242 244 240 254 255 252 102 104 101
++10 12 8 231 233 230 254 255 252 244 246 243 26 27 25 21 27 33 159 201 241 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 32 39 45 0 6 9 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 218 158 64 250 179 73
++250 179 73 250 179 73 75 55 22 0 2 0 161 203 243 170 212 252 170 212 252 170 212 252
++115 147 174 0 2 0 91 123 149 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 159 201 241 146 188 228
++140 177 211 134 170 204 146 188 228 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 17 24 30 62 64 61 254 255 252 254 255 252 215 217 214
++0 2 0 102 104 101 254 255 252 254 255 252 166 168 165 0 2 0 72 87 103 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 129 165 199 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 105 75 32 250 179 73
++250 179 73 250 179 73 150 108 46 0 2 0 113 145 172 170 212 252 170 212 252 170 212 252
++49 59 70 3 10 13 157 198 239 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 166 207 248 109 141 168 65 87 102 28 35 41 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 6 9 28 35 41 70 96 117 138 174 208 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 0 2 0 102 104 101 254 255 252 254 255 252 254 255 252
++102 104 101 0 2 0 192 194 191 254 255 252 254 255 252 78 80 77 0 2 0 122 159 192
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 34 44 55 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 61 76 92 154 195 235 0 6 9 29 21 8 250 179 73
++250 179 73 250 179 73 224 163 69 0 2 0 68 83 99 170 212 252 170 212 252 143 179 213
++0 2 0 72 87 103 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++161 203 243 96 115 138 17 24 30 0 2 0 0 2 0 45 47 44 102 104 101 123 125 122
++138 140 137 143 145 142 115 117 114 82 83 81 43 44 42 0 2 0 0 2 0 32 39 45
++126 162 196 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 0 2 0 85 87 84 254 255 252 254 255 252 254 255 252
++242 244 240 27 29 27 35 37 34 254 255 252 254 255 252 231 233 230 10 12 8 21 27 33
++159 201 241 170 212 252 170 212 252 170 212 252 170 212 252 163 205 246 0 6 9 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 6 9 44 54 65 170 212 252 170 212 252 34 44 55 0 2 0 82 62 28
++109 79 35 224 163 69 250 179 73 52 36 13 15 20 22 170 212 252 170 212 252 75 89 106
++0 2 0 143 179 213 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 134 170 204
++25 32 38 0 2 0 40 41 39 155 157 153 238 241 237 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 210 212 209 115 117 114 18 20 17
++0 2 0 68 83 99 157 198 239 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 52 62 74 7 10 5 234 236 233 254 255 252 254 255 252
++254 255 252 195 197 194 102 104 101 254 255 252 254 255 252 254 255 252 162 164 161 0 2 0
++72 87 103 170 212 252 170 212 252 170 212 252 170 212 252 119 156 189 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 115 147 174 170 212 252 91 123 149 0 2 0 0 2 0 6 12 15
++0 2 0 15 9 7 197 142 62 125 92 35 0 2 0 115 152 185 113 145 172 3 6 2
++41 51 62 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 113 145 172 0 6 9
++10 12 8 155 157 153 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 232 234 231
++87 89 86 0 2 0 32 39 45 154 195 235 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 115 152 185 0 2 0 138 140 137 254 255 252 254 255 252
++254 255 252 254 255 252 249 251 248 254 255 252 254 255 252 254 255 252 254 255 252 65 66 64
++0 2 0 122 159 192 170 212 252 170 212 252 170 212 252 66 80 97 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 154 195 235 170 212 252 143 179 213 88 115 136 149 191 231 170 212 252
++126 162 196 3 6 2 64 46 18 202 145 58 0 2 0 0 2 0 0 2 0 0 2 0
++92 119 140 170 212 252 170 212 252 170 212 252 170 212 252 143 179 213 3 10 13 27 29 27
++215 217 214 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 155 157 153 0 2 0 32 39 45 154 195 235 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 23 30 36 27 29 27 249 251 248 254 255 252
++254 255 252 188 190 187 7 10 5 226 228 225 254 255 252 254 255 252 254 255 252 231 233 230
++7 10 5 21 27 33 159 201 241 170 212 252 103 134 161 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 119 156 189 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 55 66 77 11 4 3 250 179 73 24 17 10 0 2 0 0 2 0 0 2 0
++143 185 225 170 212 252 170 212 252 170 212 252 159 201 241 28 35 41 7 10 5 200 202 199
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 155 157 153 0 2 0 55 66 77 170 212 252 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 96 127 154 0 2 0 158 160 156 254 255 252
++254 255 252 192 194 191 0 2 0 176 178 175 254 255 252 254 255 252 254 255 252 254 255 252
++141 142 139 0 2 0 72 87 103 129 165 199 0 6 9 0 6 9 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 6 9 12 17 20 143 185 225 170 212 252 170 212 252 170 212 252 170 212 252
++138 174 208 17 24 30 29 21 8 250 179 73 101 72 28 0 2 0 0 2 0 32 39 45
++170 212 252 170 212 252 170 212 252 170 212 252 57 72 88 0 2 0 152 154 151 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 108 110 107 0 2 0 115 152 185 170 212 252 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 166 207 248 18 22 24 40 41 39 254 255 252
++254 255 252 232 234 231 0 2 0 148 150 147 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 10 12 8 0 2 0 8 14 16 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 6 9 41 51 62 61 76 92 34 44 55 3 10 13
++0 2 0 11 4 3 164 119 51 250 179 73 175 129 54 0 2 0 0 2 0 82 108 129
++170 212 252 170 212 252 170 212 252 98 129 156 0 2 0 95 96 94 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 238 241 237 18 20 17 25 32 38 166 207 248 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 85 112 133 0 2 0 188 190 187
++254 255 252 254 255 252 198 200 197 242 244 240 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 120 122 119 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 6 9 0 2 0 0 6 9 7 0 0
++31 23 12 202 145 58 250 179 73 250 179 73 238 175 73 0 2 0 0 2 0 122 159 192
++170 212 252 170 212 252 170 212 252 28 35 41 31 32 30 244 246 243 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 152 154 151 0 2 0 85 112 133 170 212 252
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 138 174 208 0 2 0 148 150 147
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 222 224 221 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++7 0 0 234 172 70 250 179 73 250 179 73 250 179 73 34 26 8 0 2 0 149 191 231
++170 212 252 170 212 252 129 165 199 0 2 0 128 130 127 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 252 254 250 48 50 48 3 10 13 146 188 228
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 157 198 239 0 2 0 118 120 117
++254 255 252 254 255 252 254 255 252 169 171 168 231 233 230 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 40 41 39 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 170 124 49 250 179 73 250 179 73 250 179 73 48 33 15 6 12 15 170 212 252
++170 212 252 170 212 252 65 87 102 0 2 0 222 224 221 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 195 197 194 0 2 0 84 103 125
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 3 10 13 85 87 84
++254 255 252 254 255 252 234 236 233 0 2 0 128 130 127 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 99 101 98 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 95 68 30 250 179 73 250 179 73 250 179 73 34 26 8 34 44 55 170 212 252
++170 212 252 163 205 246 8 14 16 62 64 61 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 35 37 34 34 44 55
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 26 33 39 60 62 59
++254 255 252 254 255 252 238 241 237 0 2 0 108 110 107 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 158 160 156 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 23 15 7 248 178 79 250 179 73 245 175 76 0 2 0 63 78 94 170 212 252
++170 212 252 109 141 168 0 2 0 158 160 156 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 104 106 103 0 2 0
++154 195 235 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 21 27 33 69 71 68
++254 255 252 254 255 252 244 246 243 0 2 0 91 93 90 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 215 217 214 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 197 142 62 250 179 73 212 153 66 0 2 0 92 110 133 170 212 252
++170 212 252 80 98 121 0 2 0 231 233 230 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 176 178 175 0 2 0
++105 137 164 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 8 14 16 87 89 86
++254 255 252 254 255 252 254 255 252 40 41 39 21 22 20 252 254 250 254 255 252 254 255 252
++254 255 252 254 255 252 252 254 250 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 125 92 35 250 179 73 170 124 49 0 2 0 113 145 172 170 212 252
++170 212 252 53 68 84 15 17 14 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 242 244 240 0 2 0
++63 78 94 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 0 2 0 104 106 103
++254 255 252 254 255 252 254 255 252 123 125 122 0 2 0 166 168 165 254 255 252 254 255 252
++254 255 252 254 255 252 234 236 233 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 7 0 0 52 36 13 250 179 73 129 95 39 0 2 0 143 179 213 170 212 252
++170 212 252 32 39 45 48 50 48 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 60 62 59
++18 22 24 170 212 252 170 212 252 170 212 252 170 212 252 163 205 246 0 2 0 102 104 101
++254 255 252 254 255 252 254 255 252 226 228 225 15 17 14 10 12 8 215 217 214 254 255 252
++254 255 252 254 255 252 210 212 209 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 88 66 26 29 21 8 0 2 0 166 207 248 170 212 252
++170 212 252 3 10 13 85 87 84 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 123 125 122
++0 2 0 149 191 231 170 212 252 170 212 252 170 212 252 170 212 252 21 27 33 56 58 55
++254 255 252 254 255 252 254 255 252 254 255 252 178 180 177 0 2 0 38 40 37 238 241 237
++254 255 252 254 255 252 210 212 209 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 7 0 0 7 0 0 0 2 0 161 203 243 170 212 252
++149 191 231 0 2 0 123 125 122 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 141 142 139
++0 2 0 143 179 213 170 212 252 170 212 252 170 212 252 170 212 252 66 80 97 0 2 0
++210 212 209 254 255 252 254 255 252 254 255 252 254 255 252 120 122 119 0 2 0 21 22 20
++143 145 142 244 246 243 219 221 218 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 149 191 231 170 212 252
++129 165 199 0 2 0 158 160 156 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 155 157 153
++0 2 0 134 170 204 170 212 252 170 212 252 170 212 252 170 212 252 143 185 225 0 6 9
++69 71 68 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 71 73 70 0 2 0
++0 2 0 0 2 0 40 41 39 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 139 181 221 170 212 252
++129 165 199 0 2 0 162 164 161 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 169 171 168
++0 2 0 119 156 189 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 75 94 116
++0 2 0 135 137 134 254 255 252 254 255 252 254 255 252 254 255 252 69 71 68 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 134 170 204 170 212 252
++134 170 204 0 2 0 152 154 151 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 183 185 181
++0 2 0 113 145 172 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 166 207 248
++44 54 65 0 2 0 162 164 161 254 255 252 254 255 252 254 255 252 35 37 34 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 126 162 196 170 212 252
++138 174 208 0 2 0 143 145 142 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 198 200 197
++0 2 0 103 134 161 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++157 198 239 28 35 41 0 2 0 188 190 187 254 255 252 252 254 250 3 6 2 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 115 152 185 170 212 252
++143 179 213 0 2 0 135 137 134 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 210 212 209
++0 2 0 91 123 149 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 146 188 228 0 6 9 26 27 25 242 244 240 176 178 175 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 105 137 164 170 212 252
++143 185 225 0 2 0 128 130 127 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 185 187 183
++0 2 0 105 137 164 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 163 205 246 0 2 0 0 2 0 102 104 101 60 62 59 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 80 98 121 170 212 252
++149 191 231 0 2 0 118 120 117 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 143 145 142
++0 2 0 134 170 204 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 143 179 213 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 44 54 65 170 212 252
++170 212 252 3 10 13 85 87 84 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 108 110 107
++0 2 0 157 198 239 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 115 152 185 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 3 10 13 170 212 252
++170 212 252 34 44 55 43 44 42 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 69 71 68
++15 20 22 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++170 212 252 75 94 116 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 139 181 221
++170 212 252 63 78 94 3 6 2 249 251 248 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 31 32 30
++41 51 62 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++161 203 243 6 12 15 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 105 137 164
++170 212 252 88 115 136 0 2 0 210 212 209 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 249 251 248 0 2 0
++68 83 99 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++96 127 154 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 61 76 92
++170 212 252 119 150 178 0 2 0 169 171 168 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 183 185 181 0 2 0
++91 123 149 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252
++28 35 41 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 6 9
++146 188 228 143 185 225 0 2 0 126 127 125 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 85 87 84 0 6 9
++154 195 235 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 98 129 156
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++72 90 112 170 212 252 18 22 24 56 58 55 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 238 241 237 7 10 5 55 66 77
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 122 159 192 0 6 9
++0 6 9 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 122 159 192 72 87 103 0 2 0 229 231 228 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 152 154 151 0 2 0 113 145 172
++170 212 252 170 212 252 170 212 252 170 212 252 170 212 252 139 181 221 8 14 16 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 18 22 24 109 141 168 0 2 0 148 150 147 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 56 58 55 12 17 20 166 207 248
++170 212 252 170 212 252 170 212 252 170 212 252 146 188 228 23 30 36 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 101 72 28 202 145 58
++180 132 57 0 2 0 38 45 51 3 10 13 69 71 68 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 200 202 199 0 2 0 75 89 106 170 212 252
++170 212 252 170 212 252 170 212 252 109 141 168 8 14 16 0 2 0 21 13 4 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 7 0 0 0 2 0 101 72 28 218 158 64 250 179 73 250 179 73
++250 179 73 139 99 44 0 2 0 8 14 16 0 2 0 238 241 237 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 244 246 243 38 40 37 3 10 13 139 181 221 170 212 252
++170 212 252 161 203 243 66 80 97 0 2 0 31 23 12 191 142 60 248 183 74 180 132 57
++44 34 15 0 2 0 7 0 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 23 15 7 190 136 56 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 150 108 46 0 2 0 0 2 0 82 83 81 222 224 221 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 102 104 101 0 2 0 98 129 156 170 212 252 163 205 246
++98 129 156 23 30 36 0 2 0 82 62 28 234 172 70 248 183 74 248 183 74 248 183 74
++248 183 74 158 114 46 29 21 8 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 64 46 18 109 79 35 150 108 46 224 163 69 250 179 73
++250 179 73 250 179 73 250 179 73 158 114 46 0 2 0 0 2 0 3 6 2 115 117 114
++234 236 233 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 176 178 175 0 2 0 57 72 88 146 188 228 80 98 121 8 14 16
++0 2 0 24 17 10 158 114 46 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74
++248 183 74 248 183 74 242 178 77 58 42 19 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 7 0 0 0 2 0 0 2 0 67 49 21 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 228 167 73 95 68 30 0 2 0 0 2 0
++0 2 0 52 54 51 108 110 107 162 164 161 219 221 218 254 255 252 254 255 252 254 255 252
++254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 254 255 252 252 254 250
++219 221 218 178 180 177 18 20 17 6 12 15 26 33 39 0 2 0 0 2 0 52 36 13
++164 119 51 242 178 77 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 242 178 77
++187 138 56 175 129 54 158 114 46 82 62 28 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 78 58 25 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 234 172 70 142 101 40
++44 34 15 10 12 8 0 2 0 0 2 0 0 2 0 18 20 17 60 62 59 71 73 70
++82 83 81 95 96 94 104 106 103 118 120 117 115 117 114 78 80 77 40 41 39 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 44 34 15 105 75 32 191 142 60 248 183 74
++248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 105 75 32
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 187 138 56 250 179 73
++250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 250 179 73 142 101 40 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 206 148 61 248 183 74 248 183 74 248 183 74
++248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 161 117 49
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 228 167 73 250 179 73
++238 175 73 190 136 56 158 114 46 234 172 70 250 179 73 250 179 73 250 179 73 250 179 73
++250 179 73 147 105 44 0 2 0 7 0 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 67 49 21 248 183 74 248 183 74 248 183 74
++248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74 248 183 74
++31 23 12 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 7 10 5 21 13 4
++0 2 0 0 2 0 0 2 0 147 105 44 250 179 73 250 179 73 250 179 73 250 179 73
++134 100 43 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 155 111 43 248 183 74 248 183 74
++248 183 74 248 183 74 224 163 69 55 39 17 64 46 18 164 119 51 242 178 77 248 183 74
++75 55 22 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 202 145 58 250 179 73 250 179 73 228 167 73 88 66 26
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 7 0 0 0 2 0 168 123 54 248 183 74
++248 183 74 248 183 74 158 114 46 0 2 0 7 0 0 0 2 0 10 12 8 44 34 15
++15 9 7 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 29 21 8 250 179 73 250 179 73 158 114 46 15 14 3 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 7 0 0 0 2 0 175 129 54
++248 183 74 248 183 74 114 83 33 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 29 21 8 147 105 44 58 42 19 0 2 0 7 0 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++105 75 32 218 158 64 23 15 7 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 7 0 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0 0 2 0
++
+diff -Nur linux-2.6.39.1/drivers/video/logo/logo_linux_mono.pbm linux-2.6.39-LIBRE/drivers/video/logo/logo_linux_mono.pbm
+--- linux-2.6.39.1/drivers/video/logo/logo_linux_mono.pbm 2011-06-02 21:34:20.000000000 -0300
++++ linux-2.6.39-LIBRE/drivers/video/logo/logo_linux_mono.pbm 2011-06-22 13:42:06.000000000 -0300
+@@ -1,203 +1,159 @@
+-P1
+-# Standard black and white Linux logo
+-80 80
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
+-1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1
+-1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 1
+-1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1
+-1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-0 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 1 1 1
+-1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
+-1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1
+-1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1
+-1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+-0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0
+-1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
+-0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1
+-1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1
+-1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0
+-0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0
+-0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
+-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
+-1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
+-1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
+-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+-0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
+-1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
+-1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
++P2
++80 78
++255
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 255 255 255 255 255 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 255 255 255 0 0 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 255 255 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 255 255 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 255 255 255 255 255 0 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 0 0 0 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 0
++0 0 0 0 0 0 0 0 0 0
++0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255
++255 0 0 0 0 0 0 0 0 0
++0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 255 255 255 255
++255 255 0 0 0 0 0 0 0 0
++0 0 0 255 255 255 255 255 255 255 255 255 255 0 0 255 0 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 0 0 255 255 255 255
++255 255 0 0 0 0 0 0 0 0
++0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 255 255 255
++255 255 255 0 0 0 0 0 0 0
++0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 255 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 255 255 255
++255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 255 255 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 255 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 255 255 255 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 0 255 255 0 0 255 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 0 255 255 255 0 0 255
++255 255 255 255 255 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 0 0 255 255 255 0 255
++255 255 255 255 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 0 0 255 255 255 0 0
++255 255 255 255 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 0 0 255 255 255 0
++0 255 255 255 255 255 255 255 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 0 0 255 255 255 0
++0 255 255 255 255 255 255 255 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 255 255 255 0 0 255 255 255 0 0 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255
++0 0 255 255 255 255 255 255 0 0
++0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 0 0 255 255 0 0 255 255 0 0 255 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 255 255 255
++255 0 0 255 255 255 255 255 0 0
++0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 255 0 0 255 255 0 0 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255
++255 0 0 255 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 0 0 255 0 0 0 0 0 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 255 255 255
++255 255 0 0 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 0 0 255 0 0 0 0 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 255 255 255 255 0 255 255 255
++255 255 255 0 0 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 255 0 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 255 255 255 0 255 255 255
++255 255 255 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255
++255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255
++255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255
++255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 255 255 255 0 255 255
++255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 255 255 255 0 0 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 255 255 255 0 0 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 255 255 255 0 0 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 255 255 255 255 0 255
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 255 255 255 255 0 0
++255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 0 0 255 255 255 255 255 0
++0 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 0 0 255 255 255 255 255 255
++0 0 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 255 255 255 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 0 0 255 255 255 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 0 0 255 255 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 0 0 255 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 0 0 255 255
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 0 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 255 255 255 0 0 0 255 255 255 255 255 255 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 255 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 0 0 255 255 255 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++0 0 0 0 0 0 0 0 0 0
+diff -Nur linux-2.6.39.1/drivers/video/logo/logo_linux_vga16.ppm linux-2.6.39-LIBRE/drivers/video/logo/logo_linux_vga16.ppm
+--- linux-2.6.39.1/drivers/video/logo/logo_linux_vga16.ppm 2011-06-02 21:34:20.000000000 -0300
++++ linux-2.6.39-LIBRE/drivers/video/logo/logo_linux_vga16.ppm 2011-06-22 13:42:06.000000000 -0300
+@@ -1,1604 +1,18724 @@
+ P3
+-# Standard 16-color Linux logo
+-80 80
++# CREATOR: GIMP PNM Filter Version 1.1
++80 78
+ 255
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 85 85 85 85 85 85 85 85 85
+- 85 85 85 85 85 85 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 85 85 85 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 170 170 170 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 170 170 170 170 170 85 85 85 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 170 170 170 170 170
+-170 170 170 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 85 85 85 170 170 170 170 170 170 170 170 170
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 170 170 170 255 255 255 255 255 255
+-255 255 255 170 170 170 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+-170 170 170 170 170 170 255 255 255 255 255 255
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 170 170 255 255 255 170 170 170 170 170 170
+-255 255 255 170 170 170 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+-170 170 170 0 0 0 0 0 0 255 255 255
+- 85 85 85 0 0 0 0 0 0 0 0 0
+-255 255 255 170 170 170 0 0 0 85 85 85
+-170 170 170 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+- 85 85 85 0 0 0 0 0 0 170 170 170
+- 85 85 85 0 0 0 0 0 0 0 0 0
+-255 255 255 85 85 85 0 0 0 0 0 0
+- 85 85 85 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+-170 170 170 0 0 0 0 0 0 170 170 170
+- 85 85 85 85 85 85 85 85 85 85 85 85
+-255 255 255 85 85 85 0 0 0 0 0 0
+- 85 85 85 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-255 255 255 0 0 0 0 0 0 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 0 0 0 0 0 0
+- 85 85 85 255 255 255 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-170 170 170 170 170 170 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 170 170 170 170 170 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 170 85 0
+-170 85 0 170 85 0 85 85 85 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+- 85 85 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 85 85 85 0 0 0
+- 0 0 0 85 85 85 170 170 170 85 85 85
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+- 85 85 85 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 170 170 170 170 170 170 170 170 0 0 0
+- 0 0 0 0 0 0 170 170 170 170 170 170
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 85 85 85 170 170 170 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 170 170 170 170 170
+-170 170 170 170 170 170 170 170 170 85 85 85
+- 0 0 0 0 0 0 85 85 85 85 85 85
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 85 85 85 170 170 170 170 170 170 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 170 170 170 170 170 170 170 170 170 170 170
+-255 255 255 255 255 255 255 255 255 170 170 170
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 85 85 85
+-255 255 255 255 255 255 170 170 170 170 170 170
+-170 170 170 170 170 170 170 170 170 170 170 170
+-170 170 170 170 170 170 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 170 170 170
+-255 255 255 255 255 255 170 170 170 170 170 170
+-170 170 170 170 170 170 170 170 170 170 170 170
+-170 170 170 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 85 85 85 255 255 255
+-255 255 255 255 255 255 255 255 255 170 170 170
+-170 170 170 170 170 170 170 170 170 170 170 170
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 85 85 85 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 85 85 85 170 170 170 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 170 170 170 170 170 170 170 170 170
+-255 255 255 255 255 255 255 255 255 170 170 170
+-170 170 170 170 170 170 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 170 170 170 170 170 170 170 170 170
+-170 170 170 170 170 170 170 170 170 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 170 170 170 170 170 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 170 170 170
+-170 170 170 170 170 170 170 170 170 85 85 85
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 170 170 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 170 170 170 170 170 170
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 85 85 85 0 0 0 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 170 170 170
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 170 170 170
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+- 0 0 0 0 0 0 85 85 85 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 0 0 0 85 85 85
+- 85 85 85 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+- 0 0 0 85 85 85 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 0 0 0 85 85 85
+- 85 85 85 0 0 0 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 85 85 85
+- 0 0 0 170 170 170 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 85 85 85 0 0 0
+- 0 0 0 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 85 85 85 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-170 170 170 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 0 0 0
+- 85 85 85 85 85 85 85 85 85 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 0 0 0 170 85 0
+-255 255 85 170 85 0 0 0 0 0 0 0
+- 85 85 85 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 85 85 85 85 85 85 0 0 0
+- 0 0 0 85 85 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 0 0 0
+- 0 0 0 85 85 85 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 85 170 85 0 255 255 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+- 0 0 0 0 0 0 85 85 85 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 85
+-170 85 0 255 255 85 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 0 0 0 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 170 85 0
+-255 255 85 170 85 0 255 255 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-255 255 85 170 85 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 0 0 0 0 0 0 0 0 0
+- 85 85 85 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 85
+-170 85 0 255 255 85 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 255 255 85
+-170 85 0 255 255 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 0 0 0 0 0 0
+- 0 0 0 85 85 85 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 0 0 0
+- 0 0 0 0 0 0 85 85 85 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 170 170 170 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 170 170 170 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 170 170 170 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 170 170 170 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 0 0 0 0 0 0 0 0 0
+- 85 85 85 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 170 170 170 85 85 85 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 85 85 85 85 85 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 85 85 85 85 85 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 170 170 170
+- 85 85 85 0 0 0 0 0 0 170 85 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 85 85 85
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 170 170 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-170 170 170 85 85 85 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 170 85 0
+-170 85 0 170 170 170 255 255 255 255 255 255
+-255 255 255 255 255 255 255 255 255 255 255 255
+-255 255 255 255 255 255 170 170 170 85 85 85
+- 85 85 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 170 85 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 170 85 0 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 85 85 85 170 85 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 170 85 0 170 85 0 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 85 85 85 85 85 85 85 85 85 85 85 85
+- 85 85 85 85 85 85 85 85 85 85 85 85
+- 85 85 85 85 85 85 85 85 85 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-170 85 0 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 255 255 85 170 85 0
+-170 85 0 170 85 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 255 255 85 170 85 0
+-255 255 85 170 85 0 170 85 0 170 85 0
+- 85 85 85 85 85 85 85 85 85 85 85 85
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 85 85 85
+- 85 85 85 85 85 85 85 85 85 170 85 0
+-170 85 0 170 85 0 170 85 0 255 255 85
+-170 85 0 255 255 85 170 85 0 170 85 0
+-170 85 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+-170 85 0 170 85 0 170 85 0 170 85 0
+-170 85 0 170 85 0 170 85 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
+- 0 0 0 0 0 0 0 0 0 0 0 0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++85
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++85
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++85
++85
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++170
++170
++170
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++85
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++170
++170
++170
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++170
++170
++170
++85
++85
++85
++170
++170
++170
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++0
++0
++0
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++255
++85
++85
++85
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++85
++85
++85
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++170
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++170
++170
++170
++255
++255
++255
++170
++170
++170
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++85
++85
++85
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++85
++85
++85
++170
++170
++170
++170
++170
++170
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++85
++85
++255
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++255
++255
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++85
++85
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++170
++170
++170
++0
++0
++0
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++85
++85
++85
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++0
++0
++0
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++85
++85
++85
++0
++0
++0
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++85
++85
++85
++85
++255
++255
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++170
++170
++170
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++255
++170
++170
++170
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++85
++85
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++85
++85
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++255
++255
++85
++255
++255
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++85
++85
++85
++255
++255
++85
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
++0
diff --git a/libre/linux-libre-lts/change-default-console-loglevel.patch b/libre/linux-libre-lts/change-default-console-loglevel.patch
new file mode 100644
index 000000000..63435d84f
--- /dev/null
+++ b/libre/linux-libre-lts/change-default-console-loglevel.patch
@@ -0,0 +1,12 @@
+diff -upr linux-3.0.orig/kernel/printk.c linux-3.0/kernel/printk.c
+--- linux-3.0.orig/kernel/printk.c 2011-07-22 05:17:23.000000000 +0300
++++ linux-3.0/kernel/printk.c 2011-07-27 14:43:07.000000000 +0300
+@@ -58,7 +58,7 @@ void asmlinkage __attribute__((weak)) ea
+
+ /* We show everything that is MORE important than this.. */
+ #define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */
+-#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */
++#define DEFAULT_CONSOLE_LOGLEVEL 4 /* anything MORE serious than KERN_DEBUG */
+
+ DECLARE_WAIT_QUEUE_HEAD(log_wait);
+
diff --git a/libre/linux-libre-lts/config.i686 b/libre/linux-libre-lts/config.i686
new file mode 100644
index 000000000..820ee9b2b
--- /dev/null
+++ b/libre/linux-libre-lts/config.i686
@@ -0,0 +1,5798 @@
+#
+# Automatically generated make config: don't edit
+# Linux/i386 3.0.21-2 Kernel Configuration
+#
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_32_SMP=y
+CONFIG_X86_HT=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
+CONFIG_KTIME_SCALAR=y
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION="-LIBRE-LTS"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_FHANDLE is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_FORCED_THREADING=y
+# CONFIG_SPARSE_IRQ is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_BOOST is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
+# CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EXPERT is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLK_DEV_THROTTLING=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_BIGSMP is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_X86_32_IRIS=m
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+# CONFIG_XEN_PRIVILEGED_GUEST is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_LGUEST_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+CONFIG_M686=y
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MELAN is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_CMPXCHG=y
+CONFIG_CMPXCHG_LOCAL=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+# CONFIG_X86_PPRO_FENCE is not set
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+# CONFIG_IOMMU_HELPER is not set
+CONFIG_IOMMU_API=y
+CONFIG_NR_CPUS=8
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_VM86=y
+CONFIG_TOSHIBA=m
+CONFIG_I8K=m
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_HIGHMEM=y
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ILLEGAL_POINTER_VALUE=0
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+CONFIG_TRANSPARENT_HUGEPAGE=y
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_CLEANCACHE=y
+# CONFIG_HIGHPTE is not set
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_KEXEC_JUMP is not set
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_RELOCATABLE=y
+CONFIG_X86_NEED_RELOCS=y
+CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_EC_DEBUGFS=m
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=m
+CONFIG_ACPI_CUSTOM_METHOD=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=m
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_EINJ=m
+CONFIG_ACPI_APEI_ERST_DEBUG=m
+CONFIG_SFI=y
+CONFIG_X86_APM_BOOT=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_DO_ENABLE=y
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# x86 CPU frequency scaling drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K6=m
+CONFIG_X86_POWERNOW_K7=m
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_GX_SUSPMOD=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_SPEEDSTEP_ICH=m
+CONFIG_X86_SPEEDSTEP_SMI=m
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_CPUFREQ_NFORCE2=m
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_LONGHAUL=m
+CONFIG_X86_E_POWERSAVER=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_OLPC=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISA=y
+# CONFIG_EISA is not set
+# CONFIG_MCA is not set
+# CONFIG_SCx200 is not set
+CONFIG_OLPC=y
+CONFIG_OLPC_XO1=m
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_TCIC=m
+CONFIG_PCMCIA_PROBE=y
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_TSI57X=y
+CONFIG_RAPIDIO_CPS_XX=y
+CONFIG_RAPIDIO_TSI568=y
+CONFIG_RAPIDIO_CPS_GEN2=y
+CONFIG_RAPIDIO_TSI500=y
+CONFIG_RAPIDIO_DEBUG=y
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_MISC=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_SET=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_LTPC=m
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+CONFIG_NL80211_TESTMODE=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_SWAP=m
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_PHYSMAP_OF=m
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_TS5500=m
+# CONFIG_MTD_SBC_GXX is not set
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_SCB2_FLASH=m
+# CONFIG_MTD_NETtel is not set
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_CS553X=m
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_ALAUDA=m
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+CONFIG_OF_PROMTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=m
+CONFIG_OF_NET=y
+CONFIG_OF_SPI=y
+CONFIG_OF_MDIO=m
+CONFIG_OF_PCI=y
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_ISAPNP=y
+# CONFIG_PNPBIOS is not set
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_INTEL_MID_PTI=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=m
+# CONFIG_PCH_PHUB is not set
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+CONFIG_IDE_LEGACY=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_CS5535=m
+CONFIG_BLK_DEV_CS5536=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+
+#
+# Other IDE chipsets support
+#
+
+#
+# Note: most of these also require special kernel boot parameters
+#
+CONFIG_BLK_DEV_4DRIVES=m
+CONFIG_BLK_DEV_ALI14XX=m
+CONFIG_BLK_DEV_DTC2278=m
+CONFIG_BLK_DEV_HT6560B=m
+CONFIG_BLK_DEV_QD65XX=m
+CONFIG_BLK_DEV_UMC8672=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_FLASHPOINT is not set
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set
+# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_WINBOND_VLB=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_LOOPBACK_TARGET=m
+# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
+CONFIG_TCM_FC=m
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_MII=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_SMC9194=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+CONFIG_CS89x0=m
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_DUAL_MAC=y
+CONFIG_PCH_GBE=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_BNA=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+# CONFIG_ATH5K_TRACER is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_AHB=y
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLAGN=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLWIFI_DEVICE_SVTOOL=y
+CONFIG_IWL_P2P=y
+CONFIG_IWLWIFI_LEGACY=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_LEGACY_DEBUG is not set
+# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_IWM_TRACING=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_PRISM=y
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_SPI_DEFAULT_EEPROM=y
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTL8192C_COMMON=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX_MENU=m
+CONFIG_WL12XX=m
+CONFIG_WL12XX_HT=y
+CONFIG_WL12XX_SPI=m
+CONFIG_WL12XX_SDIO=m
+CONFIG_WL12XX_SDIO_TEST=m
+CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_OLPC=y
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_INPORT=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM831X=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_PCAP=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AB8500_PONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_PCAP is not set
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_ADXL34X_SPI=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_NOZOMI=m
+# CONFIG_ISI is not set
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+# CONFIG_DEVKMEM is not set
+# CONFIG_STALDRV is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_MAX3107=m
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_OF_PLATFORM=m
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_IFX6X60=m
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_DTLK=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+CONFIG_SONYPI=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_RAMOOPS=m
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_INTEL_MID=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PXA=m
+CONFIG_I2C_PXA_PCI=y
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_PCA_ISA=m
+# CONFIG_I2C_STUB is not set
+CONFIG_SCx200_ACB=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_ALTERA=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_OC_TINY=m
+CONFIG_SPI_PXA2XX=m
+CONFIG_SPI_PXA2XX_PCI=y
+CONFIG_SPI_TOPCLIFF_PCH=m
+CONFIG_SPI_XILINX=m
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_BASIC_MMIO_CORE=m
+CONFIG_GPIO_BASIC_MMIO=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_VX855=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_ML_IOH=m
+CONFIG_GPIO_TIMBERDALE=y
+CONFIG_GPIO_RDC321X=m
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_74X164=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_TEST_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2780=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_OLPC=m
+CONFIG_BATTERY_BQ20Z75=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_BQ27X00_I2C=y
+CONFIG_BATTERY_BQ27X00_PLATFORM=y
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_MAX8903=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_ADS1015=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# ISA-based Watchdog Cards
+#
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_DEBUG is not set
+CONFIG_MFD_SUPPORT=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM831X_SPI=y
+CONFIG_MFD_PCF50633=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_MFD_MC13783=m
+CONFIG_MFD_MC13XXX=m
+CONFIG_ABX500_CORE=y
+CONFIG_EZX_PCAP=y
+CONFIG_AB8500_CORE=y
+# CONFIG_AB8500_DEBUG is not set
+CONFIG_AB8500_GPADC=y
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_DUMMY=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_BQ24022=m
+CONFIG_REGULATOR_MAX1586=m
+CONFIG_REGULATOR_MAX8649=m
+CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8952=m
+CONFIG_REGULATOR_WM831X=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_PCF50633=m
+CONFIG_REGULATOR_LP3971=m
+CONFIG_REGULATOR_LP3972=m
+CONFIG_REGULATOR_PCAP=m
+CONFIG_REGULATOR_MC13XXX_CORE=m
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_MC13892=m
+CONFIG_REGULATOR_TPS6105X=m
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_ISL6271A=m
+CONFIG_REGULATOR_AD5398=m
+CONFIG_REGULATOR_AB8500=y
+CONFIG_REGULATOR_TPS6524X=m
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_IR_ENE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_AK881X=m
+
+#
+# Camera sensor devices
+#
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_MT9V032=m
+CONFIG_VIDEO_TCM825X=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+
+#
+# Miscelaneous helper chips
+#
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_TIMBERDALE=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_IMX074=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV6650=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_SOC_CAMERA_OV9740=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_USB_ET61X251=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_TESTDEV=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MIROPCM20=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_ZOLTRIX=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_RADIO_WL1273=m
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+CONFIG_RADIO_WL128X=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+
+#
+# Multistandard (satellite) frontends
+#
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_CXD2820R=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+
+#
+# ISDB-T (terrestrial) frontends
+#
+CONFIG_DVB_S921=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_MB86A20S=m
+
+#
+# Digital terrestrial only tuners/PLL
+#
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# SEC control devices for DVB-S
+#
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_IX2505V=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_ALI=m
+CONFIG_AGP_ATI=m
+CONFIG_AGP_AMD=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_NVIDIA=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_STUB_POULSBO=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_VGA16=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+CONFIG_FB_I810=m
+CONFIG_FB_I810_GTF=y
+CONFIG_FB_I810_I2C=y
+# CONFIG_FB_LE80578 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_VIA is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+CONFIG_FB_VOODOO1=m
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+CONFIG_FB_UDL=m
+CONFIG_FB_VIRTUAL=m
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_LCD_LD9040=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_PCF50633=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_LOGO is not set
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_ISA=y
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT1605=m
+CONFIG_SND_AZT2316=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_CACHE_LZO=y
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWII_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_FUSB300 is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA_U2O is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_CI13XXX_PCI is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_EG20T is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_WEBCAM=m
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_AB8500_USB=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_CLKGATE=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_OF=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_NET5501=m
+CONFIG_LEDS_ALIX2=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_GPIO_OF=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_NFC_DEVICES=y
+CONFIG_PN544_NFC=m
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MCE_INJ=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_MCE=y
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_AB8500=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MID_DMAC=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+CONFIG_STAGING=y
+# CONFIG_DIGIEPCA is not set
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_COMPUTONE is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_DVB_CXD2099=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+# CONFIG_BRCMFMAC is not set
+# CONFIG_BRCMDBG is not set
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_ISA_DRIVERS=m
+CONFIG_COMEDI_ACL7225B=m
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL725=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_PCM3730=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS800=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_MULTIQ3=m
+CONFIG_COMEDI_POC=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+# CONFIG_COMEDI_CB_PCIMDAS is not set
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_FC=m
+CONFIG_FB_OLPC_DCON=m
+CONFIG_FB_OLPC_DCON_1=y
+CONFIG_FB_OLPC_DCON_1_5=y
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_R8712_AP=y
+CONFIG_RTS_PSTOR=m
+# CONFIG_RTS_PSTOR_DEBUG is not set
+# CONFIG_TRANZPORT is not set
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+# CONFIG_LINE6_USB_DEBUG is not set
+# CONFIG_LINE6_USB_DUMP_CTRL is not set
+# CONFIG_LINE6_USB_DUMP_MIDI is not set
+# CONFIG_LINE6_USB_DUMP_PCM is not set
+# CONFIG_LINE6_USB_RAW is not set
+# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_MOUSE=m
+# CONFIG_VME_BUS is not set
+CONFIG_DX_SEP=m
+# CONFIG_IIO is not set
+CONFIG_CS5535_GPIO=m
+CONFIG_XVMALLOC=y
+CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEBUG is not set
+CONFIG_ZCACHE=m
+CONFIG_WLAGS49_H2=m
+CONFIG_WLAGS49_H25=m
+CONFIG_FB_SM7XX=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_CRYSTALHD=m
+CONFIG_FB_XGI=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
+CONFIG_EASYCAP=m
+CONFIG_EASYCAP_SND=y
+# CONFIG_EASYCAP_OSS is not set
+# CONFIG_EASYCAP_DEBUG is not set
+CONFIG_SOLO6X10=m
+CONFIG_ACPI_QUICKSTART=m
+CONFIG_MACH_NO_WESTBRIDGE=y
+CONFIG_ATH6K_LEGACY=m
+CONFIG_AR600x_SD31_XXX=y
+# CONFIG_AR600x_WB31_XXX is not set
+# CONFIG_AR600x_SD32_XXX is not set
+# CONFIG_AR600x_CUSTOM_XXX is not set
+CONFIG_ATH6KL_ENABLE_COEXISTENCE=y
+CONFIG_AR600x_DUAL_ANTENNA=y
+# CONFIG_AR600x_SINGLE_ANTENNA is not set
+# CONFIG_AR600x_BT_QCOM is not set
+# CONFIG_AR600x_BT_CSR is not set
+CONFIG_AR600x_BT_AR3001=y
+CONFIG_ATH6KL_HCI_BRIDGE=y
+CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET=y
+CONFIG_AR600x_BT_RESET_PIN=22
+CONFIG_ATH6KL_HTC_RAW_INTERFACE=y
+CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
+CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK=y
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_USB_ENESTORAGE=m
+CONFIG_BCM_WIMAX=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+CONFIG_FT1000_PCMCIA=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+CONFIG_DRM_PSB=m
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
+CONFIG_INTEL_MEI=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_TC1100_WMI=m
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO1_RFKILL=m
+CONFIG_XO15_EBOOK=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_CLKSRC_I8253=y
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+# CONFIG_ISCSI_IBFT_FIND is not set
+CONFIG_SIGMA=m
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# File systems
+#
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT23=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_XATTR=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_PSTORE=y
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
+CONFIG_NFSD=m
+# CONFIG_NFSD_DEPRECATED is not set
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_ACL=y
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_CPU_STALL_VERBOSE is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_LKDTM=m
+CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FTRACE_NMI_ENTER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_RING_BUFFER=y
+CONFIG_FTRACE_NMI_ENTER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+CONFIG_SCHED_TRACER=y
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+CONFIG_STACK_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_TEST_KSTRTOX=m
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_X86_PTDUMP is not set
+CONFIG_DEBUG_RODATA=y
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_SET_MODULE_RONX is not set
+# CONFIG_DEBUG_NX_TEST is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_586=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_586=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_MMU_AUDIT=y
+CONFIG_VHOST_NET=m
+CONFIG_LGUEST=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
diff --git a/libre/linux-libre-lts/config.x86_64 b/libre/linux-libre-lts/config.x86_64
new file mode 100644
index 000000000..a8c0e10c0
--- /dev/null
+++ b/libre/linux-libre-lts/config.x86_64
@@ -0,0 +1,5536 @@
+#
+# Automatically generated make config: don't edit
+# Linux/x86_64 3.0.21-2 Kernel Configuration
+#
+CONFIG_64BIT=y
+# CONFIG_X86_32 is not set
+CONFIG_X86_64=y
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_HT=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
+# CONFIG_KTIME_SCALAR is not set
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION="-LIBRE-LTS"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_FHANDLE is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_FORCED_THREADING=y
+# CONFIG_SPARSE_IRQ is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=64
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_RCU_BOOST is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
+# CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EXPERT is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_XEN=y
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_PRIVILEGED_GUEST=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=128
+CONFIG_XEN_SAVE_RESTORE=y
+# CONFIG_XEN_DEBUG_FS is not set
+# CONFIG_XEN_DEBUG is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_MK8 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=7
+CONFIG_X86_CMPXCHG=y
+CONFIG_CMPXCHG_LOCAL=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_AMD_IOMMU=y
+# CONFIG_AMD_IOMMU_STATS is not set
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_IOMMU_API=y
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=64
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DIRECT_GBPAGES=y
+CONFIG_NUMA=y
+CONFIG_AMD_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NODES_SHIFT=6
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+CONFIG_TRANSPARENT_HUGEPAGE=y
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
+CONFIG_CLEANCACHE=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+CONFIG_KEXEC_JUMP=y
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_RELOCATABLE=y
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+CONFIG_ACPI_EC_DEBUGFS=m
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_NUMA=y
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_HOTPLUG_MEMORY=m
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=m
+CONFIG_ACPI_CUSTOM_METHOD=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=m
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_EINJ=m
+CONFIG_ACPI_APEI_ERST_DEBUG=m
+CONFIG_SFI=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# x86 CPU frequency scaling drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K8=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_P4_CLOCKMOD=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
+
+#
+# Memory power savings
+#
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I7300_IDLE=m
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_XEN=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+# CONFIG_INTR_REMAP is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
+CONFIG_ISA_DMA_API=y
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
+CONFIG_RAPIDIO_TSI57X=y
+CONFIG_RAPIDIO_CPS_XX=y
+CONFIG_RAPIDIO_TSI568=y
+CONFIG_RAPIDIO_CPS_GEN2=y
+CONFIG_RAPIDIO_TSI500=y
+CONFIG_RAPIDIO_DEBUG=y
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=y
+CONFIG_IA32_EMULATION=y
+CONFIG_IA32_AOUT=m
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_FIB_TRIE_STATS=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_SET=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+CONFIG_HAVE_BPF_JIT=y
+CONFIG_BPF_JIT=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+CONFIG_NL80211_TESTMODE=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+# CONFIG_SM_FTL is not set
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_SWAP=m
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_TS5500=m
+# CONFIG_MTD_SBC_GXX is not set
+# CONFIG_MTD_AMD76XROM is not set
+# CONFIG_MTD_ICHXROM is not set
+# CONFIG_MTD_ESB2ROM is not set
+# CONFIG_MTD_CK804XROM is not set
+CONFIG_MTD_SCB2_FLASH=m
+# CONFIG_MTD_NETtel is not set
+# CONFIG_MTD_L440GX is not set
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+# CONFIG_MTD_LATCH_ADDR is not set
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+CONFIG_MTD_SM_COMMON=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+# CONFIG_MTD_NAND_CAFE is not set
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_ALAUDA=m
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_INTEL_MID_PTI=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=m
+CONFIG_PCH_PHUB=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_RZ1000=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_LOOPBACK_TARGET=m
+# CONFIG_LOOPBACK_TARGET_CDB_DEBUG is not set
+CONFIG_TCM_FC=m
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_MII=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_HP100=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_DUAL_MAC=y
+CONFIG_PCH_GBE=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_BNA=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+# CONFIG_ATH5K_TRACER is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_AHB=y
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLAGN=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLWIFI_DEVICE_SVTOOL=y
+CONFIG_IWL_P2P=y
+CONFIG_IWLWIFI_LEGACY=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_LEGACY_DEBUG is not set
+# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_IWM_TRACING=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_PRISM=y
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_SPI_DEFAULT_EEPROM=y
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTL8192C_COMMON=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX_MENU=m
+CONFIG_WL12XX=m
+CONFIG_WL12XX_HT=y
+CONFIG_WL12XX_SPI=m
+CONFIG_WL12XX_SDIO=m
+CONFIG_WL12XX_SDIO_TEST=m
+CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM831X=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_PCAP=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AB8500_PONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_PCAP is not set
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_ADXL34X_SPI=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_NOZOMI=m
+# CONFIG_ISI is not set
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+# CONFIG_DEVKMEM is not set
+# CONFIG_STALDRV is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_MAX3107=m
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_IFX6X60=m
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_RAMOOPS=m
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_INTEL_MID=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_ALTERA=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_OC_TINY=m
+# CONFIG_SPI_PXA2XX_PCI is not set
+CONFIG_SPI_TOPCLIFF_PCH=m
+CONFIG_SPI_XILINX=m
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_BASIC_MMIO_CORE=m
+CONFIG_GPIO_BASIC_MMIO=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_VX855=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_ML_IOH=m
+CONFIG_GPIO_TIMBERDALE=y
+CONFIG_GPIO_RDC321X=m
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_74X164=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_TEST_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2780=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_BQ20Z75=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_BQ27X00_I2C=y
+CONFIG_BATTERY_BQ27X00_PLATFORM=y
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_MAX8903=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_ADS1015=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+CONFIG_XEN_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+# CONFIG_BCMA_DEBUG is not set
+CONFIG_MFD_SUPPORT=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM831X_SPI=y
+CONFIG_MFD_PCF50633=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_MFD_MC13783=m
+CONFIG_MFD_MC13XXX=m
+CONFIG_ABX500_CORE=y
+CONFIG_EZX_PCAP=y
+CONFIG_AB8500_CORE=y
+# CONFIG_AB8500_DEBUG is not set
+CONFIG_AB8500_GPADC=y
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_DUMMY=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_BQ24022=m
+CONFIG_REGULATOR_MAX1586=m
+CONFIG_REGULATOR_MAX8649=m
+CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8952=m
+CONFIG_REGULATOR_WM831X=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_PCF50633=m
+CONFIG_REGULATOR_LP3971=m
+CONFIG_REGULATOR_LP3972=m
+CONFIG_REGULATOR_PCAP=m
+CONFIG_REGULATOR_MC13XXX_CORE=m
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_MC13892=m
+CONFIG_REGULATOR_TPS6105X=m
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_ISL6271A=m
+CONFIG_REGULATOR_AD5398=m
+CONFIG_REGULATOR_AB8500=y
+CONFIG_REGULATOR_TPS6524X=m
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_IR_ENE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_AK881X=m
+
+#
+# Camera sensor devices
+#
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_MT9V032=m
+CONFIG_VIDEO_TCM825X=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+
+#
+# Miscelaneous helper chips
+#
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_TIMBERDALE=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_MEDIA_ALTERA_CI=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_NOON010PC30=m
+CONFIG_VIDEO_M5MOLS=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_IMX074=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV6650=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_SOC_CAMERA_OV9740=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_USB_ET61X251=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_TESTDEV=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_RADIO_WL1273=m
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+CONFIG_RADIO_WL128X=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+
+#
+# Multistandard (satellite) frontends
+#
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_STV0367=m
+CONFIG_DVB_CXD2820R=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+
+#
+# ISDB-T (terrestrial) frontends
+#
+CONFIG_DVB_S921=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_MB86A20S=m
+
+#
+# Digital terrestrial only tuners/PLL
+#
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# SEC control devices for DVB-S
+#
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_IX2505V=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=y
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_STUB_POULSBO=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+# CONFIG_FB_DDC is not set
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+CONFIG_FB_VGA16=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_LE80578 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_VIA is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+CONFIG_FB_VOODOO1=m
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+CONFIG_FB_UDL=m
+CONFIG_FB_VIRTUAL=m
+CONFIG_XEN_FBDEV_FRONTEND=m
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_LCD_LD9040=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_PCF50633=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_LOGO is not set
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LOLA=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+CONFIG_SND_ISIGHT=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_CACHE_LZO=y
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=y
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWII_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_FUSB300 is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA_U2O is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_CI13XXX_PCI is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_EG20T is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_WEBCAM=m
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_AB8500_USB=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_CLKGATE=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_LM3530=m
+CONFIG_LEDS_NET5501=m
+CONFIG_LEDS_ALIX2=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_NFC_DEVICES=y
+CONFIG_PN544_NFC=m
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MCE_INJ=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_MCE=y
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_AB8500=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MID_DMAC=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+
+#
+# Xen driver support
+#
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_BACKEND=y
+CONFIG_XENFS=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_XENBUS_FRONTEND=m
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_XEN_PLATFORM_PCI=m
+CONFIG_SWIOTLB_XEN=y
+CONFIG_STAGING=y
+# CONFIG_DIGIEPCA is not set
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_COMPUTONE is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_DVB_CXD2099=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+# CONFIG_BRCMFMAC is not set
+# CONFIG_BRCMDBG is not set
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_FC=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_R8712_AP=y
+CONFIG_RTS_PSTOR=m
+# CONFIG_RTS_PSTOR_DEBUG is not set
+# CONFIG_TRANZPORT is not set
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+# CONFIG_LINE6_USB_DEBUG is not set
+# CONFIG_LINE6_USB_DUMP_CTRL is not set
+# CONFIG_LINE6_USB_DUMP_MIDI is not set
+# CONFIG_LINE6_USB_DUMP_PCM is not set
+# CONFIG_LINE6_USB_RAW is not set
+# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_MOUSE=m
+# CONFIG_VME_BUS is not set
+CONFIG_DX_SEP=m
+# CONFIG_IIO is not set
+CONFIG_XVMALLOC=y
+CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEBUG is not set
+CONFIG_ZCACHE=m
+CONFIG_WLAGS49_H2=m
+CONFIG_WLAGS49_H25=m
+CONFIG_FB_SM7XX=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_CRYSTALHD=m
+CONFIG_FB_XGI=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
+CONFIG_EASYCAP=m
+CONFIG_EASYCAP_SND=y
+# CONFIG_EASYCAP_OSS is not set
+# CONFIG_EASYCAP_DEBUG is not set
+CONFIG_SOLO6X10=m
+CONFIG_ACPI_QUICKSTART=m
+CONFIG_MACH_NO_WESTBRIDGE=y
+CONFIG_ATH6K_LEGACY=m
+CONFIG_AR600x_SD31_XXX=y
+# CONFIG_AR600x_WB31_XXX is not set
+# CONFIG_AR600x_SD32_XXX is not set
+# CONFIG_AR600x_CUSTOM_XXX is not set
+CONFIG_ATH6KL_ENABLE_COEXISTENCE=y
+CONFIG_AR600x_DUAL_ANTENNA=y
+# CONFIG_AR600x_SINGLE_ANTENNA is not set
+# CONFIG_AR600x_BT_QCOM is not set
+# CONFIG_AR600x_BT_CSR is not set
+CONFIG_AR600x_BT_AR3001=y
+CONFIG_ATH6KL_HCI_BRIDGE=y
+CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET=y
+CONFIG_AR600x_BT_RESET_PIN=22
+CONFIG_ATH6KL_HTC_RAW_INTERFACE=y
+CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
+CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK=y
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_USB_ENESTORAGE=m
+CONFIG_BCM_WIMAX=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+CONFIG_FT1000_PCMCIA=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+CONFIG_DRM_PSB=m
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
+CONFIG_INTEL_MEI=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO15_EBOOK=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+# CONFIG_ISCSI_IBFT_FIND is not set
+CONFIG_SIGMA=m
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# File systems
+#
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT23=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_XATTR=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_PSTORE=y
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
+CONFIG_NFSD=m
+# CONFIG_NFSD_DEPRECATED is not set
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_ACL=y
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=2048
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
+# CONFIG_RCU_CPU_STALL_VERBOSE is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_LKDTM=m
+CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FTRACE_NMI_ENTER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_RING_BUFFER=y
+CONFIG_FTRACE_NMI_ENTER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+CONFIG_SCHED_TRACER=y
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+CONFIG_STACK_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_RING_BUFFER_BENCHMARK=m
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_TEST_KSTRTOX=m
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_X86_PTDUMP is not set
+CONFIG_DEBUG_RODATA=y
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_SET_MODULE_RONX is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_X86_64=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_MMU_AUDIT=y
+CONFIG_VHOST_NET=m
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
diff --git a/libre/linux-libre-lts/ext4-options.patch b/libre/linux-libre-lts/ext4-options.patch
new file mode 100644
index 000000000..4aa23fdef
--- /dev/null
+++ b/libre/linux-libre-lts/ext4-options.patch
@@ -0,0 +1,49 @@
+Report: https://bbs.archlinux.org/profile.php?id=33804
+Signed-off-by: Tom Gundersen <teg@jklm.no>
+Cc: Thomas Baechler <thomas@archlinux.org>
+Cc: Tobias Powalowski <tobias.powalowski@googlemail.com>
+Cc: Dave Reisner <d@falconindy.com>
+---
+ fs/ext4/super.c | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/fs/ext4/super.c b/fs/ext4/super.c
+index 502c61f..30de9cd 100644
+--- a/fs/ext4/super.c
++++ b/fs/ext4/super.c
+@@ -1333,6 +1333,7 @@ enum {
+ Opt_inode_readahead_blks, Opt_journal_ioprio,
+ Opt_dioread_nolock, Opt_dioread_lock,
+ Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable,
++ Opt_nocheck, Opt_reservation, Opt_noreservation, Opt_journal_inum,
+ };
+
+ static const match_table_t tokens = {
+@@ -1408,6 +1409,10 @@ static const match_table_t tokens = {
+ {Opt_init_itable, "init_itable=%u"},
+ {Opt_init_itable, "init_itable"},
+ {Opt_noinit_itable, "noinit_itable"},
++ {Opt_nocheck, "nocheck"},
++ {Opt_reservation, "reservation"},
++ {Opt_noreservation, "noreservation"},
++ {Opt_journal_inum, "journal=%u"},
+ {Opt_err, NULL},
+ };
+
+@@ -1904,6 +1909,16 @@ set_qf_format:
+ case Opt_noinit_itable:
+ clear_opt(sb, INIT_INODE_TABLE);
+ break;
++#ifdef CONFIG_EXT4_USE_FOR_EXT23
++ case Opt_nocheck:
++ case Opt_reservation:
++ case Opt_noreservation:
++ case Opt_journal_inum:
++ ext4_msg(sb, KERN_WARNING,
++ "ext3 mount option \"%s\" ignored "
++ "by ext4 module", p);
++ break;
++#endif
+ default:
+ ext4_msg(sb, KERN_ERR,
+ "Unrecognized mount option \"%s\" " \ No newline at end of file
diff --git a/libre/linux-libre-lts/i915-fix-ghost-tv-output.patch b/libre/linux-libre-lts/i915-fix-ghost-tv-output.patch
new file mode 100644
index 000000000..3b631361a
--- /dev/null
+++ b/libre/linux-libre-lts/i915-fix-ghost-tv-output.patch
@@ -0,0 +1,26 @@
+Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
+Tested-by: Santi <santi@agolina.net>
+---
+ drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
+index dc83b7a..c8f67bf 100644
+--- a/drivers/gpu/drm/i915/intel_tv.c
++++ b/drivers/gpu/drm/i915/intel_tv.c
+@@ -1267,6 +1267,15 @@
+ DAC_B_0_7_V |
+ DAC_C_0_7_V);
+
++ /*
++ * The TV sense state should be cleared to zero on cantiga platform. Otherwise
++ * the TV is misdetected. This is hardware requirement.
++ */
++ if (IS_GM45(dev))
++ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL |
++ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL);
++
++
+ I915_WRITE(TV_CTL, tv_ctl);
+ I915_WRITE(TV_DAC, tv_dac);
+ POSTING_READ(TV_DAC);
diff --git a/libre/linux-libre-lts/linux-libre-lts.install b/libre/linux-libre-lts/linux-libre-lts.install
new file mode 100644
index 000000000..6cf57ce44
--- /dev/null
+++ b/libre/linux-libre-lts/linux-libre-lts.install
@@ -0,0 +1,61 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+KERNEL_NAME=-lts
+KERNEL_VERSION=3.0.22-1-LIBRE-LTS
+
+post_install () {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod ${KERNEL_VERSION}
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ mkinitcpio -p linux-libre${KERNEL_NAME}
+
+ # compat symlinks for the official kernels only
+ if [ -z "${KERNEL_NAME}" -o "${KERNEL_NAME}" = "-lts" ]; then
+ loaders="$(find /boot -name syslinux.cfg -or -name extlinux.conf -or -name grub.cfg -or -name menu.lst)"
+ [ -f /etc/lilo.conf ] && loaders="$loaders /etc/lilo.conf"
+ if [ -n "${loaders}" ] && grep -q -e vmlinuz26 -e kernel26.img -e kernel26-fallback.img $loaders; then
+ # add compat symlinks for the initramfs images
+ ln -sf initramfs-linux-libre${KERNEL_NAME}.img /boot/kernel26${KERNEL_NAME}.img
+ ln -sf initramfs-linux-libre${KERNEL_NAME}-fallback.img /boot/kernel26${KERNEL_NAME}-fallback.img
+ ln -sf vmlinuz-linux-libre${KERNEL_NAME} /boot/vmlinuz26${KERNEL_NAME}
+ fi
+ fi
+}
+
+post_upgrade() {
+ pacman -Q grub &>/dev/null
+ hasgrub=$?
+ pacman -Q grub2 &>/dev/null
+ hasgrub2=$?
+ pacman -Q lilo &>/dev/null
+ haslilo=$?
+ # reminder notices
+ if [ $haslilo -eq 0 ]; then
+ echo ">>>"
+ if [ $hasgrub -eq 0 -o $hasgrub2 -eq 0 ]; then
+ echo ">>> If you use the LILO bootloader, you should run 'lilo' before rebooting."
+ else
+ echo ">>> You appear to be using the LILO bootloader. You should run"
+ echo ">>> 'lilo' before rebooting."
+ fi
+ echo ">>>"
+ fi
+
+ if findmnt --fstab -uno SOURCE /boot &>/dev/null && ! mountpoint -q /boot; then
+ echo "WARNING: /boot appears to be a separate partition but is not mounted."
+ fi
+
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod ${KERNEL_VERSION}
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ mkinitcpio -p linux-libre${KERNEL_NAME}
+}
+
+post_remove() {
+ # also remove the compat symlinks
+ rm -f boot/{initramfs-linux-libre,kernel26}${KERNEL_NAME}.img
+ rm -f boot/{initramfs-linux-libre,kernel26}${KERNEL_NAME}-fallback.img
+}
diff --git a/libre/linux-libre-lts/linux-libre-lts.preset b/libre/linux-libre-lts/linux-libre-lts.preset
new file mode 100644
index 000000000..4621af434
--- /dev/null
+++ b/libre/linux-libre-lts/linux-libre-lts.preset
@@ -0,0 +1,14 @@
+# mkinitcpio preset file for the 'linux' package
+
+ALL_config="/etc/mkinitcpio.conf"
+ALL_kver="/boot/vmlinuz-linux-libre-lts"
+
+PRESETS=('default' 'fallback')
+
+#default_config="/etc/mkinitcpio.conf"
+default_image="/boot/initramfs-linux-libre-lts.img"
+#default_options=""
+
+#fallback_config="/etc/mkinitcpio.conf"
+fallback_image="/boot/initramfs-linux-libre-lts-fallback.img"
+fallback_options="-S autodetect"
diff --git a/libre/linux-libre/CVE-2012-0056.patch b/libre/linux-libre/CVE-2012-0056.patch
new file mode 100644
index 000000000..6a83fef1c
--- /dev/null
+++ b/libre/linux-libre/CVE-2012-0056.patch
@@ -0,0 +1,268 @@
+From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001
+From: Linus Torvalds <torvalds@linux-foundation.org>
+Date: Tue, 17 Jan 2012 15:21:19 -0800
+Subject: [PATCH] proc: clean up and fix /proc/<pid>/mem handling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very
+robust, and it also doesn't match the permission checking of any of the
+other related files.
+
+This changes it to do the permission checks at open time, and instead of
+tracking the process, it tracks the VM at the time of the open. That
+simplifies the code a lot, but does mean that if you hold the file
+descriptor open over an execve(), you'll continue to read from the _old_
+VM.
+
+That is different from our previous behavior, but much simpler. If
+somebody actually finds a load where this matters, we'll need to revert
+this commit.
+
+I suspect that nobody will ever notice - because the process mapping
+addresses will also have changed as part of the execve. So you cannot
+actually usefully access the fd across a VM change simply because all
+the offsets for IO would have changed too.
+
+Reported-by: Jüri Aedla <asd@ut.ee>
+Cc: Al Viro <viro@zeniv.linux.org.uk>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+---
+ fs/proc/base.c | 145 +++++++++++++++-----------------------------------------
+ 1 files changed, 39 insertions(+), 106 deletions(-)
+
+diff --git a/fs/proc/base.c b/fs/proc/base.c
+index 5485a53..662ddf2 100644
+--- a/fs/proc/base.c
++++ b/fs/proc/base.c
+@@ -198,65 +198,7 @@ static int proc_root_link(struct dentry *dentry, struct path *path)
+ return result;
+ }
+
+-static struct mm_struct *__check_mem_permission(struct task_struct *task)
+-{
+- struct mm_struct *mm;
+-
+- mm = get_task_mm(task);
+- if (!mm)
+- return ERR_PTR(-EINVAL);
+-
+- /*
+- * A task can always look at itself, in case it chooses
+- * to use system calls instead of load instructions.
+- */
+- if (task == current)
+- return mm;
+-
+- /*
+- * If current is actively ptrace'ing, and would also be
+- * permitted to freshly attach with ptrace now, permit it.
+- */
+- if (task_is_stopped_or_traced(task)) {
+- int match;
+- rcu_read_lock();
+- match = (ptrace_parent(task) == current);
+- rcu_read_unlock();
+- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
+- return mm;
+- }
+-
+- /*
+- * No one else is allowed.
+- */
+- mmput(mm);
+- return ERR_PTR(-EPERM);
+-}
+-
+-/*
+- * If current may access user memory in @task return a reference to the
+- * corresponding mm, otherwise ERR_PTR.
+- */
+-static struct mm_struct *check_mem_permission(struct task_struct *task)
+-{
+- struct mm_struct *mm;
+- int err;
+-
+- /*
+- * Avoid racing if task exec's as we might get a new mm but validate
+- * against old credentials.
+- */
+- err = mutex_lock_killable(&task->signal->cred_guard_mutex);
+- if (err)
+- return ERR_PTR(err);
+-
+- mm = __check_mem_permission(task);
+- mutex_unlock(&task->signal->cred_guard_mutex);
+-
+- return mm;
+-}
+-
+-struct mm_struct *mm_for_maps(struct task_struct *task)
++static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
+ {
+ struct mm_struct *mm;
+ int err;
+@@ -267,7 +209,7 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
+
+ mm = get_task_mm(task);
+ if (mm && mm != current->mm &&
+- !ptrace_may_access(task, PTRACE_MODE_READ)) {
++ !ptrace_may_access(task, mode)) {
+ mmput(mm);
+ mm = ERR_PTR(-EACCES);
+ }
+@@ -276,6 +218,11 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
+ return mm;
+ }
+
++struct mm_struct *mm_for_maps(struct task_struct *task)
++{
++ return mm_access(task, PTRACE_MODE_READ);
++}
++
+ static int proc_pid_cmdline(struct task_struct *task, char * buffer)
+ {
+ int res = 0;
+@@ -752,38 +699,39 @@ static const struct file_operations proc_single_file_operations = {
+
+ static int mem_open(struct inode* inode, struct file* file)
+ {
+- file->private_data = (void*)((long)current->self_exec_id);
++ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
++ struct mm_struct *mm;
++
++ if (!task)
++ return -ESRCH;
++
++ mm = mm_access(task, PTRACE_MODE_ATTACH);
++ put_task_struct(task);
++
++ if (IS_ERR(mm))
++ return PTR_ERR(mm);
++
+ /* OK to pass negative loff_t, we can catch out-of-range */
+ file->f_mode |= FMODE_UNSIGNED_OFFSET;
++ file->private_data = mm;
++
+ return 0;
+ }
+
+ static ssize_t mem_read(struct file * file, char __user * buf,
+ size_t count, loff_t *ppos)
+ {
+- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
++ int ret;
+ char *page;
+ unsigned long src = *ppos;
+- int ret = -ESRCH;
+- struct mm_struct *mm;
++ struct mm_struct *mm = file->private_data;
+
+- if (!task)
+- goto out_no_task;
++ if (!mm)
++ return 0;
+
+- ret = -ENOMEM;
+ page = (char *)__get_free_page(GFP_TEMPORARY);
+ if (!page)
+- goto out;
+-
+- mm = check_mem_permission(task);
+- ret = PTR_ERR(mm);
+- if (IS_ERR(mm))
+- goto out_free;
+-
+- ret = -EIO;
+-
+- if (file->private_data != (void*)((long)current->self_exec_id))
+- goto out_put;
++ return -ENOMEM;
+
+ ret = 0;
+
+@@ -810,13 +758,7 @@ static ssize_t mem_read(struct file * file, char __user * buf,
+ }
+ *ppos = src;
+
+-out_put:
+- mmput(mm);
+-out_free:
+ free_page((unsigned long) page);
+-out:
+- put_task_struct(task);
+-out_no_task:
+ return ret;
+ }
+
+@@ -825,27 +767,15 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
+ {
+ int copied;
+ char *page;
+- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
+ unsigned long dst = *ppos;
+- struct mm_struct *mm;
++ struct mm_struct *mm = file->private_data;
+
+- copied = -ESRCH;
+- if (!task)
+- goto out_no_task;
++ if (!mm)
++ return 0;
+
+- copied = -ENOMEM;
+ page = (char *)__get_free_page(GFP_TEMPORARY);
+ if (!page)
+- goto out_task;
+-
+- mm = check_mem_permission(task);
+- copied = PTR_ERR(mm);
+- if (IS_ERR(mm))
+- goto out_free;
+-
+- copied = -EIO;
+- if (file->private_data != (void *)((long)current->self_exec_id))
+- goto out_mm;
++ return -ENOMEM;
+
+ copied = 0;
+ while (count > 0) {
+@@ -869,13 +799,7 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
+ }
+ *ppos = dst;
+
+-out_mm:
+- mmput(mm);
+-out_free:
+ free_page((unsigned long) page);
+-out_task:
+- put_task_struct(task);
+-out_no_task:
+ return copied;
+ }
+
+@@ -895,11 +819,20 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig)
+ return file->f_pos;
+ }
+
++static int mem_release(struct inode *inode, struct file *file)
++{
++ struct mm_struct *mm = file->private_data;
++
++ mmput(mm);
++ return 0;
++}
++
+ static const struct file_operations proc_mem_operations = {
+ .llseek = mem_lseek,
+ .read = mem_read,
+ .write = mem_write,
+ .open = mem_open,
++ .release = mem_release,
+ };
+
+ static ssize_t environ_read(struct file *file, char __user *buf,
+--
+1.7.6.5
+
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD
index 3bd2c7fe6..e0220e8fd 100644
--- a/libre/linux-libre/PKGBUILD
+++ b/libre/linux-libre/PKGBUILD
@@ -3,13 +3,14 @@
# Maintainer: Thomas Baechler <thomas@archlinux.org>
# Maintainer (Parabola): Nicolás Reynolds <fauno@kiwwwi.com.ar>
# Maintainer (Parabola): Sorin-Mihai Vârgolici <smv@yobicore.org>
+# Maintainer (Parabola): André Silva <andre.paulista@adinet.com.uy>
pkgbase=linux-libre
pkgname=('linux-libre' 'linux-libre-headers' 'linux-libre-docs') # Build stock -LIBRE kernel
# pkgname=linux-custom # Build kernel with a different name
_kernelname=${pkgname#linux-libre}
_basekernel=3.2
-pkgver=${_basekernel}.1
+pkgver=${_basekernel}.7
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
@@ -29,6 +30,18 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-li
'change-default-console-loglevel.patch'
'i915-fix-ghost-tv-output.patch'
'i915-gpu-finish.patch')
+md5sums=('27c641c4f6785fc647cdd3e44963a55c'
+ '37a0fdc7ad19c9489faf09925b4fae5b'
+ '690e6201d219638544d2fba3996dc822'
+ '79db8a444fd149e409f706830d8cee9a'
+ 'e26dbcb367a2b48f5ed09560e2ae8fa0'
+ 'a8a3843046926eb7ab81312cd438c5c5'
+ '2967cecc3af9f954ccc822fd63dca6ff'
+ '8267264d9a8966e57fdacd1fa1fc65c4'
+ '04b21c79df0a952c22d681dd4f4562df'
+ '9d3c56a4b999c8bfbd4018089a62f662'
+ '263725f20c0b9eb9c353040792d644e5'
+ '4cd79aa147825837dc8bc9f6b736c0a0')
build() {
cd "${srcdir}/linux-${_basekernel}"
@@ -61,7 +74,7 @@ build() {
if [ "$CARCH" == "mips64el" ]; then
sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile
msg2 "Adding loongson-community patches"
- patch -Np1 -i ${srcdir}/${_basekernel}.*-*-loongson-community.patch
+ patch -Np1 -i ${srcdir}/${_basekernel}*-*-loongson-community.patch
patch -Np0 -i "${srcdir}/lxo-config.patch"
# ensure N32, add localversion and remove uevent helper as per
@@ -340,15 +353,3 @@ package_linux-libre-docs() {
# remove a file already in linux package
rm -f "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile"
}
-md5sums=('27c641c4f6785fc647cdd3e44963a55c'
- '6e0c99536652e7deb71acbadc980b586'
- 'fb12372c5c7bc4e5328b38953616c7a5'
- '92f62a90c1df8d74704a510d28146c52'
- '576ba68b171efd4a3333736c30f334ef'
- 'a8a3843046926eb7ab81312cd438c5c5'
- '2967cecc3af9f954ccc822fd63dca6ff'
- '8267264d9a8966e57fdacd1fa1fc65c4'
- '04b21c79df0a952c22d681dd4f4562df'
- '9d3c56a4b999c8bfbd4018089a62f662'
- '263725f20c0b9eb9c353040792d644e5'
- '4cd79aa147825837dc8bc9f6b736c0a0')
diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686
index 9aace04bc..d2d688197 100644
--- a/libre/linux-libre/config.i686
+++ b/libre/linux-libre/config.i686
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.2.0 Kernel Configuration
+# Linux/i386 3.2.6-1 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -422,8 +422,8 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
CONFIG_HWPOISON_INJECT=m
CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
CONFIG_CLEANCACHE=y
# CONFIG_HIGHPTE is not set
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
@@ -722,7 +722,7 @@ CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
+CONFIG_IPV6=y
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
@@ -3599,7 +3599,6 @@ CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_SAA7164=m
CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_VIA_CAMERA=m
CONFIG_SOC_CAMERA=m
CONFIG_SOC_CAMERA_IMX074=m
CONFIG_SOC_CAMERA_MT9M001=m
@@ -4014,7 +4013,7 @@ CONFIG_FB_SYS_IMAGEBLIT=m
CONFIG_FB_SYS_FOPS=m
# CONFIG_FB_WMT_GE_ROPS is not set
CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
+# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
@@ -4023,73 +4022,48 @@ CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_CYBER2000_DDC=y
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_VGA16 is not set
+CONFIG_FB_VGA16=m
CONFIG_FB_UVESA=m
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
CONFIG_FB_I810=m
-# CONFIG_FB_I810_GTF is not set
-CONFIG_FB_LE80578=m
-CONFIG_FB_CARILLO_RANCH=m
+CONFIG_FB_I810_GTF=y
+CONFIG_FB_I810_I2C=y
+# CONFIG_FB_LE80578 is not set
# CONFIG_FB_MATROX is not set
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-CONFIG_FB_ATY_GENERIC_LCD=y
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-CONFIG_FB_SAVAGE_ACCEL=y
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
-# CONFIG_FB_VIA_DIRECT_PROCFS is not set
-CONFIG_FB_VIA_X_COMPATIBILITY=y
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_VIA is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_SM501 is not set
-CONFIG_FB_SMSCUFX=m
+# CONFIG_FB_SMSCUFX is not set
CONFIG_FB_UDL=m
-# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_VIRTUAL=m
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
@@ -4108,7 +4082,6 @@ CONFIG_LCD_AMS369FG06=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_PROGEAR=m
-CONFIG_BACKLIGHT_CARILLO_RANCH=m
CONFIG_BACKLIGHT_APPLE=m
CONFIG_BACKLIGHT_SAHARA=m
CONFIG_BACKLIGHT_WM831X=m
@@ -5254,17 +5227,10 @@ CONFIG_SIGMA=m
#
# File systems
#
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT23=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
@@ -5417,9 +5383,9 @@ CONFIG_PSTORE=y
CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not set
-CONFIG_ORE=m
CONFIG_EXOFS_FS=m
# CONFIG_EXOFS_DEBUG is not set
+CONFIG_ORE=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64
index 42aafc2bb..80ea3030f 100644
--- a/libre/linux-libre/config.x86_64
+++ b/libre/linux-libre/config.x86_64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.2.0 Kernel Configuration
+# Linux/x86_64 3.2.6-1 Kernel Configuration
#
CONFIG_64BIT=y
# CONFIG_X86_32 is not set
@@ -409,8 +409,8 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
CONFIG_HWPOISON_INJECT=m
CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set
+CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
CONFIG_CLEANCACHE=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -684,7 +684,7 @@ CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
+CONFIG_IPV6=y
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
@@ -3447,7 +3447,6 @@ CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_SAA7164=m
CONFIG_VIDEO_CAFE_CCIC=m
-CONFIG_VIDEO_VIA_CAMERA=m
CONFIG_SOC_CAMERA=m
CONFIG_SOC_CAMERA_IMX074=m
CONFIG_SOC_CAMERA_MT9M001=m
@@ -3831,7 +3830,7 @@ CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_DDC=m
+# CONFIG_FB_DDC is not set
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
@@ -3844,7 +3843,7 @@ CONFIG_FB_SYS_IMAGEBLIT=m
CONFIG_FB_SYS_FOPS=m
# CONFIG_FB_WMT_GE_ROPS is not set
CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
+# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
@@ -3853,71 +3852,45 @@ CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_CYBER2000_DDC=y
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_VGA16 is not set
+CONFIG_FB_VGA16=m
CONFIG_FB_UVESA=m
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_LE80578=m
-CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_LE80578 is not set
# CONFIG_FB_MATROX is not set
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-CONFIG_FB_ATY_GENERIC_LCD=y
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-CONFIG_FB_SAVAGE_ACCEL=y
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
-# CONFIG_FB_VIA_DIRECT_PROCFS is not set
-CONFIG_FB_VIA_X_COMPATIBILITY=y
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_VIA is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_TMIO is not set
# CONFIG_FB_SM501 is not set
-CONFIG_FB_SMSCUFX=m
+# CONFIG_FB_SMSCUFX is not set
CONFIG_FB_UDL=m
-# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_VIRTUAL=m
CONFIG_XEN_FBDEV_FRONTEND=m
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
@@ -3937,7 +3910,6 @@ CONFIG_LCD_AMS369FG06=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_PROGEAR=m
-CONFIG_BACKLIGHT_CARILLO_RANCH=m
CONFIG_BACKLIGHT_APPLE=m
CONFIG_BACKLIGHT_SAHARA=m
CONFIG_BACKLIGHT_WM831X=m
@@ -5016,17 +4988,10 @@ CONFIG_SIGMA=m
#
# File systems
#
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT23=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
@@ -5180,9 +5145,9 @@ CONFIG_PSTORE=y
CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not set
-CONFIG_ORE=m
CONFIG_EXOFS_FS=m
# CONFIG_EXOFS_DEBUG is not set
+CONFIG_ORE=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install
index f08840c94..6e3e16986 100644
--- a/libre/linux-libre/linux-libre.install
+++ b/libre/linux-libre/linux-libre.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=
-KERNEL_VERSION=3.2.1-1-LIBRE
+KERNEL_VERSION=3.2.7-1-LIBRE
post_install () {
# updating module dependencies
diff --git a/libre/metalog/PKGBUILD b/libre/metalog/PKGBUILD
index dee52d986..41a570b7c 100644
--- a/libre/metalog/PKGBUILD
+++ b/libre/metalog/PKGBUILD
@@ -4,7 +4,7 @@
pkgname=metalog
pkgver=2.0
-pkgrel=2
+pkgrel=3
pkgdesc="Metalog is a modern replacement for syslogd and klogd"
url="http://metalog.sourceforge.net"
license=('GPL')
diff --git a/libre/mplayer-libre/PKGBUILD b/libre/mplayer-libre/PKGBUILD
index 2602022f4..3ca302e09 100644
--- a/libre/mplayer-libre/PKGBUILD
+++ b/libre/mplayer-libre/PKGBUILD
@@ -2,14 +2,16 @@
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Hugo Doria <hugo@archlinux.org>
+# libvdpau is currently useful only with proprietary software
+
_pkgbase=mplayer
pkgbase=mplayer-libre
pkgname=('mplayer-libre' 'mencoder-libre')
pkgver=34426
-pkgrel=1
+pkgrel=3
arch=('i686' 'x86_64')
makedepends=('libxxf86dga' 'libxxf86vm' 'libmad' 'cdparanoia' 'libxinerama' 'sdl' 'lame' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'libgl' 'smbclient'
-'aalib' 'jack' 'libcaca' 'x264' 'faad2' 'lirc-utils' 'libxvmc' 'enca' 'libvdpau' 'opencore-amr' 'libdca' 'a52dec' 'schroedinger' 'libvpx' 'speex'
+'aalib' 'jack' 'libcaca' 'x264' 'faad2' 'lirc-utils' 'libxvmc' 'enca' 'opencore-amr' 'libdca' 'a52dec' 'schroedinger' 'libvpx' 'speex'
'libpulse' 'fribidi' 'unzip-libre' 'mesa' 'live-media' 'yasm' 'git' 'fontconfig' 'mpg123' 'ladspa' 'libass' 'libbluray')
license=('GPL')
url="http://www.mplayerhq.hu/"
@@ -33,6 +35,7 @@ build() {
--disable-esd \
--disable-mga \
--disable-ass-internal \
+ --disable-vdpau \
--enable-xvmc \
--enable-radio \
--language=all \
@@ -47,22 +50,22 @@ package_mplayer-libre() {
install=mplayer.install
backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
depends=('desktop-file-utils' 'ttf-dejavu' 'enca' 'libxss' 'a52dec' 'libvpx' 'lirc-utils' 'x264' 'libmng' 'libdca' 'aalib' 'lame' 'fontconfig' 'libgl'
- 'libxinerama' 'libvdpau' 'libpulse' 'smbclient' 'xvidcore' 'opencore-amr' 'jack' 'cdparanoia' 'libmad' 'sdl' 'libtheora' 'libcaca' 'libxxf86dga' 'fribidi'
+ 'libxinerama' 'libpulse' 'smbclient' 'xvidcore' 'opencore-amr' 'jack' 'cdparanoia' 'libmad' 'sdl' 'libtheora' 'libcaca' 'libxxf86dga' 'fribidi'
'libjpeg' 'faad2' 'libxvmc' 'schroedinger' 'mpg123' 'libass' 'libxxf86vm' 'libbluray')
provides=("mplayer=$pkgver")
replaces=('mplayer')
conflicts=('mplayer')
- cd ${srcdir}/${_pkgbase}
+ cd "${srcdir}/${_pkgbase}"
- make DESTDIR=${pkgdir} install-mplayer install-mplayer-man
- install -Dm644 etc/{codecs.conf,input.conf,example.conf} ${pkgdir}/etc/mplayer/
- install -dm755 ${pkgdir}/usr/share/mplayer/
- ln -s /usr/share/fonts/TTF/DejaVuSans.ttf ${pkgdir}/usr/share/mplayer/subfont.ttf
- rm -rf ${pkgdir}/usr/share/mplayer/font
+ make DESTDIR="${pkgdir}" install-mplayer install-mplayer-man
+ install -Dm644 etc/{codecs.conf,input.conf,example.conf} "${pkgdir}/etc/mplayer/"
+ install -dm755 "${pkgdir}/usr/share/mplayer/"
+ ln -s /usr/share/fonts/TTF/DejaVuSans.ttf "${pkgdir}/usr/share/mplayer/subfont.ttf"
+ rm -rf "${pkgdir}/usr/share/mplayer/font"
#desktop file FS#14770
- install -Dm644 ${srcdir}/mplayer.desktop ${pkgdir}/usr/share/applications/mplayer.desktop
- install -Dm644 etc/mplayer.png ${pkgdir}/usr/share/pixmaps/mplayer.png
+ install -Dm644 "${srcdir}/mplayer.desktop" "${pkgdir}/usr/share/applications/mplayer.desktop"
+ install -Dm644 etc/mplayer.png "${pkgdir}/usr/share/pixmaps/mplayer.png"
}
package_mencoder-libre() {
@@ -73,7 +76,9 @@ package_mencoder-libre() {
replaces=('mencoder')
conflicts=('mencoder')
- cd ${srcdir}/${_pkgbase}
- make DESTDIR=${pkgdir} install-mencoder install-mencoder-man
- find $pkgdir/usr/share/man -name 'mplayer.1' -exec bash -c 'mv "$1" "${1/mplayer/mencoder}"' _ {} \;
+ cd "${srcdir}/${_pkgbase}"
+ make DESTDIR="${pkgdir}" install-mencoder install-mencoder-man
+ find "$pkgdir/usr/share/man" -name 'mplayer.1' -exec bash -c 'mv "$1" "${1/mplayer/mencoder}"' _ {} \;
}
+md5sums=('ff81117293e76b59e54debc439d8e612'
+ '647b9f4ab5284a7fef3f84f992214e77')
diff --git a/libre/mplayer-libre/mplayer.desktop b/libre/mplayer-libre/mplayer.desktop
index 07acea13f..e3229d042 100644
--- a/libre/mplayer-libre/mplayer.desktop
+++ b/libre/mplayer-libre/mplayer.desktop
@@ -14,7 +14,7 @@ Comment[zh]=多媒体播放器
Comment[pl]=Odtwarzaj filmy i muzykę
Icon=mplayer
TryExec=mplayer
-Exec=mplayer %F
+Exec=mplayer -really-quiet %F
Terminal=false
NoDisplay=true
Categories=GTK;AudioVideo;Audio;Video;Player;TV;
diff --git a/libre/mplayer-libre/mplayer.install b/libre/mplayer-libre/mplayer.install
index 660593cf5..f98ba7338 100644
--- a/libre/mplayer-libre/mplayer.install
+++ b/libre/mplayer-libre/mplayer.install
@@ -3,9 +3,9 @@ post_install() {
}
post_upgrade() {
- post_install
+ post_install $1
}
post_remove() {
- post_install
+ post_install $1
}
diff --git a/libre/mplayer-vaapi-libre/PKGBUILD b/libre/mplayer-vaapi-libre/PKGBUILD
index 1904d4ec4..632ac4e12 100644
--- a/libre/mplayer-vaapi-libre/PKGBUILD
+++ b/libre/mplayer-vaapi-libre/PKGBUILD
@@ -6,39 +6,34 @@
_pkgname=mplayer-vaapi
pkgname=mplayer-vaapi-libre
-pkgver=34180
-_sha1=79e6aa7b
-pkgrel=2
+pkgver=34578
+pkgrel=3
+pkgdesc="A movie player, compiled with vaapi support"
arch=('i686' 'x86_64')
-url="http://www.splitted-desktop.com/~gbeauchesne/mplayer-vaapi/"
+url="http://gitorious.org/vaapi/mplayer"
license=('GPL')
-depends=('libxxf86dga' 'libxxf86vm' 'libmad' 'cdparanoia' 'libxinerama' 'sdl'
+depends=('libxxf86dga' 'libxxf86vm' 'libmad' 'libcdio' 'libxinerama' 'sdl'
'lame' 'fontconfig' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'mesa'
- 'smbclient' 'aalib' 'jack' 'libcaca' 'x264' 'faad2' 'speex'
+ 'smbclient' 'aalib' 'jack' 'libcaca' 'x264' 'speex' 'faad2'
'lirc-utils' 'ttf-dejavu' 'libxvmc' 'enca' 'opencore-amr' 'libdca'
'a52dec' 'schroedinger' 'mpg123' 'libvpx' 'libpulse' 'fribidi' 'faad2'
'libva' 'libass' 'desktop-file-utils')
-makedepends=('p7zip-libre' 'live-media' 'yasm' 'ladspa' 'git')
-provides=("$_pkgname=$pkgver" 'mplayer')
+makedepends=('unzip-libre' 'live-media' 'yasm' 'ladspa' 'git')
+provides=("$_pkgname=$pkgver" "mplayer=$pkgver")
conflicts=('mplayer' "$_pkgname")
replaces=('mplayer-vaapi')
backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
-#source=(http://pkgbuild.com/~foutrelis/mplayer-$pkgver.tar.xz
-# http://www.splitted-desktop.com/static/libva/mplayer-vaapi/mplayer-vaapi-$_vaapi_version.tar.bz2
-source=(mplayer-vaapi-$_sha1.tar.gz::http://gitorious.org/vaapi/mplayer/archive-tarball/$_sha1
+source=(http://pkgbuild.com/~foutrelis/mplayer-vaapi-$pkgver.tar.xz
mplayer.desktop
mplayer.png)
options=('!buildflags' '!emptydirs')
install=mplayer-vaapi.install
-sha256sums=('df3ec3d6eba8fd66d6ed7e84dcc909db3b0dcbee2fafdff86c8e66340de1e323'
+sha256sums=('cc35a057c8a64d2cdec2dc0a037811ef0f91dd03cd3d07465c7272a08665a37d'
'9aa54571b37d15aec2c8e3ddf086753217efc3084ebf466335b2f28d819c74da'
'061739a8cc267748ad58f168034cc39785d949a5262772535e1b347c7842af48')
build() {
- cd "$srcdir/vaapi-mplayer"
-
- [[ -d ffmpeg ]] && rm -rf ffmpeg
- tsocks git clone --depth 1 git://git.videolan.org/ffmpeg.git ffmpeg
+ cd "$srcdir/mplayer-vaapi-$pkgver"
./configure --prefix=/usr \
--enable-runtime-cpudetection \
@@ -46,6 +41,7 @@ build() {
--disable-arts \
--disable-liblzo \
--enable-speex \
+ --disable-cdparanoia \
--disable-openal \
--disable-libdv \
--disable-musepack \
@@ -65,7 +61,7 @@ build() {
}
package() {
- cd "$srcdir/vaapi-mplayer"
+ cd "$srcdir/mplayer-vaapi-$pkgver"
make -j1 DESTDIR="$pkgdir" install-mplayer install-mplayer-man
install -Dm644 etc/{codecs.conf,input.conf,example.conf} "$pkgdir/etc/mplayer/"
@@ -78,6 +74,3 @@ package() {
}
# vim:set ts=2 sw=2 et:
-sha256sums=('ab9386e81df7ea7f25102940f7d86fdac797bcdc9b489e0ce118c505c02508ba'
- '9aa54571b37d15aec2c8e3ddf086753217efc3084ebf466335b2f28d819c74da'
- '061739a8cc267748ad58f168034cc39785d949a5262772535e1b347c7842af48')
diff --git a/libre/pacman/PKGBUILD b/libre/pacman/PKGBUILD
index 00ed5e69c..00faf0842 100644
--- a/libre/pacman/PKGBUILD
+++ b/libre/pacman/PKGBUILD
@@ -1,11 +1,11 @@
# vim: set ts=2 sw=2 et:
-# $Id: PKGBUILD 145836 2012-01-02 19:39:43Z dreisner $
+# $Id: PKGBUILD 146568 2012-01-13 16:47:02Z dreisner $
# Maintainer: Dan McGee <dan@archlinux.org>
# Maintainer: Dave Reisner <dave@archlinux.org>
pkgname=pacman
pkgver=4.0.1
-pkgrel=3
+pkgrel=4
pkgdesc="A library-based package manager with dependency support"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.archlinux.org/pacman/"
@@ -13,6 +13,7 @@ license=('GPL')
groups=('base')
depends=('bash' 'glibc>=2.15' 'libarchive>=3.0.2' 'curl>=7.19.4'
'gpgme' 'pacman-mirrorlist')
+makedepends=('asciidoc')
optdepends=('fakeroot: for makepkg usage as normal user')
backup=(etc/pacman.conf etc/makepkg.conf)
install=pacman.install
diff --git a/libre/pacman/rePKGBUILD b/libre/pacman/rePKGBUILD
index 3648f2a18..3967b90ab 100644
--- a/libre/pacman/rePKGBUILD
+++ b/libre/pacman/rePKGBUILD
@@ -2,7 +2,7 @@
source PKGBUILD
CARCH=x86_64
unset build package md5sums source
-_repo=testing
+_repo=core
source=(PKGBUILD
ftp://ftp.archlinux.org/${_repo}/os/${CARCH}/${pkgname%-libre}-$pkgver-$pkgrel-$CARCH$PKGEXT
# files for pkg modifications
diff --git a/libre/parabola-themes-slim/PKGBUILD b/libre/parabola-themes-slim/PKGBUILD
new file mode 100644
index 000000000..9c29caf0b
--- /dev/null
+++ b/libre/parabola-themes-slim/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Mark J.R.P. <l1mpm4rk@gmail.com>
+# Contributor: Mark J.R.P. <l1mpm4rk@gmail.com>
+
+provides=("parabola-themes-slim=$pkgver")
+replaces=('archlinux-themes-slim')
+conflicts=('archlinux-themes-slim')
+pkgname=parabola-themes-slim
+pkgver=1.0
+pkgrel=1
+pkgdesc="a theme parabolero to the Slim login manager"
+arch=('any')
+url="https://parabolagnulinux.org/"
+license=('CCPL')
+optdepends=('slim: simple login manager'
+ 'ttf-liberation: to have a beautiful style of letter in the login')
+source=(https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}.tar)
+md5sums=(bf6bead07cbcca9aa562907230496ba1)
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ mkdir -p $pkgdir/usr/share/slim/themes
+ cp -a Parabola-*/ $pkgdir/usr/share/slim/themes
+}
diff --git a/libre/seamonkey-libre/PKGBUILD b/libre/seamonkey-libre/PKGBUILD
index 343f3e3ed..41cd99b4c 100644
--- a/libre/seamonkey-libre/PKGBUILD
+++ b/libre/seamonkey-libre/PKGBUILD
@@ -1,56 +1,58 @@
-# $Id$
+# $Id: PKGBUILD 149871 2012-02-11 11:12:41Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
+_pkgname=seamonkey
pkgname=seamonkey-libre
-pkgver=2.0.12
+pkgver=2.7.1
pkgrel=1
pkgdesc="SeaMonkey internet suite, with GNUZilla addons"
arch=('i686' 'x86_64')
license=('MPL')
-depends=('gtk2' 'mozilla-common' 'nss' 'libxt' 'gcc-libs' 'alsa-lib' 'dbus-glib')
-makedepends=('zip' 'pkg-config' 'libgnomeui>=2.24.2' 'python2' 'libidl2' 'autoconf2.13')
+depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite3' 'startup-notification')
+makedepends=('unzip' 'zip' 'pkg-config' 'python2' 'yasm' 'wireless_tools' 'mesa' 'autoconf2.13')
replaces=('mozilla' 'seamonkey')
conflicts=('seamonkey')
provides=("seamonkey=$pkgver")
+install=$_pkgname.install
url="http://www.mozilla.org/projects/seamonkey"
-source=(http://releases.mozilla.org/pub/mozilla.org/seamonkey/releases/${pkgver}/source/seamonkey-${pkgver}.source.tar.bz2
+source=(ftp://releases.mozilla.org/pub/mozilla.org/$_pkgname/releases/$pkgver/source/$_pkgname-$pkgver.source.tar.bz2
mozconfig
seamonkey.desktop
- seamonkey-appversion.patch
seamonkey-2.0-lang.patch
- python27.patch
+ libvpx.patch
gnuzilla-addons.patch)
-md5sums=('681328d58a71d23e52ebe986a8eca3fd'
- '4978159e4921892e34dcd7e9804f0437'
- '448848e65efcbf1b2be2873b66b6cd48'
- 'a4275fc48361c80f676e96fdb28bd74e'
+md5sums=('a16764e55ef8e59c469dc44b63459ad6'
+ 'd02b5f002a7cdf8d15dccd2548d09256'
+ '6119a2254716752c9d08e366f8d4c048'
'25b6fe16ac24cd5c852213e5c1adb272'
- '47e57931d65c71baafcf0e4f9160e876'
- '178073b25aa41ffc601bcd9ddf1f69de')
+ '5b2aaff7dfe7f1f94ad965905b20e782'
+ '4347c7be7e48a9987765552f4f6362bc')
build() {
- cd "${srcdir}/comm-1.9.1"
- patch -Np1 -i "${srcdir}/seamonkey-appversion.patch"
- patch -Np1 -i "${srcdir}/seamonkey-2.0-lang.patch"
- patch -Np0 -i "${srcdir}/python27.patch"
+ cd "$srcdir/comm-release"
+ patch -Np1 -i "$srcdir/seamonkey-2.0-lang.patch"
+ patch -Np1 -i "$srcdir/libvpx.patch"
+ patch -Np1 -i "${srcdir}/gnuzilla-addons.patch"
- pushd suite/browser >/dev/null
- patch -Np0 -i "${srcdir}/gnuzilla-addons.patch"
- popd >/dev/null
+ cp "$srcdir/mozconfig" .mozconfig
+ export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/seamonkey-$pkgver"
- cp "${srcdir}/mozconfig" .mozconfig
- unset CFLAGS
- unset CXXFLAGS
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
+}
+
+package() {
+ cd "$srcdir/comm-release"
- export LDFLAGS="-Wl,-rpath,/usr/lib/seamonkey-2.0"
+ make -j1 -f client.mk DESTDIR="$pkgdir" install
- make -j1 -f client.mk build MOZ_MAKE_FLAGS="${MAKEFLAGS}"
- make -j1 DESTDIR="${pkgdir}" install
+ rm -rf "$pkgdir"/usr/lib/seamonkey-$pkgver/{dictionaries,hyphenation}
+ ln -sf /usr/share/hunspell "$pkgdir/usr/lib/seamonkey-$pkgver/dictionaries"
+ ln -sf /usr/share/hyphen "$pkgdir/usr/lib/seamonkey-$pkgver/hyphenation"
- install -m755 -d "${pkgdir}/usr/share/applications"
- install -m755 -d "${pkgdir}/usr/share/pixmaps"
- install -m644 "${srcdir}/comm-1.9.1/suite/branding/icons/gtk/seamonkey.png" \
- "${pkgdir}/usr/share/pixmaps/"
- install -m644 "${srcdir}/seamonkey.desktop" "${pkgdir}/usr/share/applications/"
+ install -m755 -d "$pkgdir/usr/share/applications"
+ install -m755 -d "$pkgdir/usr/share/pixmaps"
+ install -m644 suite/branding/nightly/icons/gtk/seamonkey.png \
+ "$pkgdir/usr/share/pixmaps/"
+ install -m644 "$srcdir/seamonkey.desktop" "$pkgdir/usr/share/applications/"
- rm -f "${pkgdir}/usr/lib/pkgconfig/"seamonkey-ns{s,pr}.pc
+ rm -f "$pkgdir/usr/lib/pkgconfig/"seamonkey-ns{s,pr}.pc
}
diff --git a/libre/seamonkey-libre/gnuzilla-addons.patch b/libre/seamonkey-libre/gnuzilla-addons.patch
index 6cf586e7a..ae95052c5 100644
--- a/libre/seamonkey-libre/gnuzilla-addons.patch
+++ b/libre/seamonkey-libre/gnuzilla-addons.patch
@@ -1,29 +1,28 @@
---- usr/lib/seamonkey-2.0/defaults/pref/browser-prefs.js 2011-03-03 06:47:16.000000000 -0300
-+++ browser-prefs.js 2011-03-08 12:02:29.616789776 -0300
-@@ -465,12 +465,12 @@
-
- // Preferences for the Get Add-ons pane
- pref("extensions.getAddons.showPane", true);
--pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/%APP%");
-+pref("extensions.getAddons.browseAddons", "http://www.gnu.org/software/gnuzilla/addons.html");
- pref("extensions.getAddons.maxResults", 5);
--pref("extensions.getAddons.recommended.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/recommended");
--pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/list/featured/all/10/%OS%/%VERSION%");
+diff -ru comm-release.orig/suite/browser/browser-prefs.js comm-release/suite/browser/browser-prefs.js
+--- comm-release.orig/suite/browser/browser-prefs.js 2012-02-12 21:59:22.006597211 +0100
++++ comm-release/suite/browser/browser-prefs.js 2012-02-12 22:03:37.727232650 +0100
+@@ -587,10 +587,10 @@
+ // Preferences for AMO integration
+ pref("extensions.getAddons.cache.enabled", true); // also toggles personalized recommendations
+ pref("extensions.getAddons.maxResults", 15);
+-pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/guid:%IDS%?src=seamonkey&appOS=%OS%&appVersion=%VERSION%&tMain=%TIME_MAIN%&tFirstPaint=%TIME_FIRST_PAINT%&tSessionRestored=%TIME_SESSION_RESTORED%");
-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/search?q=%TERMS%");
--pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/10/%OS%/%VERSION%");
-+pref("extensions.getAddons.recommended.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
-+pref("extensions.getAddons.recommended.url", "http://www.gnu.org/software/gnuzilla/addons.html");
+-pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%?src=seamonkey");
+-pref("extensions.webservice.discoverURL", "https://services.addons.mozilla.org/%LOCALE%/%APP%/discovery/pane/%VERSION%/%OS%");
++pref("extensions.getAddons.get.url", "http://www.gnu.org/software/gnuzilla/addons.html");
+pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
+pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.webservice.discoverURL", "http://www.gnu.org/software/gnuzilla/addons.html");
+
+ // getMoreThemes is used by our UI under our switch theme menu
+ pref("extensions.getMoreThemesURL", "chrome://branding/locale/brand.properties");
+@@ -715,7 +715,7 @@
+ #endif
- // Non-symmetric (not shared by extensions) extension-specific [update] preferences
- pref("extensions.getMoreExtensionsURL", "chrome://branding/locale/brand.properties");
-@@ -557,7 +557,7 @@
- // Disables default plugin for Plugin Finder Service
- pref("plugin.default_plugin_disabled", true);
// plugin finder service url
-pref("pfs.datasource.url", "https://pfs.mozilla.org/plugins/PluginFinderService.php?mimetype=%PLUGIN_MIMETYPE%&appID=%APP_ID%&appVersion=%APP_VERSION%&clientOS=%CLIENT_OS%&chromeLocale=%CHROME_LOCALE%");
+pref("pfs.datasource.url", "http://www.gnu.org/software/gnuzilla/addons.html");
- pref("plugins.hide_infobar_for_missing_plugin", false);
-
- //@line 584 "/build/src/comm-1.9.1/suite/browser/browser-prefs.js"
+ pref("plugins.update.url", "http://www.mozilla.com/%LOCALE%/plugincheck/");
+ pref("plugins.update.notifyUser", false);
+ pref("plugins.hide_infobar_for_outdated_plugin", false);
+Tylko w comm-release/suite/browser: browser-prefs.js~
diff --git a/libre/seamonkey-libre/libvpx.patch b/libre/seamonkey-libre/libvpx.patch
new file mode 100644
index 000000000..d0f9a0f4c
--- /dev/null
+++ b/libre/seamonkey-libre/libvpx.patch
@@ -0,0 +1,12 @@
+diff -Nur comm-release.orig/mozilla/configure.in comm-release/mozilla/configure.in
+--- comm-release.orig/mozilla/configure.in 2012-02-05 18:02:17.376830377 +0000
++++ comm-release/mozilla/configure.in 2012-02-05 18:03:25.246274275 +0000
+@@ -5629,7 +5629,7 @@
+ dnl v0.9.6 one to check for.
+ AC_TRY_COMPILE([
+ #include <vpx/vpx_decoder.h>
+- #if !defined(VPX_CODEC_USE_INPUT_PARTITION)
++ #if !defined(VPX_CODEC_USE_INPUT_FRAGMENTS)
+ #error "test failed."
+ #endif
+ ],
diff --git a/libre/seamonkey-libre/mozconfig b/libre/seamonkey-libre/mozconfig
index 4eb1b51ea..8257f8e4f 100644
--- a/libre/seamonkey-libre/mozconfig
+++ b/libre/seamonkey-libre/mozconfig
@@ -1,30 +1,35 @@
+ac_add_options --enable-application=suite
+
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --with-system-libvpx
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-cairo
ac_add_options --with-pthreads
+
+# Features
+ac_add_options --enable-startup-notification
+ac_add_options --enable-safe-browsing
+ac_add_options --enable-gio
+
+ac_add_options --disable-gnomevfs
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
ac_add_options --disable-tests
-ac_add_options --disable-debug
+ac_add_options --disable-mochitest
ac_add_options --disable-installer
-ac_add_options --disable-crashreporter
+
+# Optimization
ac_add_options --enable-optimize
-ac_add_options --enable-xinerama
-ac_add_options --enable-default-toolkit=cairo-gtk2
-ac_add_options --disable-xprint
-ac_add_options --enable-strip
-ac_add_options --enable-pango
-#disabled due to bugs with cairo 1.10
-#ac_add_options --enable-system-cairo
-ac_add_options --enable-svg
-ac_add_options --enable-canvas
-ac_add_options --prefix=/usr
-ac_add_options --mandir=/usr/share/man
-ac_add_options --enable-crypto
-ac_add_options --enable-application=suite
-ac_cv_visibility_pragma=no
-export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
-mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
diff --git a/libre/seamonkey-libre/seamonkey-appversion.patch b/libre/seamonkey-libre/seamonkey-appversion.patch
deleted file mode 100644
index 0c34cf477..000000000
--- a/libre/seamonkey-libre/seamonkey-appversion.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur comm-1.9.1.orig/suite/installer/Makefile.in comm-1.9.1/suite/installer/Makefile.in
---- comm-1.9.1.orig/suite/installer/Makefile.in 2010-01-04 23:01:34.000000000 +0200
-+++ comm-1.9.1/suite/installer/Makefile.in 2010-01-11 22:38:44.000000000 +0200
-@@ -42,6 +42,8 @@
-
- include $(DEPTH)/config/autoconf.mk
-
-+MOZ_APP_VERSION="2.0"
-+
- NO_PKG_FILES = \
- $(MOZ_APP_NAME)-config \
- xpcshell* \
diff --git a/libre/seamonkey-libre/seamonkey.desktop b/libre/seamonkey-libre/seamonkey.desktop
index 084082aea..dd92a2432 100644
--- a/libre/seamonkey-libre/seamonkey.desktop
+++ b/libre/seamonkey-libre/seamonkey.desktop
@@ -6,6 +6,6 @@ Type=Application
Terminal=false
MultipleArgs=false
Name=SeaMonkey internet suite
-MimeType=text/html
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;message/rfc822;x-scheme-handler/mailto;
StartupNotify=false
Categories=Application;Network;
diff --git a/libre/seamonkey-libre/seamonkey.install b/libre/seamonkey-libre/seamonkey.install
new file mode 100644
index 000000000..709ad81f2
--- /dev/null
+++ b/libre/seamonkey-libre/seamonkey.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/libre/texlive-bin-libre/PKGBUILD b/libre/texlive-bin-libre/PKGBUILD
index 0074fb878..6fa7ec4c7 100644
--- a/libre/texlive-bin-libre/PKGBUILD
+++ b/libre/texlive-bin-libre/PKGBUILD
@@ -1,21 +1,22 @@
# Parabola maintainer: Michał Masłowski <mtjm@mtjm.eu>
+# $Id: PKGBUILD 148521 2012-02-03 01:16:06Z remy $
# Maintainer: Rémy Oudompheng <remy@archlinux.org>
# Contributor: francois <francois.archlinux.org>
pkgname=texlive-bin-libre
pkgver=2011.3
_luatex_ver=0.70.1
-pkgrel=1
+pkgrel=4.1
pkgdesc="TeX Live binaries"
license=('GPL')
arch=('i686' 'x86_64' 'mips64el')
depends=('t1lib' 'gd' 'poppler>=0.18.2' 'libsigsegv' 'zziplib')
-makedepends=('perl' 'clisp' 'ffcall' 'pkg-config')
+makedepends=('perl' 'clisp' 'ffcall')
optdepends=('ed: for texconfig')
provides=('lcdf-typetools' 'kpathsea' 'xindy' 'pdfjam' 'texlive-bin')
conflicts=('pdfjam' 'texlive-bin')
replaces=('texlive-bin')
-options=('!libtool')
+options=('!libtool' '!strip')
url='http://tug.org/texlive/'
install="texlive.install"
source=('texmf.cnf'
@@ -48,10 +49,12 @@ md5sums=('220a4f4cc0d915bf8fcbcb553dcee1ae'
'e7f0197559ef865d8c01683dab3b8526')
build() {
- cd $srcdir
- # Remove bundled packages available in Parabola or not needed.
- rm -rf source/{extra/{djgpp,xz},libs/{freetype2,gd,xpdf,libpng,zziplib,zlib,t1lib,poppler},utils/dialog}
- rm -rf luatex/source/libs/{libpng,zziplib,zlib,poppler}
+ if [ "${CARCH}" != "i686" ]; then
+ export CFLAGS="${CFLAGS} -fPIC"
+ export CXXFLAGS="${CXXFLAGS} -fPIC"
+ fi
+
+ cd "$srcdir"
# Building LuaTeX
# cd luatex-beta-${_luatex_ver}
cd luatex
@@ -62,7 +65,7 @@ build() {
../source/configure --prefix=/usr -C \
--disable-native-texlive-build \
--with-banner-add="/Parabola GNU/Linux-libre" \
- --disable-cxx-runtime-hack \
+ --enable-cxx-runtime-hack \
--disable-all-pkgs \
--disable-dump-share \
--disable-ptex \
@@ -72,7 +75,6 @@ build() {
--without-system-icu \
--without-system-kpathsea \
--with-system-freetype2 \
- --with-system-xpdf \
--with-system-poppler \
--with-freetype2-libdir=/usr/lib \
--with-freetype2-include=/usr/include/freetype2 \
@@ -105,7 +107,9 @@ build() {
test ! -d Work && mkdir Work
cd Work
echo "--> Initial configuration..."
- # we use temporary prefix to avoid messing the existing $pkgdir/usr/share/texmf tree
+ # we use temporary prefix to avoid messing the existing
+ # $pkgdir/usr/share/texmf tree
+ # system zlib is disabled due to issues with zlib 1.2.6 (FS#28221)
../configure --prefix=/usr -C \
--sysconfdir=/etc \
--datarootdir=/usr/share \
@@ -119,17 +123,16 @@ build() {
--disable-t1utils \
--disable-bibtexu \
--disable-xz \
- --with-system-zlib \
- --with-system-zziplib \
- --with-system-pnglib \
+ --without-system-zlib \
+ --without-system-zziplib \
+ --without-system-pnglib \
--with-system-ncurses \
--with-system-t1lib \
- --with-system-gd \
- --with-system-poppler \
- --with-system-xpdf \
- --with-system-freetype2 \
+ --without-system-gd \
+ --without-system-poppler \
+ --without-system-xpdf \
+ --without-system-freetype2 \
--without-system-graphite \
- --with-system-icu \
--with-freetype2-libdir=/usr/lib \
--with-freetype2-include=/usr/include/freetype2 \
--with-xdvi-x-toolkit=xaw \
@@ -137,8 +140,6 @@ build() {
--disable-aleph \
--disable-luatex \
--with-clisp-runtime=default \
- --disable-static \
- --enable-shared \
--enable-xindy --disable-xindy-rules --disable-xindy-docs
#############################################################
### make
@@ -149,65 +150,65 @@ build() {
}
package() {
- cd $srcdir
+ cd "$srcdir"
#############################################################
### install texmf tree
echo "-------------------------------------------------------"
echo "--> installing the texmf tree"
echo "-------------------------------------------------------"
- install -m755 -d $pkgdir/usr/share
- cp -r texmf $pkgdir/usr/share/
- install -d -m755 $pkgdir/etc/texmf/web2c
- install -d -m755 $pkgdir/etc/texmf/chktex
- install -d -m755 $pkgdir/etc/texmf/dvips/config
- install -d -m755 $pkgdir/etc/texmf/dvipdfm/config
- install -d -m755 $pkgdir/etc/texmf/dvipdfmx
- install -d -m755 $pkgdir/etc/texmf/tex/generic/config
- install -d -m755 $pkgdir/etc/texmf/ttf2pk
- install -d -m755 $pkgdir/etc/texmf/xdvi
- install -d -m755 $pkgdir/etc/fonts/conf.avail
- install -m644 $srcdir/09-texlive-fonts.conf $pkgdir/etc/fonts/conf.avail/
+ install -m755 -d "$pkgdir"/usr/share
+ cp -r texmf "$pkgdir"/usr/share/
+ install -d -m755 "$pkgdir"/etc/texmf/web2c
+ install -d -m755 "$pkgdir"/etc/texmf/chktex
+ install -d -m755 "$pkgdir"/etc/texmf/dvips/config
+ install -d -m755 "$pkgdir"/etc/texmf/dvipdfm/config
+ install -d -m755 "$pkgdir"/etc/texmf/dvipdfmx
+ install -d -m755 "$pkgdir"/etc/texmf/tex/generic/config
+ install -d -m755 "$pkgdir"/etc/texmf/ttf2pk
+ install -d -m755 "$pkgdir"/etc/texmf/xdvi
+ install -d -m755 "$pkgdir"/etc/fonts/conf.avail
+ install -m644 "$srcdir"/09-texlive-fonts.conf "$pkgdir"/etc/fonts/conf.avail/
# move man files to /usr/share/man
for i in 1 5; do
- install -d -m755 $pkgdir/usr/share/man/man$i
- mv $pkgdir/usr/share/texmf/doc/man/man$i/*.$i $pkgdir/usr/share/man/man$i/
+ install -d -m755 "$pkgdir"/usr/share/man/man$i
+ mv "$pkgdir"/usr/share/texmf/doc/man/man$i/*.$i "$pkgdir"/usr/share/man/man$i/
done
# move info files to /usr/share/info
- install -d -m755 $pkgdir/usr/share/info
- mv $pkgdir/usr/share/texmf/doc/info/*.info $pkgdir/usr/share/info/
- rm -rf $pkgdir/usr/share/texmf/doc/{man,info}
+ install -d -m755 "$pkgdir"/usr/share/info
+ mv "$pkgdir"/usr/share/texmf/doc/info/*.info "$pkgdir"/usr/share/info/
+ rm -rf "$pkgdir"/usr/share/texmf/doc/{man,info}
# copy config files to $TEXMFCONFIG tree
- cp -a $pkgdir/usr/share/texmf/chktex/chktexrc \
- $pkgdir/etc/texmf/chktex/
- cp -a $pkgdir/usr/share/texmf/web2c/mktex.cnf \
- $pkgdir/etc/texmf/web2c/
- cp -a $pkgdir/usr/share/texmf/web2c/updmap.cfg \
- $pkgdir/etc/texmf/web2c/
- cp -a $pkgdir/usr/share/texmf/web2c/fmtutil.cnf \
- $pkgdir/etc/texmf/web2c/
- cp -a $pkgdir/usr/share/texmf/dvips/config/config.ps \
- $pkgdir/etc/texmf/dvips/config/
- cp -a $pkgdir/usr/share/texmf/dvipdfm/config/config \
- $pkgdir/etc/texmf/dvipdfm/config/
- cp -a $pkgdir/usr/share/texmf/dvipdfmx/dvipdfmx.cfg \
- $pkgdir/etc/texmf/dvipdfmx/
- cp -a $pkgdir/usr/share/texmf/tex/generic/config/pdftexconfig.tex \
- $pkgdir/etc/texmf/tex/generic/config/
- cp -a $pkgdir/usr/share/texmf/tex/generic/config/language.dat \
- $pkgdir/etc/texmf/tex/generic/config/
- cp -a $pkgdir/usr/share/texmf/tex/generic/config/language.def \
- $pkgdir/etc/texmf/tex/generic/config/
- cp -a $pkgdir/usr/share/texmf/ttf2pk/ttf2pk.cfg \
- $pkgdir/etc/texmf/ttf2pk/
- cp -a $pkgdir/usr/share/texmf/xdvi/XDvi \
- $pkgdir/etc/texmf/xdvi/
+ cp -a "$pkgdir"/usr/share/texmf/chktex/chktexrc \
+ "$pkgdir"/etc/texmf/chktex/
+ cp -a "$pkgdir"/usr/share/texmf/web2c/mktex.cnf \
+ "$pkgdir"/etc/texmf/web2c/
+ cp -a "$pkgdir"/usr/share/texmf/web2c/updmap.cfg \
+ "$pkgdir"/etc/texmf/web2c/
+ cp -a "$pkgdir"/usr/share/texmf/web2c/fmtutil.cnf \
+ "$pkgdir"/etc/texmf/web2c/
+ cp -a "$pkgdir"/usr/share/texmf/dvips/config/config.ps \
+ "$pkgdir"/etc/texmf/dvips/config/
+ cp -a "$pkgdir"/usr/share/texmf/dvipdfm/config/config \
+ "$pkgdir"/etc/texmf/dvipdfm/config/
+ cp -a "$pkgdir"/usr/share/texmf/dvipdfmx/dvipdfmx.cfg \
+ "$pkgdir"/etc/texmf/dvipdfmx/
+ cp -a "$pkgdir"/usr/share/texmf/tex/generic/config/pdftexconfig.tex \
+ "$pkgdir"/etc/texmf/tex/generic/config/
+ cp -a "$pkgdir"/usr/share/texmf/tex/generic/config/language.dat \
+ "$pkgdir"/etc/texmf/tex/generic/config/
+ cp -a "$pkgdir"/usr/share/texmf/tex/generic/config/language.def \
+ "$pkgdir"/etc/texmf/tex/generic/config/
+ cp -a "$pkgdir"/usr/share/texmf/ttf2pk/ttf2pk.cfg \
+ "$pkgdir"/etc/texmf/ttf2pk/
+ cp -a "$pkgdir"/usr/share/texmf/xdvi/XDvi \
+ "$pkgdir"/etc/texmf/xdvi/
# remove TL specific warnings in the language.{dat,def} files:
- sed -i -e '/DO NOT EDIT/,+3 d' $pkgdir/etc/texmf/tex/generic/config/language.*
+ sed -i -e '/DO NOT EDIT/,+3 d' "$pkgdir"/etc/texmf/tex/generic/config/language.*
# clean updmap.cfg
- sed -i '/^\(Map\|MixedMap\)/d' $pkgdir/etc/texmf/web2c/updmap.cfg
- sed -i '/^#! \(Map\|MixedMap\)/d' $pkgdir/etc/texmf/web2c/updmap.cfg
+ sed -i '/^\(Map\|MixedMap\)/d' "$pkgdir"/etc/texmf/web2c/updmap.cfg
+ sed -i '/^#! \(Map\|MixedMap\)/d' "$pkgdir"/etc/texmf/web2c/updmap.cfg
# Don't list formats which need removed packages to work.
- sed -i '/csplain\|mex\|jadetex/d' $pkgdir/etc/texmf/web2c/fmtutil.cnf
+ sed -i '/csplain\|mex\|jadetex/d' "$pkgdir"/etc/texmf/web2c/fmtutil.cnf
#############################################################
### install
@@ -219,34 +220,34 @@ package() {
echo "--> Proceeding with make install ..."
echo "-------------------------------------------------------"
cd Work
- make DESTDIR=${pkgdir} texmf=$pkgdir/usr/share/texmf install
- rm -rf ${pkgdir}/usr/{texmf,share/texmf-dist}
+ make DESTDIR="${pkgdir}" texmf="$pkgdir"/usr/share/texmf install
+ rm -rf "${pkgdir}"/usr/{texmf,share/texmf-dist}
# replace upstream texmf.cnf with ours
- rm -f $pkgdir/usr/share/texmf/web2c/texmf.cnf
- install -m644 $srcdir/texmf.cnf $pkgdir/etc/texmf/web2c/texmf.cnf
+ rm -f "$pkgdir"/usr/share/texmf/web2c/texmf.cnf
+ install -m644 "$srcdir"/texmf.cnf "$pkgdir"/etc/texmf/web2c/texmf.cnf
# since the location of texmf.cnf is hard-wired to be under /usr/share/texmf/web2c
# we make a symlink from /etc/texmf/web2c/texmf.cnf to the latter
- ln -sf /etc/texmf/web2c/texmf.cnf $pkgdir/usr/share/texmf/web2c/texmf.cnf
+ ln -sf /etc/texmf/web2c/texmf.cnf "$pkgdir"/usr/share/texmf/web2c/texmf.cnf
# fix location of TEXMFCACHE for luatools
- sed -i 's#texlive2010#texlive#' $pkgdir/usr/share/texmf/web2c/texmfcnf.lua
+ sed -i 's#texlive2010#texlive#' "$pkgdir"/usr/share/texmf/web2c/texmfcnf.lua
## remove aleph from fmtutil.cnf
- sed -i -e '/aleph/d' $pkgdir/usr/share/texmf/web2c/fmtutil.cnf
+ sed -i -e '/aleph/d' "$pkgdir"/usr/share/texmf/web2c/fmtutil.cnf
## install luatex binary
- cd $srcdir/luatex/build/texk/web2c
- ./libtool --mode=install install -m755 luatex $pkgdir/usr/bin/
- cd $pkgdir/usr/bin
+ #install -m755 "$srcdir"/luatex-beta-${_luatex_ver}/build/texk/web2c/luatex "$pkgdir"/usr/bin/
+ install -m755 "$srcdir"/luatex/build/texk/web2c/luatex "$pkgdir"/usr/bin/
+ cd "$pkgdir"/usr/bin
/bin/ln -s luatex texlua
/bin/ln -s luatex texluac
## install Perl libraries
- mkdir -p $pkgdir/usr/share/tlpkg/TeXLive
- install -m644 ${srcdir}/source/utils/biber/TeXLive/*.pm $pkgdir/usr/share/tlpkg/TeXLive
+ mkdir -p "$pkgdir"/usr/share/tlpkg/TeXLive
+ install -m644 "${srcdir}"/source/utils/biber/TeXLive/*.pm "$pkgdir"/usr/share/tlpkg/TeXLive
# create symlinks for formats
echo "--> Create symlinks for TeX formats ..."
- LD_PRELOAD="${pkgdir}/usr/lib/libkpathsea.so.6" PATH="$PATH:${pkgdir}/usr/bin" texlinks -f $pkgdir/usr/share/texmf/web2c/fmtutil.cnf $pkgdir/usr/bin/
+ PATH="$PATH:${pkgdir}/usr/bin" texlinks -f "$pkgdir"/usr/share/texmf/web2c/fmtutil.cnf "$pkgdir"/usr/bin/
#############################################################
# remove dangling symlinks
_bibtexextra_scripts="
@@ -343,7 +344,7 @@ vpe"
${_pstricks_scripts} \
${_science_scripts} \
tlmgr; do
- rm -f $pkgdir/usr/bin/$s
+ rm -f "$pkgdir"/usr/bin/$s
done
###################################################################
}
diff --git a/libre/texlive-bin-libre/texlive.install b/libre/texlive-bin-libre/texlive.install
index 9307c536b..b85850123 100644
--- a/libre/texlive-bin-libre/texlive.install
+++ b/libre/texlive-bin-libre/texlive.install
@@ -1,3 +1,6 @@
+infodir=usr/share/info
+filelist=(dvipng.info dvips.info eplain.info epspdf.info fontname.info kpathsea.info latex2e-es.info latex2e.info latex2man.info mf2pt1.info tds.info texdraw.info web2c.info)
+
post_install() {
echo ">>> texlive: updating the filename database..."
usr/bin/mktexlsr
@@ -5,6 +8,11 @@ post_install() {
usr/bin/fmtutil-sys --all 1>/dev/null
echo " done."
echo " (logs are under /var/lib/texmf/web2c/<engine>/<formatname>.log)"
+
+ [[ -x usr/bin/install-info ]] || return 0
+ for file in "${filelist[@]}"; do
+ install-info "$infodir/$file.gz" "$infodir/dir" 2> /dev/null
+ done
}
post_upgrade() {
@@ -14,5 +22,16 @@ post_upgrade() {
usr/bin/fmtutil-sys --all 1>/dev/null
echo " done."
echo " (logs are under /var/lib/texmf/web2c/<engine>/<formatname>.log)"
+
+ [[ -x usr/bin/install-info ]] || return 0
+ for file in "${filelist[@]}"; do
+ install-info "$infodir/$file.gz" "$infodir/dir" 2> /dev/null
+ done
}
+pre_remove() {
+ [[ -x usr/bin/install-info ]] || return 0
+ for file in "${filelist[@]}"; do
+ install-info --delete "$infodir/$file.gz" "$infodir/dir" 2> /dev/null
+ done
+}
diff --git a/libre/thunderbird-libre/PKGBUILD b/libre/thunderbird-libre/PKGBUILD
index 6a517c112..8f51c47e3 100644
--- a/libre/thunderbird-libre/PKGBUILD
+++ b/libre/thunderbird-libre/PKGBUILD
@@ -1,16 +1,17 @@
-# $Id: PKGBUILD 145619 2011-12-24 12:00:02Z ibiru $
+# $Id: PKGBUILD 150412 2012-02-17 12:38:42Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Dale Blount <dale@archlinux.org>
# Contributor: Anders Bostrom <anders.bostrom@home.se>
pkgname=thunderbird-libre
-pkgver=9.0.1
+pkgver=10.0.2
pkgrel=1
pkgdesc="Standalone Mail/News reader"
arch=('i686' 'x86_64')
license=('MPL' 'GPL')
url="http://www.mozilla.org/thunderbird/"
depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'nss' 'sqlite3' 'startup-notification')
-makedepends=('unzip' 'zip' 'pkg-config' 'python2' 'wireless_tools' 'yasm' 'mesa')
+makedepends=('unzip' 'zip' 'pkg-config' 'python2' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13')
optdepends=('libcanberra: for sound support')
replaces=('thunderbird')
conflicts=('thunderbird')
@@ -21,17 +22,20 @@ source=(ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/sourc
thunderbird.desktop
thunderbird-install-dir.patch
channel-prefs.js
- vendor.js)
-md5sums=('a5904751dbd33074682b438b732fdbab'
+ vendor.js
+ libvpx.patch)
+md5sums=('624bef982d7ac610b1175737d9905150'
'ca98c2bf1017b33e19dae22fdcef2e73'
'af3e5b344d2edf1c7d61bb0a5a96de9a'
'aea906acf72c43dd82ead2fabcc1c6db'
'476ec205162340fb0679f522c9d31c3b'
- '5a53179d14ae9631b7afe5e4d0fc0b25')
+ '5a53179d14ae9631b7afe5e4d0fc0b25'
+ '5b2aaff7dfe7f1f94ad965905b20e782')
build() {
cd "$srcdir/comm-release"
patch -Np1 -i "$srcdir/thunderbird-install-dir.patch"
+ patch -Np1 -i "$srcdir/libvpx.patch"
cp "$srcdir/mozconfig" .mozconfig
diff --git a/libre/thunderbird-libre/libvpx.patch b/libre/thunderbird-libre/libvpx.patch
new file mode 100644
index 000000000..d0f9a0f4c
--- /dev/null
+++ b/libre/thunderbird-libre/libvpx.patch
@@ -0,0 +1,12 @@
+diff -Nur comm-release.orig/mozilla/configure.in comm-release/mozilla/configure.in
+--- comm-release.orig/mozilla/configure.in 2012-02-05 18:02:17.376830377 +0000
++++ comm-release/mozilla/configure.in 2012-02-05 18:03:25.246274275 +0000
+@@ -5629,7 +5629,7 @@
+ dnl v0.9.6 one to check for.
+ AC_TRY_COMPILE([
+ #include <vpx/vpx_decoder.h>
+- #if !defined(VPX_CODEC_USE_INPUT_PARTITION)
++ #if !defined(VPX_CODEC_USE_INPUT_FRAGMENTS)
+ #error "test failed."
+ #endif
+ ],
diff --git a/libre/virtualbox-libre/18-system-xorg.patch b/libre/virtualbox-libre/18-system-xorg.patch
deleted file mode 100644
index baca4bc5b..000000000
--- a/libre/virtualbox-libre/18-system-xorg.patch
+++ /dev/null
@@ -1,278 +0,0 @@
-Description: Build the X.Org driver only for the selected system X Server version.
-Author: Michael Meskes <meskes@debian.org>, Felix Geyer <debfx-pkg@fobos.de>
-
-diff --git a/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk b/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk
---- a/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk
-+++ b/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk
-@@ -40,8 +40,8 @@ LIBRARIES += \
- VBoxGuestR3LibShared
- ifndef VBOX_ONLY_TESTSUITE
- if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd)
-- LIBRARIES += \
-- VBoxGuestR3LibXFree86
-+# LIBRARIES += \
-+# VBoxGuestR3LibXFree86
- endif
- endif
- LIBRARIES.win.amd64 += VBoxGuestR3Lib-x86 VBoxGuestR3LibShared-x86
-diff --git a/src/VBox/Additions/common/crOpenGL/Makefile.kmk b/src/VBox/Additions/common/crOpenGL/Makefile.kmk
---- a/src/VBox/Additions/common/crOpenGL/Makefile.kmk
-+++ b/src/VBox/Additions/common/crOpenGL/Makefile.kmk
-@@ -63,16 +63,12 @@ VBoxOGL_TEMPLATE = VBOXCROGLR3GUESTDLL
- VBoxOGL_INCS = .
- if1of ($(KBUILD_TARGET), linux solaris freebsd)
- VBoxOGL_INCS += \
-- $(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \
-- $(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \
-- $(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \
-- $(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \
-- $(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \
-- $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \
-- $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \
-- $(VBOX_PATH_X11_ROOT)/1.3/xorg \
-+ /usr/include/x11 \
-+ /usr/include/xorg \
-+ /usr/include/pixman-1 \
- $(VBOX_MESA_INCS) \
-- $(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.13
-+ /usr/include/drm \
-+ /usr/include/libdrm
- VBoxOGL_DEFS += VBOX_NO_NATIVEGL
- endif
-
-diff --git a/src/VBox/Additions/x11/Makefile.kmk b/src/VBox/Additions/x11/Makefile.kmk
---- a/src/VBox/Additions/x11/Makefile.kmk
-+++ b/src/VBox/Additions/x11/Makefile.kmk
-@@ -17,6 +17,10 @@
- SUB_DEPTH = ../../../..
- include $(KBUILD_PATH)/subheader.kmk
-
-+ifn1of ($(XSERVER_VERSION), 13 14 15 16 17 18 19 110)
-+ XSERVER_VERSION := 17
-+endif
-+
- # Include sub-makefiles.
- if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
- include $(PATH_SUB_CURRENT)/VBoxClient/Makefile.kmk
-diff --git a/src/VBox/Additions/x11/vboxmouse/Makefile.kmk b/src/VBox/Additions/x11/vboxmouse/Makefile.kmk
---- a/src/VBox/Additions/x11/vboxmouse/Makefile.kmk
-+++ b/src/VBox/Additions/x11/vboxmouse/Makefile.kmk
-@@ -23,7 +23,6 @@ include $(KBUILD_PATH)/subheader.kmk
- # vboxmouse_drv
- #
- if1of ($(KBUILD_TARGET), linux)
-- SYSMODS += vboxmouse_drv
- vboxmouse_drv_TEMPLATE = VBOXGUESTR3XF86MOD
- vboxmouse_drv_DEFS.linux = linux
- vboxmouse_drv_DEFS.x86 += __i386__
-@@ -59,7 +58,6 @@ endif
- #
- # vboxmouse_drv_70
- #
--DLLS += vboxmouse_drv_70
- vboxmouse_drv_70_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxmouse_drv_70_DEFS = \
- XFree86Server IN_MODULE XFree86Module XFree86LOADER XINPUT XORG_7X IN_XF86_MODULE
-@@ -80,7 +78,6 @@ vboxmouse_drv_70_SOURCES = \
- #
- # vboxmouse_drv_71
- #
--DLLS += vboxmouse_drv_71
- vboxmouse_drv_71_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxmouse_drv_71_DEFS := $(vboxmouse_drv_70_DEFS)
- vboxmouse_drv_71_INCS := \
-@@ -97,7 +94,6 @@ vboxmouse_drv_71_SOURCES = \
- #
- # vboxmouse_drv_13
- #
--DLLS += vboxmouse_drv_13
- vboxmouse_drv_13_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxmouse_drv_13_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
- vboxmouse_drv_13_INCS := \
-@@ -112,7 +108,6 @@ vboxmouse_drv_13_SOURCES = \
- #
- # vboxmouse_drv_14
- #
--DLLS += vboxmouse_drv_14
- vboxmouse_drv_14_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxmouse_drv_14_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
- vboxmouse_drv_14_INCS := \
-@@ -126,7 +121,6 @@ endif
- #
- # vboxmouse_drv_15
- #
--DLLS += vboxmouse_drv_15
- vboxmouse_drv_15_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxmouse_drv_15_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
- vboxmouse_drv_15_INCS := \
-@@ -141,7 +135,6 @@ vboxmouse_drv_15_SOURCES = \
- #
- # vboxmouse_drv_16
- #
--DLLS += vboxmouse_drv_16
- vboxmouse_drv_16_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxmouse_drv_16_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
- vboxmouse_drv_16_INCS := \
-@@ -157,7 +150,6 @@ vboxmouse_drv_16_SOURCES = \
- #
- # vboxmouse_drv_17
- #
--DLLS += vboxmouse_drv_17
- vboxmouse_drv_17_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxmouse_drv_17_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
- ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local
-@@ -177,7 +169,6 @@ vboxmouse_drv_17_SOURCES = \
- #
- # vboxmouse_drv_18
- #
--DLLS += vboxmouse_drv_18
- vboxmouse_drv_18_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxmouse_drv_18_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
- ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local
-@@ -197,7 +188,6 @@ vboxmouse_drv_18_SOURCES = \
- #
- # vboxmouse_drv_19
- #
--DLLS += vboxmouse_drv_19
- vboxmouse_drv_19_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxmouse_drv_19_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
- ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local
-@@ -217,7 +207,6 @@ vboxmouse_drv_19_SOURCES = \
- #
- # vboxmouse_drv_110
- #
--DLLS += vboxmouse_drv_110
- vboxmouse_drv_110_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxmouse_drv_110_DEFS := $(vboxmouse_drv_70_DEFS) NO_ANSIC
- ## @todo replace $(VBOX_PATH_X11_ROOT)/xorg-server-1.6.0-local
-@@ -234,6 +224,14 @@ vboxmouse_drv_110_SOURCES = \
- vboxmouse_15.c
-
-
-+vboxmouse_drv_$(XSERVER_VERSION)_NAME := vboxmouse_drv
-+vboxmouse_drv_$(XSERVER_VERSION)_INCS := \
-+ /usr/include/x11 \
-+ /usr/include/xorg \
-+ /usr/include/pixman-1
-+DLLS += vboxmouse_drv_$(XSERVER_VERSION)
-+
-+
- # Check the undefined symbols in the X.Org modules against lists of allowed
- # symbols. Not very elegant, but it will catch problems early.
- ifdef VBOX_WITH_TESTCASES
-diff --git a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
---- a/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
-+++ b/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
-@@ -22,7 +22,6 @@ include $(KBUILD_PATH)/subheader.kmk
- # vboxvideo_drv
- #
- if1of ($(KBUILD_TARGET), linux)
-- SYSMODS += vboxvideo_drv
- endif # target linux
- vboxvideo_drv_TEMPLATE = VBOXGUESTR3XF86MOD
- vboxvideo_drv_DEFS.linux = linux
-@@ -89,7 +88,6 @@ endif # target linux
- # base keywords instead of using .solaris or .linux.
- # Also it is *important* to use := and not = when deriving a property.
- #
--DLLS += vboxvideo_drv_70
- vboxvideo_drv_70_TEMPLATE = VBOXGUESTR3XORGMOD
- if1of ($(KBUILD_TARGET), linux)
- vboxvideo_drv_70_CFLAGS += \
-@@ -112,7 +110,6 @@ vboxvideo_drv_70_SOURCES = $(vboxvideo_drv_SOURCES)
- #
- # vboxvideo_drv_71
- #
--DLLS += vboxvideo_drv_71
- vboxvideo_drv_71_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxvideo_drv_71_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
- vboxvideo_drv_71_DEFS := $(vboxvideo_drv_70_DEFS)
-@@ -127,7 +124,6 @@ vboxvideo_drv_71_SOURCES = $(vboxvideo_drv_SOURCES)
- #
- # vboxvideo_drv_13
- #
--DLLS += vboxvideo_drv_13
- vboxvideo_drv_13_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxvideo_drv_13_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
- vboxvideo_drv_13_DEFS := $(vboxvideo_drv_70_DEFS) VBOXVIDEO_13
-@@ -146,7 +142,6 @@ vboxvideo_drv_13_SOURCES = \
- #
- # vboxvideo_drv_14
- #
--DLLS += vboxvideo_drv_14
- vboxvideo_drv_14_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxvideo_drv_14_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
- vboxvideo_drv_14_DEFS := $(vboxvideo_drv_13_DEFS)
-@@ -165,7 +160,6 @@ vboxvideo_drv_14_SOURCES = $(vboxvideo_drv_13_SOURCES)
- #
- # vboxvideo_drv_15
- #
--DLLS += vboxvideo_drv_15
- vboxvideo_drv_15_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxvideo_drv_15_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
- vboxvideo_drv_15_DEFS := $(vboxvideo_drv_13_DEFS) NO_ANSIC PCIACCESS \
-@@ -192,7 +186,6 @@ endif
- #
- # vboxvideo_drv_16
- #
--DLLS += vboxvideo_drv_16
- vboxvideo_drv_16_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxvideo_drv_16_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
- vboxvideo_drv_16_DEFS := $(vboxvideo_drv_15_DEFS)
-@@ -212,7 +205,6 @@ vboxvideo_drv_16_SOURCES := $(vboxvideo_drv_15_SOURCES)
- #
- # vboxvideo_drv_17
- #
--DLLS += vboxvideo_drv_17
- vboxvideo_drv_17_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxvideo_drv_17_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
- vboxvideo_drv_17_DEFS := $(vboxvideo_drv_15_DEFS)
-@@ -239,7 +231,6 @@ vboxvideo_drv_17_SOURCES := $(vboxvideo_drv_15_SOURCES)
- #
- # vboxvideo_drv_18
- #
--DLLS += vboxvideo_drv_18
- vboxvideo_drv_18_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxvideo_drv_18_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
- vboxvideo_drv_18_DEFS := $(vboxvideo_drv_15_DEFS)
-@@ -266,7 +257,6 @@ vboxvideo_drv_18_SOURCES := $(vboxvideo_drv_15_SOURCES)
- #
- # vboxvideo_drv_19
- #
--DLLS += vboxvideo_drv_19
- vboxvideo_drv_19_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxvideo_drv_19_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
- vboxvideo_drv_19_DEFS := $(vboxvideo_drv_15_DEFS)
-@@ -293,7 +282,6 @@ vboxvideo_drv_19_SOURCES := $(vboxvideo_drv_15_SOURCES)
- #
- # vboxvideo_drv_110
- #
--DLLS += vboxvideo_drv_110
- vboxvideo_drv_110_TEMPLATE = VBOXGUESTR3XORGMOD
- vboxvideo_drv_110_CFLAGS := $(vboxvideo_drv_70_CFLAGS)
- vboxvideo_drv_110_DEFS := $(vboxvideo_drv_15_DEFS)
-@@ -317,6 +306,23 @@ vboxvideo_drv_110_INCS = \
- vboxvideo_drv_110_SOURCES := $(vboxvideo_drv_15_SOURCES)
-
-
-+vboxvideo_drv_$(XSERVER_VERSION)_NAME := vboxvideo_drv
-+vboxvideo_drv_$(XSERVER_VERSION)_INCS := \
-+ /usr/include/xorg \
-+ /usr/include/x11 \
-+ /usr/include/pixman-1 \
-+ /usr/include/X11/dri \
-+ /usr/include/drm \
-+ /usr/include/libdrm
-+vboxvideo_drv_$(XSERVER_VERSION)_INCS += $(PATH_ROOT)/src/VBox/Runtime/include
-+DLLS += vboxvideo_drv_$(XSERVER_VERSION)
-+
-+# required for lenny backports
-+ifeq ($(XSERVER_VERSION),14)
-+ vboxvideo_drv_$(XSERVER_VERSION)_INCS += $(VBOX_PATH_X11_XORG_1_4)/xorg
-+endif
-+
-+
- # Check the undefined symbols in the X.Org modules against lists of allowed
- # symbols. Not very elegant, but it will catch problems early.
- ifdef VBOX_WITH_TESTCASES
-
diff --git a/libre/virtualbox-libre/60-vboxguest.rules b/libre/virtualbox-libre/60-vboxguest.rules
deleted file mode 100644
index d64575709..000000000
--- a/libre/virtualbox-libre/60-vboxguest.rules
+++ /dev/null
@@ -1,3 +0,0 @@
-ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
-ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
-
diff --git a/libre/virtualbox-libre/PKGBUILD b/libre/virtualbox-libre/PKGBUILD
index 45b870e64..edf35ff62 100644
--- a/libre/virtualbox-libre/PKGBUILD
+++ b/libre/virtualbox-libre/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 56698 2011-10-10 18:23:45Z ibiru $
+# $Id: PKGBUILD 63763 2012-02-05 12:13:00Z ibiru $
# Maintainer: Nicolas Reynolds <fauno@kiwwwi.com.ar>
# Changes:
# * Adapt to linux-libre
@@ -9,20 +9,28 @@
#Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgbase=virtualbox-libre
pkgname=('virtualbox-libre' 'virtualbox-parabola-additions' 'virtualbox-sdk' 'virtualbox-source')
-pkgver=4.1.4
-pkgrel=3
+pkgver=4.1.8
+pkgrel=2
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL' 'custom')
makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libxcursor' 'qt' 'libidl2' 'sdl_ttf' 'alsa-lib' 'libpulse' 'libxtst'
'xalan-c' 'sdl' 'libxmu' 'curl' 'python2' 'linux-libre-headers' 'mesa' 'libxrandr' 'libxinerama' 'libvncserver' 'openjdk6' 'gsoap' 'vde2')
+#'xorg-server-devel' 'xf86driproto' 'libxcomposite')
[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
- virtualbox-4-makeself-check.patch virtualbox-4-mkisofs-check.patch
10-vboxdrv.rules vboxdrv-reference.patch LocalConfig.kmk vboxbuild
change_default_driver_dir.patch vbox-service.conf vbox-service.rc)
+md5sums=('2092bba46baa62fab5520d67dee2ece8'
+ '5f85710e0b8606de967716ded7b2d351'
+ '6ab2455c391d8cc005e2f4461ae26a3b'
+ '78ffa67ff131680f1d2b6f06d4325c5b'
+ '67688bff176d3c6fac5664dc282fea52'
+ '97e193f050574dd272a38e5ee5ebe62b'
+ '3c08ad30b89add47d3f45121200a5360'
+ 'e7416331d0bc331f3b5aae3e5d104642')
-_extramodules=extramodules-3.1-LIBRE
+_extramodules=extramodules-3.2-LIBRE
_kernver="$(cat /lib/modules/${_extramodules}/version)"
build() {
@@ -46,17 +54,16 @@ build() {
package_virtualbox-libre() {
pkgdesc="Powerful x86 virtualization for enterprise as well as home use"
- depends=('virtualbox-modules' 'libxml2' 'libxcursor' 'libidl2' 'libxinerama' 'sdl' 'libxmu' 'curl' 'libvncserver' 'libpng')
+ depends=('virtualbox-modules' 'libxml2' 'libxcursor' 'libxinerama' 'sdl' 'libxmu' 'curl' 'libvncserver' 'libpng')
optdepends=('qt: for VirtualBox GUI'
'vde2: Virtual Distributed Ethernet support'
'virtualbox-sdk: developer kit'
'virtualbox-source: host kernel source modules for non-stock kernels')
- replaces=('virtualbox')
- conflicts=('virtualbox')
- provides=("virtualbox=$pkgver")
- replaces=('virtualbox-ose')
- conflicts=('virtualbox-ose')
+ backup=('etc/vbox/vbox.cfg')
+ replaces=('virtualbox' 'virtualbox-ose')
+ conflicts=('virtualbox' 'virtualbox-ose')
+ provides=("virtualbox=$pkgver")
install=virtualbox.install
source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
@@ -117,7 +124,9 @@ package_virtualbox-libre() {
package_virtualbox-source() {
pkgdesc="VirtualBox kernel modules source"
- depends=(linux-libre-headers gcc make)
+ depends=(gcc make)
+ provides=(virtualbox-modules)
+ optdepends=('linux-libre-headers')
install=virtualbox-source.install
source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
@@ -151,7 +160,7 @@ package_virtualbox-sdk() {
package_virtualbox-parabola-additions(){
pkgdesc="Additions only for Parabola guests (userspace tools)"
- depends=("virtualbox-parabola-modules=$pkgver" 'gcc-libs' 'libxmu' 'xorg-xrandr')
+ depends=("virtualbox-parabola-modules=$pkgver" 'gcc-libs' 'libxmu' 'xorg-xrandr' 'libxfixes')
replaces=('virtualbox-guest-additions' 'virtualbox-archlinux-additions')
conflicts=('virtualbox-guest-additions' 'virtualbox-archlinux-additions')
provides=("virtualbox-archlinux-additions=${pkgver}")
@@ -181,23 +190,3 @@ package_virtualbox-parabola-additions(){
# install sample config
install -D -m644 "${srcdir}/vbox-service.conf" "${pkgdir}/etc/conf.d/vbox-service"
}
-md5sums=('dc6e6801b3823332b6ca2e9915221aae'
- 'bc048d1e58d84ece4a186199ee48d4c8'
- '5f85710e0b8606de967716ded7b2d351'
- 'cc3f278bc273011aa95277500a76f677'
- '78ffa67ff131680f1d2b6f06d4325c5b'
- 'a82d698e7868315cdf876cfb02fd2268'
- '97e193f050574dd272a38e5ee5ebe62b'
- '3c08ad30b89add47d3f45121200a5360'
- '778d865e56e31cc592fbfa257fdcfce7')
-
-md5sums=('dc6e6801b3823332b6ca2e9915221aae'
- 'a9f22ccaacb207e0e1c5450fede82d06'
- 'b7cbcf89a30c712fed4435dea28d1703'
- '5f85710e0b8606de967716ded7b2d351'
- 'cc3f278bc273011aa95277500a76f677'
- '78ffa67ff131680f1d2b6f06d4325c5b'
- 'a82d698e7868315cdf876cfb02fd2268'
- '97e193f050574dd272a38e5ee5ebe62b'
- '3c08ad30b89add47d3f45121200a5360'
- '778d865e56e31cc592fbfa257fdcfce7')
diff --git a/libre/virtualbox-libre/vbox-service.rc b/libre/virtualbox-libre/vbox-service.rc
index c1af2134d..6f1b8d892 100644
--- a/libre/virtualbox-libre/vbox-service.rc
+++ b/libre/virtualbox-libre/vbox-service.rc
@@ -11,13 +11,13 @@ case "$1" in
start)
stat_busy "Starting $name service"
[[ -z "$PID" ]] && ${name} $VBOX_SERVICE_OPTION &>/dev/null \
- && { add_daemon $name; stat_done; } \
+ && { add_daemon vbox-service; stat_done; } \
|| { stat_fail; exit 1; }
;;
stop)
stat_busy "Stopping $name service"
[[ -n "$PID" ]] && kill $PID &>/dev/null \
- && { rm_daemon $name; stat_done; } \
+ && { rm_daemon vbox-service; stat_done; } \
|| { stat_fail; exit 1; }
;;
restart)
diff --git a/libre/virtualbox-libre/vboxbuild b/libre/virtualbox-libre/vboxbuild
index cfc3c0a66..e6fb94edd 100644
--- a/libre/virtualbox-libre/vboxbuild
+++ b/libre/virtualbox-libre/vboxbuild
@@ -32,11 +32,11 @@ fi
for kdir in /lib/modules/[2-3]*; do
if [[ ! -d $kdir/kernel ]]; then
# found a stale kernel
- mods=("$kdir/misc/vbox"{drv,netadp,netflt,pci}.ko*)
+ mods=("$kdir/extramodules"{drv,netadp,netflt,pci}.ko*)
if (( ${#mods[@]} )); then
stat_busy "Removing all old VirtualBox kernel modules"
if rm -f "${mods[@]}" &&
- rmdir -p --ignore-fail-on-non-empty "$p/misc/" 2>/dev/null; then
+ rmdir -p --ignore-fail-on-non-empty "$kdir/extramodules" 2>/dev/null; then
stat_done
else
stat_fail
@@ -52,6 +52,7 @@ fi
for kernver; do
export KERN_DIR=/lib/modules/$kernver/build
+ export MODULE_DIR=/lib/modules/$kernver/extramodules
if [[ ! -d $KERN_DIR ]]; then
printf "error: \`%s' does not appear to be a valid kernel build directory.\n" \
"$KERN_DIR"
@@ -59,15 +60,22 @@ for kernver; do
fi
stat_busy "Recompiling VirtualBox kernel modules ($kernver)"
- for build in BUILDVBOX{DRV,NETFLT,NETADP,PCI}; do
+ if ! $BUILDVBOXDRV \
+ --save-module-symvers /tmp/vboxdrv-Module.symvers \
+ --no-print-directory install >> $LOG 2>&1; then
+ echo "Look at $LOG to find out what went wrong"
+ stat_fail
+ fi
+ for build in BUILDVBOX{NETFLT,NETADP,PCI}; do
if ! ${!build} \
- --save-module-symvers /tmp/vboxdrv-Module.symvers \
+ --use-module-symvers /tmp/vboxdrv-Module.symvers \
--no-print-directory install >> $LOG 2>&1; then
echo "Look at $LOG to find out what went wrong"
stat_fail
- continue
fi
done
+ gzip -f9 "$MODULE_DIR"/*.ko
+ depmod "$kernver"
stat_done
done
diff --git a/libre/virtualbox-libre/vboxdrv-reference.patch b/libre/virtualbox-libre/vboxdrv-reference.patch
index c310dbc8d..710e2e511 100644
--- a/libre/virtualbox-libre/vboxdrv-reference.patch
+++ b/libre/virtualbox-libre/vboxdrv-reference.patch
@@ -1,45 +1,57 @@
-diff -Nur VirtualBox-4.1.0_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp VirtualBox-4.1.0_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp
---- VirtualBox-4.1.0_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp 2011-07-19 15:11:37.730121727 +0000
-+++ VirtualBox-4.1.0_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp 2011-07-19 19:02:15.658471139 +0000
-@@ -75,9 +75,8 @@
+diff -Nur VirtualBox-4.1.6_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp VirtualBox-4.1.6_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp
+--- VirtualBox-4.1.6_OSE.orig/src/VBox/Frontends/VirtualBox/src/main.cpp 2011-11-04 17:22:13.636083176 +0000
++++ VirtualBox-4.1.6_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp 2011-11-04 17:48:58.915541368 +0000
+@@ -75,10 +75,9 @@
"The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or "
"there is a permission problem with /dev/vboxdrv. Please reinstall the kernel "
"module by executing<br/><br/>"
- " <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>"
-- "as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS "
-- "package first. This package keeps track of Linux kernel changes and "
-+ " <font color=blue>'/usr/bin/vboxbuild'</font><br/><br/>"
-+ "as root. This package keeps track of Linux kernel changes and"
- "recompiles the vboxdrv kernel module if necessary."
+- "as root. If it is available in your distribution, you should install the "
+- "DKMS package first. This package keeps track of Linux kernel changes and "
+- "recompiles the vboxdrv kernel module if necessary."
++ " <font color=blue>'pacman -S virtualbox-modules'</font><br/><br/>"
++ "as root. If you don't use our stock kernel, install virtualbox-source and"
++ "execute /usr/bin/vboxbuild ."
);
-@@ -92,7 +91,7 @@
+ QString g_QStrHintOtherWrongDriverVersion = QApplication::tr(
+@@ -90,11 +89,8 @@
+
+ QString g_QStrHintLinuxWrongDriverVersion = QApplication::tr(
"The VirtualBox kernel modules do not match this version of "
- "VirtualBox. The installation of VirtualBox was apparently not "
- "successful. Executing<br/><br/>"
+- "VirtualBox. The installation of VirtualBox was apparently not "
+- "successful. Executing<br/><br/>"
- " <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>"
+- "may correct this. Make sure that you do not mix the "
+- "OSE version and the PUEL version of VirtualBox."
++ "VirtualBox. Reload the modules or if you don't use our stock kernel execute<br/><br/> "
+ " <font color=blue>'/usr/bin/vboxbuild'</font><br/><br/>"
- "may correct this. Make sure that you do not mix the "
- "OSE version and the PUEL version of VirtualBox."
);
-diff -Nur VirtualBox-4.1.0_OSE.orig/src/VBox/Installer/linux/VBox.sh VirtualBox-4.1.0_OSE/src/VBox/Installer/linux/VBox.sh
---- VirtualBox-4.1.0_OSE.orig/src/VBox/Installer/linux/VBox.sh 2011-07-19 15:11:37.603453927 +0000
-+++ VirtualBox-4.1.0_OSE/src/VBox/Installer/linux/VBox.sh 2011-07-19 19:02:15.658471139 +0000
-@@ -34,7 +34,7 @@
+
+ QString g_QStrHintOtherNoDriver = QApplication::tr(
+diff -Nur VirtualBox-4.1.6_OSE.orig/src/VBox/Installer/linux/VBox.sh VirtualBox-4.1.6_OSE/src/VBox/Installer/linux/VBox.sh
+--- VirtualBox-4.1.6_OSE.orig/src/VBox/Installer/linux/VBox.sh 2011-11-04 17:22:13.549415814 +0000
++++ VirtualBox-4.1.6_OSE/src/VBox/Installer/linux/VBox.sh 2011-11-04 17:56:50.735874087 +0000
+@@ -32,17 +32,18 @@
+ cat << EOF
+ WARNING: The vboxdrv kernel module is not loaded. Either there is no module
available for the current kernel (`uname -r`) or it failed to
- load. Please recompile the kernel module and install it by
+- load. Please recompile the kernel module and install it by
++ load. Please reinstall the kernel module virtualbox-modules or
++ if you don't use our stock kernel compile the modules with
- sudo /etc/init.d/vboxdrv setup
+ sudo /usr/bin/vboxbuild
You will not be able to start VMs until this problem is fixed.
EOF
-@@ -42,7 +42,7 @@
+ elif [ ! -c /dev/vboxdrv ]; then
cat << EOF
- WARNING: The character device /dev/vboxdrv does not exist. Try
+-WARNING: The character device /dev/vboxdrv does not exist. Try
++WARNING: The character device /dev/vboxdrv does not exist. Try to load the module
- sudo /etc/init.d/vboxdrv restart
-+ sudo /usr/bin/vboxbuild
++ sudo modprobe vboxdrv
and if that is not successful, try to re-install the package.
diff --git a/libre/virtualbox-libre/virtualbox-4-makeself-check.patch b/libre/virtualbox-libre/virtualbox-4-makeself-check.patch
deleted file mode 100644
index 57862b41e..000000000
--- a/libre/virtualbox-libre/virtualbox-4-makeself-check.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- VirtualBox-4.0.0_OSE/configure
-+++ VirtualBox-4.0.0_OSE/configure
-@@ -2527,7 +2527,6 @@
- check_compiler_h
- [ "$BUILD_MACHINE" = "amd64" -a $WITH_VMMRAW -eq 1 ] && check_32bit
- # tools/common/makeself*
-- [ $OSE -ge 1 ] && check_makeself
- fi
-
- [ -n "$SETUP_WINE" ] && setup_wine
-
diff --git a/libre/virtualbox-libre/virtualbox-4-mkisofs-check.patch b/libre/virtualbox-libre/virtualbox-4-mkisofs-check.patch
deleted file mode 100644
index d43962148..000000000
--- a/libre/virtualbox-libre/virtualbox-4-mkisofs-check.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- VirtualBox-4.0.0_OSE/configure
-+++ VirtualBox-4.0.0_OSE/configure
-@@ -2499,7 +2499,6 @@
- # don't check for yasm for the time beeing as 0.40 and 0.50 both have known bugs
- # [ "$OS" != "darwin" ] && check_yasm
- [ "$OS" != "darwin" ] && check_xsltproc
--[ "$OS" != "darwin" ] && check_mkisofs
-
- # the libraries
- [ "$OS" != "darwin" ] && check_pthread
-
diff --git a/libre/virtualbox-libre/virtualbox-parabola-modules.install b/libre/virtualbox-libre/virtualbox-parabola-modules.install
deleted file mode 100644
index 75d28784a..000000000
--- a/libre/virtualbox-libre/virtualbox-parabola-modules.install
+++ /dev/null
@@ -1,25 +0,0 @@
-KERNEL_VERSION='3.0-LIBRE'
-
-post_install() {
- cat << EOM
-
-===> virtualbox-parabola-modules post-install message:
-===>
-===> You may want to load vboxguest, vboxsf and vboxvideo
-===>
-===> To load them automatically, add them
-===> to the MODULES array in /etc/rc.conf.
-
-EOM
-
- depmod -v $KERNEL_VERSION >/dev/null 2>&1
-}
-
-post_remove() {
- depmod -v $KERNEL_VERSION >/dev/null 2>&1
-}
-
-post_upgrade() {
- depmod -v $KERNEL_VERSION >/dev/null 2>&1
-}
-
diff --git a/libre/virtualbox-libre/virtualbox-source.install b/libre/virtualbox-libre/virtualbox-source.install
index 14537f23d..24d90b1c2 100644
--- a/libre/virtualbox-libre/virtualbox-source.install
+++ b/libre/virtualbox-libre/virtualbox-source.install
@@ -10,4 +10,3 @@ post_upgrade() {
===> To recompile the modules do /usr/bin/vboxbuild
EOF
}
-
diff --git a/libre/virtualbox-libre/virtualbox.install b/libre/virtualbox-libre/virtualbox.install
index b2d2e8858..29646e973 100644
--- a/libre/virtualbox-libre/virtualbox.install
+++ b/libre/virtualbox-libre/virtualbox.install
@@ -20,10 +20,10 @@ post_install() {
post_upgrade() {
getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
utils
- if [ "$(vercmp $2 4.1.4-3)" -lt 0 ]; then
+ if [ "$(vercmp $2 4.1.6-1)" -lt 0 ]; then
/bin/cat << EOF
-===> Starting with virtualbox version 4.1.4-3, kernel modules handling is done by virtualbox-modules.
-===> Use virtualbox-source package if you don't use our stock linux package.
+===> Starting with virtualbox version 4.1.6-1, kernel modules handling is done by virtualbox-modules.
+===> Use virtualbox-source package if you don't use our stock linux-libre package.
EOF
fi
}
diff --git a/libre/virtualbox-parabola-modules/60-vboxguest.rules b/libre/virtualbox-modules/60-vboxguest.rules
index 6285f7249..6285f7249 100644
--- a/libre/virtualbox-parabola-modules/60-vboxguest.rules
+++ b/libre/virtualbox-modules/60-vboxguest.rules
diff --git a/libre/virtualbox-parabola-modules/LocalConfig.kmk b/libre/virtualbox-modules/LocalConfig.kmk
index af79f90cd..af79f90cd 100644
--- a/libre/virtualbox-parabola-modules/LocalConfig.kmk
+++ b/libre/virtualbox-modules/LocalConfig.kmk
diff --git a/libre/virtualbox-parabola-modules/PKGBUILD b/libre/virtualbox-modules/PKGBUILD
index d077c092a..9359edfb2 100644
--- a/libre/virtualbox-parabola-modules/PKGBUILD
+++ b/libre/virtualbox-modules/PKGBUILD
@@ -1,29 +1,28 @@
-# $Id: PKGBUILD 57345 2011-10-26 09:57:11Z ibiru $
+# $Id: PKGBUILD 62846 2012-01-27 17:21:04Z ibiru $
#Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgbase=virtualbox-modules
pkgname=('virtualbox-modules' 'virtualbox-parabola-modules')
-pkgver=4.1.4
-pkgrel=3.1
+pkgver=4.1.8
+pkgrel=3
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')
-makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-headers' 'linux-libre')
+makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libpng' 'libidl2' 'xalan-c' 'sdl' 'linux-headers')
[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
LocalConfig.kmk 60-vboxguest.rules)
-md5sums=('dc6e6801b3823332b6ca2e9915221aae'
+md5sums=('2092bba46baa62fab5520d67dee2ece8'
'4c88bd122677a35f68abd76eb01b378b'
'ed1341881437455d9735875ddf455fbe')
-_extramodules=extramodules-3.1-LIBRE
+_extramodules=extramodules-3.2-LIBRE
+_kernver="$(cat /lib/modules/${_extramodules}/version || true)"
-build() {
- _kernver="$(cat /lib/modules/${_extramodules}/version)"
-
- export KERN_DIR=/lib/modules/${_kernver}/build
- export KERN_INCL=/usr/src/linux-${_kernver}/include/
+export KERN_DIR=/lib/modules/${_kernver}/build
+export KERN_INCL=/usr/src/linux-${_kernver}/include/
+build() {
cd "$srcdir/VirtualBox-${pkgver}_OSE"
cp "$srcdir/LocalConfig.kmk" .
@@ -52,7 +51,7 @@ package_virtualbox-parabola-modules(){
pkgdesc="Additions only for Parabola guests (kernel modules)"
license=('GPL')
install=virtualbox-parabola-modules.install
- depends=('linux>=3.1' 'linux<3.2')
+ depends=('linux>=3.2' 'linux<3.3')
replaces=('virtualbox-guest-modules' 'virtualbox-archlinux-modules')
conflicts=('virtualbox-guest-modules' 'virtualbox-archlinux-modules')
provides=("virtualbox-archlinux-modules=$pkgver")
@@ -78,7 +77,7 @@ package_virtualbox-modules(){
pkgdesc="Kernel modules for VirtualBox"
license=('GPL')
install=virtualbox-modules.install
- depends=('linux>=3.1' 'linux<3.2')
+ depends=('linux>=3.2' 'linux<3.3')
source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
diff --git a/libre/virtualbox-parabola-modules/virtualbox-modules.install b/libre/virtualbox-modules/virtualbox-modules.install
index b57135999..671c129d6 100644
--- a/libre/virtualbox-parabola-modules/virtualbox-modules.install
+++ b/libre/virtualbox-modules/virtualbox-modules.install
@@ -3,17 +3,17 @@ post_install() {
===> You must load vboxdrv module before starting VirtualBox:
===> # modprobe vboxdrv
EOF
- EXTRAMODULES='extramodules-3.1-LIBRE'
+ EXTRAMODULES='extramodules-3.2-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_upgrade() {
- EXTRAMODULES='extramodules-3.1-LIBRE'
+ EXTRAMODULES='extramodules-3.2-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
rmmod vboxdrv || echo 'In order to use the new version, reload all virtualbox modules manually.'
}
post_remove() {
- EXTRAMODULES='extramodules-3.1-LIBRE'
+ EXTRAMODULES='extramodules-3.2-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
diff --git a/libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install b/libre/virtualbox-modules/virtualbox-parabola-modules.install
index 8801d8c49..b542db1ca 100644
--- a/libre/virtualbox-parabola-modules/virtualbox-parabola-modules.install
+++ b/libre/virtualbox-modules/virtualbox-parabola-modules.install
@@ -2,16 +2,16 @@ post_install() {
cat << EOF
===> You may want to load vboxguest, vboxsf and vboxvideo
EOF
- EXTRAMODULES='extramodules-3.1-LIBRE'
+ EXTRAMODULES='extramodules-3.2-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_upgrade() {
- EXTRAMODULES='extramodules-3.1-LIBRE'
+ EXTRAMODULES='extramodules-3.2-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
post_remove() {
- EXTRAMODULES='extramodules-3.1-LIBRE'
+ EXTRAMODULES='extramodules-3.2-LIBRE'
depmod $(cat /lib/modules/$EXTRAMODULES/version)
}
diff --git a/libre/your-freedom/PKGBUILD b/libre/your-freedom/PKGBUILD
index 68fe8b673..9c60622fb 100644
--- a/libre/your-freedom/PKGBUILD
+++ b/libre/your-freedom/PKGBUILD
@@ -1,26 +1,26 @@
# Maintainer: Parabola Project <dev@list.parabolagnulinux.org>
pkgname=your-freedom
pkgver=$(LC_ALL=C date -u +%Y%m%d)
-pkgrel=1
+pkgrel=2
pkgdesc="This package conflicts with every unfree package known to date to ensure your system is free."
arch=('any')
url="https://parabolagnulinux.org"
license=('GPL3')
groups=('base')
install=${pkgname}.install
-source=(https://projects.parabolagnulinux.org/blacklist.git/plain/blacklist.txt)
+source=(blacklist-${pkgver}.txt::https://projects.parabolagnulinux.org/blacklist.git/plain/blacklist.txt)
build() {
cd ${srcdir}
install -d ${pkgdir}/usr/share/doc/${pkgname}
- install -m644 blacklist.txt ${pkgdir}/usr/share/doc/${pkgname}/
+ install -m644 blacklist-${pkgver}.txt ${pkgdir}/usr/share/doc/${pkgname}/
}
package() {
- conflicts=($(cut -d: -f1,2 ${pkgdir}/usr/share/doc/${pkgname}/blacklist.txt | \
+ conflicts=($(cut -d: -f1,2 ${pkgdir}/usr/share/doc/${pkgname}/blacklist-${pkgver}.txt | \
sed "s/:$//" | \
grep -v ":" | \
sort -u
))
}
-md5sums=('980d8ab2f9886d648a700a7a909488d9')
+md5sums=('1a964c90247c9c9db5b0e44bd33143d6')
diff --git a/mozilla-testing/icecat/PKGBUILD b/mozilla-testing/icecat/PKGBUILD
index 4379ee60c..5946af42f 100644
--- a/mozilla-testing/icecat/PKGBUILD
+++ b/mozilla-testing/icecat/PKGBUILD
@@ -14,8 +14,8 @@
_pgo=false
_pkgname=icecat
-pkgver=9.0.1
-pkgrel=2
+pkgver=10.0
+pkgrel=1
if [ -z "$pkgname" ]; then pkgname=$_pkgname; fi
if $_pgo; then
@@ -69,7 +69,8 @@ source=(ftp://ftp.gnu.org/gnu/gnuzilla/${pkgver}/${pkgname}-${pkgver}.tar.xz
icecat-safe.desktop
libre.patch
firefox-install-dir.patch
- vendor.js)
+ vendor.js
+ libvpx.patch)
if [ "$_pkgname" != "$pkgname" ]; then
provides+=("$_pkgname")
@@ -83,6 +84,7 @@ build() {
cp "$srcdir/mozconfig" .mozconfig # Load our build config, disable SafeSearch
patch -Np1 -i "$srcdir/firefox-install-dir.patch" # install to /usr/lib/$pkgname
patch -Np1 -i "$srcdir/libre.patch" # Remove Google+Mozilla stuff
+ patch -Np1 -i "$srcdir/libvpx.patch" # patch from Arch
if $_pgo; then
cat "$srcdir/mozconfig.pgo" >> .mozconfig
@@ -136,11 +138,12 @@ package() {
ln -sf $_pkgname "$pkgdir/usr/lib/$_pkgname/$_pkgname-bin"
}
-md5sums=('a135581da2fd2845f268d7ca91054c06'
+md5sums=('5a30f5c5422fb7c9b1a2d253028df9d7'
'6f3a8fd65c416216a1b56b0c2d2d81aa'
'ac29b01c189f20abae2f3eef1618ffc0'
'e81ad01dbc16ba28bf92ba4b7c309ca7'
'd93fe402b87cd000a869e1fd6badc6c9'
- '07e65752416e615fe04ce586bc58f86b'
+ '145f453ef82f643711c10d97ec57a805'
'1e4bcac59e93d21fffa6a1d1ad235247'
- 'c382e35315047e4ca368d09383b39b8d')
+ 'c382e35315047e4ca368d09383b39b8d'
+ '5d418ecdbdb9f40597df6b978b0b5ee5')
diff --git a/mozilla-testing/icecat/libre.patch b/mozilla-testing/icecat/libre.patch
index c5f59d858..3dca93ee7 100644
--- a/mozilla-testing/icecat/libre.patch
+++ b/mozilla-testing/icecat/libre.patch
@@ -5,7 +5,7 @@
// Dictionary download preference
-pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/dictionaries/");
-+pref("browser.dictionaries.download.url", "http://gnuzilla.gnu.org/download/langpacks/9.0.1/");
++pref("browser.dictionaries.download.url", "http://gnuzilla.gnu.org/download/langpacks/10.0/");
// The minimum delay in seconds for the timer to fire.
// default=2 minutes
diff --git a/mozilla-testing/icecat/libvpx.patch b/mozilla-testing/icecat/libvpx.patch
new file mode 100644
index 000000000..f883b8e08
--- /dev/null
+++ b/mozilla-testing/icecat/libvpx.patch
@@ -0,0 +1,12 @@
+diff -Nur mozilla-release.orig/configure.in mozilla-release/configure.in
+--- mozilla-release.orig/configure.in 2012-02-05 16:01:35.722024142 +0000
++++ mozilla-release/configure.in 2012-02-05 16:03:34.871064547 +0000
+@@ -5629,7 +5629,7 @@
+ dnl v0.9.6 one to check for.
+ AC_TRY_COMPILE([
+ #include <vpx/vpx_decoder.h>
+- #if !defined(VPX_CODEC_USE_INPUT_PARTITION)
++ #if !defined(VPX_CODEC_USE_INPUT_FRAGMENTS)
+ #error "test failed."
+ #endif
+ ],
diff --git a/mozilla-testing/iceweasel-i18n/PKGBUILD b/mozilla-testing/iceweasel-i18n/PKGBUILD
index fd56f38bb..1194c170d 100644
--- a/mozilla-testing/iceweasel-i18n/PKGBUILD
+++ b/mozilla-testing/iceweasel-i18n/PKGBUILD
@@ -8,53 +8,40 @@
# - (optionally) edit PKGBUILD.in
# - Run 'make'. It will take care of everything else for you.
-_debname=iceweasel-l10n
-_debver=9.0+debian
-_debrel=1
+_debname=iceweasel
+_debver=10.0
+_debrel=2
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
-# echo $(ls src/iceweasel-l10n-*+debian/upstream/ | sed 's/\.xpi/ /')
-_langpacks=(af ak ar ast as be bg bn-BD bn-IN br bs ca cs cy da de dz-BT el en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa-IR fa fi fr fur-IT fy-NL ga-IE gd gl gu-IN he hi-IN hr hu hy-AM id is it ja ka kk kn ko ku lg lt lv mai mk ml mn mr nb-NO ne-NP nl nn-NO nso oc or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta-LK ta te th tr uk vi zh-CN zh-TW zu)
+_langpacks=(af ak ar as ast be bg bn-BD bn-IN br bs ca csb cs cy da de el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa fi fr fy-NL ga-IE gd gl gu-IN he hi-IN hr hu hy-AM id is it ja kk kn ko ku lg lt lv mai mk ml mr nb-NO nl nn-NO nso or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta ta-LK te th tr uk vi zh-CN zh-TW zu)
pkgbase=iceweasel-i18n
pkgname=($(for lang in ${_langpacks[@]}
do echo $pkgbase-$lang | tr A-Z a-z
done))
-_pkgver=9.0
+_pkgver=10.0
pkgver=${_debver}.${_debrel}
-pkgrel=2.1
+pkgrel=1
pkgdesc="Language packs for Debian Iceweasel."
arch=('any')
url="http://www.geticeweasel.org/"
license=('MPL')
depends=("iceweasel-libre>=$_pkgver")
-makedepends=("mozilla-devscripts" "xmlstarlet")
-source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.gz"
- "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.diff.gz"
- "${_debrepo}/`debfile ${_debname}`_${_debver}-${_debrel}.dsc")
-noextract=($(for lang in ${_langpacks[@]}
- do echo $lang.xpi
- done))
-
-dpkg-source() {
- # This will simulate dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
- cd "${_debname}-${_debver}"
- patch -p1 -i "${srcdir}/${_debname}_${_debver}-${_debrel}.diff"
- cd ..
-}
+source=()
+for lang in ${_langpacks[@]}
+do
+ source+=("${_debrepo}/`debfile ${_debname}`-l10n-$(echo $lang | tr A-Z a-z)_${_debver}-${_debrel}_all.deb")
+done
build() {
cd "${srcdir}"
- dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
- patch -Np0 -i ${_debname}_${_debver}-${_debrel}.diff
- cd ${_debname}-${_debver}
- # Fix broken files or avoid unnecessary dependencies.
- sed -i 's/$TARGET/$TARGET ; exit/' debian/build-script.sh
- # Langpacks initially state to support exactly one browser version,
- # Debian fixes this.
- sh debian/build-script.sh override_dh_auto_build 9 21
+ for f in *.deb
+ do
+ bsdtar xf $f
+ bsdtar xf data.tar.gz
+ done
}
_path="/usr/lib/iceweasel/extensions"
@@ -63,12 +50,93 @@ _path="/usr/lib/iceweasel/extensions"
for lang in ${_langpacks[@]}
do
eval "
-package_iceweasel-i18n-$(echo $lang | tr A-Z a-z) () {
- install -Dm644 '$srcdir/'*'/build/$lang.xpi' \"\$pkgdir\"'$_path/langpack-$lang@firefox.mozilla.org.xpi'
+package_iceweasel-i18n-$(echo $lang | tr A-Z a-z)() {
+ install -Dm644 \"\$srcdir$_path/langpack-$lang@iceweasel.mozilla.org.xpi\" \"\$pkgdir$_path/langpack-$lang@iceweasel.mozilla.org.xpi\"
}
"
done
-md5sums=('d0dc0653b9d7642e6d346b54fb1782ae'
- '493920a716fa40daeb5bd8cdfdbfe6a6'
- 'd03f6db3a354e9208500898738506e50')
+md5sums=('793a94a6e885aaf4d8e6f19d0eeb521d'
+ 'f7456e45c7f6ba5920d6a5ac7bc79e0f'
+ 'cb61542372b3ffc673dc0d7bd2daeb64'
+ 'd50d7eafe754a719ecfa34a633b8934a'
+ '69269ecb9349e43f2394c80d79395252'
+ '84697940978ce0cb435e3cef7c0a899b'
+ '2c3322b32d77ba0558bfaa90895c5159'
+ '9915009fecabb5e61bb607643d873725'
+ '474241d6e43c553c497818b871793935'
+ 'ebc92d813eefc7de71e1cce905c02905'
+ 'a6d5d79e133740d4f3c718c834192497'
+ '89e21920d652c3fc62778279ef7bd7e9'
+ '512202725a96e551838b50126b61b399'
+ 'd2585b6724f7ddbde640168955d5751a'
+ 'a69d9d2a1507160b0a50bf19f9bc724e'
+ 'b4fa0cd1d1f821be0a80df25c66ecb7f'
+ '56c8ccddd4d7bb8d33f3ca4da5f11e7f'
+ 'b57896dedb380d1c4c88016855d92def'
+ 'b676f044077fb0ba0d1f906da959bb2d'
+ 'fe121bd9cd1014ce665369a8f8514915'
+ '6f089b06fee2fa96546cf588882d307b'
+ 'b79affe803cf1d27194ebf34408de68b'
+ '8bd6ba3e617dc567b91fa9e05f87fa63'
+ 'ddba2e2e8784091fa251a256e0d979e3'
+ 'cb5450a6b86215c50d34168fb8999546'
+ '990dd3f87bb5872cb34d1f4aa596c1a7'
+ '4702e63ee804e9df0de0ad3997a73fe0'
+ '4e9e0dea57ddf7fd5a295798ebd4c8ff'
+ '8d157f7d71deee985414da0b2a31deb1'
+ 'afb03c513129c864762748ee7a43dfea'
+ '21b94e104f358af6fff96eddb25c0be5'
+ '8804dca0055bb40918bd2fa53cbf9f46'
+ '65cf3f2b62e74e5263ddd3c0aeae6efc'
+ '75b0601628af786086ade2d19f7a7dbd'
+ 'b41e48029475606210ba2386a516eea5'
+ '3a175250397bd9a12e111b0cae9b8bc9'
+ '8816aded7a74fa44d07d7aba1cc5cd24'
+ '781fc19740d15689c34124f6ce2d0c37'
+ 'a1310e77625e8c0b2fa79482776ae0b7'
+ '6eda69c80e7667f2f18e33542ae58ab9'
+ '99d03faaeb4c14b4b8e24a70b51c88e6'
+ '08a7afeefe6ce58e088ab630e5888de9'
+ 'afbfd8430dd79e0c2d8a232601ef590f'
+ '35a1d92021eb05e4aca0d16d4fbad6bb'
+ 'ce6c430d1fbae0d01431055f62aa2e17'
+ '015fce7a57e94736a0971893495c25a4'
+ 'ba5f035417146bcb83d78288871974c8'
+ 'b72a8bc535d8d8d75e2527fcc183c063'
+ '29c04ac90494ad91dfb084ef665c647a'
+ '10b5da824adf7c95868fb9bc8f0a1c13'
+ '30f846e358a33c75f1fa34ae1c8f6152'
+ 'b66f05ffe4f9ac891434758c65201692'
+ '7b3e9c60508ebb5ad38288fd4d271564'
+ '4a37b546faeba4db56c537859d246c9e'
+ '32e372e04d47347ca7915388d0c28856'
+ '5051b69589aefb0672afcfc53f13d5e6'
+ '951d765d9bb5fde4de7e9a0a7b2d86fa'
+ 'c7d4a0e0ea5de23101bec63cd0d16a79'
+ 'c9b5782c573c45ba5966f6731ab74919'
+ 'feb93641c8a5bdbc3d2c0a7a984301ec'
+ '3ee2f65ce0a81280bca493046de34e36'
+ '531aa070f985ad04f2956223baa3eadd'
+ 'e1d5ba35f740cb3cc53ac7ddfeecc53d'
+ '6d51c6c4196b8fd1a0ef28a26be9a7c8'
+ 'cc9a129a663b3e557f4b7af3a362f849'
+ '68647b56c8383a961d1a548755b8ed3e'
+ '2ff3b25510bc7dae3ace16275149604e'
+ 'd151521d572d4c34cdc0781f79397a28'
+ 'b4cbf748b686fed239c54747cf980114'
+ '144b7b1856cb5edbfe6bb1b46ed7ebce'
+ '6ddd3e1752225b85481ea9a6a92bc771'
+ 'b40300590d475e4732db173dcbacbacd'
+ 'c52ae8f37f21cb7fe8af84fc3d11f5be'
+ 'd565ad7989e912fcdc25ace8ebcc4d03'
+ 'f839187be23fd08dfd92f49a0e84a280'
+ '54a0a8e37c4f9b73635b1602f16d7deb'
+ '7abfb562c214f69123988274ff3278a1'
+ '2a0691d6282b55adb59fee29633598df'
+ '15ff4db6870007e5eebb7de314ed95ca'
+ '04ab9dbe13f6c09bfedeb248d77ad409'
+ '2f60fa5185dd337f69d2db7d0b290e22'
+ '0097341a10cb8cb47b37642b05effc04'
+ '7c3f6bcad90774d5f55d429ef61ccdba'
+ '4b2e077aa01023fde8a6611f89d69b5d')
diff --git a/mozilla-testing/iceweasel-libre/PKGBUILD b/mozilla-testing/iceweasel-libre/PKGBUILD
index 9ade92f8b..c630fbb35 100644
--- a/mozilla-testing/iceweasel-libre/PKGBUILD
+++ b/mozilla-testing/iceweasel-libre/PKGBUILD
@@ -12,15 +12,15 @@ _pgo=false
# We're getting this from Debian Sid
_debname=iceweasel
-_debver=9.0.1
-_debrel=1
+_debver=10.0
+_debrel=2
_debrepo=http://ftp.debian.org/debian/pool/main/
debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; }
_pkgname=iceweasel
pkgname=iceweasel-libre
pkgver=${_debver}.${_debrel}
-pkgrel=2.1
+pkgrel=1
if [ -z "$pkgname" ]; then pkgname=$_pkgname; fi
if $_pgo; then
@@ -30,40 +30,8 @@ fi
pkgdesc="A libre version of Debian Iceweasel, the browser based on Mozilla Firefox."
arch=('i586' 'i686' 'x86_64' 'mips64el')
license=('GPL2' 'MPL' 'LGPL')
-depends=(
- 'alsa-lib'
- 'dbus-glib'
- 'desktop-file-utils'
- 'gtk2'
- 'hicolor-icon-theme'
- 'hunspell'
- 'libevent'
- 'libnotify'
- 'libvpx'
- 'libxt'
- 'mime-types'
- 'mozilla-common'
- 'mozilla-searchplugins'
- 'nss>=3.13.1'
- 'sqlite3'
- 'startup-notification'
-)
-makedepends=(
- 'autoconf2.13'
- 'diffutils'
- 'imagemagick'
- 'libidl2'
- 'librsvg'
- 'libxslt'
- 'mesa'
- 'pkg-config'
- 'python2'
- 'quilt'
- 'unzip'
- 'wireless_tools'
- 'yasm'
- 'zip'
-)
+depends=('alsa-lib' 'dbus-glib' 'desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'hunspell' 'libevent' 'libnotify' 'libvpx' 'libxt' 'mime-types' 'mozilla-common' 'mozilla-searchplugins' 'nss>=3.13.1' 'sqlite3' 'startup-notification')
+makedepends=( 'autoconf2.13' 'diffutils' 'imagemagick' 'libidl2' 'librsvg' 'libxslt' 'mesa' 'pkg-config' 'python2' 'quilt' 'unzip' 'wireless_tools' 'yasm' 'zip')
if $_pgo; then
makedepends+=('xorg-server-xvfb')
options=(!ccache)
@@ -81,6 +49,16 @@ source=("${_debrepo}/`debfile ${_debname}`_${_debver}.orig.tar.bz2"
iceweasel-install-dir.patch
region.properties
vendor.js)
+md5sums=('bc86bf0d74649f9b3fcde6dfa914141e'
+ '131782b1ca9d24f40dff8f456558988d'
+ '659b08b8f14429dd1b7f9229b6fbd1b2'
+ 'eab149c1994ab14392e55af3abb08e80'
+ 'ac29b01c189f20abae2f3eef1618ffc0'
+ 'a485a2b5dc544a8a2bd40c985d2e5813'
+ '24fb7dba021ef94a351ebd3750cc0451'
+ 'e529742c0a425648087bc3ce537fe4c5'
+ 'f1c76e7e244257856a386ca2de69bdf0'
+ '0d053487907de4376d67d8f499c5502b')
if [ "$_pkgname" != "$pkgname" ]; then
provides+=("$_pkgname=$pkgver")
@@ -95,12 +73,18 @@ dpkg-source() {
mv mozilla-release "${_debname}-${_debver}"
mv debian "${_debname}-${_debver}"
cd "${_debname}-${_debver}"
+
+# Doesn't apply and seems unimportant
+ rm -v debian/patches/l10n/Place-google-and-gmail-before-yandex.patch || true
+
quilt push -a
find .pc -name .timestamp -delete # why isn't "--no-timestamps" doing this?
cd ..
}
build() {
+# Don't run this if we're using -e
+if [ $NOEXTRACT -eq 0 ]; then
msg2 "Applying Debian patches..."
cd "${srcdir}"
dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc
@@ -113,6 +97,9 @@ build() {
patch -Np1 -i "$srcdir/iceweasel-install-dir.patch" # install to /usr/lib/$_pkgname
patch -Np1 -i "$srcdir/xulrunner-copy-stub.patch" # small fix
patch -Np1 -i "$srcdir/libre.patch"
+fi
+
+ cd "$srcdir/mozilla-build"
cp -f ${srcdir}/region.properties ./browser/locales/en-US/chrome/browser-region/
if $_pgo; then
@@ -167,14 +154,3 @@ package() {
# Workaround for now: https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -sf $_pkgname "$pkgdir/usr/lib/$_pkgname/$_pkgname-bin"
}
-
-md5sums=('bd656a24d0ba3d4ca7b68aca8081a07d'
- '6cde9fe38df1434fdcc0f3a078b0238e'
- 'd9b5f2a893ad80da492aec8c9a7cbb7c'
- 'eab149c1994ab14392e55af3abb08e80'
- 'ac29b01c189f20abae2f3eef1618ffc0'
- 'a485a2b5dc544a8a2bd40c985d2e5813'
- '3c1a7d6984b47a0ab36a5d8e6672cb2b'
- 'e529742c0a425648087bc3ce537fe4c5'
- 'f1c76e7e244257856a386ca2de69bdf0'
- '0d053487907de4376d67d8f499c5502b')
diff --git a/mozilla-testing/iceweasel-libre/libre.patch b/mozilla-testing/iceweasel-libre/libre.patch
index b99174a16..935df297b 100644
--- a/mozilla-testing/iceweasel-libre/libre.patch
+++ b/mozilla-testing/iceweasel-libre/libre.patch
@@ -1,14 +1,15 @@
diff -urN iceweasel-9.0.1.orig/browser/app/profile/firefox.js iceweasel-9.0.1/browser/app/profile/firefox.js
---- iceweasel-9.0.1.orig/browser/app/profile/firefox.js 2011-12-21 09:07:20.000000000 +0000
-+++ iceweasel-9.0.1/browser/app/profile/firefox.js 2011-12-21 12:54:53.816066166 +0000
-@@ -57,10 +57,10 @@
+--- iceweasel-10.0.orig/browser/app/profile/firefox.js 2011-12-21 09:07:20.000000000 +0000
++++ iceweasel-10.0/browser/app/profile/firefox.js 2011-12-21 12:54:53.816066166 +0000
+@@ -64,10 +64,11 @@
// Preferences for AMO integration
pref("extensions.getAddons.cache.enabled", true);
pref("extensions.getAddons.maxResults", 15);
-pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/%LOCALE%/firefox/api/%API_VERSION%/search/guid:%IDS%?src=firefox&appOS=%OS%&appVersion=%VERSION%&tMain=%TIME_MAIN%&tFirstPaint=%TIME_FIRST_PAINT%&tSessionRestored=%TIME_SESSION_RESTORED%");
-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%");
--pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/firefox/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%?src=firefox");
+-pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/firefox/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%?src=firefox");
-pref("extensions.webservice.discoverURL", "https://services.addons.mozilla.org/%LOCALE%/firefox/discovery/pane/%VERSION%/%OS%");
++pref("extensions.getAddons.get.url", "");
+pref("extensions.getAddons.get.url", "http://www.gnu.org/s/gnuzilla/addons.html");
+pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/s/gnuzilla/addons.html");
+pref("extensions.getAddons.search.url", "http://www.gnu.org/s/gnuzilla/addons.html");
@@ -96,29 +97,6 @@ diff -urN iceweasel-9.0.1.orig/browser/locales/en-US/chrome/browser-region/regio
# increment this number when anything gets changed in the list below. This will
# cause Firefox to re-read these prefs and inject any new handlers into the
-diff -urN iceweasel-9.0.1.orig/browser/locales/generic/profile/bookmarks.html.in iceweasel-9.0.1/browser/locales/generic/profile/bookmarks.html.in
---- iceweasel-9.0.1.orig/browser/locales/generic/profile/bookmarks.html.in 2011-12-16 20:29:13.000000000 +0000
-+++ iceweasel-9.0.1/browser/locales/generic/profile/bookmarks.html.in 2011-12-21 10:24:32.872063067 +0000
-@@ -11,14 +11,13 @@
- <DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$FvPhC3">@bookmarks_toolbarfolder@</H3>
- <DD>@bookmarks_toolbarfolder_description@
- <DL><p>
-- <DT><A HREF="http://www.mozilla.com/@AB_CD@/firefox/central/" ID="rdf:#$GvPhC3">@getting_started@</A>
-- <DT><A HREF="http://fxfeeds.mozilla.com/@AB_CD@/firefox/livebookmarks/" FEEDURL="http://fxfeeds.mozilla.com/@AB_CD@/firefox/headlines.xml" ID="rdf:#$HvPhC3">@latest_headlines@</A>
-+ <DT><A HREF="http://www.connochaetos.org/">ConnochaetOS</A>
-+ <DT><A HREF="https://parabolagnulinux.org/">Parabola</A>
- </DL><p>
- <DT><H3 ID="rdf:#$ZvPhC3">@firefox_heading@</H3>
- <DL><p>
-- <DT><A HREF="http://www.mozilla.com/@AB_CD@/firefox/help/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$22iCK1">@firefox_help@</A>
-- <DT><A HREF="http://www.mozilla.com/@AB_CD@/firefox/customize/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$32iCK1">@firefox_customize@</A>
-- <DT><A HREF="http://www.mozilla.com/@AB_CD@/firefox/community/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$42iCK1">@firefox_community@</A>
-- <DT><A HREF="http://www.mozilla.com/@AB_CD@/about/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$52iCK1">@firefox_about@</A>
-+ <DT><A HREF="http://www.fsf.org/">Free Software Foundation</A>
-+ <DT><A HREF="http://libreplanet.org/">LibrePlanet</A>
-+ <DT><a href="http://www.gnu.org/software/gnuzilla/addons.html">Free addons</A>
- </DL><p>
- </DL><p>
diff -urN iceweasel-9.0.1.orig/build/pgo/blueprint/elements.html iceweasel-9.0.1/build/pgo/blueprint/elements.html
--- iceweasel-9.0.1.orig/build/pgo/blueprint/elements.html 2011-12-16 20:29:13.000000000 +0000
+++ iceweasel-9.0.1/build/pgo/blueprint/elements.html 2011-12-21 10:04:42.988062659 +0000
@@ -240,3 +218,24 @@ diff -urN iceweasel-9.0.1.orig/toolkit/locales/en-US/chrome/global-region/region
+plugindoc_label=gnuzilla.gnu.org
+plugindoc_url=http://www.gnu.org/s/gnuzilla/addons.html
+--- iceweasel-10.0.orig/browser/locales/generic/profile/bookmarks.html.in 2012-02-07 15:40:34.279657460 -0300
++++ iceweasel-10.0/browser/locales/generic/profile/bookmarks.html.in 2012-02-07 15:40:19.226324812 -0300
+@@ -11,13 +11,13 @@
+ <DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$FvPhC3">@bookmarks_toolbarfolder@</H3>
+ <DD>@bookmarks_toolbarfolder_description@
+ <DL><p>
+- <DT><A HREF="http://www.mozilla.com/@AB_CD@/firefox/central/" ID="rdf:#$GvPhC3">@getting_started@</A>
++ <DT><A HREF="http://www.connochaetos.org/">ConnochaetOS</A>
++ <DT><A HREF="https://parabolagnulinux.org/">Parabola</A>
+ </DL><p>
+ <DT><H3 ID="rdf:#$ZvPhC3">@firefox_heading@</H3>
+ <DL><p>
+- <DT><A HREF="http://www.mozilla.com/@AB_CD@/firefox/help/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$22iCK1">@firefox_help@</A>
+- <DT><A HREF="http://www.mozilla.com/@AB_CD@/firefox/customize/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$32iCK1">@firefox_customize@</A>
+- <DT><A HREF="http://www.mozilla.com/@AB_CD@/firefox/community/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$42iCK1">@firefox_community@</A>
+- <DT><A HREF="http://www.mozilla.com/@AB_CD@/about/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==" ID="rdf:#$52iCK1">@firefox_about@</A>
++ <DT><A HREF="http://www.fsf.org/">Free Software Foundation</A>
++ <DT><A HREF="http://libreplanet.org/">LibrePlanet</A>
++ <DT><a href="http://www.gnu.org/software/gnuzilla/addons.html">Free addons</A>
+ </DL><p>
+ </DL><p>
diff --git a/~aurelien/README b/~aurelien/README
new file mode 100644
index 000000000..7fe764c4c
--- /dev/null
+++ b/~aurelien/README
@@ -0,0 +1,5 @@
+Hello Parabolers of the World ;-)
+
+Have fun & be free!
+
+Thanks to Fauno!
diff --git a/~emulatorman/hunspell-gl/PKGBUILD b/~emulatorman/hunspell-gl/PKGBUILD
new file mode 100644
index 000000000..210fda175
--- /dev/null
+++ b/~emulatorman/hunspell-gl/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Adrián Chaves Fernández (Gallaecio) <adriyetichaves@gmail.com>, 2009-2010.
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgname=hunspell-gl
+pkgver=2.9b
+pkgrel=1
+pkgdesc="Galician spellchecker for Hunspell"
+arch=('any')
+url="http://trasno.net/"
+license=('GPL3')
+depends=('hunspell')
+source=("http://webs.uvigo.es/miguelsolla/gl_ES.zip")
+md5sums=('209fd16dd47e5cb334fa39563d23c79f')
+
+lang="gl"
+lang2="gl_ES"
+
+build() {
+
+ # Creation of necesary folders...
+ mkdir -p $pkgdir/usr/share/myspell
+ mkdir -p $pkgdir/usr/share/enchant
+
+ # Fix so Enchant can use dictionaries for Hunspell too.
+ ln -s /usr/share/myspell $pkgdir/usr/share/enchant/hunspell
+
+ # Actual installation...
+ install -D -m644 "$srcdir/$lang2.aff" "$pkgdir/usr/share/myspell/$lang.aff" || return 1
+ install -D -m644 "$srcdir/$lang2.dic" "$pkgdir/usr/share/myspell/$lang.dic" || return 1
+}
diff --git a/~emulatorman/hunspell-pt-br/PKGBUILD b/~emulatorman/hunspell-pt-br/PKGBUILD
new file mode 100644
index 000000000..c7124503b
--- /dev/null
+++ b/~emulatorman/hunspell-pt-br/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Daniel Felipe Reis Apolinario <dapolinario@gmail.com>
+# Contributor: Bernardo Barros <bernardobarros@NOSPAM.gmail.com>
+# Contributor: Robson R S Peixoto <robsonpeixoto@gmail.com>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgname=hunspell-pt-br
+pkgver=2.0.9
+pkgrel=1
+pkgdesc="Portuguese (Brazil) dictionary"
+arch=(any)
+url="http://www.broffice.org/verortografico/"
+license=('LGPL-2.1')
+optdepends=('hunspell: the spell checking libraries and apps')
+source=(http://www.broffice.org/files/Vero_pt_BR_V209AOC.oxt)
+
+build() {
+ cd ${srcdir}
+ install -D -m644 pt_BR.dic $pkgdir/usr/share/hunspell/pt_BR.dic
+ install -D -m644 pt_BR.aff $pkgdir/usr/share/hunspell/pt_BR.aff
+ mkdir -p $pkgdir/usr/share/myspell/dicts
+ cd $pkgdir/usr/share/myspell/dicts
+
+ ln -s /usr/share/hunspell/pt_BR.dic pt_BR.dic
+ ln -s /usr/share/hunspell/pt_BR.aff pt_BR.aff
+}
+
+md5sums=('47313490f1a21c87b6d5fb5655042e22')
diff --git a/~emulatorman/jitsi-stable/PKGBUILD b/~emulatorman/jitsi-stable/PKGBUILD
new file mode 100644
index 000000000..9cb7018a9
--- /dev/null
+++ b/~emulatorman/jitsi-stable/PKGBUILD
@@ -0,0 +1,65 @@
+# Contributor: Ananda Samaddar ananda@samaddar.co.uk
+# Contributor: Xavion <Xavion (dot) 0 (at) Gmail (dot) com>
+# Contributor: atommix aka Aleks Lifey <Aleks.Lifey@gmail.com>
+# Contributor: Keshav P R <(skodabenz) (aatt) (rocketmail) (ddoott) (ccoomm)>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+_pkgname=jitsi
+pkgname=$_pkgname-stable
+pkgver=1.0.beta1.3820
+pkgrel=1
+pkgdesc="An audio/video/chat communicator that supports protocols such as SIP and XMPP/Jabber"
+arch=('i686' 'x86_64')
+url="http://jitsi.org"
+license=('LGPL')
+depends=('openjdk6')
+makedepends=('apache-ant' 'openjdk6')
+provides=("$_pkgname=$pkver")
+conflicts=("$_pkgname")
+options=(!strip !emptydirs zipman !libtool docs)
+source=("http://download.jitsi.org/jitsi/src/jitsi-src-1.0-beta1-nightly.build.${pkgver##*.}.zip"
+ $_pkgname.{desktop,sh})
+md5sums=('a5675da30e2e5fd801d2457ddddba0f9'
+ '5923eeca35823f8ef1e416a9a6fc0fac'
+ '55fe144bbf19283e7ec5d7bd3228cf5b')
+sha256sums=('74d845b993cdd53856415a179ac72bbe9c6f5db37482874eab7be34490e7c0c2'
+ '770132b617d94ed468e9592b991ceac10eb3e03e7198b8f5f2f05918f7db4302'
+ '98027ddaa1ebfe948fa49f6e57ab0d2c866d5e7c37873e30638b86223a2a15e9')
+
+# uncomment to get the latest stable release; you have to adjust/skip checksums
+#source[0]=http://download.jitsi.org/jitsi/src/$(curl -Ss 'http://download.jitsi.org/jitsi/src/' | grep -om1 'jitsi-src[^"<]\+.zip' | head -1)
+#pkgver=$(sed -r 's/[^0-9]*([0-9.]+)(-(beta[0-9]+))?.*(.build.([0-9]+))\..*/\1.\3.\5/' <<<${source[0]})
+
+build() {
+ cd "$srcdir/$_pkgname"
+
+ # append the build revision to the jitsi version
+ sed -i "s/0\.build\.by\.SVN/build.${pkgver##*.}/" src/net/java/sip/communicator/impl/version/NightlyBuildID.java
+
+ . /etc/profile.d/apache-ant.sh
+ ant rebuild
+}
+
+package() {
+ cd "$srcdir/$_pkgname"
+
+ find lib/ lib/bundle/ -maxdepth 1 -type f \
+ -exec install -Dm644 {} "$pkgdir/usr/lib/$_pkgname/"{} \;
+ find lib/os-specific/linux/ -maxdepth 1 -type f \
+ -execdir install -Dm644 {} "$pkgdir/usr/lib/$_pkgname/lib/"{} \;
+
+ shopt -sq extglob
+ find lib/native/linux$(sed 's/_/-/g' <<<${CARCH/#*(i?86|x86)/})/ -maxdepth 1 -type f \
+ -execdir install -Dm644 {} "$pkgdir/usr/lib/$_pkgname/lib/native/"{} \;
+
+ find sc-bundles/{,os-specific/linux/} -maxdepth 1 -type f \
+ -execdir install -Dm644 {} "$pkgdir/usr/lib/$_pkgname/sc-bundles/"{} \;
+
+ install -Dm755 "$srcdir/$_pkgname.sh" "$pkgdir/usr/bin/$_pkgname"
+ install -Dm644 "$srcdir/$_pkgname.desktop" "$pkgdir/usr/share/applications/$_pkgname.desktop"
+
+ local _file
+ for _file in resources/install/debian/*.{svg,xpm}; do
+ install -Dm644 "$_file" "$pkgdir/usr/share/pixmaps/$_pkgname${_file/*sip-communicator/}"
+ done
+}
diff --git a/~emulatorman/jitsi-stable/jitsi.desktop b/~emulatorman/jitsi-stable/jitsi.desktop
new file mode 100644
index 000000000..f0a7b5436
--- /dev/null
+++ b/~emulatorman/jitsi-stable/jitsi.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Jitsi
+GenericName=jitsi
+Comment=VoIP and Instant Messaging client
+Icon=/usr/share/pixmaps/jitsi.svg
+Type=Application
+Categories=Network;
+Exec=/usr/bin/jitsi
+Terminal=false
diff --git a/~emulatorman/jitsi-stable/jitsi.sh b/~emulatorman/jitsi-stable/jitsi.sh
new file mode 100644
index 000000000..6ebd6131f
--- /dev/null
+++ b/~emulatorman/jitsi-stable/jitsi.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Additionnal JVM arguments
+CLIENTARGS=""
+[[ $(uname -m) =~ i?86 ]] && CLIENTARGS="-client -Xmx256m"
+
+SCDIR=/usr/lib/jitsi
+LIBPATH=$SCDIR/lib
+CLASSPATH=$LIBPATH/jdic_stub.jar:$LIBPATH/jdic-all.jar:$LIBPATH/felix.jar:$LIBPATH/bcprovider.jar:$SCDIR/sc-bundles/sc-launcher.jar:$SCDIR/sc-bundles/util.jar
+FELIX_CONFIG=$LIBPATH/felix.client.run.properties
+LOG_CONFIG=$LIBPATH/logging.properties
+COMMAND="$JAVA_HOME/bin/java $CLIENTARGS -classpath $CLASSPATH -Djna.library.path=$LIBPATH/native -Dfelix.config.properties=file:$FELIX_CONFIG -Djava.util.logging.config.file=$LOG_CONFIG net.java.sip.communicator.launcher.SIPCommunicator"
+
+# set add LIBPATH to LD_LIBRARY_PATH for any sc natives (e.g. jmf .so's)
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBPATH/native
+
+cd $SCDIR
+
+exec $COMMAND $*
diff --git a/~emulatorman/mednafen-wip/PKGBUILD b/~emulatorman/mednafen-wip/PKGBUILD
new file mode 100755
index 000000000..93893684e
--- /dev/null
+++ b/~emulatorman/mednafen-wip/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Hans-Kristian Arntzen <maister@archlinux.us>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: kagan <juanynie@mi.madritel.es>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgname=mednafen-wip
+pkgver=0.9.19
+pkgrel=1
+pkgdesc="A command-line multi-system gaming emulator, WIP version"
+url="http://mednafen.sourceforge.net/"
+license=(GPL)
+arch=('i686' 'x86_64')
+depends=('libcdio>=0.82' 'libsamplerate' 'libogg' 'libvorbis' 'sdl' 'sdl_net' 'libsndfile' 'zlib')
+makedepends=('pkgconfig' 'mesa')
+conflicts=('mednafen')
+provides=('mednafen')
+source=('http://forum.fobby.net/index.php?t=getfile&id=345&' 'build.patch')
+md5sums=('64be12196aa02828539af677b0e2a66c'
+ 'aac8957fa5274f00feed6a462fa8b7ad')
+
+build()
+{
+ cd $srcdir/mednafen
+ patch -p1 < $srcdir/build.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package()
+{
+ cd $srcdir/mednafen
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/~emulatorman/mednafen-wip/build.patch b/~emulatorman/mednafen-wip/build.patch
new file mode 100644
index 000000000..7985a19ed
--- /dev/null
+++ b/~emulatorman/mednafen-wip/build.patch
@@ -0,0 +1,31 @@
+diff --git a/src/file.cpp b/src/file.cpp
+index 57f4e13..ec1181c 100644
+--- a/src/file.cpp
++++ b/src/file.cpp
+@@ -293,7 +293,7 @@ bool MDFNFILE::MakeMemWrapAndClose(void *tz, int type)
+ goto doret;
+ }
+
+- while((howmany = gzread(tz, f_data + cur_size, cur_alloced - cur_size)) > 0)
++ while((howmany = gzread((gzFile)tz, f_data + cur_size, cur_alloced - cur_size)) > 0)
+ {
+ cur_size += howmany;
+ cur_alloced <<= 1;
+@@ -320,7 +320,7 @@ bool MDFNFILE::MakeMemWrapAndClose(void *tz, int type)
+ {
+ int gzerrnum = 0;
+ const char *gzerrstring;
+- if((gzerrstring = gzerror(tz, &gzerrnum)) && gzerrnum != Z_OK && gzerrnum != Z_STREAM_END)
++ if((gzerrstring = gzerror((gzFile)tz, &gzerrnum)) && gzerrnum != Z_OK && gzerrnum != Z_STREAM_END)
+ {
+ if(gzerrnum != Z_ERRNO)
+ {
+@@ -365,7 +365,7 @@ bool MDFNFILE::MakeMemWrapAndClose(void *tz, int type)
+ }
+ else if(type == MDFN_FILETYPE_GZIP)
+ {
+- gzclose(tz);
++ gzclose((gzFile)tz);
+ }
+ else if(type == MDFN_FILETYPE_ZIP)
+ {
diff --git a/~emulatorman/xonotic-data/PKGBUILD b/~emulatorman/xonotic-data/PKGBUILD
new file mode 100644
index 000000000..114954fc3
--- /dev/null
+++ b/~emulatorman/xonotic-data/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 35989 2010-12-25 03:22:46Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Alexander Suhoverhov <cy at ngs dot ru>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgname=xonotic-data
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="A free, fast-paced crossplatform first-person shooter (data files)"
+arch=('any')
+url="http://xonotic.org"
+license=('GPL')
+depends=()
+makedepends=('unzip')
+source=("http://dl.xonotic.org/xonotic-${pkgver}.zip")
+md5sums=('cdadb384ccf9cad926bb377312832c2f')
+
+build() {
+ cd $srcdir/Xonotic/source/darkplaces
+}
+
+package() {
+ cd $srcdir/Xonotic
+
+ # data
+ mkdir -p $pkgdir/usr/share/xonotic/
+ mv $srcdir/Xonotic/data $pkgdir/usr/share/xonotic/
+}
+# vim: ts=2:sw=2 et:
diff --git a/~emulatorman/xonotic/PKGBUILD b/~emulatorman/xonotic/PKGBUILD
new file mode 100644
index 000000000..236474d3d
--- /dev/null
+++ b/~emulatorman/xonotic/PKGBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Alexander Suhoverhov <cy at ngs dot ru>
+# Contributor (Parabola): André Silva <andre.paulista@adinet.com.uy>
+
+pkgname=xonotic
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="A free, fast-paced crossplatform first-person shooter"
+arch=('i686' 'x86_64')
+url="http://xonotic.org"
+license=('GPL')
+depends=('alsa-lib' 'curl' 'libjpeg>=8' 'libmodplug' 'libvorbis' 'libxpm' 'libxxf86dga' 'libxxf86vm' 'sdl' 'libpng>=1.4.0' 'xonotic-data')
+makedepends=('unzip' 'mesa')
+source=("http://dl.xonotic.org/xonotic-${pkgver}-source.zip"
+ "xonotic-glx.desktop"
+ "xonotic-sdl.desktop")
+md5sums=('7382f195386b8e51df65e57e6be413e5'
+ '914c7b9163e92b35f0ab57fdb1653ac5'
+ 'da7d812ff231c9332cd694b39757adda')
+
+build() {
+ # compile Xonotic-flavored fteqcc
+ #make -C Xonotic/source/fteqcc
+
+ # compile QuakeC game code
+ #( cd Xonotic/source/qcsrc/server && ../../fteqcc/fteqcc.bin -O3 -Ono-c -Ono-cs )
+ #( cd Xonotic/source/qcsrc/client && ../../fteqcc/fteqcc.bin -O3 -Ono-c -Ono-cs )
+ #( cd Xonotic/source/qcsrc/menu && ../../fteqcc/fteqcc.bin -O3 -Ono-c -Ono-cs )
+
+ # compile engine
+ make -C Xonotic/source/darkplaces CPUOPTIMIZATIONS="${CFLAGS}" DP_FS_BASEDIR=/usr/share/xonotic/ DP_LINK_TO_LIBJPEG=1 cl-release
+ make -C Xonotic/source/darkplaces CPUOPTIMIZATIONS="${CFLAGS}" DP_FS_BASEDIR=/usr/share/xonotic/ DP_LINK_TO_LIBJPEG=1 sdl-release
+ make -C Xonotic/source/darkplaces CPUOPTIMIZATIONS="${CFLAGS}" DP_FS_BASEDIR=/usr/share/xonotic/ DP_LINK_TO_LIBJPEG=1 sv-release
+}
+
+package() {
+ cd $srcdir/Xonotic
+
+ # binaries
+ install -Dm755 source/darkplaces/darkplaces-dedicated $pkgdir/usr/bin/xonotic-dedicated
+ install -Dm755 source/darkplaces/darkplaces-glx $pkgdir/usr/bin/xonotic-glx
+ install -Dm755 source/darkplaces/darkplaces-sdl $pkgdir/usr/bin/xonotic-sdl
+
+ # convenience files
+ mkdir -p $pkgdir/usr/share/applications
+ install -Dm644 $srcdir/*.desktop -t $pkgdir/usr/share/applications
+ install -Dm644 $srcdir/Xonotic/misc/logos/icons_png/xonotic_512.png $pkgdir/usr/share/pixmaps/xonotic.png
+}
+
+# vim: ts=2:sw=2 et:
diff --git a/~emulatorman/xonotic/xonotic-glx.desktop b/~emulatorman/xonotic/xonotic-glx.desktop
new file mode 100644
index 000000000..9f9e78cc1
--- /dev/null
+++ b/~emulatorman/xonotic/xonotic-glx.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Version=2.5
+Encoding=UTF-8
+Name=Xonotic (GLX)
+Comment=a free open-source first person shooter
+Icon=/usr/share/pixmaps/xonotic.png
+Exec=/usr/bin/xonotic-glx
+Terminal=false
+StartupNotify=false
+Categories=Game;
diff --git a/~emulatorman/xonotic/xonotic-sdl.desktop b/~emulatorman/xonotic/xonotic-sdl.desktop
new file mode 100644
index 000000000..32b37f2c5
--- /dev/null
+++ b/~emulatorman/xonotic/xonotic-sdl.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Version=2.5
+Encoding=UTF-8
+Name=Xonotic (SDL)
+Comment=a free open-source first person shooter
+Icon=/usr/share/pixmaps/xonotic.png
+Exec=/usr/bin/xonotic-sdl
+Terminal=false
+StartupNotify=false
+Categories=Game;
diff --git a/~fauno/notmuch/PKGBUILD b/~fauno/notmuch/PKGBUILD
index 9b02b0919..6e9c92ea4 100644
--- a/~fauno/notmuch/PKGBUILD
+++ b/~fauno/notmuch/PKGBUILD
@@ -3,7 +3,7 @@
# Maintainer: Richard Murri <admin@richardmurri.com>
pkgname=notmuch
-pkgver=0.11_rc3
+pkgver=0.11.1
pkgrel=1
pkgdesc="Notmuch is not much of an email program"
arch=(i686 x86_64 mips64el)
@@ -16,13 +16,12 @@ optdepends=('emacs: for using the emacs interface'
'python2: for using the python bindings'
'ruby: for using the ruby bindings'
'gnupg: for email encryption')
-_commit='310608f279150c735b9fde89f2d632f3b41abd6c'
-source=(#"http://notmuchmail.org/releases/${pkgname}-${pkgver}.tar.gz"
- "http://git.notmuchmail.org/git/notmuch/snapshot/${_commit}.tar.gz")
+source=("https://repo.parabolagnulinux.org/other/${pkgname}-${pkgver}-${pkgrel}-any.src.tar.xz"
+ # "http://notmuchmail.org/releases/${pkgname}-${pkgver}.tar.gz"
+ )
build() {
- #cd "$srcdir/${pkgname}-${pkgver}"
- cd $srcdir/${pkgname}-*
+ cd "$srcdir/${pkgname}-${pkgver}"
./configure --prefix=/usr --sysconfdir=/etc
make
@@ -33,14 +32,12 @@ build() {
}
check() {
- #cd "$srcdir/${pkgname}-${pkgver}"
- cd $srcdir/${pkgname}-*
+ cd "$srcdir/${pkgname}-${pkgver}"
make test
}
package(){
- #cd "$srcdir/${pkgname}-${pkgver}"
- cd $srcdir/${pkgname}-*
+ cd "$srcdir/${pkgname}-${pkgver}"
make DESTDIR="$pkgdir/" LIBDIR_IN_LDCONFIG=0 install
install -D notmuch $pkgdir/usr/sbin/notmuch
@@ -65,4 +62,7 @@ package(){
sed -i -e 's,/site_ruby,,g' Makefile
make prefix=${pkgdir}/usr install
}
-md5sums=('0383f55b5e800e626fd805919138c1b3')
+md5sums=('764abeb6e277c4c03bd64914c72d89a8'
+ '886b9fed1326c82aa223b0cfaf717522'
+ 'e36987a69d0c1e57570f5a854054a729')
+md5sums=('764abeb6e277c4c03bd64914c72d89a8')
diff --git a/~fauno/notmuch/SRCBUILD b/~fauno/notmuch/SRCBUILD
new file mode 100644
index 000000000..29a3a945f
--- /dev/null
+++ b/~fauno/notmuch/SRCBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Nicolás Reynolds <fauno@parabola.nu>
+
+pkgname=notmuch
+pkgver=0.11.1
+pkgrel=1
+pkgdesc="Notmuch is not much of an email program"
+arch=('any')
+url="http://notmuchmail.org/"
+license=('GPL3')
+makedepends=('git')
+
+_gitroot="git://notmuchmail.org/git/notmuch"
+_gitname="${pkgname}"
+
+build() {
+ cd "$srcdir"
+ msg 'Connecting to GIT server...'
+
+ if [ -d $_gitname ] ; then
+ cd $_gitname; git pull origin
+ msg 'The local files are updated.'
+ else
+ git clone $_gitroot $_gitname
+ fi
+
+ msg "GIT checkout done or server timeout"
+
+}
+
+package() {
+ cd ${pkgdir}
+ export PKGDEST=${SRCDEST}
+ export PKGEXT=.src.tar.xz
+
+ git clone ${srcdir}/${pkgname} ${pkgname}-${pkgver}
+
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/~mtjm/cups-usblp/PKGBUILD b/~mtjm/cups-usblp/PKGBUILD
new file mode 100644
index 000000000..5f1c62325
--- /dev/null
+++ b/~mtjm/cups-usblp/PKGBUILD
@@ -0,0 +1,147 @@
+# $Id: PKGBUILD 149429 2012-02-07 16:59:12Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+_pkgname="cups"
+pkgname="cups-usblp"
+pkgver=1.5.2
+pkgrel=1
+pkgdesc="The CUPS Printing System - daemon package with usblp backend"
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.cups.org/"
+depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'poppler>=0.12.3' 'dbus-core' 'hicolor-icon-theme')
+makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'poppler>=0.12.3'
+ 'xinetd' 'gzip' 'autoconf' 'php' 'dbus-core' 'avahi' 'hicolor-icon-theme')
+optdepends=('php: for included phpcups.so module'
+ 'ghostscript: for non-PostScript printers to print with CUPS to convert PostScript to raster images'
+ 'foomatic-db: drivers use Ghostscript to convert PostScript to a printable form directly'
+ 'foomatic-db-engine: drivers use Ghostscript to convert PostScript to a printable form directly'
+ 'xdg-utils: xdg .desktop file support')
+provides=("cups=${pkgver}")
+conflicts=("cups" "cups-libre")
+backup=(etc/cups/cupsd.conf
+ etc/cups/mime.convs
+ etc/cups/mime.types
+ etc/cups/snmp.conf
+ etc/cups/printers.conf
+ etc/cups/classes.conf
+ etc/cups/client.conf
+ etc/cups/subscriptions.conf
+ etc/dbus-1/system.d/cups.conf
+ etc/logrotate.d/cups
+ etc/pam.d/cups
+ etc/xinetd.d/cups-lpd)
+install=cups.install
+source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
+ cups-avahi-1-config.patch
+ cups-avahi-2-backend.patch
+ cups-avahi-3-timeouts.patch
+ cups-avahi-4-poll.patch
+ cups-avahi-5-services.patch
+ cups-no-export-ssllibs.patch
+ cups-no-gcrypt.patch
+ cups cups.logrotate cups.pam)
+#options=('!emptydirs')
+md5sums=('9471d2a7c920cfbb17133c32d2e6866f'
+ '8496c48a7ab5918ce546cfb72472def3'
+ '7df4c2e0a69bf072d7b7e96523df9dce'
+ '9a207c5d5189b1c2fc55907b7ed09372'
+ '5da4ba0837f9a685f146797fcfcd455e'
+ 'fe782a8fd4351741120d485d476abe8a'
+ '9b8467a1e51d360096b70e2c3c081e6c'
+ '3733c23e77eb503bd94cc368e02830dc'
+ '9657daa21760bb0b5fa3d8b51d5e01a1'
+ 'f861b18f4446c43918c8643dcbbd7f6d'
+ '96f82c38f3f540b53f3e5144900acf17')
+
+# move client.conf man page for next update to the client pkg.
+
+build() {
+ cd ${srcdir}/${_pkgname}-${pkgver}
+ # http://www.cups.org/str.php?L3066
+ # Avahi support in the dnssd backend. patches from upstream/FC RawHide
+ patch -Np1 -i ${srcdir}/cups-avahi-1-config.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-2-backend.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-3-timeouts.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-4-poll.patch
+ patch -Np1 -i ${srcdir}/cups-avahi-5-services.patch
+
+ # Do not export SSL libs in cups-config
+ patch -Np1 -i "${srcdir}/cups-no-export-ssllibs.patch"
+
+ patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch"
+
+ # Rebuild configure script for --enable-avahi.
+ aclocal -I config-scripts
+ autoconf -I config-scripts
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libdir=/usr/lib \
+ --with-logdir=/var/log/cups \
+ --with-docdir=/usr/share/cups/doc \
+ --with-cups-user=daemon \
+ --with-cups-group=lp \
+ --enable-pam=yes \
+ --disable-ldap \
+ --enable-raw-printing \
+ --enable-dbus --with-dbusdir=/etc/dbus-1 \
+ --enable-ssl=yes --enable-gnutls \
+ --enable-threads \
+ --enable-avahi\
+ --with-php=/usr/bin/php-cgi \
+ --with-pdftops=pdftops \
+ --with-optim="$CFLAGS" \
+ --disable-libusb
+ make
+}
+
+check() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ #httpAddrGetList(workstation64): FAIL
+ #1 TESTS FAILED!
+ #make[1]: *** [testhttp] Error 1
+ make -k check || /bin/true
+}
+
+package() {
+ cd ${srcdir}/${_pkgname}-${pkgver}
+ make BUILDROOT=${pkgdir} install-data install-exec
+
+ # this one we ship in the libcups pkg
+ rm -f ${pkgdir}/usr/bin/cups-config
+
+ # kill the sysv stuff
+ rm -rf ${pkgdir}/etc/rc*.d
+ rm -rf ${pkgdir}/etc/init.d
+ install -D -m755 ../cups ${pkgdir}/etc/rc.d/cupsd
+ install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
+ install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
+
+ # fix perms on /var/spool and /etc
+ chmod 755 ${pkgdir}/var/spool
+ chmod 755 ${pkgdir}/etc
+
+ # serial backend needs to run as root (http://bugs.archlinux.org/task/20396)
+ chmod 700 ${pkgdir}/usr/lib/cups/backend/serial
+
+ # install ssl directory where to store the certs, solves some samba issues
+ install -dm700 -g lp ${pkgdir}/etc/cups/ssl
+ # remove directory from package, we create it in cups rc.d file
+ rm -rf ${pkgdir}/var/run
+# install -dm511 -g lp ${pkgdir}/var/run/cups/certs
+
+ # install some more configuration files that will get filled by cupsd
+ touch ${pkgdir}/etc/cups/printers.conf
+ touch ${pkgdir}/etc/cups/classes.conf
+ touch ${pkgdir}/etc/cups/client.conf
+ echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
+ echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
+ touch ${pkgdir}/etc/cups/subscriptions.conf
+ chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,client.conf,subscriptions.conf}
+
+ # fix .desktop file
+ sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
+
+ # compress some driver files, adopted from Fedora
+ find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
+}
diff --git a/~mtjm/cups-usblp/cups b/~mtjm/cups-usblp/cups
new file mode 100644
index 000000000..744c8e663
--- /dev/null
+++ b/~mtjm/cups-usblp/cups
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+daemon_name=cupsd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+#. /etc/conf.d/$daemon_name.conf
+
+get_pid() {
+ pidof -o %PPID $daemon_name
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
+ # RUN
+ $daemon_name
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(get_pid) > /var/run/$daemon_name.pid
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=$(get_pid)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
diff --git a/~mtjm/cups-usblp/cups-avahi-1-config.patch b/~mtjm/cups-usblp/cups-avahi-1-config.patch
new file mode 100644
index 000000000..663eb39df
--- /dev/null
+++ b/~mtjm/cups-usblp/cups-avahi-1-config.patch
@@ -0,0 +1,42 @@
+diff -up cups-1.5.0/config.h.in.avahi-1-config cups-1.5.0/config.h.in
+--- cups-1.5.0/config.h.in.avahi-1-config 2011-06-16 21:12:16.000000000 +0100
++++ cups-1.5.0/config.h.in 2011-08-05 15:04:09.535759988 +0100
+@@ -390,6 +390,13 @@
+
+
+ /*
++ * Do we have Avahi for DNS Service Discovery?
++ */
++
++#undef HAVE_AVAHI
++
++
++/*
+ * Do we have <sys/ioctl.h>?
+ */
+
+diff -up cups-1.5.0/config-scripts/cups-dnssd.m4.avahi-1-config cups-1.5.0/config-scripts/cups-dnssd.m4
+--- cups-1.5.0/config-scripts/cups-dnssd.m4.avahi-1-config 2011-05-12 06:21:56.000000000 +0100
++++ cups-1.5.0/config-scripts/cups-dnssd.m4 2011-08-05 15:04:09.525760307 +0100
+@@ -23,6 +23,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn
+ DNSSDLIBS=""
+ DNSSD_BACKEND=""
+
++AC_ARG_ENABLE(avahi, [ --enable-avahi turn on DNS Service Discovery support, default=no],
++ [if test x$enable_avahi = xyes; then
++ AC_MSG_CHECKING(for Avahi)
++ if $PKGCONFIG --exists avahi-client; then
++ AC_MSG_RESULT(yes)
++ CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
++ DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
++ DNSSD_BACKEND="dnssd"
++ AC_DEFINE(HAVE_AVAHI)
++ enable_dnssd=no
++ else
++ AC_MSG_RESULT(no)
++ fi
++ fi])
++
+ if test x$enable_dnssd != xno; then
+ AC_CHECK_HEADER(dns_sd.h, [
+ case "$uname" in
diff --git a/~mtjm/cups-usblp/cups-avahi-2-backend.patch b/~mtjm/cups-usblp/cups-avahi-2-backend.patch
new file mode 100644
index 000000000..4c0d4989b
--- /dev/null
+++ b/~mtjm/cups-usblp/cups-avahi-2-backend.patch
@@ -0,0 +1,1117 @@
+diff -up cups-1.5.2/backend/dnssd.c.avahi-2-backend cups-1.5.2/backend/dnssd.c
+--- cups-1.5.2/backend/dnssd.c.avahi-2-backend 2012-02-06 11:09:08.318644741 +0100
++++ cups-1.5.2/backend/dnssd.c 2012-02-06 11:09:08.326644641 +0100
+@@ -15,14 +15,21 @@
+ *
+ * Contents:
+ *
++ * next_txt_record() - Get next TXT record from a cups_txt_records_t.
++ * parse_txt_record_pair() - Read key/value pair in cups_txt_records_t.
+ * main() - Browse for printers.
+ * browse_callback() - Browse devices.
+ * browse_local_callback() - Browse local devices.
+ * compare_devices() - Compare two devices.
+ * exec_backend() - Execute the backend that corresponds to the
+ * resolved service name.
++ * device_type() - Get DNS-SD type enumeration from string.
+ * get_device() - Create or update a device.
+ * query_callback() - Process query data.
++ * avahi_client_callback() - Avahi client callback function.
++ * avahi_query_callback() - Avahi query callback function.
++ * avahi_browse_callback() - Avahi browse callback function.
++ * find_device() - Find a device from its name and domain.
+ * sigterm_handler() - Handle termination signals...
+ * unquote() - Unquote a name string.
+ */
+@@ -33,7 +40,18 @@
+
+ #include "backend-private.h"
+ #include <cups/array.h>
+-#include <dns_sd.h>
++#ifdef HAVE_DNSSD
++# include <dns_sd.h>
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/lookup.h>
++# include <avahi-common/simple-watch.h>
++# include <avahi-common/domain.h>
++# include <avahi-common/error.h>
++# include <avahi-common/malloc.h>
++#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -53,7 +71,12 @@ typedef enum
+
+ typedef struct
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceRef ref; /* Service reference for resolve */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int resolved; /* Did we resolve the device? */
++#endif /* HAVE_AVAHI */
+ char *name, /* Service name */
+ *domain, /* Domain name */
+ *fullName, /* Full name */
+@@ -65,6 +88,20 @@ typedef struct
+ sent; /* Did we list the device? */
+ } cups_device_t;
+
++typedef struct
++{
++ char key[256];
++ char value[256];
++
++#ifdef HAVE_DNSSD
++ const uint8_t *data;
++ const uint8_t *datanext;
++ const uint8_t *dataend;
++#else /* HAVE_AVAHI */
++ AvahiStringList *txt;
++#endif /* HAVE_DNSSD */
++} cups_txt_records_t;
++
+
+ /*
+ * Local globals...
+@@ -78,6 +115,7 @@ static int job_canceled = 0;
+ * Local functions...
+ */
+
++#ifdef HAVE_DNSSD
+ static void browse_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -93,12 +131,6 @@ static void browse_local_callback(DNSSe
+ const char *regtype,
+ const char *replyDomain,
+ void *context);
+-static int compare_devices(cups_device_t *a, cups_device_t *b);
+-static void exec_backend(char **argv);
+-static cups_device_t *get_device(cups_array_t *devices,
+- const char *serviceName,
+- const char *regtype,
+- const char *replyDomain);
+ static void query_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -107,9 +139,118 @@ static void query_callback(DNSServiceRe
+ uint16_t rrclass, uint16_t rdlen,
+ const void *rdata, uint32_t ttl,
+ void *context);
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++static void avahi_client_callback (AvahiClient *client,
++ AvahiClientState state,
++ void *context);
++static void avahi_browse_callback (AvahiServiceBrowser *browser,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiBrowserEvent event,
++ const char *serviceName,
++ const char *regtype,
++ const char *replyDomain,
++ AvahiLookupResultFlags flags,
++ void *context);
++#endif /* HAVE_AVAHI */
++
++static cups_device_t * find_device (cups_array_t *devices,
++ cups_txt_records_t *txt,
++ cups_device_t *dkey);
++static int compare_devices(cups_device_t *a, cups_device_t *b);
++static void exec_backend(char **argv);
++static cups_device_t *get_device(cups_array_t *devices,
++ const char *serviceName,
++ const char *regtype,
++ const char *replyDomain);
+ static void sigterm_handler(int sig);
+ static void unquote(char *dst, const char *src, size_t dstsize);
+
++#ifdef HAVE_AVAHI
++static AvahiSimplePoll *simple_poll = NULL;
++static int avahi_got_callback;
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * 'next_txt_record()' - Get next TXT record from a cups_txt_records_t.
++ */
++
++static cups_txt_records_t *
++next_txt_record (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++ txt->data = txt->datanext;
++#else /* HAVE_AVAHI */
++ txt->txt = avahi_string_list_get_next (txt->txt);
++ if (txt->txt == NULL)
++ return NULL;
++#endif /* HAVE_DNSSD */
++
++ return txt;
++}
++
++
++/*
++ * 'parse_txt_record_pair()' - Read key/value pair in cups_txt_records_t.
++ */
++
++static int
++parse_txt_record_pair (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++ uint8_t datalen;
++ uint8_t *data = txt->data;
++ char *ptr;
++
++ /*
++ * Read a key/value pair starting with an 8-bit length. Since the
++ * length is 8 bits and the size of the key/value buffers is 256, we
++ * don't need to check for overflow...
++ */
++
++ datalen = *data++;
++ if (!datalen || (data + datalen) >= txt->dataend)
++ return NULL;
++ txt->datanext = data + datalen;
++
++ for (ptr = txt->key; data < txt->datanext && *data != '='; data ++)
++ *ptr++ = *data;
++ *ptr = '\0';
++
++ if (data < txt->datanext && *data == '=')
++ {
++ data++;
++
++ if (data < datanext)
++ memcpy (txt->value, data, txt->datanext - data);
++ value[txt->datanext - data] = '\0';
++ }
++ else
++ return 1;
++#else /* HAVE_AVAHI */
++ char *key, *value;
++ size_t len;
++ avahi_string_list_get_pair (txt->txt, &key, &value, &len);
++ if (len > sizeof (txt->value) - 1)
++ len = sizeof (txt->value) - 1;
++
++ memcpy (txt->value, value, len);
++ txt->value[len] = '\0';
++ len = strlen (key);
++ if (len > sizeof (txt->key) - 1)
++ len = sizeof (txt->key) - 1;
++
++ memcpy (txt->key, key, len);
++ txt->key[len] = '\0';
++ avahi_free (key);
++ avahi_free (value);
++#endif /* HAVE_AVAHI */
++
++ return 0;
++}
++
+
+ /*
+ * 'main()' - Browse for printers.
+@@ -120,6 +261,13 @@ main(int argc, /* I - Number of comm
+ char *argv[]) /* I - Command-line arguments */
+ {
+ const char *name; /* Backend name */
++ cups_array_t *devices; /* Device array */
++ cups_device_t *device; /* Current device */
++ char uriName[1024]; /* Unquoted fullName for URI */
++#ifdef HAVE_DNSSD
++ int fd; /* Main file descriptor */
++ fd_set input; /* Input set for select() */
++ struct timeval timeout; /* Timeout for select() */
+ DNSServiceRef main_ref, /* Main service reference */
+ fax_ipp_ref, /* IPP fax service reference */
+ ipp_ref, /* IPP service reference */
+@@ -133,12 +281,11 @@ main(int argc, /* I - Number of comm
+ pdl_datastream_ref, /* AppSocket service reference */
+ printer_ref, /* LPD service reference */
+ riousbprint_ref; /* Remote IO service reference */
+- int fd; /* Main file descriptor */
+- fd_set input; /* Input set for select() */
+- struct timeval timeout; /* Timeout for select() */
+- cups_array_t *devices; /* Device array */
+- cups_device_t *device; /* Current device */
+- char uriName[1024]; /* Unquoted fullName for URI */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ AvahiClient *client;
++ int error;
++#endif /* HAVE_AVAHI */
+ #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
+ struct sigaction action; /* Actions for POSIX signals */
+ #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
+@@ -198,6 +345,49 @@ main(int argc, /* I - Number of comm
+ * Browse for different kinds of printers...
+ */
+
++#ifdef HAVE_AVAHI
++ if ((simple_poll = avahi_simple_poll_new ()) == NULL)
++ {
++ perror ("ERROR: Unable to create avahi simple poll object");
++ return (1);
++ }
++
++ client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++ 0, avahi_client_callback, NULL, &error);
++ if (!client)
++ {
++ perror ("DEBUG: Unable to create avahi client");
++ return (0);
++ }
++
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_fax-ipp._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_ipp._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_ipp-tls._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_pdl-datastream._tcp",
++ NULL, 0,
++ avahi_browse_callback,
++ devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_printer._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_riousbprint._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++#endif /* HAVE_AVAHI */
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
+ {
+ perror("ERROR: Unable to create service connection");
+@@ -258,6 +448,7 @@ main(int argc, /* I - Number of comm
+ riousbprint_ref = main_ref;
+ DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
+ "_riousbprint._tcp", NULL, browse_callback, devices);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Loop until we are killed...
+@@ -265,6 +456,9 @@ main(int argc, /* I - Number of comm
+
+ while (!job_canceled)
+ {
++ int announce = 0;
++
++#ifdef HAVE_DNSSD
+ FD_ZERO(&input);
+ FD_SET(fd, &input);
+
+@@ -284,11 +478,35 @@ main(int argc, /* I - Number of comm
+ }
+ else
+ {
++ announce = 1;
++ }
++#else /* HAVE_AVAHI */
++ int r;
++ avahi_got_callback = 0;
++ r = avahi_simple_poll_iterate (simple_poll, 1);
++ if (r != 0 && r != EINTR)
++ {
++ /*
++ * We've been told to exit the loop. Perhaps the connection to
++ * avahi failed.
++ */
++
++ break;
++ }
++
++ if (avahi_got_callback)
++ announce = 1;
++#endif /* HAVE_DNSSD */
++
++ if (announce)
++ {
+ /*
+ * Announce any devices we've found...
+ */
+
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType status; /* DNS query status */
++#endif /* HAVE_DNSSD */
+ cups_device_t *best; /* Best matching device */
+ char device_uri[1024]; /* Device URI */
+ int count; /* Number of queries */
+@@ -302,6 +520,7 @@ main(int argc, /* I - Number of comm
+ if (device->sent)
+ sent ++;
+
++#ifdef HAVE_DNSSD
+ if (device->ref)
+ count ++;
+
+@@ -333,14 +552,23 @@ main(int argc, /* I - Number of comm
+ count ++;
+ }
+ }
+- else if (!device->sent)
++ else
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (!device->resolved)
++ continue;
++ else
++#endif /* HAVE_AVAHI */
++ if (!device->sent)
+ {
++#ifdef HAVE_DNSSD
+ /*
+ * Got the TXT records, now report the device...
+ */
+
+ DNSServiceRefDeallocate(device->ref);
+ device->ref = 0;
++#endif /* HAVE_DNSSD */
+
+ if (!best)
+ best = device;
+@@ -401,6 +629,7 @@ main(int argc, /* I - Number of comm
+ }
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'browse_callback()' - Browse devices.
+ */
+@@ -489,6 +718,7 @@ browse_local_callback(
+ device->fullName);
+ device->sent = 1;
+ }
++#endif /* HAVE_DNSSD */
+
+
+ /*
+@@ -569,6 +799,41 @@ exec_backend(char **argv) /* I - Comman
+
+
+ /*
++ * 'device_type()' - Get DNS-SD type enumeration from string.
++ */
++
++static int
++device_type (const char *regtype)
++{
++#ifdef HAVE_AVAHI
++ if (!strcmp(regtype, "_ipp._tcp"))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_ipps._tcp") ||
++ !strcmp(regtype, "_ipp-tls._tcp"))
++ return (CUPS_DEVICE_IPPS);
++ else if (!strcmp(regtype, "_fax-ipp._tcp"))
++ return (CUPS_DEVICE_FAX_IPP);
++ else if (!strcmp(regtype, "_printer._tcp"))
++ return (CUPS_DEVICE_PDL_DATASTREAM);
++#else
++ if (!strcmp(regtype, "_ipp._tcp."))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_ipps._tcp.") ||
++ !strcmp(regtype, "_ipp-tls._tcp."))
++ return (CUPS_DEVICE_IPPS);
++ else if (!strcmp(regtype, "_fax-ipp._tcp."))
++ return (CUPS_DEVICE_FAX_IPP);
++ else if (!strcmp(regtype, "_printer._tcp."))
++ return (CUPS_DEVICE_PRINTER);
++ else if (!strcmp(regtype, "_pdl-datastream._tcp."))
++ return (CUPS_DEVICE_PDL_DATASTREAM);
++#endif /* HAVE_AVAHI */
++
++ return (CUPS_DEVICE_RIOUSBPRINT);
++}
++
++
++/*
+ * 'get_device()' - Create or update a device.
+ */
+
+@@ -589,20 +854,7 @@ get_device(cups_array_t *devices, /* I -
+ */
+
+ key.name = (char *)serviceName;
+-
+- if (!strcmp(regtype, "_ipp._tcp."))
+- key.type = CUPS_DEVICE_IPP;
+- else if (!strcmp(regtype, "_ipps._tcp.") ||
+- !strcmp(regtype, "_ipp-tls._tcp."))
+- key.type = CUPS_DEVICE_IPPS;
+- else if (!strcmp(regtype, "_fax-ipp._tcp."))
+- key.type = CUPS_DEVICE_FAX_IPP;
+- else if (!strcmp(regtype, "_printer._tcp."))
+- key.type = CUPS_DEVICE_PRINTER;
+- else if (!strcmp(regtype, "_pdl-datastream._tcp."))
+- key.type = CUPS_DEVICE_PDL_DATASTREAM;
+- else
+- key.type = CUPS_DEVICE_RIOUSBPRINT;
++ key.type = device_type (regtype);
+
+ for (device = cupsArrayFind(devices, &key);
+ device;
+@@ -622,8 +874,14 @@ get_device(cups_array_t *devices, /* I -
+ free(device->domain);
+ device->domain = strdup(replyDomain);
+
++#ifdef HAVE_DNSSD
+ DNSServiceConstructFullName(fullName, device->name, regtype,
+ replyDomain);
++#else /* HAVE_AVAHI */
++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++ serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ free(device->fullName);
+ device->fullName = strdup(fullName);
+ }
+@@ -643,6 +901,9 @@ get_device(cups_array_t *devices, /* I -
+ device->domain = strdup(replyDomain);
+ device->type = key.type;
+ device->priority = 50;
++#ifdef HAVE_AVAHI
++ device->resolved = 0;
++#endif /* HAVE_AVAHI */
+
+ cupsArrayAdd(devices, device);
+
+@@ -650,13 +911,20 @@ get_device(cups_array_t *devices, /* I -
+ * Set the "full name" of this service, which is used for queries...
+ */
+
++#ifdef HAVE_DNSSD
+ DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
++#else /* HAVE_AVAHI */
++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++ serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ device->fullName = strdup(fullName);
+
+ return (device);
+ }
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'query_callback()' - Process query data.
+ */
+@@ -680,7 +948,7 @@ query_callback(
+ *ptr; /* Pointer into string */
+ cups_device_t dkey, /* Search key */
+ *device; /* Device */
+-
++ cups_txt_records_t txt;
+
+ fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
+ "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
+@@ -714,94 +982,233 @@ query_callback(
+ if ((ptr = strstr(name, "._")) != NULL)
+ *ptr = '\0';
+
+- if (strstr(fullName, "_ipp._tcp."))
+- dkey.type = CUPS_DEVICE_IPP;
+- else if (strstr(fullName, "_ipps._tcp.") ||
+- strstr(fullName, "_ipp-tls._tcp."))
+- dkey.type = CUPS_DEVICE_IPPS;
+- else if (strstr(fullName, "_fax-ipp._tcp."))
+- dkey.type = CUPS_DEVICE_FAX_IPP;
+- else if (strstr(fullName, "_printer._tcp."))
+- dkey.type = CUPS_DEVICE_PRINTER;
+- else if (strstr(fullName, "_pdl-datastream._tcp."))
+- dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
++ dkey.type = device_type (fullName);
++
++ txt.data = rdata;
++ txt.dataend = rdata + rdlen;
++ device = find_device ((cups_array_t *) context, &txt, &dkey);
++ if (!device)
++ fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++}
++#endif /* HAVE_DNSSD */
++
++
++#ifdef HAVE_AVAHI
++/*
++ * 'avahi_client_callback()' - Avahi client callback function.
++ */
++
++static void
++avahi_client_callback(AvahiClient *client,
++ AvahiClientState state,
++ void *context)
++{
++ /*
++ * If the connection drops, quit.
++ */
++
++ if (state == AVAHI_CLIENT_FAILURE)
++ {
++ fprintf (stderr, "ERROR: Avahi connection failed\n");
++ avahi_simple_poll_quit (simple_poll);
++ }
++}
++
++
++/*
++ * 'avahi_query_callback()' - Avahi query callback function.
++ */
++
++static void
++avahi_query_callback(AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ AvahiClient *client;
++ cups_device_t key,
++ *device;
++ char uqname[1024],
++ *ptr;
++ cups_txt_records_t txtr;
++
++ client = avahi_service_resolver_get_client (resolver);
++ if (event != AVAHI_RESOLVER_FOUND)
++ {
++ if (event == AVAHI_RESOLVER_FAILURE)
++ {
++ fprintf (stderr, "ERROR: %s\n",
++ avahi_strerror (avahi_client_errno (client)));
++ }
++
++ avahi_service_resolver_free (resolver);
++ return;
++ }
++
++ /*
++ * Set search key for device.
++ */
++
++ key.name = uqname;
++ unquote (uqname, name, sizeof (uqname));
++ if ((ptr = strstr(name, "._")) != NULL)
++ *ptr = '\0';
++
++ key.domain = (char *) domain;
++ key.type = device_type (type);
++
++ /*
++ * Find the device and the the TXT information.
++ */
++
++ txtr.txt = txt;
++ device = find_device ((cups_array_t *) context, &txtr, &key);
++ if (device)
++ {
++ /*
++ * Let the main loop know to announce the device.
++ */
++
++ device->resolved = 1;
++ avahi_got_callback = 1;
++ }
+ else
+- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
++ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
++
++ avahi_service_resolver_free (resolver);
++}
++
++
++/*
++ * 'avahi_browse_callback()' - Avahi browse callback function.
++ */
++
++static void
++avahi_browse_callback(AvahiServiceBrowser *browser,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiBrowserEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ AvahiClient *client = avahi_service_browser_get_client (browser);
++
++ switch (event)
++ {
++ case AVAHI_BROWSER_FAILURE:
++ fprintf (stderr, "ERROR: %s\n",
++ avahi_strerror (avahi_client_errno (client)));
++ avahi_simple_poll_quit (simple_poll);
++ return;
++
++ case AVAHI_BROWSER_NEW:
++ /*
++ * This object is new on the network.
++ */
++
++ if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
++ {
++ /*
++ * This comes from the local machine so ignore it.
++ */
++
++ fprintf (stderr, "DEBUG: ignoring local service %s\n", name);
++ }
++ else
++ {
++ /*
++ * Create a device entry for it if it doesn't yet exist.
++ */
++
++ get_device ((cups_array_t *)context, name, type, domain);
++
++ /*
++ * Now look for a TXT entry.
++ */
++
++ if (avahi_service_resolver_new (client, interface, protocol,
++ name, type, domain,
++ AVAHI_PROTO_UNSPEC, 0,
++ avahi_query_callback, context) == NULL)
++ {
++ fprintf (stderr, "ERROR: failed to resolve service %s: %s\n",
++ name, avahi_strerror (avahi_client_errno (client)));
++ }
++ }
++
++ break;
++
++ case AVAHI_BROWSER_REMOVE:
++ case AVAHI_BROWSER_ALL_FOR_NOW:
++ case AVAHI_BROWSER_CACHE_EXHAUSTED:
++ break;
++ }
++}
++#endif /* HAVE_AVAHI */
++
+
+- for (device = cupsArrayFind(devices, &dkey);
++/*
++ * 'find_device()' - Find a device from its name and domain.
++ */
++
++static cups_device_t *
++find_device (cups_array_t *devices,
++ cups_txt_records_t *txt,
++ cups_device_t *dkey)
++{
++ cups_device_t *device;
++ char *ptr;
++
++ for (device = cupsArrayFind(devices, dkey);
+ device;
+ device = cupsArrayNext(devices))
+ {
+- if (_cups_strcasecmp(device->name, dkey.name) ||
+- _cups_strcasecmp(device->domain, dkey.domain))
++ if (_cups_strcasecmp(device->name, dkey->name) ||
++ _cups_strcasecmp(device->domain, dkey->domain))
+ {
+ device = NULL;
+ break;
+ }
+- else if (device->type == dkey.type)
++ else if (device->type == dkey->type)
+ {
+ /*
+ * Found it, pull out the priority and make and model from the TXT
+ * record and save it...
+ */
+
+- const uint8_t *data, /* Pointer into data */
+- *datanext, /* Next key/value pair */
+- *dataend; /* End of entire TXT record */
+- uint8_t datalen; /* Length of current key/value pair */
+- char key[256], /* Key string */
+- value[256], /* Value string */
+- make_and_model[512],
++ char make_and_model[512],
+ /* Manufacturer and model */
+ model[256], /* Model */
+- device_id[2048];/* 1284 device ID */
+-
++ device_id[2048]; /* 1284 device ID */
+
+ device_id[0] = '\0';
+ make_and_model[0] = '\0';
+
+ strcpy(model, "Unknown");
+
+- for (data = rdata, dataend = data + rdlen;
+- data < dataend;
+- data = datanext)
++ for (;;)
+ {
+- /*
+- * Read a key/value pair starting with an 8-bit length. Since the
+- * length is 8 bits and the size of the key/value buffers is 256, we
+- * don't need to check for overflow...
+- */
+-
+- datalen = *data++;
+-
+- if (!datalen || (data + datalen) > dataend)
+- break;
+-
+- datanext = data + datalen;
+-
+- for (ptr = key; data < datanext && *data != '='; data ++)
+- *ptr++ = *data;
+- *ptr = '\0';
++ char *key;
++ char *value;
+
+- if (data < datanext && *data == '=')
+- {
+- data ++;
+-
+- if (data < datanext)
+- memcpy(value, data, datanext - data);
+- value[datanext - data] = '\0';
++ if (parse_txt_record_pair (txt))
++ goto next;
+
+- fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
+- key, value);
+- }
+- else
+- {
+- fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
+- key);
+- continue;
+- }
+-
+- if (!_cups_strncasecmp(key, "usb_", 4))
++ key = txt->key;
++ value = txt->value;
++ if (!strncasecmp(key, "usb_", 4))
+ {
+ /*
+ * Add USB device ID information...
+@@ -856,6 +1263,10 @@ query_callback(
+ if (device->type == CUPS_DEVICE_PRINTER)
+ device->sent = 1;
+ }
++
++ next:
++ if (next_txt_record (txt) == NULL)
++ break;
+ }
+
+ if (device->device_id)
+@@ -912,11 +1323,9 @@ query_callback(
+ }
+ }
+
+- if (!device)
+- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++ return device;
+ }
+
+-
+ /*
+ * 'sigterm_handler()' - Handle termination signals...
+ */
+diff -up cups-1.5.2/cups/http-support.c.avahi-2-backend cups-1.5.2/cups/http-support.c
+--- cups-1.5.2/cups/http-support.c.avahi-2-backend 2011-09-26 20:46:46.000000000 +0200
++++ cups-1.5.2/cups/http-support.c 2012-02-06 11:09:08.327644629 +0100
+@@ -43,6 +43,10 @@
+ * http_copy_decode() - Copy and decode a URI.
+ * http_copy_encode() - Copy and encode a URI.
+ * http_resolve_cb() - Build a device URI for the given service name.
++ * avahi_resolve_uri_client_cb()
++ * - Avahi client callback for resolving URI.
++ * avahi_resolve_uri_resolver_cb()
++ * - Avahi resolver callback for resolving URI.
+ */
+
+ /*
+@@ -60,6 +64,11 @@
+ # include <sys/select.h>
+ # endif /* WIN32 */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/lookup.h>
++# include <avahi-common/simple-watch.h>
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -127,6 +136,24 @@ static void DNSSD_API http_resolve_cb(DN
+ void *context);
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static void avahi_resolve_uri_client_cb(AvahiClient *client,
++ AvahiClientState state,
++ void *simple_poll);
++static void avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context);
++#endif /* HAVE_AVAHI */
+
+ /*
+ * 'httpAssembleURI()' - Assemble a uniform resource identifier from its
+@@ -1431,6 +1458,9 @@ _httpResolveURI(
+
+ if (strstr(hostname, "._tcp"))
+ {
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ char *regtype, /* Pointer to type in hostname */
++ *domain; /* Pointer to domain in hostname */
+ #ifdef HAVE_DNSSD
+ # ifdef WIN32
+ # pragma comment(lib, "dnssd.lib")
+@@ -1449,6 +1479,17 @@ _httpResolveURI(
+ fd_set input_set; /* Input set for select() */
+ struct timeval stimeout; /* Timeout value for select() */
+ #endif /* HAVE_POLL */
++#else /* HAVE_AVAHI */
++ AvahiSimplePoll *simple_poll;
++ AvahiClient *client;
++ int error;
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } user_data;
++#endif /* HAVE_DNSSD */
++
+
+ if (options & _HTTP_RESOLVE_STDERR)
+ fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
+@@ -1485,9 +1526,16 @@ _httpResolveURI(
+ if (domain)
+ *domain++ = '\0';
+
++#ifdef HAVE_DNSSD
+ uribuf.buffer = resolved_uri;
+ uribuf.bufsize = resolved_size;
+ uribuf.options = options;
++#else
++ user_data.uribuf.buffer = resolved_uri;
++ user_data.uribuf.bufsize = resolved_size;
++ user_data.uribuf.options = options;
++#endif
++
+ resolved_uri[0] = '\0';
+
+ DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
+@@ -1501,6 +1549,7 @@ _httpResolveURI(
+
+ uri = NULL;
+
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
+ {
+ localref = ref;
+@@ -1608,6 +1657,36 @@ _httpResolveURI(
+
+ DNSServiceRefDeallocate(ref);
+ }
++#else /* HAVE_AVAHI */
++ if ((simple_poll = avahi_simple_poll_new ()) != NULL)
++ {
++ if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++ 0, avahi_resolve_uri_client_cb,
++ &simple_poll, &error)) != NULL)
++ {
++ user_data.poll = simple_poll;
++ if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC, hostname,
++ regtype, domain, AVAHI_PROTO_UNSPEC, 0,
++ avahi_resolve_uri_resolver_cb,
++ &user_data) != NULL)
++ {
++ avahi_simple_poll_loop (simple_poll);
++
++ /*
++ * Collect the result.
++ */
++
++ if (resolved_uri[0])
++ uri = resolved_uri;
++ }
++
++ avahi_client_free (client);
++ }
++
++ avahi_simple_poll_free (simple_poll);
++ }
++#endif /* HAVE_DNSSD */
+
+ if (options & _HTTP_RESOLVE_STDERR)
+ {
+@@ -1619,13 +1698,13 @@ _httpResolveURI(
+ fputs("STATE: -connecting-to-device,offline-report\n", stderr);
+ }
+
+-#else
++#else /* HAVE_DNSSD || HAVE_AVAHI */
+ /*
+ * No DNS-SD support...
+ */
+
+ uri = NULL;
+-#endif /* HAVE_DNSSD */
++#endif /* HAVE_DNSSD || HAVE_AVAHI */
+
+ if ((options & _HTTP_RESOLVE_STDERR) && !uri)
+ _cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
+@@ -1914,6 +1993,116 @@ http_resolve_cb(
+ #endif /* HAVE_DNSSD */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'avahi_resolve_uri_client_cb()' - Avahi client callback for resolving URI.
++ */
++
++static void
++avahi_resolve_uri_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *simple_poll)
++{
++ DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, "
++ "simple_poll=%p)\n", client, state, simple_poll));
++
++ /*
++ * If the connection drops, quit.
++ */
++
++ if (state == AVAHI_CLIENT_FAILURE)
++ avahi_simple_poll_quit (simple_poll);
++}
++
++
++/*
++ * 'avahi_resolve_uri_resolver_cb()' - Avahi resolver callback for resolving
++ * URI.
++ */
++
++static void
++avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ const char *scheme; /* URI scheme */
++ char rp[256]; /* Remote printer */
++ AvahiStringList *pair;
++ char *value;
++ size_t valueLen = 0;
++ char addr[AVAHI_ADDRESS_STR_MAX];
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } *poll_uribuf = context;
++
++ DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, "
++ "interface=%d, protocol=%d, event=%d, name=\"%s\", "
++ "type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, "
++ "port=%d, txt=%p, flags=%d, context=%p)\n",
++ resolver, interface, protocol, event, name, type, domain,
++ host_name, address, port, txt, flags, context));
++
++ if (event != AVAHI_RESOLVER_FOUND)
++ {
++ avahi_service_resolver_free (resolver);
++ avahi_simple_poll_quit (poll_uribuf->poll);
++ return;
++ }
++
++ /*
++ * Figure out the scheme from the full name...
++ */
++
++ if (strstr(type, "_ipp."))
++ scheme = "ipp";
++ else if (strstr(type, "_printer."))
++ scheme = "lpd";
++ else if (strstr(type, "_pdl-datastream."))
++ scheme = "socket";
++ else
++ scheme = "riousbprint";
++
++ /*
++ * Extract the "remote printer key from the TXT record...
++ */
++
++ if ((pair = avahi_string_list_find (txt, "rp")) != NULL)
++ {
++ avahi_string_list_get_pair (pair, NULL, &value, &valueLen);
++ rp[0] = '/';
++ memcpy (rp + 1, value, valueLen);
++ rp[valueLen + 1] = '\0';
++ }
++ else
++ rp[0] = '\0';
++
++ /*
++ * Assemble the final device URI...
++ */
++
++ avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address);
++ httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer,
++ poll_uribuf->uribuf.bufsize, scheme, NULL,
++ addr, port, rp);
++ DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n",
++ poll_uribuf->uribuf.buffer));
++ avahi_simple_poll_quit (poll_uribuf->poll);
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * End of "$Id: http-support.c 10017 2011-09-26 18:46:46Z mike $".
+ */
diff --git a/~mtjm/cups-usblp/cups-avahi-3-timeouts.patch b/~mtjm/cups-usblp/cups-avahi-3-timeouts.patch
new file mode 100644
index 000000000..1c547c042
--- /dev/null
+++ b/~mtjm/cups-usblp/cups-avahi-3-timeouts.patch
@@ -0,0 +1,381 @@
+diff -up cups-1.5.0/scheduler/cupsd.h.avahi-3-timeouts cups-1.5.0/scheduler/cupsd.h
+--- cups-1.5.0/scheduler/cupsd.h.avahi-3-timeouts 2011-05-11 23:17:34.000000000 +0100
++++ cups-1.5.0/scheduler/cupsd.h 2011-10-07 13:20:41.522867324 +0100
+@@ -140,6 +140,15 @@ extern const char *cups_hstrerror(int);
+
+ typedef void (*cupsd_selfunc_t)(void *data);
+
++#ifdef HAVE_AVAHI
++/*
++ * Timeout callback function type...
++ */
++
++typedef struct _cupsd_timeout_s cupsd_timeout_t;
++typedef void (*cupsd_timeoutfunc_t)(cupsd_timeout_t *timeout, void *data);
++#endif /* HAVE_AVAHI */
++
+
+ /*
+ * Globals...
+@@ -173,6 +182,11 @@ VAR int Launchd VALUE(0);
+ /* Running from launchd */
+ #endif /* HAVE_LAUNCH_H */
+
++#ifdef HAVE_AVAHI
++VAR cups_array_t *Timeouts; /* Timed callbacks for main loop */
++#endif /* HAVE_AVAHI */
++
++
+
+ /*
+ * Prototypes...
+@@ -242,6 +256,20 @@ extern void cupsdStopSelect(void);
+ extern void cupsdStartServer(void);
+ extern void cupsdStopServer(void);
+
++#ifdef HAVE_AVAHI
++extern void cupsdInitTimeouts(void);
++extern cupsd_timeout_t *cupsdAddTimeout (const struct timeval *tv,
++ cupsd_timeoutfunc_t cb,
++ void *data);
++extern cupsd_timeout_t *cupsdNextTimeout (long *delay);
++extern void cupsdRunTimeout (cupsd_timeout_t *timeout);
++extern void cupsdUpdateTimeout (cupsd_timeout_t *timeout,
++ const struct timeval *tv);
++extern void cupsdRemoveTimeout (cupsd_timeout_t *timeout);
++#endif /* HAVE_AVAHI */
++
++extern int cupsdRemoveFile(const char *filename);
++
+
+ /*
+ * End of "$Id: cupsd.h 9766 2011-05-11 22:17:34Z mike $".
+diff -up cups-1.5.0/scheduler/main.c.avahi-3-timeouts cups-1.5.0/scheduler/main.c
+--- cups-1.5.0/scheduler/main.c.avahi-3-timeouts 2011-10-07 13:20:36.875954675 +0100
++++ cups-1.5.0/scheduler/main.c 2011-10-07 13:20:41.524867282 +0100
+@@ -146,6 +146,10 @@ main(int argc, /* I - Number of comm
+ int launchd_idle_exit;
+ /* Idle exit on select timeout? */
+ #endif /* HAVE_LAUNCHD */
++#ifdef HAVE_AVAHI
++ cupsd_timeout_t *tmo; /* Next scheduled timed callback */
++ long tmo_delay; /* Time before it must be called */
++#endif /* HAVE_AVAHI */
+
+
+ #ifdef HAVE_GETEUID
+@@ -535,6 +539,14 @@ main(int argc, /* I - Number of comm
+
+ httpInitialize();
+
++#ifdef HAVE_AVAHI
++ /*
++ * Initialize timed callback structures.
++ */
++
++ cupsdInitTimeouts();
++#endif /* HAVE_AVAHI */
++
+ cupsdStartServer();
+
+ /*
+@@ -874,6 +886,16 @@ main(int argc, /* I - Number of comm
+ }
+ #endif /* __APPLE__ */
+
++#ifdef HAVE_AVAHI
++ /*
++ * If a timed callback is due, run it.
++ */
++
++ tmo = cupsdNextTimeout (&tmo_delay);
++ if (tmo && tmo_delay == 0)
++ cupsdRunTimeout (tmo);
++#endif /* HAVE_AVAHI */
++
+ #ifndef __APPLE__
+ /*
+ * Update the network interfaces once a minute...
+@@ -1787,6 +1809,10 @@ select_timeout(int fds) /* I - Number
+ cupsd_job_t *job; /* Job information */
+ cupsd_subscription_t *sub; /* Subscription information */
+ const char *why; /* Debugging aid */
++#ifdef HAVE_AVAHI
++ cupsd_timeout_t *tmo; /* Timed callback */
++ long tmo_delay; /* Seconds before calling it */
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -1829,6 +1855,19 @@ select_timeout(int fds) /* I - Number
+ }
+ #endif /* __APPLE__ */
+
++#ifdef HAVE_AVAHI
++ /*
++ * See if there are any scheduled timed callbacks to run.
++ */
++
++ tmo = cupsdNextTimeout (&tmo_delay);
++ if (tmo)
++ {
++ timeout = tmo_delay;
++ why = "run a timed callback";
++ }
++#endif /* HAVE_AVAHI */
++
+ /*
+ * Check whether we are accepting new connections...
+ */
+diff -up cups-1.5.0/scheduler/Makefile.avahi-3-timeouts cups-1.5.0/scheduler/Makefile
+--- cups-1.5.0/scheduler/Makefile.avahi-3-timeouts 2011-10-07 13:20:36.955953170 +0100
++++ cups-1.5.0/scheduler/Makefile 2011-10-07 13:20:41.521867343 +0100
+@@ -39,7 +39,8 @@ CUPSDOBJS = \
+ server.o \
+ statbuf.o \
+ subscriptions.o \
+- sysman.o
++ sysman.o \
++ timeout.o
+ LIBOBJS = \
+ filter.o \
+ mime.o \
+diff -up cups-1.5.0/scheduler/timeout.c.avahi-3-timeouts cups-1.5.0/scheduler/timeout.c
+--- cups-1.5.0/scheduler/timeout.c.avahi-3-timeouts 2011-10-07 13:20:41.525867259 +0100
++++ cups-1.5.0/scheduler/timeout.c 2011-10-07 13:20:41.525867259 +0100
+@@ -0,0 +1,235 @@
++/*
++ * "$Id$"
++ *
++ * Timeout functions for the Common UNIX Printing System (CUPS).
++ *
++ * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ * Contents:
++ *
++ * cupsdInitTimeouts() - Initialise timeout structure.
++ * cupsdAddTimeout() - Add a timed callback.
++ * cupsdNextTimeout() - Find the next enabled timed callback.
++ * cupsdUpdateTimeout() - Adjust the time of a timed callback or disable it.
++ * cupsdRemoveTimeout() - Discard a timed callback.
++ * compare_timeouts() - Compare timed callbacks for array sorting.
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI /* Applies to entire file... */
++
++/*
++ * Include necessary headers...
++ */
++
++#include "cupsd.h"
++
++#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
++# include <malloc.h>
++#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
++
++#ifdef HAVE_AVAHI
++# include <avahi-common/timeval.h>
++#endif /* HAVE_AVAHI */
++
++
++struct _cupsd_timeout_s
++{
++ struct timeval when;
++ int enabled;
++ cupsd_timeoutfunc_t callback;
++ void *data;
++};
++
++/*
++ * Local functions...
++ */
++
++/*
++ * 'compare_timeouts()' - Compare timed callbacks for array sorting.
++ */
++
++static int
++compare_addrs (void *p0, void *p1)
++{
++ if (p0 == p1)
++ return (0);
++ if (p0 < p1)
++ return (-1);
++ return (1);
++}
++
++static int
++compare_timeouts (cupsd_timeout_t *p0, cupsd_timeout_t *p1)
++{
++ int addrsdiff = compare_addrs (p0, p1);
++ int tvdiff;
++
++ if (addrsdiff == 0)
++ return (0);
++
++ if (!p0->enabled || !p1->enabled)
++ {
++ if (!p0->enabled && !p1->enabled)
++ return (addrsdiff);
++
++ return (p0->enabled ? -1 : 1);
++ }
++
++ tvdiff = avahi_timeval_compare (&p0->when, &p1->when);
++ if (tvdiff != 0)
++ return (tvdiff);
++
++ return (addrsdiff);
++}
++
++
++/*
++ * 'cupsdInitTimeouts()' - Initialise timeout structures.
++ */
++
++void
++cupsdInitTimeouts(void)
++{
++ Timeouts = cupsArrayNew ((cups_array_func_t)compare_timeouts, NULL);
++}
++
++
++/*
++ * 'cupsdAddTimeout()' - Add a timed callback.
++ */
++
++cupsd_timeout_t * /* O - Timeout handle */
++cupsdAddTimeout(const struct timeval *tv, /* I - Absolute time */
++ cupsd_timeoutfunc_t cb, /* I - Callback function */
++ void *data) /* I - User data */
++{
++ cupsd_timeout_t *timeout;
++
++ timeout = malloc (sizeof(cupsd_timeout_t));
++ if (timeout != NULL)
++ {
++ timeout->enabled = (tv != NULL);
++ if (tv)
++ {
++ timeout->when.tv_sec = tv->tv_sec;
++ timeout->when.tv_usec = tv->tv_usec;
++ }
++
++ timeout->callback = cb;
++ timeout->data = data;
++ cupsArrayAdd (Timeouts, timeout);
++ }
++
++ return timeout;
++}
++
++
++/*
++ * 'cupsdNextTimeout()' - Find the next enabled timed callback.
++ */
++
++cupsd_timeout_t * /* O - Next enabled timeout or NULL */
++cupsdNextTimeout(long *delay) /* O - Seconds before scheduled */
++{
++ cupsd_timeout_t *first = cupsArrayFirst (Timeouts);
++ struct timeval curtime;
++
++ if (first && !first->enabled)
++ first = NULL;
++
++ if (first && delay)
++ {
++ gettimeofday (&curtime, NULL);
++ if (avahi_timeval_compare (&curtime, &first->when) > 0)
++ {
++ *delay = 0;
++ } else {
++ *delay = 1 + first->when.tv_sec - curtime.tv_sec;
++ if (first->when.tv_usec < curtime.tv_usec)
++ (*delay)--;
++ }
++ }
++
++ return (first);
++}
++
++
++/*
++ * 'cupsdRunTimeout()' - Run a timed callback.
++ */
++
++void
++cupsdRunTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
++{
++ if (!timeout)
++ return;
++ timeout->enabled = 0;
++ if (!timeout->callback)
++ return;
++ timeout->callback (timeout, timeout->data);
++}
++
++/*
++ * 'cupsdUpdateTimeout()' - Adjust the time of a timed callback or disable it.
++ */
++
++void
++cupsdUpdateTimeout(cupsd_timeout_t *timeout, /* I - Timeout */
++ const struct timeval *tv) /* I - Absolute time or NULL */
++{
++ cupsArrayRemove (Timeouts, timeout);
++ timeout->enabled = (tv != NULL);
++ if (tv)
++ {
++ timeout->when.tv_sec = tv->tv_sec;
++ timeout->when.tv_usec = tv->tv_usec;
++ }
++ cupsArrayAdd (Timeouts, timeout);
++}
++
++
++/*
++ * 'cupsdRemoveTimeout()' - Discard a timed callback.
++ */
++
++void
++cupsdRemoveTimeout(cupsd_timeout_t *timeout) /* I - Timeout */
++{
++ cupsArrayRemove (Timeouts, timeout);
++ free (timeout);
++}
++
++
++#endif /* HAVE_AVAHI ... from top of file */
++
++/*
++ * End of "$Id$".
++ */
diff --git a/~mtjm/cups-usblp/cups-avahi-4-poll.patch b/~mtjm/cups-usblp/cups-avahi-4-poll.patch
new file mode 100644
index 000000000..189e83da6
--- /dev/null
+++ b/~mtjm/cups-usblp/cups-avahi-4-poll.patch
@@ -0,0 +1,529 @@
+diff -up cups-1.5.0/scheduler/avahi.c.avahi-4-poll cups-1.5.0/scheduler/avahi.c
+--- cups-1.5.0/scheduler/avahi.c.avahi-4-poll 2011-10-11 10:56:50.102288037 +0100
++++ cups-1.5.0/scheduler/avahi.c 2011-10-11 10:56:50.102288037 +0100
+@@ -0,0 +1,441 @@
++/*
++ * "$Id$"
++ *
++ * Avahi poll implementation for the CUPS scheduler.
++ *
++ * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ * Contents:
++ *
++ * watch_read_cb - Read callback for file descriptor
++ * watch_write_cb - Write callback for file descriptor
++ * watched_fd_add_select() - Call cupsdAddSelect() as needed
++ * watch_new() - Create a new file descriptor watch
++ * watch_free() - Free a file descriptor watch
++ * watch_update() - Update watched events for a file descriptor
++ * watch_get_events() - Get events that happened for a file descriptor
++ * timeout_cb() - Run a timed Avahi callback
++ * timeout_new() - Set a wakeup time
++ * timeout_update() - Update the expiration time for a timeout
++ * timeout_free() - Free a timeout
++ * compare_watched_fds() - Compare watched file descriptors for array sorting
++ * avahi_cups_poll_new() - Create a new Avahi main loop object for CUPS
++ * avahi_cups_poll_free() - Free an Avahi main loop object for CUPS
++ * avahi_cups_poll_get() - Get the abstract poll API structure
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI /* Applies to entire file... */
++
++/*
++ * Include necessary headers...
++ */
++
++#include "cupsd.h"
++
++#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
++# include <malloc.h>
++#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
++
++#ifdef HAVE_AVAHI
++# include <avahi-common/timeval.h>
++#endif /* HAVE_AVAHI */
++
++
++typedef struct
++{
++ AvahiCupsPoll *cups_poll;
++
++ int fd;
++ AvahiWatchEvent occurred;
++ cups_array_t *watches;
++} cupsd_watched_fd_t;
++
++struct AvahiWatch
++{
++ cupsd_watched_fd_t *watched_fd;
++
++ AvahiWatchEvent events;
++ AvahiWatchCallback callback;
++ void *userdata;
++};
++
++struct AvahiTimeout
++{
++ AvahiCupsPoll *cups_poll;
++ AvahiTimeoutCallback callback;
++ void *userdata;
++ cupsd_timeout_t *cupsd_timeout;
++};
++
++/*
++ * Local functions...
++ */
++
++static AvahiWatch * watch_new(const AvahiPoll *api,
++ int fd,
++ AvahiWatchEvent events,
++ AvahiWatchCallback callback,
++ void *userdata);
++static void watch_free(AvahiWatch *watch);
++static void watch_update(AvahiWatch *watch,
++ AvahiWatchEvent events);
++static AvahiWatchEvent watch_get_events(AvahiWatch *watch);
++
++
++/*
++ * 'watch_read_cb' - Read callback for file descriptor
++ */
++
++static void
++watch_read_cb (void *userdata)
++{
++ AvahiWatch *watch;
++ cupsd_watched_fd_t *watched_fd = userdata;
++ watched_fd->occurred |= AVAHI_WATCH_IN;
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
++ {
++ if (watch->events & watched_fd->occurred)
++ {
++ (watch->callback) (watch, watched_fd->fd,
++ AVAHI_WATCH_IN, watch->userdata);
++ watched_fd->occurred &= ~AVAHI_WATCH_IN;
++ break;
++ }
++ }
++}
++
++
++/*
++ * 'watch_write_cb' - Write callback for file descriptor
++ */
++
++static void
++watch_write_cb (void *userdata)
++{
++ AvahiWatch *watch;
++ cupsd_watched_fd_t *watched_fd = userdata;
++ watched_fd->occurred |= AVAHI_WATCH_OUT;
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
++ {
++ if (watch->events & watched_fd->occurred)
++ {
++ (watch->callback) (watch, watched_fd->fd,
++ AVAHI_WATCH_OUT, watch->userdata);
++ watched_fd->occurred &= ~AVAHI_WATCH_OUT;
++ break;
++ }
++ }
++}
++
++
++/*
++ * 'watched_fd_add_select' - Call cupsdAddSelect() as needed
++ */
++
++static int /* O - Watches? */
++watched_fd_add_select (cupsd_watched_fd_t *watched_fd)
++{
++ AvahiWatch *watch;
++ cupsd_selfunc_t read_cb = NULL, write_cb = NULL;
++ int any_watches = 0;
++
++ for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
++ watch;
++ watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
++ {
++ any_watches = 1;
++ if (watch->events & (AVAHI_WATCH_IN |
++ AVAHI_WATCH_ERR |
++ AVAHI_WATCH_HUP))
++ {
++ read_cb = (cupsd_selfunc_t)watch_read_cb;
++ if (write_cb != NULL)
++ break;
++ }
++
++ if (watch->events & AVAHI_WATCH_OUT)
++ {
++ write_cb = (cupsd_selfunc_t)watch_write_cb;
++ if (read_cb != NULL)
++ break;
++ }
++ }
++
++ if (read_cb || write_cb)
++ cupsdAddSelect (watched_fd->fd, read_cb, write_cb, watched_fd);
++ else
++ cupsdRemoveSelect (watched_fd->fd);
++
++ return (any_watches);
++}
++
++/*
++ * 'watch_new' - Create a new file descriptor watch
++ */
++
++static AvahiWatch *
++watch_new (const AvahiPoll *api,
++ int fd,
++ AvahiWatchEvent events,
++ AvahiWatchCallback callback,
++ void *userdata)
++{
++ cupsd_watched_fd_t key, *watched_fd;
++ AvahiCupsPoll *cups_poll = api->userdata;
++ AvahiWatch *watch = malloc(sizeof(AvahiWatch));
++ if (watch == NULL)
++ return (NULL);
++
++ watch->events = events;
++ watch->callback = callback;
++ watch->userdata = userdata;
++
++ key.fd = fd;
++ watched_fd = cupsArrayFind (cups_poll->watched_fds, &key);
++ if (watched_fd == NULL)
++ {
++ watched_fd = malloc(sizeof(cupsd_watched_fd_t));
++ if (watched_fd == NULL)
++ {
++ free (watch);
++ return (NULL);
++ }
++
++ watched_fd->fd = fd;
++ watched_fd->occurred = 0;
++ watched_fd->cups_poll = cups_poll;
++ watched_fd->watches = cupsArrayNew (NULL, NULL);
++ cupsArrayAdd (cups_poll->watched_fds, watched_fd);
++ }
++
++ watch->watched_fd = watched_fd;
++ cupsArrayAdd(watched_fd->watches, watch);
++ watched_fd_add_select (watched_fd);
++ return (watch);
++}
++
++
++/*
++ * 'watch_free' - Free a file descriptor watch
++ */
++
++static void
++watch_free (AvahiWatch *watch)
++{
++ cupsd_watched_fd_t *watched_fd = watch->watched_fd;
++ AvahiCupsPoll *cups_poll = watched_fd->cups_poll;
++
++ cupsArrayRemove (watched_fd->watches, watch);
++ free (watch);
++
++ if (!watched_fd_add_select (watched_fd))
++ {
++ /* No more watches */
++ cupsArrayRemove (cups_poll->watched_fds, watched_fd);
++ free (watched_fd);
++ }
++}
++
++
++/*
++ * 'watch_update' - Update watched events for a file descriptor
++ */
++
++static void
++watch_update (AvahiWatch *watch,
++ AvahiWatchEvent events)
++{
++ watch->events = events;
++ watched_fd_add_select (watch->watched_fd);
++}
++
++
++/*
++ * 'watch_get_events' - Get events that happened for a file descriptor
++ */
++
++static AvahiWatchEvent
++watch_get_events (AvahiWatch *watch)
++{
++ return (watch->watched_fd->occurred);
++}
++
++
++/*
++ * 'timeout_cb()' - Run a timed Avahi callback
++ */
++
++static void
++timeout_cb (cupsd_timeout_t *cupsd_timeout, void *userdata)
++{
++ AvahiTimeout *timeout = userdata;
++ (timeout->callback) (timeout, timeout->userdata);
++}
++
++
++/*
++ * 'timeout_new' - Set a wakeup time
++ */
++
++static AvahiTimeout *
++timeout_new (const AvahiPoll *api,
++ const struct timeval *tv,
++ AvahiTimeoutCallback callback,
++ void *userdata)
++{
++ AvahiTimeout *timeout;
++ AvahiCupsPoll *cups_poll = api->userdata;
++
++ timeout = malloc(sizeof(AvahiTimeout));
++ if (timeout == NULL)
++ return (NULL);
++
++ timeout->cups_poll = cups_poll;
++ timeout->callback = callback;
++ timeout->userdata = userdata;
++ timeout->cupsd_timeout = cupsdAddTimeout (tv,
++ (cupsd_timeoutfunc_t)timeout_cb,
++ timeout);
++ cupsArrayAdd (cups_poll->timeouts, timeout);
++ return (timeout);
++}
++
++
++/*
++ * 'timeout_update' - Update the expiration time for a timeout
++ */
++
++static void
++timeout_update (AvahiTimeout *timeout,
++ const struct timeval *tv)
++{
++ cupsdUpdateTimeout (timeout->cupsd_timeout, tv);
++}
++
++
++/*
++ * ' timeout_free' - Free a timeout
++ */
++
++static void
++timeout_free (AvahiTimeout *timeout)
++{
++ cupsArrayRemove (timeout->cups_poll->timeouts, timeout);
++ cupsdRemoveTimeout (timeout->cupsd_timeout);
++ free (timeout);
++}
++
++
++/*
++ * 'compare_watched_fds' - Compare watched file descriptors for array sorting
++ */
++static int
++compare_watched_fds(cupsd_watched_fd_t *p0,
++ cupsd_watched_fd_t *p1)
++{
++ /*
++ * Compare by fd (no two elements have the same fd)
++ */
++
++ if (p0->fd == p1->fd)
++ return 0;
++
++ return (p0->fd < p1->fd ? -1 : 1);
++}
++
++
++/*
++ * 'avahi_cups_poll_new' - Create a new Avahi main loop object for CUPS
++ */
++
++AvahiCupsPoll *
++avahi_cups_poll_new (void)
++{
++ AvahiCupsPoll *cups_poll = malloc(sizeof(AvahiCupsPoll));
++ if (cups_poll == NULL)
++ return (NULL);
++
++ cups_poll->watched_fds = cupsArrayNew ((cups_array_func_t)compare_watched_fds,
++ NULL);
++ cups_poll->timeouts = cupsArrayNew (NULL, NULL);
++
++ cups_poll->api.userdata = cups_poll;
++ cups_poll->api.watch_new = watch_new;
++ cups_poll->api.watch_free = watch_free;
++ cups_poll->api.watch_update = watch_update;
++ cups_poll->api.watch_get_events = watch_get_events;
++
++ cups_poll->api.timeout_new = timeout_new;
++ cups_poll->api.timeout_update = timeout_update;
++ cups_poll->api.timeout_free = timeout_free;
++
++ return (cups_poll);
++}
++
++
++/*
++ * 'avahi_cups_poll_free' - Free an Avahi main loop object for CUPS
++ */
++void
++avahi_cups_poll_free (AvahiCupsPoll *cups_poll)
++{
++ cupsd_watched_fd_t *watched_fd;
++
++ for (watched_fd = (cupsd_watched_fd_t*)cupsArrayFirst(cups_poll->watched_fds);
++ watched_fd;
++ watched_fd = (cupsd_watched_fd_t*)cupsArrayNext(cups_poll->watched_fds))
++ cupsArrayClear (watched_fd->watches);
++
++ cupsArrayClear (cups_poll->watched_fds);
++ cupsArrayClear (cups_poll->timeouts);
++}
++
++
++/*
++ * 'avahi_cups_poll_get' - Get the abstract poll API structure
++ */
++
++const AvahiPoll *
++avahi_cups_poll_get (AvahiCupsPoll *cups_poll)
++{
++ return (&cups_poll->api);
++}
++
++
++#endif /* HAVE_AVAHI ... from top of file */
++
++/*
++ * End of "$Id$".
++ */
+diff -up cups-1.5.0/scheduler/avahi.h.avahi-4-poll cups-1.5.0/scheduler/avahi.h
+--- cups-1.5.0/scheduler/avahi.h.avahi-4-poll 2011-10-11 10:56:50.102288037 +0100
++++ cups-1.5.0/scheduler/avahi.h 2011-10-11 10:56:50.119287724 +0100
+@@ -0,0 +1,69 @@
++/*
++ * "$Id$"
++ *
++ * Avahi poll implementation for the CUPS scheduler.
++ *
++ * Copyright (C) 2010, 2011 Red Hat, Inc.
++ * Authors:
++ * Tim Waugh <twaugh@redhat.com>
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
++ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
++ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ */
++
++#include <config.h>
++
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/publish.h>
++#endif /* HAVE_AVAHI */
++
++#ifdef HAVE_AUTHORIZATION_H
++# include <Security/Authorization.h>
++#endif /* HAVE_AUTHORIZATION_H */
++
++
++#ifdef HAVE_AVAHI
++typedef struct
++{
++ AvahiPoll api;
++ cups_array_t *watched_fds;
++ cups_array_t *timeouts;
++} AvahiCupsPoll;
++#endif /* HAVE_AVAHI */
++
++/*
++ * Prototypes...
++ */
++
++#ifdef HAVE_AVAHI
++extern AvahiCupsPoll * avahi_cups_poll_new(void);
++extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
++extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * End of "$Id$".
++ */
+diff -up cups-1.5.0/scheduler/Makefile.avahi-4-poll cups-1.5.0/scheduler/Makefile
+--- cups-1.5.0/scheduler/Makefile.avahi-4-poll 2011-10-11 10:56:45.868365861 +0100
++++ cups-1.5.0/scheduler/Makefile 2011-10-11 10:56:50.101288055 +0100
+@@ -17,6 +17,7 @@ include ../Makedefs
+
+ CUPSDOBJS = \
+ auth.o \
++ avahi.o \
+ banners.o \
+ cert.o \
+ classes.o \
diff --git a/~mtjm/cups-usblp/cups-avahi-5-services.patch b/~mtjm/cups-usblp/cups-avahi-5-services.patch
new file mode 100644
index 000000000..9713bbc53
--- /dev/null
+++ b/~mtjm/cups-usblp/cups-avahi-5-services.patch
@@ -0,0 +1,1191 @@
+diff -up cups-1.5.0/cgi-bin/admin.c.avahi-5-services cups-1.5.0/cgi-bin/admin.c
+--- cups-1.5.0/cgi-bin/admin.c.avahi-5-services 2011-05-20 04:49:49.000000000 +0100
++++ cups-1.5.0/cgi-bin/admin.c 2011-10-19 11:53:32.123177998 +0100
+@@ -1643,7 +1643,7 @@ do_config_server(http_t *http) /* I - H
+ else
+ local_protocols[0] = '\0';
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (cgiGetVariable("BROWSE_LOCAL_DNSSD"))
+ {
+ if (local_protocols[0])
+@@ -1651,7 +1651,7 @@ do_config_server(http_t *http) /* I - H
+ else
+ strcat(local_protocols, "dnssd");
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LDAP
+ if (cgiGetVariable("BROWSE_LOCAL_LDAP"))
+@@ -2718,9 +2718,9 @@ do_menu(http_t *http) /* I - HTTP conn
+ #endif /* HAVE_GSSAPI */
+ cgiSetVariable("KERBEROS", "");
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cgiSetVariable("HAVE_DNSSD", "1");
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LDAP
+ cgiSetVariable("HAVE_LDAP", "1");
+diff -up cups-1.5.0/scheduler/client.c.avahi-5-services cups-1.5.0/scheduler/client.c
+--- cups-1.5.0/scheduler/client.c.avahi-5-services 2011-06-10 22:16:18.000000000 +0100
++++ cups-1.5.0/scheduler/client.c 2011-10-19 11:53:32.127177926 +0100
+@@ -4987,7 +4987,7 @@ valid_host(cupsd_client_t *con) /* I -
+ !strncmp(host, "[::1]:", 6));
+ }
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * Check if the hostname is something.local (Bonjour); if so, allow it.
+ */
+@@ -4996,7 +4996,7 @@ valid_host(cupsd_client_t *con) /* I -
+ (!_cups_strcasecmp(end, ".local") || !_cups_strncasecmp(end, ".local:", 7) ||
+ !_cups_strcasecmp(end, ".local.") || !_cups_strncasecmp(end, ".local.:", 8)))
+ return (1);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ /*
+ * Check if the hostname is an IP address...
+diff -up cups-1.5.0/scheduler/conf.c.avahi-5-services cups-1.5.0/scheduler/conf.c
+--- cups-1.5.0/scheduler/conf.c.avahi-5-services 2011-10-19 11:53:31.895182225 +0100
++++ cups-1.5.0/scheduler/conf.c 2011-10-19 11:53:32.131177850 +0100
+@@ -651,7 +651,7 @@ cupsdReadConfiguration(void)
+ Browsing = CUPS_DEFAULT_BROWSING;
+ DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
+ #endif /* HAVE_DNSSD */
+
+diff -up cups-1.5.0/scheduler/dirsvc.c.avahi-5-services cups-1.5.0/scheduler/dirsvc.c
+--- cups-1.5.0/scheduler/dirsvc.c.avahi-5-services 2011-10-19 11:53:32.011180075 +0100
++++ cups-1.5.0/scheduler/dirsvc.c 2011-10-19 11:53:58.916681461 +0100
+@@ -27,6 +27,7 @@
+ * ldap_connect() - Start new LDAP connection
+ * ldap_reconnect() - Reconnect to LDAP Server
+ * ldap_disconnect() - Disconnect from LDAP Server
++ * cupsdStartAvahiClient() - Start an Avahi client if needed
+ * cupsdStartBrowsing() - Start sending and receiving broadcast
+ * information.
+ * cupsdStartPolling() - Start polling servers as needed.
+@@ -40,11 +41,12 @@
+ * dequote() - Remote quotes from a string.
+ * dnssdAddAlias() - Add a DNS-SD alias name.
+ * dnssdBuildTxtRecord() - Build a TXT record from printer info.
+- * dnssdComparePrinters() - Compare the registered names of two printers.
+ * dnssdDeregisterPrinter() - Stop sending broadcast information for a
+ * printer.
+ * dnssdPackTxtRecord() - Pack an array of key/value pairs into the TXT
+ * record format.
++ * avahiPackTxtRecord() - Pack an array of key/value pairs into an
++ * AvahiStringList.
+ * dnssdRegisterCallback() - DNSServiceRegister callback.
+ * dnssdRegisterPrinter() - Start sending broadcast information for a
+ * printer or update the broadcast contents.
+@@ -83,6 +85,7 @@
+ */
+
+ #include "cupsd.h"
++#include <assert.h>
+ #include <grp.h>
+
+ #ifdef HAVE_DNSSD
+@@ -97,6 +100,17 @@
+ # endif /* HAVE_SYSTEMCONFIGURATION */
+ # endif /* __APPLE__ */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-common/domain.h>
++#endif /* HAVE_AVAHI */
++
++
++#ifdef HAVE_DNSSD
++typedef char *cupsd_txt_record_t;
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++typedef AvahiStringList *cupsd_txt_record_t;
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -159,27 +173,38 @@ static void update_polling(void);
+ static void update_smb(int onoff);
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++static cupsd_txt_record_t dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
++ int for_lpd);
++static void dnssdDeregisterPrinter(cupsd_printer_t *p);
++static void dnssdRegisterPrinter(cupsd_printer_t *p);
++static void dnssdStop(void);
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++
+ #ifdef HAVE_DNSSD
+ # ifdef HAVE_COREFOUNDATION
+ static void dnssdAddAlias(const void *key, const void *value,
+ void *context);
+ # endif /* HAVE_COREFOUNDATION */
+-static char *dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
+- int for_lpd);
+-static int dnssdComparePrinters(cupsd_printer_t *a, cupsd_printer_t *b);
+-static void dnssdDeregisterPrinter(cupsd_printer_t *p);
+-static char *dnssdPackTxtRecord(int *txt_len, char *keyvalue[][2],
+- int count);
+ static void dnssdRegisterCallback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ DNSServiceErrorType errorCode,
+ const char *name, const char *regtype,
+ const char *domain, void *context);
+-static void dnssdRegisterPrinter(cupsd_printer_t *p);
+-static void dnssdStop(void);
+ static void dnssdUpdate(void);
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static AvahiStringList *avahiPackTxtRecord(char *keyvalue[][2],
++ int count);
++static void avahi_entry_group_cb (AvahiEntryGroup *group,
++ AvahiEntryGroupState state,
++ void *userdata);
++static void avahi_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *userdata);
++#endif /* HAVE_AVAHI */
++
+ #ifdef HAVE_LDAP
+ static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
+ {
+@@ -283,10 +308,10 @@ cupsdDeregisterPrinter(
+ ldap_dereg_printer(p);
+ #endif /* HAVE_LDAP */
+
+-#ifdef HAVE_DNSSD
+- if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdDeregisterPrinter(p);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+@@ -702,10 +727,10 @@ cupsdRegisterPrinter(cupsd_printer_t *p)
+ slpRegisterPrinter(p); */
+ #endif /* HAVE_LIBSLP */
+
+-#ifdef HAVE_DNSSD
+- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if ((BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdRegisterPrinter(p);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+@@ -1419,6 +1444,36 @@ ldap_disconnect(LDAP *ld) /* I - LDAP h
+ #endif /* HAVE_LDAP */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'cupsdStartAvahiClient()' - Start an Avahi client if needed
++ */
++
++void
++cupsdStartAvahiClient(void)
++{
++ int error = 0;
++
++ if (!AvahiCupsClient && !AvahiCupsClientConnecting)
++ {
++ if (!AvahiCupsPollHandle)
++ AvahiCupsPollHandle = avahi_cups_poll_new ();
++
++ if (AvahiCupsPollHandle)
++ {
++ if (avahi_client_new (avahi_cups_poll_get (AvahiCupsPollHandle),
++ AVAHI_CLIENT_NO_FAIL,
++ avahi_client_cb, NULL,
++ &error) != NULL)
++ AvahiCupsClientConnecting = 1;
++ else
++ cupsdLogMessage (CUPSD_LOG_WARN, "Avahi client failed: %d", error);
++ }
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * 'cupsdStartBrowsing()' - Start sending and receiving broadcast information.
+ */
+@@ -1542,13 +1597,16 @@ cupsdStartBrowsing(void)
+ else
+ BrowseSocket = -1;
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_DNSSD)
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
++#endif /* HAVE_DNSSD */
+ cupsd_listener_t *lis; /* Current listening socket */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * First create a "master" connection for all registrations...
+ */
+@@ -1573,6 +1631,7 @@ cupsdStartBrowsing(void)
+ fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
+
+ cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Then get the port we use for registrations. If we are not listening
+@@ -1598,17 +1657,23 @@ cupsdStartBrowsing(void)
+ */
+
+ if (BrowseRemoteProtocols & BROWSE_DNSSD)
+- DNSSDPrinters = cupsArrayNew((cups_array_func_t)dnssdComparePrinters,
+- NULL);
++ DNSSDPrinters = cupsArrayNew(NULL, NULL);
+
+ /*
+ * Set the computer name and register the web interface...
+ */
+
+ cupsdUpdateDNSSDName();
++
++#ifdef HAVE_AVAHI
++ cupsdStartAvahiClient ();
++#endif /* HAVE_AVAHI */
++
++#ifdef HAVE_DNSSD
+ }
+- }
+ #endif /* HAVE_DNSSD */
++ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LIBSLP
+ if ((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP)
+@@ -1834,10 +1899,10 @@ cupsdStopBrowsing(void)
+ BrowseSocket = -1;
+ }
+
+-#ifdef HAVE_DNSSD
+- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ if ((BrowseLocalProtocols & BROWSE_DNSSD))
+ dnssdStop();
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ #ifdef HAVE_LIBSLP
+ if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_SLP) &&
+@@ -1902,7 +1967,7 @@ cupsdStopPolling(void)
+ }
+
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
+ */
+@@ -1910,8 +1975,14 @@ cupsdStopPolling(void)
+ void
+ cupsdUpdateDNSSDName(void)
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
+ char webif[1024]; /* Web interface share name */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int ret; /* Error from service creation */
++ char webif[AVAHI_LABEL_MAX]; /* Web interface share name */
++#endif /* HAVE_AVAHI */
+ # ifdef HAVE_SYSTEMCONFIGURATION
+ SCDynamicStoreRef sc; /* Context for dynamic store */
+ CFDictionaryRef btmm; /* Back-to-My-Mac domains */
+@@ -2042,6 +2113,7 @@ cupsdUpdateDNSSDName(void)
+ else
+ strlcpy(webif, "CUPS Web Interface", sizeof(webif));
+
++#ifdef HAVE_DNSSD
+ if (WebIFRef)
+ DNSServiceRefDeallocate(WebIFRef);
+
+@@ -2054,9 +2126,45 @@ cupsdUpdateDNSSDName(void)
+ NULL)) != kDNSServiceErr_NoError)
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "DNS-SD web interface registration failed: %d", error);
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++ if (!AvahiCupsClient)
++ /*
++ * Client not yet running.
++ */
++ return;
++
++ if (AvahiWebIFGroup)
++ avahi_entry_group_reset (AvahiWebIFGroup);
++ else
++ AvahiWebIFGroup = avahi_entry_group_new (AvahiCupsClient,
++ avahi_entry_group_cb,
++ NULL);
++
++ if (AvahiWebIFGroup)
++ {
++ ret = avahi_entry_group_add_service (AvahiWebIFGroup,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, /* flags */
++ webif, /* name */
++ "_http._tcp", /* type */
++ NULL, /* domain */
++ NULL, /* host */
++ DNSSDPort, /* port */
++ "path=/", NULL);
++ if (ret == 0)
++ ret = avahi_entry_group_commit (AvahiWebIFGroup);
++
++ if (ret != 0)
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Avahi web interface registration failed: %d", ret);
++ }
++#endif /* HAVE_AVAHI */
+ }
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
+ #ifdef HAVE_LDAP
+@@ -2334,13 +2442,15 @@ dnssdAddAlias(const void *key, /* I - K
+ "Bad Back to My Mac domain in dynamic store!");
+ }
+ # endif /* HAVE_COREFOUNDATION */
++#endif /* HAVE_DNSSD */
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'dnssdBuildTxtRecord()' - Build a TXT record from printer info.
+ */
+
+-static char * /* O - TXT record */
++static cupsd_txt_record_t /* O - TXT record */
+ dnssdBuildTxtRecord(
+ int *txt_len, /* O - TXT record length */
+ cupsd_printer_t *p, /* I - Printer information */
+@@ -2379,7 +2489,12 @@ dnssdBuildTxtRecord(
+ keyvalue[i ][0] = "ty";
+ keyvalue[i++][1] = p->make_model ? p->make_model : "Unknown";
+
+- snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.", DNSSDHostName);
++ snprintf(admin_hostname, sizeof(admin_hostname),
++ "%s.local"
++#ifdef HAVE_DNSSD
++ "." /* terminating dot no good for Avahi */
++#endif /* HAVE_DNSSD */
++ , DNSSDHostName);
+ httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
+ "http", NULL, admin_hostname, DNSSDPort, "/%s/%s",
+ (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
+@@ -2462,19 +2577,12 @@ dnssdBuildTxtRecord(
+ * Then pack them into a proper txt record...
+ */
+
++#ifdef HAVE_DNSSD
+ return (dnssdPackTxtRecord(txt_len, keyvalue, i));
+-}
+-
+-
+-/*
+- * 'dnssdComparePrinters()' - Compare the registered names of two printers.
+- */
+-
+-static int /* O - Result of comparison */
+-dnssdComparePrinters(cupsd_printer_t *a,/* I - First printer */
+- cupsd_printer_t *b)/* I - Second printer */
+-{
+- return (_cups_strcasecmp(a->reg_name, b->reg_name));
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ return (avahiPackTxtRecord(keyvalue, i));
++#endif /* HAVE_AVAHI */
+ }
+
+
+@@ -2489,6 +2597,10 @@ dnssdDeregisterPrinter(
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++
+ /*
+ * Closing the socket deregisters the service
+ */
+@@ -2524,6 +2636,24 @@ dnssdDeregisterPrinter(
+ free(p->printer_txt);
+ p->printer_txt = NULL;
+ }
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++ if (p->avahi_group)
++ {
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++
++ if (p->ipp_txt)
++ avahi_string_list_free (p->ipp_txt);
++
++ if (p->printer_txt)
++ avahi_string_list_free (p->printer_txt);
++
++ p->ipp_txt = p->printer_txt = NULL;
++ }
++#endif /* HAVE_AVAHI */
+
+ /*
+ * Remove the printer from the array of DNS-SD printers, then clear the
+@@ -2533,8 +2663,10 @@ dnssdDeregisterPrinter(
+ cupsArrayRemove(DNSSDPrinters, p);
+ cupsdClearString(&p->reg_name);
+ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'dnssdPackTxtRecord()' - Pack an array of key/value pairs into the
+ * TXT record format.
+@@ -2644,8 +2776,10 @@ dnssdRegisterCallback(
+ LastEvent |= CUPSD_EVENT_PRINTER_MODIFIED;
+ }
+ }
++#endif /* HAVE_DNSSD */
+
+
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ /*
+ * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
+ * or update the broadcast contents.
+@@ -2654,20 +2788,40 @@ dnssdRegisterCallback(
+ static void
+ dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType se; /* dnssd errors */
+ char *ipp_txt, /* IPP TXT record buffer */
+ *printer_txt, /* LPD TXT record buffer */
+- name[1024], /* Service name */
+- *nameptr; /* Pointer into name */
++ name[1024]; /* Service name */
+ int ipp_len, /* IPP TXT record length */
+ printer_len, /* LPD TXT record length */
+ printer_port; /* LPD port number */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int ret; /* Error code */
++ AvahiStringList *ipp_txt, /* IPP TXT record */
++ *printer_txt; /* LPD TXT record */
++ char name[AVAHI_LABEL_MAX], /* Service name */
++ fullsubtype[AVAHI_LABEL_MAX]; /* Full subtype */
++ char *regtype_copy, /* Writeable copy of reg type */
++ *subtype, /* Current service sub type */
++ *nextsubtype; /* Next service sub type */
++#endif /* HAVE_AVAHI */
++ char *nameptr; /* Pointer into name */
+ const char *regtype; /* Registration type */
+
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
+ !p->ipp_ref ? "new" : "update");
+-
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
++ !p->avahi_group ? "new" : "update");
++#endif /* HAVE_AVAHI */
+ /*
+ * If per-printer sharing was just disabled make sure we're not
+ * registered before returning.
+@@ -2686,12 +2840,36 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
+ if (p->info && strlen(p->info) > 0)
+ {
+ if (DNSSDComputerName)
+- snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
++ {
++ /*
++ * Make sure there is room for at least 15 characters of
++ * DNSSDComputerName.
++ */
++
++ assert(sizeof(name) >= 15 + 4);
++ nameptr = name + strlcpy(name, p->info,
++ sizeof(name) - 4 -
++ strnlen(DNSSDComputerName, 15));
++ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
++ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
++ }
+ else
+ strlcpy(name, p->info, sizeof(name));
+ }
+ else if (DNSSDComputerName)
+- snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
++ {
++ /*
++ * Make sure there is room for at least 15 characters of
++ * DNSSDComputerName.
++ */
++
++ assert(sizeof(name) >= 15 + 4);
++ nameptr = name + strlcpy(name, p->info,
++ sizeof(name) - 4 -
++ strnlen(DNSSDComputerName, 15));
++ nameptr += strlcpy(nameptr, " @ ", sizeof(name) - (nameptr - name));
++ strlcpy(nameptr, DNSSDComputerName, sizeof(name) - (nameptr - name));
++ }
+ else
+ strlcpy(name, p->name, sizeof(name));
+
+@@ -2712,6 +2890,7 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
+ * Register IPP and (optionally) LPD...
+ */
+
++#ifdef HAVE_DNSSD
+ ipp_len = 0; /* anti-compiler-warning-code */
+ ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
+
+@@ -2884,6 +3063,209 @@ dnssdRegisterPrinter(cupsd_printer_t *p)
+
+ if (printer_txt)
+ free(printer_txt);
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (!AvahiCupsClient)
++ /*
++ * Client not running yet. The client callback will call us again later.
++ */
++ return;
++
++ ipp_txt = dnssdBuildTxtRecord(NULL, p, 0);
++ printer_txt = dnssdBuildTxtRecord(NULL, p, 1);
++ regtype = (p->type & CUPS_PRINTER_FAX) ? "_fax-ipp._tcp" : DNSSDRegType;
++
++ if (p->avahi_group && p->ipp_txt && ipp_txt &&
++ !avahi_string_list_equal (p->ipp_txt, ipp_txt))
++ {
++ /*
++ * Update the existing registration...
++ */
++
++ avahi_string_list_free (p->ipp_txt);
++
++ if (p->printer_txt)
++ avahi_string_list_free (p->printer_txt);
++
++ /*
++ * Update the service group entry.
++ */
++
++ regtype_copy = strdup (regtype);
++ subtype = strchr (regtype_copy, ',');
++ if (subtype)
++ *subtype = '\0';
++
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Updating TXT record for %s (%s)", name, regtype_copy);
++ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ regtype_copy,
++ NULL, ipp_txt);
++ free (regtype_copy);
++
++ if (ret < 0)
++ goto update_failed;
++
++ p->ipp_txt = ipp_txt;
++ ipp_txt = NULL;
++
++ if (BrowseLocalProtocols & BROWSE_LPD)
++ {
++ ret = avahi_entry_group_update_service_txt_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ "_printer._tcp", NULL,
++ printer_txt);
++ if (ret < 0)
++ goto update_failed;
++
++ p->printer_txt = printer_txt;
++ printer_txt = NULL;
++ }
++
++ ret = avahi_entry_group_commit (p->avahi_group);
++ if (ret < 0)
++ {
++ update_failed:
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Failed to update TXT record for %s: %d",
++ name, ret);
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++ ipp_txt = p->ipp_txt;
++ p->ipp_txt = NULL;
++ }
++ }
++
++ if (!p->avahi_group)
++ {
++ /*
++ * Initial registration. Use the _fax subtype for fax queues...
++ */
++
++ p->avahi_group = avahi_entry_group_new (AvahiCupsClient,
++ avahi_entry_group_cb,
++ p);
++
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "Registering Avahi printer %s with name \"%s\" and "
++ "type \"%s\"", p->name, name, regtype);
++
++ if (!p->avahi_group)
++ {
++ ret = 0;
++ goto add_failed;
++ }
++
++ /*
++ * Add each service type (DNSSDRegType may contain several,
++ * separated by commas).
++ */
++
++ subtype = regtype_copy = strdup (regtype);
++ while (subtype && *subtype)
++ {
++ nextsubtype = strchr (subtype, ',');
++ if (nextsubtype)
++ *nextsubtype++ = '\0';
++
++ if (subtype == regtype_copy)
++ {
++ /*
++ * Main type entry.
++ */
++
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Adding TXT record for %s (%s)", name, regtype_copy);
++ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name, regtype_copy,
++ NULL, NULL,
++ DNSSDPort,
++ ipp_txt);
++ }
++ else
++ {
++ /*
++ * Sub-type entry.
++ */
++
++ snprintf (fullsubtype, sizeof(fullsubtype),
++ "%s._sub.%s", subtype, regtype_copy);
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Adding TXT record for %s (%s)", name, fullsubtype);
++ ret = avahi_entry_group_add_service_subtype (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ regtype_copy,
++ NULL, fullsubtype);
++ }
++
++ if (ret < 0)
++ {
++ free (regtype_copy);
++ goto add_failed;
++ }
++
++ subtype = nextsubtype;
++ }
++
++ free (regtype_copy);
++ p->ipp_txt = ipp_txt;
++ ipp_txt = NULL;
++
++ if (BrowseLocalProtocols & BROWSE_LPD)
++ {
++ cupsdLogMessage(CUPSD_LOG_DEBUG,
++ "Registering Avahi printer %s with name \"%s\" and "
++ "type \"_printer._tcp\"", p->name, name);
++
++ ret = avahi_entry_group_add_service_strlst (p->avahi_group,
++ AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ 0, name,
++ "_printer._tcp", NULL, NULL,
++ 515,
++ printer_txt);
++ if (ret < 0)
++ goto add_failed;
++
++ p->printer_txt = printer_txt;
++ printer_txt = NULL;
++ }
++
++ ret = avahi_entry_group_commit (p->avahi_group);
++
++ if (ret < 0)
++ {
++ add_failed:
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Failed to add Avahi entry for %s: %d",
++ name, ret);
++ if (p->avahi_group)
++ {
++ avahi_entry_group_reset (p->avahi_group);
++ avahi_entry_group_free (p->avahi_group);
++ p->avahi_group = NULL;
++ }
++ ipp_txt = p->ipp_txt;
++ p->ipp_txt = NULL;
++ }
++ }
++
++ if (ipp_txt)
++ avahi_string_list_free (ipp_txt);
++
++ if (printer_txt)
++ avahi_string_list_free (printer_txt);
++#endif /* HAVE_AVAHI */
+ }
+
+
+@@ -2896,6 +3278,10 @@ dnssdStop(void)
+ {
+ cupsd_printer_t *p; /* Current printer */
+
++#ifdef HAVE_DNSSD
++ if (!DNSSDRef)
++ return;
++#endif /* HAVE_DNSSD */
+
+ /*
+ * De-register the individual printers
+@@ -2906,6 +3292,7 @@ dnssdStop(void)
+ p = (cupsd_printer_t *)cupsArrayNext(Printers))
+ dnssdDeregisterPrinter(p);
+
++#ifdef HAVE_DNSSD
+ /*
+ * Shutdown the rest of the service refs...
+ */
+@@ -2926,14 +3313,17 @@ dnssdStop(void)
+
+ DNSServiceRefDeallocate(DNSSDRef);
+ DNSSDRef = NULL;
++#endif /* HAVE_DNSSD */
+
+ cupsArrayDelete(DNSSDPrinters);
+ DNSSDPrinters = NULL;
+
+ DNSSDPort = 0;
+ }
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+
++#ifdef HAVE_DNSSD
+ /*
+ * 'dnssdUpdate()' - Handle DNS-SD queries.
+ */
+@@ -2955,6 +3345,153 @@ dnssdUpdate(void)
+ #endif /* HAVE_DNSSD */
+
+
++#ifdef HAVE_AVAHI
++/*
++ * 'avahiPackTxtRecord()' - Pack an array of key/value pairs into an
++ * AvahiStringList.
++ */
++
++static AvahiStringList * /* O - new string list */
++avahiPackTxtRecord(char *keyvalue[][2], /* I - Table of key value pairs */
++ int count) /* I - Number of items in table */
++{
++ AvahiStringList *strlst = NULL;
++ char **elements;
++ size_t len;
++ int i = 0;
++
++ elements = malloc ((1 + count) * sizeof (char *));
++ if (!elements)
++ goto cleanup;
++
++ for (i = 0; i < count; i++)
++ {
++ len = (1 + strlen (keyvalue[i][0]) +
++ (keyvalue[i][1] ? 1 + strlen (keyvalue[i][1]) : 1));
++ elements[i] = malloc (len * sizeof (char));
++ if (!elements[i])
++ goto cleanup;
++
++ snprintf (elements[i], len, "%s=%s", keyvalue[i][0], keyvalue[i][1]);
++ }
++
++ strlst = avahi_string_list_new_from_array ((const char **) elements, count);
++
++cleanup:
++ while (--i >= 0)
++ free (elements[i]);
++
++ free (elements);
++ return (strlst);
++}
++
++
++/*
++ * 'avahi_entry_group_cb()' - Avahi entry group callback function.
++ */
++static void
++avahi_entry_group_cb (AvahiEntryGroup *group,
++ AvahiEntryGroupState state,
++ void *userdata)
++{
++ char *name;
++
++ if (userdata)
++ name = ((cupsd_printer_t *) userdata)->reg_name;
++ else
++ name = "CUPS web interface";
++
++ switch (state)
++ {
++ case AVAHI_ENTRY_GROUP_UNCOMMITED:
++ case AVAHI_ENTRY_GROUP_REGISTERING:
++ break;
++
++ case AVAHI_ENTRY_GROUP_ESTABLISHED:
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Avahi entry group established for %s", name);
++ break;
++
++ default:
++ cupsdLogMessage (CUPSD_LOG_DEBUG,
++ "Avahi entry group %s has state %d",
++ name, state);
++ break;
++ }
++}
++
++
++/*
++ * 'avahi_client_cb()' - Avahi client callback function.
++ */
++static void
++avahi_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *userdata)
++{
++ cupsd_printer_t *printer;
++ switch (state)
++ {
++ case AVAHI_CLIENT_S_RUNNING:
++ /*
++ * Avahi client started successfully.
++ */
++ AvahiCupsClient = client;
++ AvahiCupsClientConnecting = 0;
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client started");
++
++ cupsdUpdateDNSSDName ();
++
++ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ printer;
++ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
++ if (Browsing && (BrowseLocalProtocols & BROWSE_DNSSD) &&
++ (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT |
++ CUPS_PRINTER_SCANNER))) && printer->shared)
++ dnssdRegisterPrinter (printer);
++
++ break;
++
++ case AVAHI_CLIENT_CONNECTING:
++ /*
++ * No Avahi daemon, client is waiting.
++ */
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client connecting");
++ break;
++
++ case AVAHI_CLIENT_S_REGISTERING:
++ /*
++ * Not yet registered.
++ */
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client registering");
++ break;
++
++ case AVAHI_CLIENT_FAILURE:
++ /*
++ * Avahi client failed, close it to allow a clean restart.
++ */
++ cupsdLogMessage (CUPSD_LOG_ERROR,
++ "Avahi client failed, "
++ "closing client to allow a clean restart");
++
++ for (printer = (cupsd_printer_t *)cupsArrayFirst(Printers);
++ printer;
++ printer = (cupsd_printer_t *)cupsArrayNext(Printers))
++ dnssdDeregisterPrinter (printer);
++
++ avahi_client_free(client);
++ AvahiCupsClientConnecting = 0;
++ AvahiCupsClient = NULL;
++
++ break;
++
++ default:
++ cupsdLogMessage (CUPSD_LOG_DEBUG, "Avahi client state: %d", state);
++ }
++}
++#endif /* HAVE_AVAHI */
++
++
+ /*
+ * 'get_auth_info_required()' - Get the auth-info-required value to advertise.
+ */
+diff -up cups-1.5.0/scheduler/dirsvc.h.avahi-5-services cups-1.5.0/scheduler/dirsvc.h
+--- cups-1.5.0/scheduler/dirsvc.h.avahi-5-services 2011-03-21 02:12:14.000000000 +0000
++++ cups-1.5.0/scheduler/dirsvc.h 2011-10-19 11:53:32.138177721 +0100
+@@ -31,6 +31,10 @@
+ # endif /* HAVE_LDAP_SSL_H */
+ #endif /* HAVE_LDAP */
+
++#ifdef HAVE_AVAHI
++# include <avahi-client/publish.h>
++#endif /* HAVE_AVAHI */
++
+ /*
+ * Browse protocols...
+ */
+@@ -131,19 +135,22 @@ VAR int PollPipe VALUE(0);
+ VAR cupsd_statbuf_t *PollStatusBuffer VALUE(NULL);
+ /* Status buffer for pollers */
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ VAR char *DNSSDComputerName VALUE(NULL),
+ /* Computer/server name */
+ *DNSSDHostName VALUE(NULL),
+ /* Hostname */
+ *DNSSDRegType VALUE(NULL);
+ /* Bonjour registration type */
+-VAR cups_array_t *DNSSDAlias VALUE(NULL);
+- /* List of dynamic ServerAlias's */
+ VAR int DNSSDPort VALUE(0);
+ /* Port number to register */
+ VAR cups_array_t *DNSSDPrinters VALUE(NULL);
+ /* Printers we have registered */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++
++#ifdef HAVE_DNSSD
++VAR cups_array_t *DNSSDAlias VALUE(NULL);
++ /* List of dynamic ServerAlias's */
+ VAR DNSServiceRef DNSSDRef VALUE(NULL),
+ /* Master DNS-SD service reference */
+ WebIFRef VALUE(NULL),
+@@ -152,6 +159,17 @@ VAR DNSServiceRef DNSSDRef VALUE(NULL),
+ /* Remote printer browse reference */
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++VAR AvahiCupsPoll *AvahiCupsPollHandle VALUE(NULL);
++ /* AvahiCupsPoll object */
++VAR AvahiClient *AvahiCupsClient VALUE(NULL);
++ /* AvahiClient object */
++VAR int AvahiCupsClientConnecting VALUE(0);
++ /* Is AvahiClient object connecting? */
++VAR AvahiEntryGroup *AvahiWebIFGroup VALUE(NULL);
++ /* Web interface entry group */
++#endif /* HAVE_AVAHI */
++
+ #ifdef HAVE_LIBSLP
+ VAR SLPHandle BrowseSLPHandle VALUE(NULL);
+ /* SLP API handle */
+@@ -195,13 +213,14 @@ extern void cupsdRegisterPrinter(cupsd_p
+ extern void cupsdRestartPolling(void);
+ extern void cupsdSaveRemoteCache(void);
+ extern void cupsdSendBrowseList(void);
++extern void cupsdStartAvahiClient(void);
+ extern void cupsdStartBrowsing(void);
+ extern void cupsdStartPolling(void);
+ extern void cupsdStopBrowsing(void);
+ extern void cupsdStopPolling(void);
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ extern void cupsdUpdateDNSSDName(void);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ #ifdef HAVE_LDAP
+ extern void cupsdUpdateLDAPBrowse(void);
+ #endif /* HAVE_LDAP */
+diff -up cups-1.5.0/scheduler/ipp.c.avahi-5-services cups-1.5.0/scheduler/ipp.c
+--- cups-1.5.0/scheduler/ipp.c.avahi-5-services 2011-10-19 11:53:31.978180686 +0100
++++ cups-1.5.0/scheduler/ipp.c 2011-10-19 11:53:32.147177555 +0100
+@@ -6096,7 +6096,7 @@ copy_printer_attrs(
+ ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time",
+ ippTimeToDate(curtime));
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (!ra || cupsArrayFind(ra, "printer-dns-sd-name"))
+ {
+ if (printer->reg_name)
+@@ -6106,7 +6106,7 @@ copy_printer_attrs(
+ ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE,
+ "printer-dns-sd-name", 0);
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ if (!ra || cupsArrayFind(ra, "printer-error-policy"))
+ ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME,
+diff -up cups-1.5.0/scheduler/main.c.avahi-5-services cups-1.5.0/scheduler/main.c
+--- cups-1.5.0/scheduler/main.c.avahi-5-services 2011-10-19 11:53:32.101178406 +0100
++++ cups-1.5.0/scheduler/main.c 2011-10-19 11:53:32.151177479 +0100
+@@ -120,6 +120,10 @@ main(int argc, /* I - Number of comm
+ cupsd_listener_t *lis; /* Current listener */
+ time_t current_time, /* Current time */
+ activity, /* Client activity timer */
++#ifdef HAVE_AVAHI
++ avahi_client_time, /* Time for next Avahi client
++ check */
++#endif /* HAVE_AVAHI */
+ browse_time, /* Next browse send time */
+ senddoc_time, /* Send-Document time */
+ expire_time, /* Subscription expire time */
+@@ -672,6 +676,9 @@ main(int argc, /* I - Number of comm
+ */
+
+ current_time = time(NULL);
++#ifdef HAVE_AVAHI
++ avahi_client_time = current_time;
++#endif /* HAVE_AVAHI */
+ browse_time = current_time;
+ event_time = current_time;
+ expire_time = current_time;
+@@ -894,6 +901,16 @@ main(int argc, /* I - Number of comm
+ tmo = cupsdNextTimeout (&tmo_delay);
+ if (tmo && tmo_delay == 0)
+ cupsdRunTimeout (tmo);
++
++ /*
++ * Try to restart the Avahi client every 10 seconds if needed...
++ */
++
++ if ((current_time - avahi_client_time) >= 10)
++ {
++ avahi_client_time = current_time;
++ cupsdStartAvahiClient();
++ }
+ #endif /* HAVE_AVAHI */
+
+ #ifndef __APPLE__
+diff -up cups-1.5.0/scheduler/printers.c.avahi-5-services cups-1.5.0/scheduler/printers.c
+--- cups-1.5.0/scheduler/printers.c.avahi-5-services 2011-10-19 11:53:31.916181835 +0100
++++ cups-1.5.0/scheduler/printers.c 2011-10-19 11:53:32.156177388 +0100
+@@ -883,9 +883,9 @@ cupsdDeletePrinter(
+ cupsdClearString(&p->alert);
+ cupsdClearString(&p->alert_description);
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ cupsdClearString(&p->pdl);
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+
+ cupsArrayDelete(p->filetypes);
+
+@@ -3787,7 +3787,7 @@ add_printer_formats(cupsd_printer_t *p)
+ attr->values[i].string.text = _cupsStrAlloc(mimetype);
+ }
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ {
+ char pdl[1024]; /* Buffer to build pdl list */
+ mime_filter_t *filter; /* MIME filter looping var */
+@@ -3843,7 +3843,7 @@ add_printer_formats(cupsd_printer_t *p)
+
+ cupsdSetString(&p->pdl, pdl);
+ }
+-#endif /* HAVE_DNSSD */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
+ }
+
+
+diff -up cups-1.5.0/scheduler/printers.h.avahi-5-services cups-1.5.0/scheduler/printers.h
+--- cups-1.5.0/scheduler/printers.h.avahi-5-services 2011-03-18 18:42:46.000000000 +0000
++++ cups-1.5.0/scheduler/printers.h 2011-10-19 11:53:32.157177369 +0100
+@@ -16,6 +16,9 @@
+ #ifdef HAVE_DNSSD
+ # include <dns_sd.h>
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include "avahi.h"
++#endif /* HAVE_AVAHI */
+ #include <cups/pwg-private.h>
+
+
+@@ -95,16 +98,23 @@ struct cupsd_printer_s
+ time_t marker_time; /* Last time marker attributes were updated */
+ _ppd_cache_t *pc; /* PPD cache and mapping data */
+
+-#ifdef HAVE_DNSSD
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ char *reg_name, /* Name used for service registration */
+- *pdl, /* pdl value for TXT record */
+- *ipp_txt, /* IPP TXT record contents */
++ *pdl; /* pdl value for TXT record */
++#endif /* defined(HAVE_DNSSD) || defined(HAVE_AVAHI) */
++#ifdef HAVE_DNSSD
++ char *ipp_txt, /* IPP TXT record contents */
+ *printer_txt; /* LPD TXT record contents */
+ int ipp_len, /* IPP TXT record length */
+ printer_len; /* LPD TXT record length */
+ DNSServiceRef ipp_ref, /* Reference for _ipp._tcp,_cups */
+ printer_ref; /* Reference for _printer._tcp */
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ AvahiStringList *ipp_txt, /* IPP TXT record */
++ *printer_txt; /* LPD TXT record */
++ AvahiEntryGroup *avahi_group; /* Avahi entry group */
++#endif /* HAVE_AVAHI */
+ };
+
+
diff --git a/~mtjm/cups-usblp/cups-no-export-ssllibs.patch b/~mtjm/cups-usblp/cups-no-export-ssllibs.patch
new file mode 100644
index 000000000..9be3c819b
--- /dev/null
+++ b/~mtjm/cups-usblp/cups-no-export-ssllibs.patch
@@ -0,0 +1,12 @@
+diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/config-scripts/cups-ssl.m4
+--- cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs 2011-05-11 02:52:08.000000000 +0200
++++ cups-1.5b1/config-scripts/cups-ssl.m4 2011-05-23 17:47:27.000000000 +0200
+@@ -164,7 +164,7 @@ AC_SUBST(IPPALIASES)
+ AC_SUBST(SSLFLAGS)
+ AC_SUBST(SSLLIBS)
+
+-EXPORT_SSLLIBS="$SSLLIBS"
++EXPORT_SSLLIBS=""
+ AC_SUBST(EXPORT_SSLLIBS)
+
+
diff --git a/~mtjm/cups-usblp/cups-no-gcrypt.patch b/~mtjm/cups-usblp/cups-no-gcrypt.patch
new file mode 100644
index 000000000..42f71d0d4
--- /dev/null
+++ b/~mtjm/cups-usblp/cups-no-gcrypt.patch
@@ -0,0 +1,38 @@
+diff -ruN cups-1.4.7.orig//config-scripts/cups-ssl.m4 cups-1.4.7/config-scripts/cups-ssl.m4
+--- cups-1.5.0.orig//config-scripts/cups-ssl.m4 2011-01-11 08:05:58.000000000 +0100
++++ cups-1.5.0/config-scripts/cups-ssl.m4 2011-08-02 10:44:26.011047900 +0200
+@@ -96,7 +96,6 @@
+ dnl Then look for GNU TLS...
+ if test $have_ssl = 0 -a "x$enable_gnutls" != "xno" -a "x$PKGCONFIG" != x; then
+ AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
+- AC_PATH_PROG(LIBGCRYPTCONFIG,libgcrypt-config)
+ if $PKGCONFIG --exists gnutls; then
+ have_ssl=1
+ SSLLIBS=`$PKGCONFIG --libs gnutls`
+@@ -110,16 +109,6 @@
+ AC_DEFINE(HAVE_SSL)
+ AC_DEFINE(HAVE_GNUTLS)
+ fi
+-
+- if test $have_ssl = 1; then
+- if $PKGCONFIG --exists gcrypt; then
+- SSLLIBS="$SSLLIBS `$PKGCONFIG --libs gcrypt`"
+- SSLFLAGS="$SSLFLAGS `$PKGCONFIG --cflags gcrypt`"
+- elif test "x$LIBGCRYPTCONFIG" != x; then
+- SSLLIBS="$SSLLIBS `$LIBGCRYPTCONFIG --libs`"
+- SSLFLAGS="$SSLFLAGS `$LIBGCRYPTCONFIG --cflags`"
+- fi
+- fi
+ fi
+
+ dnl Check for the OpenSSL library last...
+--- cups-1.5.0.orig//cups/http-private.h 2011-01-22 01:07:22.000000000 +0100
++++ cups-1.5.0/cups/http-private.h 2011-08-02 10:42:43.341604107 +0200
+@@ -93,7 +93,6 @@
+ # elif defined HAVE_GNUTLS
+ # include <gnutls/gnutls.h>
+ # include <gnutls/x509.h>
+-# include <gcrypt.h>
+ # elif defined(HAVE_CDSASSL)
+ # include <CoreFoundation/CoreFoundation.h>
+ # include <Security/Security.h>
diff --git a/~mtjm/cups-usblp/cups.install b/~mtjm/cups-usblp/cups.install
new file mode 100644
index 000000000..47c3d9b82
--- /dev/null
+++ b/~mtjm/cups-usblp/cups.install
@@ -0,0 +1,26 @@
+post_install() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+ echo ">> If you use an HTTPS connection to CUPS, the first time you access"
+ echo ">> the interface it may take a very long time before the site comes up."
+ echo ">> This is because the first request triggers the generation of the CUPS"
+ echo ">> SSL certificates which can be a very time-consuming job."
+}
+
+post_upgrade() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+ if [ "`vercmp $2 1.4.7-2`" -lt 0 ]; then
+ # important upgrade notice
+ echo "daemon script has been renamed to /etc/rc.d/cupsd"
+ echo "change your entry in /etc/rc.conf"
+ fi
+}
+
+post_remove() {
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ fi
+}
diff --git a/~mtjm/cups-usblp/cups.logrotate b/~mtjm/cups-usblp/cups.logrotate
new file mode 100644
index 000000000..9c49bbdaf
--- /dev/null
+++ b/~mtjm/cups-usblp/cups.logrotate
@@ -0,0 +1,8 @@
+/var/log/cups/*log {
+ missingok
+ notifempty
+ delaycompress
+ postrotate
+ /bin/kill -HUP `cat /var/run/cups.pid 2>/dev/null` 2>/dev/null || true
+ endscript
+}
diff --git a/~mtjm/cups-usblp/cups.pam b/~mtjm/cups-usblp/cups.pam
new file mode 100644
index 000000000..53724d1f8
--- /dev/null
+++ b/~mtjm/cups-usblp/cups.pam
@@ -0,0 +1,3 @@
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/~mtjm/python-getmediumurl/PKGBUILD b/~mtjm/python-getmediumurl/PKGBUILD
new file mode 100644
index 000000000..bacc1c0f1
--- /dev/null
+++ b/~mtjm/python-getmediumurl/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+
+_pkgname=GetMediumURL
+pkgname=python-getmediumurl
+pkgver=0.0a5
+pkgrel=1
+pkgdesc="A package for getting URLs of media files from some websites"
+arch=("any")
+url="http://savannah.nongnu.org/projects/getmediumurl/"
+license=('AGPL')
+depends=('python' 'python3-lxml' 'python-urlreader' 'python-distribute')
+checkdepends=('python2') # due to my laziness
+options=(!emptydirs)
+source=("http://download.savannah.gnu.org/releases/getmediumurl/${_pkgname}-${pkgver}.tar.gz")
+md5sums=("0d3660e178bd58549d7a5718f8e39de2")
+
+check() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ LANG=en_US.UTF-8 python setup.py test
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ LANG=en_US.UTF-8 python setup.py install --root="$pkgdir/" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/~mtjm/python-urlreader/PKGBUILD b/~mtjm/python-urlreader/PKGBUILD
new file mode 100644
index 000000000..4ffe93c6f
--- /dev/null
+++ b/~mtjm/python-urlreader/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Michał Masłowski <mtjm@mtjm.eu>
+
+_pkgname=URLReader
+pkgname=python-urlreader
+pkgver=0.0a1
+pkgrel=1
+pkgdesc="Simple package for cached URL fetching"
+arch=("any")
+url="http://hg.mtjm.eu/urlreader/"
+license=('AGPL')
+depends=('python' 'python-distribute')
+checkdepends=('python2') # due to my laziness
+options=(!emptydirs)
+source=("http://pypi.python.org/packages/source/U/URLReader/URLReader-${pkgver}.tar.gz")
+md5sums=("5a96519a24099aae05fc0612d9cfd650")
+
+check() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ LANG=en_US.UTF-8 python setup.py test
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ LANG=en_US.UTF-8 python setup.py install --root="$pkgdir/" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/~mtjm/python2-pydns/PKGBUILD b/~mtjm/python2-pydns/PKGBUILD
index 76ea7b112..cf5f4b388 100644
--- a/~mtjm/python2-pydns/PKGBUILD
+++ b/~mtjm/python2-pydns/PKGBUILD
@@ -4,7 +4,7 @@
# Contributor: Samed Beyribey <ras0ir AT eventualis DOT org>
pkgname=python2-pydns
_pkgname=pydns
-pkgver=2.3.5
+pkgver=2.3.6
pkgrel=1
pkgdesc="Python2 module for performing DNS queries"
arch=('any')
@@ -13,7 +13,7 @@ license=('custom')
depends=('python2')
options=(!emptydirs)
source=(http://downloads.sourceforge.net/$_pkgname/$_pkgname-$pkgver.tar.gz)
-md5sums=('50fb6ec23808110162e84ef49140a73f')
+md5sums=('d12ca75251854ab6fcabbaff6909b690')
build() {
cd "$srcdir/$_pkgname-$pkgver"
diff --git a/~mtjm/python2-pyflakes/PKGBUILD b/~mtjm/python2-pyflakes/PKGBUILD
new file mode 100644
index 000000000..397c487b7
--- /dev/null
+++ b/~mtjm/python2-pyflakes/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 64234 2012-02-11 00:28:07Z arodseth $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: TDY <tdy@gmx.com>
+# Contributor: Tiago Pierezan Camargo <tcamargo@gmail.com>
+
+pkgname=python2-pyflakes
+pkgver=0.5.0
+pkgrel=1
+pkgdesc='A lint-like tool for Python to identify common errors quickly without executing code'
+arch=('any')
+url='http://pypi.python.org/pypi/pyflakes'
+license=('custom:MIT')
+depends=('python2')
+provides=('pyflakes')
+conflicts=('pyflakes')
+replaces=('pyflakes')
+source=("http://pypi.python.org/packages/source/p/pyflakes/pyflakes-${pkgver}.tar.gz")
+md5sums=('568dab27c42e5822787aa8a603898672')
+
+build() {
+ cd pyflakes-${pkgver}
+
+ python2 setup.py build
+}
+
+package() {
+ cd pyflakes-${pkgver}
+
+ python2 setup.py install --prefix=/usr --root=${pkgdir} --optimize=1
+
+ install -D -m644 LICENSE \
+ ${pkgdir}/usr/share/licenses/pyflakes/LICENSE
+}
diff --git a/~mtjm/python2-pyspf/PKGBUILD b/~mtjm/python2-pyspf/PKGBUILD
index a32893066..abb3bfa5f 100644
--- a/~mtjm/python2-pyspf/PKGBUILD
+++ b/~mtjm/python2-pyspf/PKGBUILD
@@ -4,8 +4,8 @@
# Contributor: Samed Beyribey <ras0ir AT eventualis DOT org>
pkgname=python2-pyspf
_pkgname=pyspf
-pkgver=2.0.5
-pkgrel=2
+pkgver=2.0.7
+pkgrel=1
pkgdesc="Python2 implementation of the Sender Policy Framework (SPF) protocol"
arch=('any')
url="http://pypi.python.org/pypi/pyspf"
@@ -15,7 +15,7 @@ checkdepends=('python2-yaml')
conflicts=('python-pyspf')
options=(!emptydirs)
source=(http://downloads.sourceforge.net/pymilter/$_pkgname-$pkgver.tar.gz)
-md5sums=(7e3f53362e3ad52ec8a496445085a34f)
+md5sums=('df47e2c04054a89da8b46b7f67e704ae')
build() {
cd "$srcdir/$_pkgname-$pkgver"
diff --git a/~mtjm/python3-lxml/PKGBUILD b/~mtjm/python3-lxml/PKGBUILD
new file mode 100644
index 000000000..5d4effa47
--- /dev/null
+++ b/~mtjm/python3-lxml/PKGBUILD
@@ -0,0 +1,38 @@
+# Based on python-lxml.
+# $Id: PKGBUILD 146500 2012-01-12 05:14:02Z eric $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Guillem Rieu <guillemr@gmx.net>
+
+pkgname=python3-lxml
+pkgver=2.3.3
+pkgrel=1
+pkgdesc="Python 3 binding for the libxml2 and libxslt libraries"
+arch=('i686' 'x86_64' 'mips64el')
+license=('BSD' 'custom')
+url="http://lxml.de/"
+depends=('python' 'libxslt')
+conflicts=('lxml')
+source=(http://pypi.python.org/packages/source/l/lxml/lxml-${pkgver}.tar.gz{,.asc})
+md5sums=('a7825793c69d004f388ec6600bad7a6f'
+ '5c4b1a05f6e46a4dd7ebed8b5ad9e32e')
+
+check() {
+ cd "${srcdir}"/lxml-$pkgver
+ make test
+}
+
+package() {
+ cd "${srcdir}"/lxml-$pkgver
+
+ python setup.py install --root="${pkgdir}" --optimize=1
+
+ install -Dm644 LICENSES.txt \
+ "${pkgdir}"/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 doc/licenses/BSD.txt \
+ "${pkgdir}"/usr/share/licenses/$pkgname/BSD.txt
+ install -Dm644 doc/licenses/elementtree.txt \
+ "${pkgdir}"/usr/share/licenses/$pkgname/elementtree.txt
+}